title | framework |
---|---|
RGL in Slidify |
io2012 |
knit_hooks$set(webgl = hook_webgl)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x, y)
plot3d(x, y, z, col = rainbow(1000))
Your browser does not support the HTML5 canvas element. <script id="testglvshader6" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; void main(void) { vPosition = mvMatrix * vec4(aPos, 1.); gl_Position = prMatrix * vPosition; gl_PointSize = 3.; vCol = aCol; } </script> <script id="testglfshader6" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; gl_FragColor = lighteffect; } </script> <script id="testglvshader8" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader8" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader9" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader9" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader10" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader10" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader11" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; void main(void) { vPosition = mvMatrix * vec4(aPos, 1.); gl_Position = prMatrix * vPosition; vCol = aCol; } </script> <script id="testglfshader11" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; gl_FragColor = lighteffect; } </script> <script id="testglvshader12" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader12" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader13" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; void main(void) { vPosition = mvMatrix * vec4(aPos, 1.); gl_Position = prMatrix * vPosition; vCol = aCol; } </script> <script id="testglfshader13" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; gl_FragColor = lighteffect; } </script> <script id="testglvshader14" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader14" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader15" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; void main(void) { vPosition = mvMatrix * vec4(aPos, 1.); gl_Position = prMatrix * vPosition; vCol = aCol; } </script> <script id="testglfshader15" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; gl_FragColor = lighteffect; } </script> <script id="testglvshader16" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; attribute vec2 aTexcoord; varying vec2 vTexcoord; attribute vec2 aOfs; void main(void) { vCol = aCol; vTexcoord = aTexcoord; vec4 pos = prMatrix * mvMatrix * vec4(aPos, 1.); pos = pos/pos.w; gl_Position = pos + vec4(aOfs, 0.,0.); } </script> <script id="testglfshader16" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; varying vec2 vTexcoord; uniform sampler2D uSampler; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; vec4 textureColor = lighteffect*texture2D(uSampler, vTexcoord); if (textureColor.a < 0.1) discard; else gl_FragColor = textureColor; } </script> <script id="testglvshader17" type="x-shader/x-vertex"> attribute vec3 aPos; attribute vec4 aCol; uniform mat4 mvMatrix; uniform mat4 prMatrix; varying vec4 vCol; varying vec4 vPosition; void main(void) { vPosition = mvMatrix * vec4(aPos, 1.); gl_Position = prMatrix * vPosition; vCol = aCol; } </script> <script id="testglfshader17" type="x-shader/x-fragment"> #ifdef GL_ES precision highp float; #endif varying vec4 vCol; // carries alpha varying vec4 vPosition; void main(void) { vec4 colDiff = vCol; vec4 lighteffect = colDiff; gl_FragColor = lighteffect; } </script> <script type="text/javascript"> function getShader ( gl, id ){ var shaderScript = document.getElementById ( id ); var str = ""; var k = shaderScript.firstChild; while ( k ){ if ( k.nodeType == 3 ) str += k.textContent; k = k.nextSibling; } var shader; if ( shaderScript.type == "x-shader/x-fragment" ) shader = gl.createShader ( gl.FRAGMENT_SHADER ); else if ( shaderScript.type == "x-shader/x-vertex" ) shader = gl.createShader(gl.VERTEX_SHADER); else return null; gl.shaderSource(shader, str); gl.compileShader(shader); if (gl.getShaderParameter(shader, gl.COMPILE_STATUS) == 0) alert(gl.getShaderInfoLog(shader)); return shader; } var min = Math.min; var max = Math.max; var sqrt = Math.sqrt; var sin = Math.sin; var acos = Math.acos; var tan = Math.tan; var SQRT2 = Math.SQRT2; var PI = Math.PI; var log = Math.log; var exp = Math.exp; function testglwebGLStart() { var debug = function(msg) { document.getElementById("testgldebug").innerHTML = msg; } debug(""); var canvas = document.getElementById("testglcanvas"); if (!window.WebGLRenderingContext){ debug("
Your browser does not support WebGL. See http://get.webgl.org"); return; } var gl; try { // Try to grab the standard context. If it fails, fallback to experimental. gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); } catch(e) {} if ( !gl ) { debug("
Your browser appears to support WebGL, but did not create a WebGL context. See http://get.webgl.org"); return; } var width = 505; var height = 505; canvas.width = width; canvas.height = height; gl.viewport(0, 0, width, height); var prMatrix = new CanvasMatrix4(); var mvMatrix = new CanvasMatrix4(); var normMatrix = new CanvasMatrix4(); var saveMat = new CanvasMatrix4(); saveMat.makeIdentity(); var distance; var posLoc = 0; var colLoc = 1; var zoom = 1; var fov = 30; var userMatrix = new CanvasMatrix4(); userMatrix.load([ 1, 0, 0, 0, 0, 0.3420201, -0.9396926, 0, 0, 0.9396926, 0.3420201, 0, 0, 0, 0, 1 ]); function getPowerOfTwo(value) { var pow = 1; while(pow canvasX) ? widths[i] : canvasX; } canvasX = getPowerOfTwo(canvasX); var offset = 2*textHeight; // offset to first baseline var skip = 2*textHeight; // skip between baselines canvasY = getPowerOfTwo(offset + text.length*skip); canvas.width = canvasX; canvas.height = canvasY; ctx.fillStyle = backgroundColour; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx.fillStyle = textColour; ctx.textAlign = "left"; ctx.textBaseline = "alphabetic"; ctx.font = textHeight+"px "+fontFamily; for(var i = 0; i < text.length; i++) { textY = i*skip + offset; ctx.fillText(text[i], 0, textY); } return {canvasX:canvasX, canvasY:canvasY, widths:widths, textHeight:textHeight, offset:offset, skip:skip}; } // ****** points object 6 ****** var prog6 = gl.createProgram(); gl.attachShader(prog6, getShader( gl, "testglvshader6" )); gl.attachShader(prog6, getShader( gl, "testglfshader6" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog6, 0, "aPos"); gl.bindAttribLocation(prog6, 1, "aCol"); gl.linkProgram(prog6); var v=new Float32Array([ -2.952072, -0.2214677, -3.019845, 1, 0, 0, 1, -2.941993, 0.424547, -1.694011, 1, 0.007843138, 0, 1, -2.773294, -2.252316, -2.289618, 1, 0.01176471, 0, 1, -2.741154, 1.91224, -1.81119, 1, 0.01960784, 0, 1, -2.683521, -1.0161, -2.709061, 1, 0.02352941, 0, 1, -2.586437, -0.1779812, -1.750773, 1, 0.03137255, 0, 1, -2.505093, -0.8384189, -1.21044, 1, 0.03529412, 0, 1, -2.47568, 1.022213, -0.1225114, 1, 0.04313726, 0, 1, -2.449687, 0.390398, -1.7867, 1, 0.04705882, 0, 1, -2.427354, 0.5113504, -1.675239, 1, 0.05490196, 0, 1, -2.408303, 0.685719, -1.534938, 1, 0.05882353, 0, 1, -2.333889, -1.363672, -3.014697, 1, 0.06666667, 0, 1, -2.320272, 0.6390843, -2.03192, 1, 0.07058824, 0, 1, -2.293797, -0.9728975, -0.8808585, 1, 0.07843138, 0, 1, -2.290034, 0.9424326, -0.8609061, 1, 0.08235294, 0, 1, -2.230262, -0.8640178, -2.784488, 1, 0.09019608, 0, 1, -2.207447, -0.08595455, -1.174022, 1, 0.09411765, 0, 1, -2.196868, 1.203467, -2.14733, 1, 0.1019608, 0, 1, -2.194682, 0.4785337, -1.757936, 1, 0.1098039, 0, 1, -2.143002, -1.509105, -2.848423, 1, 0.1137255, 0, 1, -2.130312, 0.0452147, -1.561116, 1, 0.1215686, 0, 1, -2.120408, -0.07902917, -0.726055, 1, 0.1254902, 0, 1, -2.108011, 1.57415, 0.2559504, 1, 0.1333333, 0, 1, -2.055133, -1.333379, -3.044387, 1, 0.1372549, 0, 1, -2.048009, 0.1726251, -1.15378, 1, 0.145098, 0, 1, -2.045321, -0.8332573, -0.7500608, 1, 0.1490196, 0, 1, -2.040717, 0.6300246, -0.4821224, 1, 0.1568628, 0, 1, -2.019848, -0.04821175, -2.657281, 1, 0.1607843, 0, 1, -1.989051, -0.7783911, -0.6717636, 1, 0.1686275, 0, 1, -1.987562, 0.01574371, -1.442691, 1, 0.172549, 0, 1, -1.985878, 0.167875, -1.599388, 1, 0.1803922, 0, 1, -1.96489, -0.8479099, -2.52548, 1, 0.1843137, 0, 1, -1.917563, 1.405126, -0.07621464, 1, 0.1921569, 0, 1, -1.894118, -0.02416018, -2.182522, 1, 0.1960784, 0, 1, -1.888619, -0.1834365, -0.970643, 1, 0.2039216, 0, 1, -1.870354, 0.2195155, -0.1374444, 1, 0.2117647, 0, 1, -1.868238, -1.143964, -1.361275, 1, 0.2156863, 0, 1, -1.864886, -0.4624578, -0.9175287, 1, 0.2235294, 0, 1, -1.86376, 2.337708, 1.385323, 1, 0.227451, 0, 1, -1.829824, 0.02710315, -2.737106, 1, 0.2352941, 0, 1, -1.829525, -0.6056458, -1.833623, 1, 0.2392157, 0, 1, -1.826547, -0.7803, -3.590567, 1, 0.2470588, 0, 1, -1.825762, 0.9202921, -1.513501, 1, 0.2509804, 0, 1, -1.824154, -0.2455368, -1.287658, 1, 0.2588235, 0, 1, -1.79718, -1.030487, -0.9935387, 1, 0.2627451, 0, 1, -1.788661, -0.2359264, -2.571685, 1, 0.2705882, 0, 1, -1.724061, 0.5221362, -1.27853, 1, 0.2745098, 0, 1, -1.722944, 1.368938, -1.517243, 1, 0.282353, 0, 1, -1.712189, 0.97044, -1.368648, 1, 0.2862745, 0, 1, -1.7076, 0.7828088, -0.4968994, 1, 0.2941177, 0, 1, -1.69497, 0.7003319, -1.502948, 1, 0.3019608, 0, 1, -1.683397, 0.9535805, 0.600371, 1, 0.3058824, 0, 1, -1.68299, 1.582764, -1.418401, 1, 0.3137255, 0, 1, -1.682394, -0.5060902, -1.819227, 1, 0.3176471, 0, 1, -1.670441, -0.9899044, -1.587111, 1, 0.3254902, 0, 1, -1.645316, -0.7227786, -1.599769, 1, 0.3294118, 0, 1, -1.626048, -0.4348571, -1.185638, 1, 0.3372549, 0, 1, -1.606754, -0.04309671, 0.0281822, 1, 0.3411765, 0, 1, -1.60584, 0.9677173, -1.266711, 1, 0.3490196, 0, 1, -1.602026, 1.678376, -0.8808994, 1, 0.3529412, 0, 1, -1.596622, -0.08354389, -2.076109, 1, 0.3607843, 0, 1, -1.594318, -0.2166659, -0.9454827, 1, 0.3647059, 0, 1, -1.587558, 0.989337, -3.134423, 1, 0.372549, 0, 1, -1.587225, -1.21237, -0.6356904, 1, 0.3764706, 0, 1, -1.578633, 1.900588, -0.01173788, 1, 0.3843137, 0, 1, -1.578055, 0.7823086, -0.2371179, 1, 0.3882353, 0, 1, -1.568418, 2.168642, -0.9840981, 1, 0.3960784, 0, 1, -1.55603, -0.02704115, -1.332431, 1, 0.4039216, 0, 1, -1.535781, -0.4702654, -2.841969, 1, 0.4078431, 0, 1, -1.534673, -0.6663531, -1.057855, 1, 0.4156863, 0, 1, -1.517087, -0.8057835, -1.849693, 1, 0.4196078, 0, 1, -1.504068, 0.5749683, -2.170553, 1, 0.427451, 0, 1, -1.494269, 0.09998567, -1.482526, 1, 0.4313726, 0, 1, -1.48844, 1.305574, -1.543867, 1, 0.4392157, 0, 1, -1.482861, 0.6015305, -0.4522019, 1, 0.4431373, 0, 1, -1.472684, -0.4684885, -0.9835528, 1, 0.4509804, 0, 1, -1.469093, 0.7232445, -1.391796, 1, 0.454902, 0, 1, -1.462754, -1.453769, -1.857354, 1, 0.4627451, 0, 1, -1.445226, -0.2942193, -2.670498, 1, 0.4666667, 0, 1, -1.439802, 0.5376931, -2.533677, 1, 0.4745098, 0, 1, -1.439066, 0.6008725, -0.8929026, 1, 0.4784314, 0, 1, -1.42943, -0.766921, -2.26438, 1, 0.4862745, 0, 1, -1.429168, -1.50401, -3.165661, 1, 0.4901961, 0, 1, -1.409998, 0.09601423, -0.001234722, 1, 0.4980392, 0, 1, -1.407931, 1.478878, -1.773257, 1, 0.5058824, 0, 1, -1.394425, 0.7354687, -2.072405, 1, 0.509804, 0, 1, -1.383785, -0.4619713, -1.470014, 1, 0.5176471, 0, 1, -1.382702, 0.2958784, -1.097642, 1, 0.5215687, 0, 1, -1.382152, 0.3008618, -0.6442453, 1, 0.5294118, 0, 1, -1.380365, 0.4872535, 1.052903, 1, 0.5333334, 0, 1, -1.36634, -0.4739876, -2.453923, 1, 0.5411765, 0, 1, -1.3656, 0.3148347, -0.3395226, 1, 0.5450981, 0, 1, -1.365577, -1.295408, -2.702588, 1, 0.5529412, 0, 1, -1.365417, 1.012424, -1.35096, 1, 0.5568628, 0, 1, -1.360148, 0.2572357, -2.685012, 1, 0.5647059, 0, 1, -1.355001, -0.7861161, -3.481209, 1, 0.5686275, 0, 1, -1.336093, -0.525708, -1.622202, 1, 0.5764706, 0, 1, -1.332734, -0.2117367, -1.701391, 1, 0.5803922, 0, 1, -1.324501, -2.579236, -1.945515, 1, 0.5882353, 0, 1, -1.307581, 1.136318, 0.694268, 1, 0.5921569, 0, 1, -1.303883, 0.235269, -1.491952, 1, 0.6, 0, 1, -1.284772, 0.09900856, -1.607875, 1, 0.6078432, 0, 1, -1.278091, 0.550403, -0.1343196, 1, 0.6117647, 0, 1, -1.274961, 0.5438955, -0.9888135, 1, 0.6196079, 0, 1, -1.272876, -1.836948, -1.780786, 1, 0.6235294, 0, 1, -1.272242, 0.4610157, -2.04281, 1, 0.6313726, 0, 1, -1.261439, -0.2020016, -2.487752, 1, 0.6352941, 0, 1, -1.259698, 0.4290392, -0.3470646, 1, 0.6431373, 0, 1, -1.259223, 1.091094, -1.146262, 1, 0.6470588, 0, 1, -1.257528, 2.508492, 1.171067, 1, 0.654902, 0, 1, -1.252126, -0.194379, -2.064379, 1, 0.6588235, 0, 1, -1.244922, 2.472193, -2.160313, 1, 0.6666667, 0, 1, -1.238, 0.3430937, -0.6727452, 1, 0.6705883, 0, 1, -1.226254, -0.1156005, -1.402142, 1, 0.6784314, 0, 1, -1.225307, 0.5138997, -0.3392283, 1, 0.682353, 0, 1, -1.223021, -0.6144382, -4.281286, 1, 0.6901961, 0, 1, -1.21327, -0.1685617, -1.154597, 1, 0.6941177, 0, 1, -1.202067, -0.8114645, -3.538086, 1, 0.7019608, 0, 1, -1.199217, 0.8312968, -0.5121593, 1, 0.7098039, 0, 1, -1.19905, 1.106434, -0.6810963, 1, 0.7137255, 0, 1, -1.186804, -0.115044, -2.451418, 1, 0.7215686, 0, 1, -1.184956, 0.960358, -1.161691, 1, 0.7254902, 0, 1, -1.182071, 1.084633, -1.683325, 1, 0.7333333, 0, 1, -1.174797, -0.726693, -0.3591755, 1, 0.7372549, 0, 1, -1.169768, -1.281026, -0.5286845, 1, 0.7450981, 0, 1, -1.161777, 2.400038, -1.81159, 1, 0.7490196, 0, 1, -1.160292, 0.2110365, -2.804078, 1, 0.7568628, 0, 1, -1.15484, -0.5098254, -1.245082, 1, 0.7607843, 0, 1, -1.154353, 0.6865603, -1.348246, 1, 0.7686275, 0, 1, -1.14889, -1.495347, -0.9060023, 1, 0.772549, 0, 1, -1.147015, 0.7406764, -2.66545, 1, 0.7803922, 0, 1, -1.140017, 2.25393, -0.3394988, 1, 0.7843137, 0, 1, -1.139729, 2.116166, -1.831334, 1, 0.7921569, 0, 1, -1.138746, -1.144907, -1.264618, 1, 0.7960784, 0, 1, -1.137917, -1.338127, -3.051515, 1, 0.8039216, 0, 1, -1.137715, 1.563601, -0.2395362, 1, 0.8117647, 0, 1, -1.136109, 0.05792149, -3.280752, 1, 0.8156863, 0, 1, -1.131049, 0.03597917, -1.319257, 1, 0.8235294, 0, 1, -1.124196, -0.6959928, -0.9981425, 1, 0.827451, 0, 1, -1.122186, 2.185714, -0.8348395, 1, 0.8352941, 0, 1, -1.119682, -0.9030933, -3.610648, 1, 0.8392157, 0, 1, -1.111681, 0.6788838, -1.871205, 1, 0.8470588, 0, 1, -1.110984, 1.286329, -2.088835, 1, 0.8509804, 0, 1, -1.109825, -0.6160831, -3.224387, 1, 0.8588235, 0, 1, -1.107536, 0.6716356, -0.6965201, 1, 0.8627451, 0, 1, -1.105935, 0.4486714, -0.4260064, 1, 0.8705882, 0, 1, -1.091415, 1.051413, -2.031005, 1, 0.8745098, 0, 1, -1.079973, 0.2999201, 0.02011249, 1, 0.8823529, 0, 1, -1.075945, -0.04313045, -1.279903, 1, 0.8862745, 0, 1, -1.071169, -0.4646976, -2.521388, 1, 0.8941177, 0, 1, -1.070795, 2.449164, -1.163572, 1, 0.8980392, 0, 1, -1.068647, 1.231012, -0.05337533, 1, 0.9058824, 0, 1, -1.068622, 2.003875, 0.01871086, 1, 0.9137255, 0, 1, -1.059588, -1.319358, -4.329925, 1, 0.9176471, 0, 1, -1.056482, 1.296443, -0.6391521, 1, 0.9254902, 0, 1, -1.050229, 0.1273067, -2.255058, 1, 0.9294118, 0, 1, -1.048328, 0.3491593, 1.104307, 1, 0.9372549, 0, 1, -1.045739, 1.217726, -0.03983155, 1, 0.9411765, 0, 1, -1.039323, -0.1034171, 0.7803413, 1, 0.9490196, 0, 1, -1.037779, -0.6624163, -2.346845, 1, 0.9529412, 0, 1, -1.032037, -0.5432869, -2.761428, 1, 0.9607843, 0, 1, -1.022172, -0.7157797, -2.052552, 1, 0.9647059, 0, 1, -1.017052, 0.7271466, -1.772389, 1, 0.972549, 0, 1, -1.013411, -0.1547355, -1.495598, 1, 0.9764706, 0, 1, -1.011122, -0.2131106, -1.433876, 1, 0.9843137, 0, 1, -0.9943853, 1.712066, 1.142819, 1, 0.9882353, 0, 1, -0.9907827, -0.06295249, 0.4340695, 1, 0.9960784, 0, 1, -0.9872807, 1.260377, 0.8967608, 0.9960784, 1, 0, 1, -0.9861758, 0.7593516, 0.03968823, 0.9921569, 1, 0, 1, -0.9825948, 1.038902, -0.5270802, 0.9843137, 1, 0, 1, -0.982072, -0.1005354, -3.670372, 0.9803922, 1, 0, 1, -0.9805154, 0.7657207, -1.398373, 0.972549, 1, 0, 1, -0.9805078, -0.7093286, -4.132678, 0.9686275, 1, 0, 1, -0.9774836, -0.07165699, -1.778571, 0.9607843, 1, 0, 1, -0.968567, 1.216195, -1.455108, 0.9568627, 1, 0, 1, -0.9664513, -0.1950349, -2.343459, 0.9490196, 1, 0, 1, -0.964232, -1.411818, -3.658042, 0.945098, 1, 0, 1, -0.9584031, -1.799906, -1.651035, 0.9372549, 1, 0, 1, -0.9573254, -0.3188287, -0.6257594, 0.9333333, 1, 0, 1, -0.9503989, 0.8787079, -0.7875744, 0.9254902, 1, 0, 1, -0.9469922, -0.6270015, -3.328432, 0.9215686, 1, 0, 1, -0.9454874, 0.5311117, -1.432938, 0.9137255, 1, 0, 1, -0.9405314, 1.350968, -1.556772, 0.9098039, 1, 0, 1, -0.9397348, -0.3418904, -4.039907, 0.9019608, 1, 0, 1, -0.9328216, 0.1222576, 0.2314532, 0.8941177, 1, 0, 1, -0.9156438, 0.4141947, -2.243482, 0.8901961, 1, 0, 1, -0.9153265, -0.8391659, -3.496867, 0.8823529, 1, 0, 1, -0.9073144, 0.6333246, -2.649147, 0.8784314, 1, 0, 1, -0.9029736, 0.3459897, -3.403926, 0.8705882, 1, 0, 1, -0.9026194, 1.698885, -0.9570414, 0.8666667, 1, 0, 1, -0.9006733, -0.371772, -0.6053912, 0.8588235, 1, 0, 1, -0.8992302, -2.191268, -1.915156, 0.854902, 1, 0, 1, -0.8968864, -1.07954, -1.105069, 0.8470588, 1, 0, 1, -0.8944083, -2.465679, -3.236563, 0.8431373, 1, 0, 1, -0.8937457, 1.035335, -1.876912, 0.8352941, 1, 0, 1, -0.8894136, -1.463029, -2.677189, 0.8313726, 1, 0, 1, -0.8809638, 0.4487642, -1.707689, 0.8235294, 1, 0, 1, -0.8716294, 0.7511734, -0.3275216, 0.8196079, 1, 0, 1, -0.8699331, -0.9467522, -2.607056, 0.8117647, 1, 0, 1, -0.8695205, -1.354962, -1.514445, 0.8078431, 1, 0, 1, -0.8675485, -0.343391, -0.2768703, 0.8, 1, 0, 1, -0.8663142, -0.6837574, -1.84643, 0.7921569, 1, 0, 1, -0.8653257, 0.5272666, -1.10719, 0.7882353, 1, 0, 1, -0.854149, 0.07858349, -2.899263, 0.7803922, 1, 0, 1, -0.8496044, -0.1984344, -2.670213, 0.7764706, 1, 0, 1, -0.8352213, -1.158495, -2.447997, 0.7686275, 1, 0, 1, -0.8287078, -0.7839496, -2.422284, 0.7647059, 1, 0, 1, -0.8204087, 0.8388914, -2.487728, 0.7568628, 1, 0, 1, -0.8200579, 1.251559, -0.06959747, 0.7529412, 1, 0, 1, -0.8171641, -1.591484, -2.560895, 0.7450981, 1, 0, 1, -0.8151615, 0.4892646, 0.5015919, 0.7411765, 1, 0, 1, -0.8136763, 1.31604, -0.6453956, 0.7333333, 1, 0, 1, -0.8118364, -0.6951852, -2.757274, 0.7294118, 1, 0, 1, -0.8028432, -0.280429, -3.730121, 0.7215686, 1, 0, 1, -0.7938887, 0.1765896, -1.459251, 0.7176471, 1, 0, 1, -0.7931572, 0.9625944, -2.482344, 0.7098039, 1, 0, 1, -0.7925306, 1.043857, -1.710268, 0.7058824, 1, 0, 1, -0.7902551, 1.168457, -1.511305, 0.6980392, 1, 0, 1, -0.7879117, -0.4339956, -1.95698, 0.6901961, 1, 0, 1, -0.782855, -0.7803537, -1.981225, 0.6862745, 1, 0, 1, -0.7679511, -1.669931, -2.665724, 0.6784314, 1, 0, 1, -0.7573319, 0.02244568, -2.571121, 0.6745098, 1, 0, 1, -0.7506661, -0.3513085, -2.154407, 0.6666667, 1, 0, 1, -0.7481664, -0.636127, -1.453293, 0.6627451, 1, 0, 1, -0.7476972, -0.8049189, -1.97405, 0.654902, 1, 0, 1, -0.7472336, 0.4382182, 0.3645542, 0.6509804, 1, 0, 1, -0.7457134, 1.799914, -0.08401269, 0.6431373, 1, 0, 1, -0.7422929, -0.1130634, -0.2413792, 0.6392157, 1, 0, 1, -0.7335162, 1.169592, -0.9551185, 0.6313726, 1, 0, 1, -0.7307594, -0.2859268, -3.452493, 0.627451, 1, 0, 1, -0.7296641, -0.5969451, -2.14616, 0.6196079, 1, 0, 1, -0.7290528, 1.103952, -2.468522, 0.6156863, 1, 0, 1, -0.7285686, 0.8611033, -0.4861829, 0.6078432, 1, 0, 1, -0.7276863, 0.1402374, -0.5544298, 0.6039216, 1, 0, 1, -0.7225975, -0.2551185, -0.2522921, 0.5960785, 1, 0, 1, -0.7120798, 0.3643866, -2.051522, 0.5882353, 1, 0, 1, -0.7095784, 0.9027485, 0.1943288, 0.5843138, 1, 0, 1, -0.7064263, 0.6014298, 0.9467208, 0.5764706, 1, 0, 1, -0.7040495, 1.282108, -1.834462, 0.572549, 1, 0, 1, -0.6923751, 0.9262469, -1.129931, 0.5647059, 1, 0, 1, -0.6916713, -0.9258428, -2.859968, 0.5607843, 1, 0, 1, -0.6907132, -0.3908788, -2.343917, 0.5529412, 1, 0, 1, -0.6892564, 0.794014, -1.252074, 0.5490196, 1, 0, 1, -0.6864015, -0.4728993, -2.71472, 0.5411765, 1, 0, 1, -0.6848505, 2.33219, 0.4116175, 0.5372549, 1, 0, 1, -0.681336, 0.5754384, -1.197933, 0.5294118, 1, 0, 1, -0.6796325, 1.814438, -1.93693, 0.5254902, 1, 0, 1, -0.6782871, 0.6674304, -2.400679, 0.5176471, 1, 0, 1, -0.677919, 1.07739, -0.110497, 0.5137255, 1, 0, 1, -0.6723006, -0.7835825, -1.491591, 0.5058824, 1, 0, 1, -0.6714321, -0.3900415, -1.049517, 0.5019608, 1, 0, 1, -0.6689433, 0.5691403, -0.8910444, 0.4941176, 1, 0, 1, -0.6685745, -0.5514185, -1.231689, 0.4862745, 1, 0, 1, -0.6670567, -1.392809, -3.576702, 0.4823529, 1, 0, 1, -0.6643012, 0.9274381, 0.4734419, 0.4745098, 1, 0, 1, -0.6598572, 0.3897451, -1.14688, 0.4705882, 1, 0, 1, -0.6525954, 0.03516814, -1.768652, 0.4627451, 1, 0, 1, -0.6489615, 1.760559, -0.7994562, 0.4588235, 1, 0, 1, -0.647455, -0.8100634, -2.801702, 0.4509804, 1, 0, 1, -0.6462423, -0.1315998, -1.136848, 0.4470588, 1, 0, 1, -0.6432485, -0.08075248, -2.381537, 0.4392157, 1, 0, 1, -0.6413432, -1.91818, -2.336402, 0.4352941, 1, 0, 1, -0.6387789, -0.4077325, -1.372771, 0.427451, 1, 0, 1, -0.6375709, -0.700893, -4.142463, 0.4235294, 1, 0, 1, -0.6369945, -3.24565, -2.860122, 0.4156863, 1, 0, 1, -0.6325819, -1.004256, -1.652969, 0.4117647, 1, 0, 1, -0.6314489, -1.209096, -2.024427, 0.4039216, 1, 0, 1, -0.6302279, 0.5906739, 0.432087, 0.3960784, 1, 0, 1, -0.6298791, -0.3311491, 0.3837432, 0.3921569, 1, 0, 1, -0.6231918, -0.03238789, -0.7343976, 0.3843137, 1, 0, 1, -0.6210124, -1.777432, -3.84687, 0.3803922, 1, 0, 1, -0.6201745, 1.2284, -0.6468686, 0.372549, 1, 0, 1, -0.6181324, -1.240402, -2.841585, 0.3686275, 1, 0, 1, -0.6178383, 1.055207, -0.6962317, 0.3607843, 1, 0, 1, -0.613564, -0.8946884, -4.17686, 0.3568628, 1, 0, 1, -0.6090373, -0.6892626, -2.271461, 0.3490196, 1, 0, 1, -0.6070601, 0.1634304, -3.401842, 0.345098, 1, 0, 1, -0.6067012, 0.1071071, 1.364662, 0.3372549, 1, 0, 1, -0.6055592, -0.1477361, -1.844201, 0.3333333, 1, 0, 1, -0.6051491, -1.427357, -2.155674, 0.3254902, 1, 0, 1, -0.5954592, 0.9432967, -0.01317883, 0.3215686, 1, 0, 1, -0.5943538, -0.8075466, 0.4178461, 0.3137255, 1, 0, 1, -0.5928915, -1.166127, -1.455157, 0.3098039, 1, 0, 1, -0.5918809, 1.027194, -0.182586, 0.3019608, 1, 0, 1, -0.5813763, 1.069926, -0.6827145, 0.2941177, 1, 0, 1, -0.5716851, 0.002512995, -1.142244, 0.2901961, 1, 0, 1, -0.5716239, -0.2649691, -3.713245, 0.282353, 1, 0, 1, -0.5714072, -0.8586003, -1.002786, 0.2784314, 1, 0, 1, -0.5713909, 0.1565022, -0.9842624, 0.2705882, 1, 0, 1, -0.5713124, 0.3004626, -0.3790638, 0.2666667, 1, 0, 1, -0.5681065, -0.5840392, -3.848304, 0.2588235, 1, 0, 1, -0.5644956, 1.320793, 0.1484747, 0.254902, 1, 0, 1, -0.5628687, 1.21012, 0.007122288, 0.2470588, 1, 0, 1, -0.5583622, -3.315728, -3.857269, 0.2431373, 1, 0, 1, -0.5555913, -1.068211, -0.5390399, 0.2352941, 1, 0, 1, -0.5534164, 0.1316015, -0.5601313, 0.2313726, 1, 0, 1, -0.5525221, 0.7448058, -2.267992, 0.2235294, 1, 0, 1, -0.5487452, -0.04829736, -0.6494851, 0.2196078, 1, 0, 1, -0.5427365, 0.1721233, -1.341525, 0.2117647, 1, 0, 1, -0.5364569, -0.4519658, -2.103772, 0.2078431, 1, 0, 1, -0.5363923, 0.2624132, -1.076534, 0.2, 1, 0, 1, -0.5303519, 0.1178293, -1.153128, 0.1921569, 1, 0, 1, -0.5238888, 2.176602, 0.4239957, 0.1882353, 1, 0, 1, -0.5146596, 0.6115005, -0.4069919, 0.1803922, 1, 0, 1, -0.5073248, 0.1724239, -2.407949, 0.1764706, 1, 0, 1, -0.5071928, -0.5216237, -2.379085, 0.1686275, 1, 0, 1, -0.507123, 0.7020333, 0.4399352, 0.1647059, 1, 0, 1, -0.5051492, 1.107044, -0.7410638, 0.1568628, 1, 0, 1, -0.4972166, -0.9833329, -2.043604, 0.1529412, 1, 0, 1, -0.4958894, -1.059271, -3.919214, 0.145098, 1, 0, 1, -0.4923497, 0.4838764, -1.767708, 0.1411765, 1, 0, 1, -0.4889366, -0.3108651, -4.222139, 0.1333333, 1, 0, 1, -0.4782925, -2.930064, -1.779766, 0.1294118, 1, 0, 1, -0.4767335, -0.3159468, -2.425076, 0.1215686, 1, 0, 1, -0.4748086, -0.02019463, -3.784583, 0.1176471, 1, 0, 1, -0.4726345, -0.7113029, -1.293113, 0.1098039, 1, 0, 1, -0.4715721, 0.6687865, -0.6620966, 0.1058824, 1, 0, 1, -0.4713562, 0.5815372, -2.311205, 0.09803922, 1, 0, 1, -0.464012, -1.367852, -2.870793, 0.09019608, 1, 0, 1, -0.4619595, -1.436926, -2.343121, 0.08627451, 1, 0, 1, -0.4603894, -1.409577, -3.159855, 0.07843138, 1, 0, 1, -0.4540121, 0.3396948, 0.578438, 0.07450981, 1, 0, 1, -0.4522051, 1.375837, 2.134279, 0.06666667, 1, 0, 1, -0.4492738, -0.2817011, -0.4820639, 0.0627451, 1, 0, 1, -0.4481122, -0.9129242, -2.874551, 0.05490196, 1, 0, 1, -0.4470749, 0.3814341, -1.137599, 0.05098039, 1, 0, 1, -0.4443349, -2.22127, -1.101861, 0.04313726, 1, 0, 1, -0.4427461, 0.5777826, -0.2816789, 0.03921569, 1, 0, 1, -0.4424335, 2.065258, 2.171774, 0.03137255, 1, 0, 1, -0.4393137, -1.341557, -2.698607, 0.02745098, 1, 0, 1, -0.4384849, -0.5134424, -2.587961, 0.01960784, 1, 0, 1, -0.4349882, -0.7640378, -3.319205, 0.01568628, 1, 0, 1, -0.4333546, -0.3123941, -2.998156, 0.007843138, 1, 0, 1, -0.4288439, -0.16782, -1.564729, 0.003921569, 1, 0, 1, -0.4278697, -0.3470798, -1.63524, 0, 1, 0.003921569, 1, -0.4236396, -1.273203, -2.652764, 0, 1, 0.01176471, 1, -0.4154451, 0.08380403, -2.643131, 0, 1, 0.01568628, 1, -0.4135748, -0.8384106, -3.572916, 0, 1, 0.02352941, 1, -0.4099361, 0.04529222, -2.534371, 0, 1, 0.02745098, 1, -0.4030625, -0.2000747, -1.562217, 0, 1, 0.03529412, 1, -0.4029484, -0.3524667, -3.049908, 0, 1, 0.03921569, 1, -0.4018896, 0.1643915, 0.2305654, 0, 1, 0.04705882, 1, -0.4004692, 0.6906044, 0.01166969, 0, 1, 0.05098039, 1, -0.393987, 0.4533261, 0.4465583, 0, 1, 0.05882353, 1, -0.3929509, 0.1016763, -1.819008, 0, 1, 0.0627451, 1, -0.3917049, 0.5556434, -1.345233, 0, 1, 0.07058824, 1, -0.3819703, -0.6502449, -2.010136, 0, 1, 0.07450981, 1, -0.3808239, 0.1208525, -1.01962, 0, 1, 0.08235294, 1, -0.3794548, 0.406722, -1.851965, 0, 1, 0.08627451, 1, -0.3793632, -0.5407692, -3.318827, 0, 1, 0.09411765, 1, -0.3780411, 0.6959127, -1.331347, 0, 1, 0.1019608, 1, -0.3754403, 2.140704, 1.05979, 0, 1, 0.1058824, 1, -0.3743875, -0.2309773, -3.099105, 0, 1, 0.1137255, 1, -0.3732539, -0.03161833, 0.04777619, 0, 1, 0.1176471, 1, -0.3686399, -1.104322, -2.997874, 0, 1, 0.1254902, 1, -0.3678722, -1.768109, -2.518285, 0, 1, 0.1294118, 1, -0.3617575, -1.276533, -0.9769378, 0, 1, 0.1372549, 1, -0.3617448, -1.301939, -2.972571, 0, 1, 0.1411765, 1, -0.3600556, -0.6689434, -2.431079, 0, 1, 0.1490196, 1, -0.3595341, 1.623125, 0.5463394, 0, 1, 0.1529412, 1, -0.357131, -0.8154444, -2.397709, 0, 1, 0.1607843, 1, -0.3523571, -0.347725, -1.922208, 0, 1, 0.1647059, 1, -0.3459724, -1.100256, -3.886407, 0, 1, 0.172549, 1, -0.3459285, 0.9425349, -0.4139636, 0, 1, 0.1764706, 1, -0.3415533, -0.4005133, -4.554255, 0, 1, 0.1843137, 1, -0.3390867, 0.03050414, -1.093108, 0, 1, 0.1882353, 1, -0.3363944, -0.4089517, -1.66762, 0, 1, 0.1960784, 1, -0.3356876, 0.9215645, 1.010847, 0, 1, 0.2039216, 1, -0.3355496, -3.347863, -4.009837, 0, 1, 0.2078431, 1, -0.3331297, 0.007176185, -0.251017, 0, 1, 0.2156863, 1, -0.328437, 1.909181, 0.2606099, 0, 1, 0.2196078, 1, -0.3255764, -0.3895511, -5.104709, 0, 1, 0.227451, 1, -0.3207122, -0.3637998, -1.963131, 0, 1, 0.2313726, 1, -0.319975, 0.1031527, -0.9971405, 0, 1, 0.2392157, 1, -0.3194291, -2.138723, -5.100375, 0, 1, 0.2431373, 1, -0.3155167, 0.9108273, 0.09591845, 0, 1, 0.2509804, 1, -0.3146338, -0.0717146, -1.963771, 0, 1, 0.254902, 1, -0.3130884, 0.5693047, -0.8578362, 0, 1, 0.2627451, 1, -0.3102593, -0.01114597, -0.3025097, 0, 1, 0.2666667, 1, -0.3093901, 0.08979359, -1.303872, 0, 1, 0.2745098, 1, -0.3054723, -1.067178, -4.772877, 0, 1, 0.2784314, 1, -0.3004324, 0.9151236, -0.6212106, 0, 1, 0.2862745, 1, -0.2990657, 0.778702, 0.9298334, 0, 1, 0.2901961, 1, -0.2960278, -2.329248, -0.2819417, 0, 1, 0.2980392, 1, -0.2933179, -1.726423, -2.763719, 0, 1, 0.3058824, 1, -0.2877569, 0.5824063, 1.532404, 0, 1, 0.3098039, 1, -0.287481, 0.0707852, -3.372499, 0, 1, 0.3176471, 1, -0.2823125, -0.4067275, -3.073661, 0, 1, 0.3215686, 1, -0.2806834, -1.520699, -1.550797, 0, 1, 0.3294118, 1, -0.2799704, 1.231594, 1.105826, 0, 1, 0.3333333, 1, -0.2767639, -0.01176268, 1.138872, 0, 1, 0.3411765, 1, -0.2731419, 2.316162, -0.02548914, 0, 1, 0.345098, 1, -0.2717732, -1.583815, -6.034908, 0, 1, 0.3529412, 1, -0.2713699, -1.473322, -3.86254, 0, 1, 0.3568628, 1, -0.2707267, 0.1390505, -1.02806, 0, 1, 0.3647059, 1, -0.2705508, -0.8990755, -3.138698, 0, 1, 0.3686275, 1, -0.2689405, 1.946902, -0.1235823, 0, 1, 0.3764706, 1, -0.2682269, -0.04261554, -0.5612246, 0, 1, 0.3803922, 1, -0.2656361, 1.294305, 0.7100304, 0, 1, 0.3882353, 1, -0.2650884, 0.6006091, 0.3917286, 0, 1, 0.3921569, 1, -0.2639566, 0.853242, -0.9342297, 0, 1, 0.4, 1, -0.2614456, 1.138353, -0.9740773, 0, 1, 0.4078431, 1, -0.2586696, -1.601035, -3.00169, 0, 1, 0.4117647, 1, -0.2572677, 0.9164099, 0.2658063, 0, 1, 0.4196078, 1, -0.2535778, -0.3549367, -2.523365, 0, 1, 0.4235294, 1, -0.2494086, 0.9666477, 0.3828886, 0, 1, 0.4313726, 1, -0.2482907, -1.476003, -3.881352, 0, 1, 0.4352941, 1, -0.2462286, -0.2496411, -2.638662, 0, 1, 0.4431373, 1, -0.2437153, 0.4847289, -0.5115471, 0, 1, 0.4470588, 1, -0.2409379, -0.666148, -1.772852, 0, 1, 0.454902, 1, -0.2399915, 0.3074091, -0.07607224, 0, 1, 0.4588235, 1, -0.2351624, -0.5102469, -2.207315, 0, 1, 0.4666667, 1, -0.2347225, -1.871315, -2.998741, 0, 1, 0.4705882, 1, -0.2343093, -0.3155825, -2.267859, 0, 1, 0.4784314, 1, -0.229999, 0.6537161, -0.5373682, 0, 1, 0.4823529, 1, -0.2271884, 0.4296626, -1.757412, 0, 1, 0.4901961, 1, -0.2237196, 0.4104041, 1.343656, 0, 1, 0.4941176, 1, -0.2204048, -0.8353804, -4.073349, 0, 1, 0.5019608, 1, -0.2182518, 0.3059334, -2.330369, 0, 1, 0.509804, 1, -0.2158681, -0.0838955, -3.705967, 0, 1, 0.5137255, 1, -0.2142206, -1.02621, -3.840436, 0, 1, 0.5215687, 1, -0.211968, -0.5561653, -2.076725, 0, 1, 0.5254902, 1, -0.2076492, 0.7180692, 0.5077131, 0, 1, 0.5333334, 1, -0.2074676, -1.417043, -1.080851, 0, 1, 0.5372549, 1, -0.2065675, -0.07369898, -1.607769, 0, 1, 0.5450981, 1, -0.202293, -1.333403, -3.110718, 0, 1, 0.5490196, 1, -0.2022738, 1.149055, 0.5826751, 0, 1, 0.5568628, 1, -0.1993033, -0.5426094, -2.811442, 0, 1, 0.5607843, 1, -0.1978139, 0.8761164, -0.4019873, 0, 1, 0.5686275, 1, -0.196297, 0.9295847, -0.420122, 0, 1, 0.572549, 1, -0.1954162, -0.33406, -2.957113, 0, 1, 0.5803922, 1, -0.1930268, -0.3329388, -1.49573, 0, 1, 0.5843138, 1, -0.1867415, -0.3738241, -2.464917, 0, 1, 0.5921569, 1, -0.1840653, -0.1817566, -3.623565, 0, 1, 0.5960785, 1, -0.1835894, -0.9132759, -4.317578, 0, 1, 0.6039216, 1, -0.182916, -0.3526671, -2.466971, 0, 1, 0.6117647, 1, -0.1819197, -0.6558659, -2.824616, 0, 1, 0.6156863, 1, -0.1817009, -0.1354536, -2.230595, 0, 1, 0.6235294, 1, -0.175114, -0.4190194, -2.527413, 0, 1, 0.627451, 1, -0.1747816, -1.228725, -0.6664209, 0, 1, 0.6352941, 1, -0.1740428, -0.02333271, -1.41781, 0, 1, 0.6392157, 1, -0.1737445, -2.379715, -3.290058, 0, 1, 0.6470588, 1, -0.1697243, 0.5682441, 0.2012258, 0, 1, 0.6509804, 1, -0.1666334, -0.5992659, -1.620578, 0, 1, 0.6588235, 1, -0.1658657, -0.2856114, -2.680156, 0, 1, 0.6627451, 1, -0.1622979, 0.6648468, 0.5064943, 0, 1, 0.6705883, 1, -0.1604176, -0.06366231, -1.242382, 0, 1, 0.6745098, 1, -0.1483945, 0.7009889, -0.3884372, 0, 1, 0.682353, 1, -0.1478137, 0.8667023, 0.2244923, 0, 1, 0.6862745, 1, -0.1454613, -0.7217216, -3.791184, 0, 1, 0.6941177, 1, -0.1412155, 0.6874224, -1.154335, 0, 1, 0.7019608, 1, -0.1405468, -0.4154827, -1.079747, 0, 1, 0.7058824, 1, -0.1363773, -0.8807688, -2.844656, 0, 1, 0.7137255, 1, -0.1349164, -0.1787988, -4.477698, 0, 1, 0.7176471, 1, -0.1343246, 1.561271, -0.721509, 0, 1, 0.7254902, 1, -0.1281585, -0.1259721, -2.821643, 0, 1, 0.7294118, 1, -0.126766, -0.4031541, -2.941869, 0, 1, 0.7372549, 1, -0.1251716, -0.6890547, -4.489377, 0, 1, 0.7411765, 1, -0.1241039, 0.9248794, 0.08351666, 0, 1, 0.7490196, 1, -0.1222318, 0.5517559, 1.05794, 0, 1, 0.7529412, 1, -0.1152827, -0.1622503, -2.078199, 0, 1, 0.7607843, 1, -0.1140199, 0.6321118, 0.4657196, 0, 1, 0.7647059, 1, -0.1122962, -0.9087024, -2.929593, 0, 1, 0.772549, 1, -0.1104475, -0.8804581, -3.258203, 0, 1, 0.7764706, 1, -0.1072984, 0.3698506, -0.6540141, 0, 1, 0.7843137, 1, -0.09962191, 0.3276653, -0.1791232, 0, 1, 0.7882353, 1, -0.08846764, -0.2304984, -2.870246, 0, 1, 0.7960784, 1, -0.08388051, 0.6860718, -0.02155858, 0, 1, 0.8039216, 1, -0.08145476, -0.7904468, -3.18132, 0, 1, 0.8078431, 1, -0.07982187, 1.059598, 0.4503331, 0, 1, 0.8156863, 1, -0.07767848, 0.7121824, 0.1876415, 0, 1, 0.8196079, 1, -0.07654158, 0.286748, -1.362021, 0, 1, 0.827451, 1, -0.07079622, 0.508581, -1.384121, 0, 1, 0.8313726, 1, -0.06394126, 0.7599067, -1.728194, 0, 1, 0.8392157, 1, -0.0623936, 0.9558676, 0.7843695, 0, 1, 0.8431373, 1, -0.0610263, 2.11135, 0.1588976, 0, 1, 0.8509804, 1, -0.05981881, 0.9702373, 0.4051595, 0, 1, 0.854902, 1, -0.05483764, 0.09553801, -2.200514, 0, 1, 0.8627451, 1, -0.0548273, 1.296937, -1.653769, 0, 1, 0.8666667, 1, -0.04905285, 0.669547, -0.6774637, 0, 1, 0.8745098, 1, -0.04880848, -0.5542576, -3.807092, 0, 1, 0.8784314, 1, -0.04674456, 0.7401711, 0.9484792, 0, 1, 0.8862745, 1, -0.04497456, 0.1177558, -0.4464638, 0, 1, 0.8901961, 1, -0.04481419, -1.253609, -3.993342, 0, 1, 0.8980392, 1, -0.04088784, 1.181867, 1.377729, 0, 1, 0.9058824, 1, -0.03292176, -0.4325537, -3.58982, 0, 1, 0.9098039, 1, -0.03249968, 2.021695, -1.828289, 0, 1, 0.9176471, 1, -0.03165462, -0.6843129, -2.43983, 0, 1, 0.9215686, 1, -0.02626714, 1.398494, 0.8693712, 0, 1, 0.9294118, 1, -0.02488645, -0.1795779, -2.380818, 0, 1, 0.9333333, 1, -0.0198444, -0.1423852, -3.748794, 0, 1, 0.9411765, 1, -0.019621, -0.575919, -4.296655, 0, 1, 0.945098, 1, -0.01291378, 0.8155708, 1.139806, 0, 1, 0.9529412, 1, -0.005044603, 0.4211881, 0.9422421, 0, 1, 0.9568627, 1, -0.003379322, 0.2209627, 0.2352269, 0, 1, 0.9647059, 1, -0.00166498, 2.236018, -0.327383, 0, 1, 0.9686275, 1, 0.009044074, 1.302242, 0.2147087, 0, 1, 0.9764706, 1, 0.01206929, 0.2564131, 0.2297859, 0, 1, 0.9803922, 1, 0.01700024, -2.327813, 1.792369, 0, 1, 0.9882353, 1, 0.01909101, -0.05448508, 4.461289, 0, 1, 0.9921569, 1, 0.02104849, -1.779805, 3.100771, 0, 1, 1, 1, 0.02941375, -0.09253929, 5.422482, 0, 0.9921569, 1, 1, 0.03495206, 0.6266502, -0.4469745, 0, 0.9882353, 1, 1, 0.03832666, 0.717221, -0.4410895, 0, 0.9803922, 1, 1, 0.03884649, -0.6021689, 3.541697, 0, 0.9764706, 1, 1, 0.04320304, 0.9008705, -0.3341261, 0, 0.9686275, 1, 1, 0.04447746, -1.045131, 3.672436, 0, 0.9647059, 1, 1, 0.04673402, 0.9520221, -0.8979803, 0, 0.9568627, 1, 1, 0.04673742, -0.6116674, 2.833712, 0, 0.9529412, 1, 1, 0.04839087, -0.8550098, 1.250655, 0, 0.945098, 1, 1, 0.05105942, -0.3078005, 2.381292, 0, 0.9411765, 1, 1, 0.05218695, 0.1479343, 0.531517, 0, 0.9333333, 1, 1, 0.05441035, 0.5129958, 1.475091, 0, 0.9294118, 1, 1, 0.05459321, 0.5370991, -0.2356481, 0, 0.9215686, 1, 1, 0.05567201, 0.7845246, -1.615614, 0, 0.9176471, 1, 1, 0.05830469, 0.8896099, -0.1217868, 0, 0.9098039, 1, 1, 0.05957788, 0.0318676, 2.101084, 0, 0.9058824, 1, 1, 0.06124609, 1.080416, 0.4405728, 0, 0.8980392, 1, 1, 0.06501958, 0.1514995, 0.6810772, 0, 0.8901961, 1, 1, 0.06516008, 0.5564216, -0.9710834, 0, 0.8862745, 1, 1, 0.06774008, -0.5002612, 2.44525, 0, 0.8784314, 1, 1, 0.06778645, -0.08763502, 0.794955, 0, 0.8745098, 1, 1, 0.0696618, -1.010397, 2.098579, 0, 0.8666667, 1, 1, 0.07211845, 1.13846, 1.613899, 0, 0.8627451, 1, 1, 0.07855194, 1.583874, -1.943844, 0, 0.854902, 1, 1, 0.08028543, -1.005238, 2.087858, 0, 0.8509804, 1, 1, 0.08071452, -0.3919511, 3.73979, 0, 0.8431373, 1, 1, 0.08200967, 0.161239, 0.2612608, 0, 0.8392157, 1, 1, 0.08470313, -1.100239, 3.452537, 0, 0.8313726, 1, 1, 0.08598165, -2.190252, 2.382201, 0, 0.827451, 1, 1, 0.08657583, -0.5947481, 1.471675, 0, 0.8196079, 1, 1, 0.08861252, 1.470734, 0.02687171, 0, 0.8156863, 1, 1, 0.09288058, -0.7251425, 4.118561, 0, 0.8078431, 1, 1, 0.09339472, 0.2251559, -0.544494, 0, 0.8039216, 1, 1, 0.09339983, 2.798271, -0.1345958, 0, 0.7960784, 1, 1, 0.09420321, 1.47234, -0.6312547, 0, 0.7882353, 1, 1, 0.09538492, -0.9829392, 2.852866, 0, 0.7843137, 1, 1, 0.09720863, 1.152133, 1.507159, 0, 0.7764706, 1, 1, 0.109334, -1.377251, 1.617999, 0, 0.772549, 1, 1, 0.1127683, 0.02117237, 0.8162939, 0, 0.7647059, 1, 1, 0.1159471, 0.1660123, 0.7476773, 0, 0.7607843, 1, 1, 0.1173163, -0.5305991, 3.595623, 0, 0.7529412, 1, 1, 0.1193601, 0.7142553, 0.2944025, 0, 0.7490196, 1, 1, 0.1202289, -0.1439346, 2.612555, 0, 0.7411765, 1, 1, 0.1240429, -0.6136262, 2.13775, 0, 0.7372549, 1, 1, 0.1302534, 0.4754017, 1.170818, 0, 0.7294118, 1, 1, 0.1338615, -0.4745064, 2.605271, 0, 0.7254902, 1, 1, 0.1411558, -0.6609925, 4.387336, 0, 0.7176471, 1, 1, 0.1434733, 1.284401, 0.8256482, 0, 0.7137255, 1, 1, 0.1453972, -0.1405743, 2.067047, 0, 0.7058824, 1, 1, 0.1505534, 1.000584, 0.3374909, 0, 0.6980392, 1, 1, 0.1553943, 1.606678, -0.1973454, 0, 0.6941177, 1, 1, 0.1555308, 1.534589, -0.4468508, 0, 0.6862745, 1, 1, 0.157514, -0.3930363, 1.067681, 0, 0.682353, 1, 1, 0.1577242, -1.04385, 2.477037, 0, 0.6745098, 1, 1, 0.1591929, -1.042209, 4.179595, 0, 0.6705883, 1, 1, 0.1592634, -0.01794695, 0.5239562, 0, 0.6627451, 1, 1, 0.1626321, -0.6944522, 2.818452, 0, 0.6588235, 1, 1, 0.1637948, 0.683526, 0.1738712, 0, 0.6509804, 1, 1, 0.1692606, -1.623229, 3.39373, 0, 0.6470588, 1, 1, 0.1695346, 0.02166863, 2.934255, 0, 0.6392157, 1, 1, 0.1732082, 0.483463, 0.6355653, 0, 0.6352941, 1, 1, 0.177791, 0.5170066, 0.479668, 0, 0.627451, 1, 1, 0.1801034, -0.9591505, 2.383252, 0, 0.6235294, 1, 1, 0.1801629, -0.6107696, 3.230237, 0, 0.6156863, 1, 1, 0.1852231, 0.6284479, -0.6339731, 0, 0.6117647, 1, 1, 0.1902242, -0.4297794, 2.793803, 0, 0.6039216, 1, 1, 0.1907266, -0.32033, 3.76297, 0, 0.5960785, 1, 1, 0.1919266, -0.8611838, 3.966795, 0, 0.5921569, 1, 1, 0.193822, -0.0591459, 3.295355, 0, 0.5843138, 1, 1, 0.1941535, -0.2592263, 0.2484041, 0, 0.5803922, 1, 1, 0.1954952, -0.5276119, 2.336195, 0, 0.572549, 1, 1, 0.2012863, -0.1710793, 3.221431, 0, 0.5686275, 1, 1, 0.2023221, 1.102883, -0.5265679, 0, 0.5607843, 1, 1, 0.2034055, -1.700599, 2.876624, 0, 0.5568628, 1, 1, 0.2158019, 0.2736247, 1.743772, 0, 0.5490196, 1, 1, 0.2169895, -0.5041618, 5.013321, 0, 0.5450981, 1, 1, 0.2177119, -0.6159305, 3.277567, 0, 0.5372549, 1, 1, 0.218675, -1.230495, 3.968557, 0, 0.5333334, 1, 1, 0.2202629, 0.4221038, 0.624306, 0, 0.5254902, 1, 1, 0.2223106, -2.206882, 3.187871, 0, 0.5215687, 1, 1, 0.2223265, -1.33978, 2.219652, 0, 0.5137255, 1, 1, 0.224406, -1.517141, 3.829382, 0, 0.509804, 1, 1, 0.2250096, 1.762207, -0.7224423, 0, 0.5019608, 1, 1, 0.2250793, -0.4588478, 3.784597, 0, 0.4941176, 1, 1, 0.2294937, 0.7648838, 0.9944369, 0, 0.4901961, 1, 1, 0.2299726, 1.834857, 1.213723, 0, 0.4823529, 1, 1, 0.2304186, -1.059277, 1.350312, 0, 0.4784314, 1, 1, 0.23596, 0.785806, 0.316068, 0, 0.4705882, 1, 1, 0.2363023, -1.371746, 3.375312, 0, 0.4666667, 1, 1, 0.2390265, 0.9710178, 0.1680206, 0, 0.4588235, 1, 1, 0.2433903, 0.2973153, -0.06948679, 0, 0.454902, 1, 1, 0.246723, 1.431574, 2.528978, 0, 0.4470588, 1, 1, 0.2472955, -0.4450093, 3.077058, 0, 0.4431373, 1, 1, 0.2474768, -2.374934, 4.087659, 0, 0.4352941, 1, 1, 0.2539041, 1.200207, 1.135846, 0, 0.4313726, 1, 1, 0.2556354, 1.15777, 1.701482, 0, 0.4235294, 1, 1, 0.2587891, -2.012762, 3.532294, 0, 0.4196078, 1, 1, 0.2590513, -1.024555, 2.717942, 0, 0.4117647, 1, 1, 0.2708801, 1.705766, -0.6916218, 0, 0.4078431, 1, 1, 0.2720287, 0.2604697, 1.274953, 0, 0.4, 1, 1, 0.2735844, -0.1753267, 1.374869, 0, 0.3921569, 1, 1, 0.2783495, 1.028482, 0.5423169, 0, 0.3882353, 1, 1, 0.2889143, -0.1749045, 0.8810517, 0, 0.3803922, 1, 1, 0.2922624, -1.250808, 2.809256, 0, 0.3764706, 1, 1, 0.2925932, 0.8228614, 0.6353365, 0, 0.3686275, 1, 1, 0.2957238, -0.404874, 1.980992, 0, 0.3647059, 1, 1, 0.2980042, -1.482348, 5.516907, 0, 0.3568628, 1, 1, 0.3009081, -2.297354, 0.7265344, 0, 0.3529412, 1, 1, 0.3009254, 0.08145283, 2.607359, 0, 0.345098, 1, 1, 0.3033769, -0.384127, 2.572242, 0, 0.3411765, 1, 1, 0.304983, -0.2186525, 0.679316, 0, 0.3333333, 1, 1, 0.3052855, 0.9741449, -0.2625148, 0, 0.3294118, 1, 1, 0.3127327, -1.025426, 2.882926, 0, 0.3215686, 1, 1, 0.3176703, -0.07882375, 1.927839, 0, 0.3176471, 1, 1, 0.3187481, -1.325893, 2.864139, 0, 0.3098039, 1, 1, 0.3218347, 1.294701, -1.222539, 0, 0.3058824, 1, 1, 0.323179, 0.7736911, -0.02187358, 0, 0.2980392, 1, 1, 0.3253885, 1.40081, 2.243374, 0, 0.2901961, 1, 1, 0.3275485, -0.2586576, 2.640567, 0, 0.2862745, 1, 1, 0.329445, 0.4876393, 0.5938846, 0, 0.2784314, 1, 1, 0.3311284, -1.547809, 3.452212, 0, 0.2745098, 1, 1, 0.3320369, -1.276383, 2.752529, 0, 0.2666667, 1, 1, 0.3328503, 0.005311012, 0.0333871, 0, 0.2627451, 1, 1, 0.3345534, 1.030123, 0.06255801, 0, 0.254902, 1, 1, 0.3346735, 0.2208247, -0.8001022, 0, 0.2509804, 1, 1, 0.3347946, 0.5998743, -0.846743, 0, 0.2431373, 1, 1, 0.34233, 0.00392981, 1.51219, 0, 0.2392157, 1, 1, 0.3452324, -0.7420864, 3.301255, 0, 0.2313726, 1, 1, 0.3515667, -0.9175304, 4.636216, 0, 0.227451, 1, 1, 0.3515858, 1.640112, 1.083451, 0, 0.2196078, 1, 1, 0.3517861, 2.979283, -0.2774582, 0, 0.2156863, 1, 1, 0.3555622, 0.8504694, -1.744174, 0, 0.2078431, 1, 1, 0.3563891, 1.554428, 0.7173033, 0, 0.2039216, 1, 1, 0.356541, 0.4369247, 0.6721689, 0, 0.1960784, 1, 1, 0.3571474, -0.7442459, 4.242527, 0, 0.1882353, 1, 1, 0.3575293, 1.296494, -0.2136661, 0, 0.1843137, 1, 1, 0.3576463, 0.3173674, 0.1182116, 0, 0.1764706, 1, 1, 0.3595352, -0.3965782, 1.381501, 0, 0.172549, 1, 1, 0.3627877, 0.3882457, -0.1051226, 0, 0.1647059, 1, 1, 0.3651111, 0.6073661, 0.970709, 0, 0.1607843, 1, 1, 0.381482, 0.8667743, 0.6279191, 0, 0.1529412, 1, 1, 0.3838699, 0.5900399, -1.147243, 0, 0.1490196, 1, 1, 0.3854428, 1.569984, -1.00212, 0, 0.1411765, 1, 1, 0.3858536, -0.8395494, 3.344123, 0, 0.1372549, 1, 1, 0.3864355, 1.085766, -0.4540426, 0, 0.1294118, 1, 1, 0.3883703, -1.041851, 5.190643, 0, 0.1254902, 1, 1, 0.3931036, 0.3095049, 2.02274, 0, 0.1176471, 1, 1, 0.3958766, 0.1479329, 2.215528, 0, 0.1137255, 1, 1, 0.3972349, -0.9040866, 3.45391, 0, 0.1058824, 1, 1, 0.4004058, 0.7727761, -0.09298023, 0, 0.09803922, 1, 1, 0.4045087, -1.311967, 1.907251, 0, 0.09411765, 1, 1, 0.4064349, 1.747552, 1.644893, 0, 0.08627451, 1, 1, 0.4066172, 0.07660627, 2.018492, 0, 0.08235294, 1, 1, 0.4076965, -0.2039593, -0.01968462, 0, 0.07450981, 1, 1, 0.4113756, 0.1343802, 1.04248, 0, 0.07058824, 1, 1, 0.4114357, -0.4610381, 0.6285846, 0, 0.0627451, 1, 1, 0.4122894, 0.7616508, 0.4553833, 0, 0.05882353, 1, 1, 0.4128219, 0.4840653, 2.00495, 0, 0.05098039, 1, 1, 0.4148462, -1.203968, 3.310016, 0, 0.04705882, 1, 1, 0.4174056, -0.04028793, 2.987437, 0, 0.03921569, 1, 1, 0.4220011, 0.3823957, 1.477475, 0, 0.03529412, 1, 1, 0.427821, 1.334729, 0.8203014, 0, 0.02745098, 1, 1, 0.4280074, 0.787515, 1.510398, 0, 0.02352941, 1, 1, 0.4297377, 0.198971, -0.1662662, 0, 0.01568628, 1, 1, 0.4316362, 0.9586383, 1.378717, 0, 0.01176471, 1, 1, 0.4323781, -0.05905549, 3.958996, 0, 0.003921569, 1, 1, 0.4356667, -0.6507819, 3.038668, 0.003921569, 0, 1, 1, 0.4409439, 0.1480641, 1.116232, 0.007843138, 0, 1, 1, 0.4413747, -1.788845, 3.182379, 0.01568628, 0, 1, 1, 0.4425055, -0.06560653, 2.41249, 0.01960784, 0, 1, 1, 0.4457206, -0.3110181, 4.193334, 0.02745098, 0, 1, 1, 0.4482112, 1.189596, 2.539805, 0.03137255, 0, 1, 1, 0.4501901, 1.102422, -0.579107, 0.03921569, 0, 1, 1, 0.4554328, -1.380439, 2.520571, 0.04313726, 0, 1, 1, 0.4554994, -0.6831191, 2.168366, 0.05098039, 0, 1, 1, 0.4556159, -0.5228176, 1.928028, 0.05490196, 0, 1, 1, 0.4585668, -1.291698, 3.211627, 0.0627451, 0, 1, 1, 0.4637255, 2.066351, -0.004621895, 0.06666667, 0, 1, 1, 0.4642024, -0.3717629, 2.22708, 0.07450981, 0, 1, 1, 0.4726669, -0.4900505, 3.074284, 0.07843138, 0, 1, 1, 0.4727702, -0.4520026, 2.301636, 0.08627451, 0, 1, 1, 0.4770986, -0.6553305, 3.675315, 0.09019608, 0, 1, 1, 0.4792413, 1.392733, -0.6859122, 0.09803922, 0, 1, 1, 0.4797347, -1.279721, 2.438782, 0.1058824, 0, 1, 1, 0.4877299, -1.358623, 1.953613, 0.1098039, 0, 1, 1, 0.4890317, 0.1605615, 1.987459, 0.1176471, 0, 1, 1, 0.4942115, 0.3698183, 1.229392, 0.1215686, 0, 1, 1, 0.4975642, 0.2677683, 2.030649, 0.1294118, 0, 1, 1, 0.5006189, -1.050668, 2.356169, 0.1333333, 0, 1, 1, 0.5010915, -0.7245467, 2.142669, 0.1411765, 0, 1, 1, 0.5061356, -0.1137958, 0.9023812, 0.145098, 0, 1, 1, 0.5184531, -0.6402063, 2.307739, 0.1529412, 0, 1, 1, 0.5194227, 2.129536, -0.6499588, 0.1568628, 0, 1, 1, 0.5264481, -0.6664268, 5.596352, 0.1647059, 0, 1, 1, 0.5286904, -0.06832469, 1.262916, 0.1686275, 0, 1, 1, 0.5393766, 0.7968581, -0.154563, 0.1764706, 0, 1, 1, 0.5507291, 0.5640343, 0.9869999, 0.1803922, 0, 1, 1, 0.5565591, -1.557304, 1.833256, 0.1882353, 0, 1, 1, 0.5574917, -1.063825, 3.144217, 0.1921569, 0, 1, 1, 0.5621306, 0.3849583, 0.6376474, 0.2, 0, 1, 1, 0.571119, -0.6961628, 3.412139, 0.2078431, 0, 1, 1, 0.5730755, 0.6182578, 0.6651175, 0.2117647, 0, 1, 1, 0.5750616, -2.224525, 2.584539, 0.2196078, 0, 1, 1, 0.5782176, 0.6546968, 0.4088605, 0.2235294, 0, 1, 1, 0.579757, 0.3392417, -0.4557294, 0.2313726, 0, 1, 1, 0.5801225, -0.1847407, 2.682243, 0.2352941, 0, 1, 1, 0.5811638, 1.117191, 0.3587458, 0.2431373, 0, 1, 1, 0.5862505, 0.5011646, 1.798699, 0.2470588, 0, 1, 1, 0.5862866, 0.04587646, 2.734573, 0.254902, 0, 1, 1, 0.5885993, -1.09113, 2.813269, 0.2588235, 0, 1, 1, 0.5890039, -0.8178984, 3.087412, 0.2666667, 0, 1, 1, 0.5897626, 0.3990802, 0.5415362, 0.2705882, 0, 1, 1, 0.5926197, -0.3881145, 4.160818, 0.2784314, 0, 1, 1, 0.5940107, 1.085714, 2.40658, 0.282353, 0, 1, 1, 0.5993012, 0.2691254, 0.2309744, 0.2901961, 0, 1, 1, 0.6016318, 0.5772437, 0.3614973, 0.2941177, 0, 1, 1, 0.6019553, 1.341618, 0.2280553, 0.3019608, 0, 1, 1, 0.602414, -1.015755, 2.511844, 0.3098039, 0, 1, 1, 0.6046087, -0.1490694, 0.8177056, 0.3137255, 0, 1, 1, 0.6067082, -0.5848258, 1.648625, 0.3215686, 0, 1, 1, 0.6079947, 0.5492386, 3.521084, 0.3254902, 0, 1, 1, 0.6156392, 1.715453, 2.116924, 0.3333333, 0, 1, 1, 0.6181099, -0.63361, 1.88733, 0.3372549, 0, 1, 1, 0.6205844, -1.069749, 3.429646, 0.345098, 0, 1, 1, 0.6214046, 0.7131546, 0.5887767, 0.3490196, 0, 1, 1, 0.6223137, 0.4277749, -0.3539971, 0.3568628, 0, 1, 1, 0.6233839, -0.2606629, 1.022743, 0.3607843, 0, 1, 1, 0.6248382, -0.176366, -0.4015134, 0.3686275, 0, 1, 1, 0.6264251, 0.2964673, 1.458446, 0.372549, 0, 1, 1, 0.6362135, -0.6324723, 1.612159, 0.3803922, 0, 1, 1, 0.6368054, -0.685777, 4.198045, 0.3843137, 0, 1, 1, 0.6391978, -0.1577649, 3.100101, 0.3921569, 0, 1, 1, 0.6399905, -0.6507239, 2.2789, 0.3960784, 0, 1, 1, 0.6484743, -0.1298317, 2.040753, 0.4039216, 0, 1, 1, 0.6501718, 0.6329297, 0.3199081, 0.4117647, 0, 1, 1, 0.6520759, -0.121308, -0.2088676, 0.4156863, 0, 1, 1, 0.6593961, 0.5839968, 0.7605543, 0.4235294, 0, 1, 1, 0.6601436, 1.470114, 0.9074391, 0.427451, 0, 1, 1, 0.6626678, -0.5177399, 2.982939, 0.4352941, 0, 1, 1, 0.6629011, 0.7062531, 1.961382, 0.4392157, 0, 1, 1, 0.6646577, 1.610101, -1.422009, 0.4470588, 0, 1, 1, 0.6648386, 1.36587, -0.5020999, 0.4509804, 0, 1, 1, 0.6654359, -0.358334, 2.848156, 0.4588235, 0, 1, 1, 0.6728315, 0.8589706, 2.36558, 0.4627451, 0, 1, 1, 0.677031, -0.8066456, 2.193635, 0.4705882, 0, 1, 1, 0.6855178, -0.7481725, 2.199064, 0.4745098, 0, 1, 1, 0.6898991, 0.1519909, 0.6148349, 0.4823529, 0, 1, 1, 0.6982337, 0.9105275, 0.3194984, 0.4862745, 0, 1, 1, 0.6991825, -0.1282343, 0.3833972, 0.4941176, 0, 1, 1, 0.7084576, -0.6077819, 1.964345, 0.5019608, 0, 1, 1, 0.7088754, -0.01251363, 2.431157, 0.5058824, 0, 1, 1, 0.7098451, -0.397633, 2.057463, 0.5137255, 0, 1, 1, 0.711823, -0.1985883, 2.539273, 0.5176471, 0, 1, 1, 0.7134149, 0.5856132, 1.206811, 0.5254902, 0, 1, 1, 0.7140071, -1.174992, 0.3784821, 0.5294118, 0, 1, 1, 0.7142087, -1.025126, 3.03617, 0.5372549, 0, 1, 1, 0.7165619, -0.1494736, 1.083271, 0.5411765, 0, 1, 1, 0.7190713, 0.8631954, 0.6580632, 0.5490196, 0, 1, 1, 0.7224059, 0.7754694, -1.215356, 0.5529412, 0, 1, 1, 0.7254566, -1.464727, 2.682121, 0.5607843, 0, 1, 1, 0.7333775, -0.939008, 1.169323, 0.5647059, 0, 1, 1, 0.735426, -1.421313, -0.1477972, 0.572549, 0, 1, 1, 0.7363474, -0.2684667, 1.042117, 0.5764706, 0, 1, 1, 0.7364636, -0.7006432, 2.065723, 0.5843138, 0, 1, 1, 0.7386662, 0.8120462, 0.44569, 0.5882353, 0, 1, 1, 0.7412976, 1.620351, 1.267774, 0.5960785, 0, 1, 1, 0.7417052, -0.06442431, 1.708996, 0.6039216, 0, 1, 1, 0.7424252, 0.06484162, 3.38499, 0.6078432, 0, 1, 1, 0.7427641, 0.6473124, 2.831218, 0.6156863, 0, 1, 1, 0.7496001, 0.1667722, 2.788516, 0.6196079, 0, 1, 1, 0.7531925, 0.2617265, 1.689847, 0.627451, 0, 1, 1, 0.7565337, 1.075747, -0.2775296, 0.6313726, 0, 1, 1, 0.7575761, 1.678655, 0.01695569, 0.6392157, 0, 1, 1, 0.757981, -0.8148386, 2.750436, 0.6431373, 0, 1, 1, 0.7645569, -0.1032875, 1.545105, 0.6509804, 0, 1, 1, 0.7646669, 1.347859, 1.800769, 0.654902, 0, 1, 1, 0.7697389, -0.9157403, 2.18872, 0.6627451, 0, 1, 1, 0.7797895, -0.7635844, 2.488471, 0.6666667, 0, 1, 1, 0.7860193, 0.6516501, -1.359479, 0.6745098, 0, 1, 1, 0.7876377, -0.2626083, 2.685816, 0.6784314, 0, 1, 1, 0.7892315, -2.022488, 2.330196, 0.6862745, 0, 1, 1, 0.7934678, 0.2381214, 0.1377987, 0.6901961, 0, 1, 1, 0.7958398, -0.3020465, 0.8647391, 0.6980392, 0, 1, 1, 0.7983878, -1.027663, 2.487582, 0.7058824, 0, 1, 1, 0.7991637, -0.09340861, 2.507359, 0.7098039, 0, 1, 1, 0.8003608, -0.8744119, 0.7357688, 0.7176471, 0, 1, 1, 0.8097668, -0.3826755, 3.183741, 0.7215686, 0, 1, 1, 0.8101232, -0.9759485, 3.745287, 0.7294118, 0, 1, 1, 0.814422, -1.231541, 3.328119, 0.7333333, 0, 1, 1, 0.8159904, 1.418628, 1.648757, 0.7411765, 0, 1, 1, 0.8163225, 1.528723, 0.7070161, 0.7450981, 0, 1, 1, 0.8282247, -0.760502, 2.500838, 0.7529412, 0, 1, 1, 0.84055, -0.255225, 0.4348913, 0.7568628, 0, 1, 1, 0.8471673, 0.005031932, 3.470464, 0.7647059, 0, 1, 1, 0.8485202, 1.854793, -0.01015981, 0.7686275, 0, 1, 1, 0.8496999, 1.007073, -0.1626783, 0.7764706, 0, 1, 1, 0.8556046, 0.8079992, 2.720686, 0.7803922, 0, 1, 1, 0.8626436, 0.3880748, 1.429694, 0.7882353, 0, 1, 1, 0.8648326, -0.509873, 1.136418, 0.7921569, 0, 1, 1, 0.8649521, -0.802292, 2.544398, 0.8, 0, 1, 1, 0.8703353, 2.179704, 0.6605577, 0.8078431, 0, 1, 1, 0.8751601, -0.3775094, 1.807552, 0.8117647, 0, 1, 1, 0.8771368, 0.3266158, 2.382301, 0.8196079, 0, 1, 1, 0.8776261, 0.1824818, 2.029331, 0.8235294, 0, 1, 1, 0.8789911, -0.7919573, 4.169865, 0.8313726, 0, 1, 1, 0.8816187, 0.3027847, 1.204155, 0.8352941, 0, 1, 1, 0.8837321, -1.376753, 3.141988, 0.8431373, 0, 1, 1, 0.8904416, 0.1752, 0.7157746, 0.8470588, 0, 1, 1, 0.8912826, -1.258734, 1.843633, 0.854902, 0, 1, 1, 0.8924621, -1.788919, 2.051347, 0.8588235, 0, 1, 1, 0.8948843, 0.07513086, 0.4591779, 0.8666667, 0, 1, 1, 0.9000522, -0.11395, -0.2955461, 0.8705882, 0, 1, 1, 0.904426, -0.7497355, 0.3816854, 0.8784314, 0, 1, 1, 0.9114405, -0.537724, 1.826482, 0.8823529, 0, 1, 1, 0.9119896, 3.111706, 0.9923554, 0.8901961, 0, 1, 1, 0.9170523, -0.296596, 3.103548, 0.8941177, 0, 1, 1, 0.9172096, 0.9989926, -0.6502731, 0.9019608, 0, 1, 1, 0.9208454, -1.317182, 3.460612, 0.9098039, 0, 1, 1, 0.9241608, -0.05279292, 3.684329, 0.9137255, 0, 1, 1, 0.9288864, -0.5250975, 0.5513981, 0.9215686, 0, 1, 1, 0.9391463, 1.410991, -0.417493, 0.9254902, 0, 1, 1, 0.9425129, -0.4207627, 4.162292, 0.9333333, 0, 1, 1, 0.9452402, 0.7923401, -0.5186404, 0.9372549, 0, 1, 1, 0.9477111, -0.8155935, 2.834039, 0.945098, 0, 1, 1, 0.9488044, -0.537768, 1.976828, 0.9490196, 0, 1, 1, 0.9495524, 1.215656, -0.3250437, 0.9568627, 0, 1, 1, 0.9496131, 0.7329666, 2.783293, 0.9607843, 0, 1, 1, 0.9531842, 0.7921531, 1.743576, 0.9686275, 0, 1, 1, 0.9565371, 0.4107123, 0.07543498, 0.972549, 0, 1, 1, 0.9614781, 0.1086503, 3.053196, 0.9803922, 0, 1, 1, 0.969575, -0.1983749, 0.7774493, 0.9843137, 0, 1, 1, 0.9709104, -1.375586, 1.936371, 0.9921569, 0, 1, 1, 0.9825982, 0.5091119, 0.6256247, 0.9960784, 0, 1, 1, 0.9851177, 1.724101, 0.8073437, 1, 0, 0.9960784, 1, 0.9861733, 0.2678856, 1.783419, 1, 0, 0.9882353, 1, 0.9920127, -2.277959, 2.260442, 1, 0, 0.9843137, 1, 0.9944171, -1.734813, 3.685831, 1, 0, 0.9764706, 1, 0.9986115, -0.8684049, 1.771273, 1, 0, 0.972549, 1, 1.003942, 1.320031, 0.6014292, 1, 0, 0.9647059, 1, 1.004462, 0.1479974, 1.637888, 1, 0, 0.9607843, 1, 1.008292, 0.3981189, 1.369788, 1, 0, 0.9529412, 1, 1.010434, -1.244562, 2.770515, 1, 0, 0.9490196, 1, 1.012842, 1.280877, 2.361857, 1, 0, 0.9411765, 1, 1.0157, -0.7134362, 2.611521, 1, 0, 0.9372549, 1, 1.021212, 0.004950232, 2.175097, 1, 0, 0.9294118, 1, 1.02393, 1.320682, 0.2442891, 1, 0, 0.9254902, 1, 1.025423, 0.2709677, 0.9567212, 1, 0, 0.9176471, 1, 1.030094, -0.3050508, 2.717938, 1, 0, 0.9137255, 1, 1.034156, -0.08372598, 2.035618, 1, 0, 0.9058824, 1, 1.039411, 1.159853, 1.607487, 1, 0, 0.9019608, 1, 1.041379, 0.238862, 1.554415, 1, 0, 0.8941177, 1, 1.042011, 0.8950515, 0.3822294, 1, 0, 0.8862745, 1, 1.043655, -1.148504, 1.552666, 1, 0, 0.8823529, 1, 1.049426, -2.033597, 2.851365, 1, 0, 0.8745098, 1, 1.05016, 1.344979, 2.49492, 1, 0, 0.8705882, 1, 1.074829, 0.7758042, 0.4319749, 1, 0, 0.8627451, 1, 1.07576, -1.378636, 1.869136, 1, 0, 0.8588235, 1, 1.0842, -1.343821, 1.254764, 1, 0, 0.8509804, 1, 1.086258, -0.04525762, 1.772833, 1, 0, 0.8470588, 1, 1.090559, 1.631509, -0.9632675, 1, 0, 0.8392157, 1, 1.107696, -0.7462182, 0.1851986, 1, 0, 0.8352941, 1, 1.115089, 0.238266, 0.7295182, 1, 0, 0.827451, 1, 1.121682, 0.09040037, 2.670251, 1, 0, 0.8235294, 1, 1.128038, 0.274038, 0.3015952, 1, 0, 0.8156863, 1, 1.138762, -0.6518133, 3.96434, 1, 0, 0.8117647, 1, 1.140281, -0.8161467, 3.713209, 1, 0, 0.8039216, 1, 1.14402, -0.7202312, 2.442792, 1, 0, 0.7960784, 1, 1.145479, 1.339063, -0.7972751, 1, 0, 0.7921569, 1, 1.150406, -2.241918, 4.291909, 1, 0, 0.7843137, 1, 1.153135, -1.068168, 1.292936, 1, 0, 0.7803922, 1, 1.154143, -1.056253, 2.602782, 1, 0, 0.772549, 1, 1.156095, -1.258375, 2.651707, 1, 0, 0.7686275, 1, 1.156451, 0.02285489, 3.340601, 1, 0, 0.7607843, 1, 1.159517, 0.3768272, 1.785618, 1, 0, 0.7568628, 1, 1.16177, 1.007673, 1.334835, 1, 0, 0.7490196, 1, 1.167476, 0.2249296, 2.818726, 1, 0, 0.7450981, 1, 1.18249, 1.540369, -0.5997701, 1, 0, 0.7372549, 1, 1.183124, 0.1665829, 0.04667661, 1, 0, 0.7333333, 1, 1.196692, 1.879082, 1.692012, 1, 0, 0.7254902, 1, 1.203768, 0.6946877, 0.03095528, 1, 0, 0.7215686, 1, 1.206036, -1.346244, 3.162327, 1, 0, 0.7137255, 1, 1.211793, 0.09801733, 1.298434, 1, 0, 0.7098039, 1, 1.213776, 0.6816937, 1.599954, 1, 0, 0.7019608, 1, 1.218591, -0.8236156, 1.759628, 1, 0, 0.6941177, 1, 1.221664, -2.260857, 0.7278852, 1, 0, 0.6901961, 1, 1.223676, -2.069903, 2.37786, 1, 0, 0.682353, 1, 1.223726, -1.125181, 3.110306, 1, 0, 0.6784314, 1, 1.22526, 0.30419, 1.206739, 1, 0, 0.6705883, 1, 1.232394, 0.2568232, 2.06575, 1, 0, 0.6666667, 1, 1.238546, -1.193533, -0.46142, 1, 0, 0.6588235, 1, 1.244653, -1.284162, 2.969184, 1, 0, 0.654902, 1, 1.247783, 0.07209167, 1.991375, 1, 0, 0.6470588, 1, 1.250813, -2.081697, 4.52764, 1, 0, 0.6431373, 1, 1.264144, -0.9318942, 1.413892, 1, 0, 0.6352941, 1, 1.273708, -0.8873606, 1.670667, 1, 0, 0.6313726, 1, 1.274378, 0.3752847, 1.723219, 1, 0, 0.6235294, 1, 1.274813, 0.2047893, -0.7351786, 1, 0, 0.6196079, 1, 1.275242, 1.160195, 1.127626, 1, 0, 0.6117647, 1, 1.278939, 1.366154, 1.235716, 1, 0, 0.6078432, 1, 1.279161, -1.419408, 2.912894, 1, 0, 0.6, 1, 1.283321, 2.007731, 0.2889565, 1, 0, 0.5921569, 1, 1.284855, -0.9014806, 2.891276, 1, 0, 0.5882353, 1, 1.289999, 1.455491, 0.6589308, 1, 0, 0.5803922, 1, 1.29, -0.2570791, 1.220116, 1, 0, 0.5764706, 1, 1.295355, -1.113645, 1.399655, 1, 0, 0.5686275, 1, 1.298994, -0.3598979, -0.2847272, 1, 0, 0.5647059, 1, 1.301311, 0.259072, 2.446207, 1, 0, 0.5568628, 1, 1.30312, 0.9808727, 1.658909, 1, 0, 0.5529412, 1, 1.303171, 0.4828959, 1.066357, 1, 0, 0.5450981, 1, 1.310836, 1.683329, 1.581346, 1, 0, 0.5411765, 1, 1.31108, -0.1326544, 2.10022, 1, 0, 0.5333334, 1, 1.320402, 0.733004, 0.1080048, 1, 0, 0.5294118, 1, 1.323178, 0.5275669, 1.170804, 1, 0, 0.5215687, 1, 1.324878, -0.1803564, 0.7436465, 1, 0, 0.5176471, 1, 1.333908, 0.6599739, 2.942089, 1, 0, 0.509804, 1, 1.350202, -0.2033982, -0.0237869, 1, 0, 0.5058824, 1, 1.36499, -1.699921, 2.393694, 1, 0, 0.4980392, 1, 1.371383, -1.310201, 2.726379, 1, 0, 0.4901961, 1, 1.371869, -1.20406, 1.439968, 1, 0, 0.4862745, 1, 1.376299, -0.2354478, 1.060836, 1, 0, 0.4784314, 1, 1.378306, 0.1821795, 0.3755883, 1, 0, 0.4745098, 1, 1.382357, 0.1232543, 1.243495, 1, 0, 0.4666667, 1, 1.383046, 0.0484792, 0.1329452, 1, 0, 0.4627451, 1, 1.388989, 1.016537, 1.290661, 1, 0, 0.454902, 1, 1.391333, 0.3463922, -0.5584871, 1, 0, 0.4509804, 1, 1.395942, 0.4901505, 1.587486, 1, 0, 0.4431373, 1, 1.396161, -0.1464379, 0.1594832, 1, 0, 0.4392157, 1, 1.415647, -0.2936496, 1.712578, 1, 0, 0.4313726, 1, 1.42597, 2.062106, -0.3985394, 1, 0, 0.427451, 1, 1.439309, 0.3376613, 0.4129198, 1, 0, 0.4196078, 1, 1.483252, 0.5293368, 1.361901, 1, 0, 0.4156863, 1, 1.511177, -0.2075969, -0.5788451, 1, 0, 0.4078431, 1, 1.520701, -0.5123276, 4.341491, 1, 0, 0.4039216, 1, 1.528113, -1.40169, 3.261873, 1, 0, 0.3960784, 1, 1.543583, 0.7053776, 0.799771, 1, 0, 0.3882353, 1, 1.558302, -0.9258178, 1.765789, 1, 0, 0.3843137, 1, 1.560893, -0.4324594, 1.752947, 1, 0, 0.3764706, 1, 1.563044, -0.654671, 2.93827, 1, 0, 0.372549, 1, 1.567935, 1.055689, 1.748151, 1, 0, 0.3647059, 1, 1.57761, -0.4912733, 0.931029, 1, 0, 0.3607843, 1, 1.578859, -0.1420315, 1.189026, 1, 0, 0.3529412, 1, 1.587076, 0.5836068, 0.9374604, 1, 0, 0.3490196, 1, 1.603437, -0.4698967, 3.016259, 1, 0, 0.3411765, 1, 1.644859, -2.123158, 3.511125, 1, 0, 0.3372549, 1, 1.646842, 0.7759938, 0.7168282, 1, 0, 0.3294118, 1, 1.655221, 0.2530193, 2.395925, 1, 0, 0.3254902, 1, 1.658052, -0.8621539, 4.201818, 1, 0, 0.3176471, 1, 1.664031, -0.04646412, 1.524129, 1, 0, 0.3137255, 1, 1.670974, -0.8842275, 3.797628, 1, 0, 0.3058824, 1, 1.67499, -0.7295113, 1.62067, 1, 0, 0.2980392, 1, 1.67781, 1.172041, 1.425097, 1, 0, 0.2941177, 1, 1.691136, 1.198829, 1.793632, 1, 0, 0.2862745, 1, 1.696607, -1.432879, 4.748689, 1, 0, 0.282353, 1, 1.70827, 0.6867153, -0.7699923, 1, 0, 0.2745098, 1, 1.724047, -0.4631184, 2.116606, 1, 0, 0.2705882, 1, 1.725773, -0.8481862, 2.182085, 1, 0, 0.2627451, 1, 1.726691, -0.2399298, 4.476498, 1, 0, 0.2588235, 1, 1.739514, 0.7574553, 1.219209, 1, 0, 0.2509804, 1, 1.739863, 1.361652, -0.4841153, 1, 0, 0.2470588, 1, 1.749478, -1.520443, 3.291497, 1, 0, 0.2392157, 1, 1.758009, -0.02998418, 1.836874, 1, 0, 0.2352941, 1, 1.767492, -0.0585458, -0.5947905, 1, 0, 0.227451, 1, 1.767566, -0.628755, 3.174954, 1, 0, 0.2235294, 1, 1.776776, -1.111207, 2.548423, 1, 0, 0.2156863, 1, 1.791137, 1.754794, 0.4846855, 1, 0, 0.2117647, 1, 1.792421, 0.09873727, 1.421054, 1, 0, 0.2039216, 1, 1.794126, 1.076757, 0.4224645, 1, 0, 0.1960784, 1, 1.830469, 0.396431, 2.138397, 1, 0, 0.1921569, 1, 1.852288, -0.1684952, 2.986723, 1, 0, 0.1843137, 1, 1.855095, 0.3274216, 0.5856889, 1, 0, 0.1803922, 1, 1.869216, 0.2535161, -0.02854602, 1, 0, 0.172549, 1, 1.869502, -0.2578579, 2.322539, 1, 0, 0.1686275, 1, 1.875387, -0.3261358, 0.6053901, 1, 0, 0.1607843, 1, 1.881627, -0.6010503, 2.425729, 1, 0, 0.1568628, 1, 1.89154, 0.8369356, 1.69458, 1, 0, 0.1490196, 1, 1.899545, -1.707219, 1.390472, 1, 0, 0.145098, 1, 1.905826, 2.476572, 0.081252, 1, 0, 0.1372549, 1, 1.940293, -0.3187639, 0.8999171, 1, 0, 0.1333333, 1, 1.940864, -1.391854, 3.455104, 1, 0, 0.1254902, 1, 1.947695, 0.339602, 3.759177, 1, 0, 0.1215686, 1, 1.955725, -1.176842, 2.35386, 1, 0, 0.1137255, 1, 1.982898, 1.047807, 0.7844298, 1, 0, 0.1098039, 1, 1.987527, -0.7509121, 3.545171, 1, 0, 0.1019608, 1, 2.033583, -1.671298, 2.425543, 1, 0, 0.09411765, 1, 2.038008, -0.8607879, 3.384688, 1, 0, 0.09019608, 1, 2.173916, 0.5844948, 1.174356, 1, 0, 0.08235294, 1, 2.207066, 0.251929, -0.2833448, 1, 0, 0.07843138, 1, 2.237061, -0.8840861, 2.832126, 1, 0, 0.07058824, 1, 2.26224, 0.5699599, 0.4517338, 1, 0, 0.06666667, 1, 2.266573, -1.132835, 2.681299, 1, 0, 0.05882353, 1, 2.342492, -0.05236486, 1.440976, 1, 0, 0.05490196, 1, 2.344747, 1.134032, 0.5391996, 1, 0, 0.04705882, 1, 2.375073, -0.6507841, 2.311028, 1, 0, 0.04313726, 1, 2.390301, 1.690016, 2.165089, 1, 0, 0.03529412, 1, 2.427741, 1.8221, 0.6546539, 1, 0, 0.03137255, 1, 2.620258, -0.4330123, 3.546283, 1, 0, 0.02352941, 1, 2.649158, -0.1035898, 1.911503, 1, 0, 0.01960784, 1, 2.929907, -0.8692203, 0.8631613, 1, 0, 0.01176471, 1, 3.40647, -0.8143915, 2.609863, 1, 0, 0.007843138, 1 ]); var buf6 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf6); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var mvMatLoc6 = gl.getUniformLocation(prog6,"mvMatrix"); var prMatLoc6 = gl.getUniformLocation(prog6,"prMatrix"); // ****** text object 8 ****** var prog8 = gl.createProgram(); gl.attachShader(prog8, getShader( gl, "testglvshader8" )); gl.attachShader(prog8, getShader( gl, "testglfshader8" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog8, 0, "aPos"); gl.bindAttribLocation(prog8, 1, "aCol"); gl.linkProgram(prog8); var texts = [ "x" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX8 = texinfo.canvasX; var canvasY8 = texinfo.canvasY; var ofsLoc8 = gl.getAttribLocation(prog8, "aOfs"); var texture8 = gl.createTexture(); var texLoc8 = gl.getAttribLocation(prog8, "aTexcoord"); var sampler8 = gl.getUniformLocation(prog8,"uSampler"); handleLoadedTexture(texture8, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ 0.227199, -4.44276, -8.006407, 0, -0.5, 0.5, 0.5, 0.227199, -4.44276, -8.006407, 1, -0.5, 0.5, 0.5, 0.227199, -4.44276, -8.006407, 1, 1.5, 0.5, 0.5, 0.227199, -4.44276, -8.006407, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<1; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3 ]); var buf8 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf8); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf8 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf8); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc8 = gl.getUniformLocation(prog8,"mvMatrix"); var prMatLoc8 = gl.getUniformLocation(prog8,"prMatrix"); // ****** text object 9 ****** var prog9 = gl.createProgram(); gl.attachShader(prog9, getShader( gl, "testglvshader9" )); gl.attachShader(prog9, getShader( gl, "testglfshader9" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog9, 0, "aPos"); gl.bindAttribLocation(prog9, 1, "aCol"); gl.linkProgram(prog9); var texts = [ "y" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX9 = texinfo.canvasX; var canvasY9 = texinfo.canvasY; var ofsLoc9 = gl.getAttribLocation(prog9, "aOfs"); var texture9 = gl.createTexture(); var texLoc9 = gl.getAttribLocation(prog9, "aTexcoord"); var sampler9 = gl.getUniformLocation(prog9,"uSampler"); handleLoadedTexture(texture9, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ -4.029845, -0.1180786, -8.006407, 0, -0.5, 0.5, 0.5, -4.029845, -0.1180786, -8.006407, 1, -0.5, 0.5, 0.5, -4.029845, -0.1180786, -8.006407, 1, 1.5, 0.5, 0.5, -4.029845, -0.1180786, -8.006407, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<1; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3 ]); var buf9 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf9); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf9 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf9); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc9 = gl.getUniformLocation(prog9,"mvMatrix"); var prMatLoc9 = gl.getUniformLocation(prog9,"prMatrix"); // ****** text object 10 ****** var prog10 = gl.createProgram(); gl.attachShader(prog10, getShader( gl, "testglvshader10" )); gl.attachShader(prog10, getShader( gl, "testglfshader10" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog10, 0, "aPos"); gl.bindAttribLocation(prog10, 1, "aCol"); gl.linkProgram(prog10); var texts = [ "z" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX10 = texinfo.canvasX; var canvasY10 = texinfo.canvasY; var ofsLoc10 = gl.getAttribLocation(prog10, "aOfs"); var texture10 = gl.createTexture(); var texLoc10 = gl.getAttribLocation(prog10, "aTexcoord"); var sampler10 = gl.getUniformLocation(prog10,"uSampler"); handleLoadedTexture(texture10, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ -4.029845, -4.44276, -0.2192783, 0, -0.5, 0.5, 0.5, -4.029845, -4.44276, -0.2192783, 1, -0.5, 0.5, 0.5, -4.029845, -4.44276, -0.2192783, 1, 1.5, 0.5, 0.5, -4.029845, -4.44276, -0.2192783, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<1; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3 ]); var buf10 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf10); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf10 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf10); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc10 = gl.getUniformLocation(prog10,"mvMatrix"); var prMatLoc10 = gl.getUniformLocation(prog10,"prMatrix"); // ****** lines object 11 ****** var prog11 = gl.createProgram(); gl.attachShader(prog11, getShader( gl, "testglvshader11" )); gl.attachShader(prog11, getShader( gl, "testglfshader11" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog11, 0, "aPos"); gl.bindAttribLocation(prog11, 1, "aCol"); gl.linkProgram(prog11); var v=new Float32Array([ -2, -3.444757, -6.209377, 3, -3.444757, -6.209377, -2, -3.444757, -6.209377, -2, -3.61109, -6.508882, -1, -3.444757, -6.209377, -1, -3.61109, -6.508882, 0, -3.444757, -6.209377, 0, -3.61109, -6.508882, 1, -3.444757, -6.209377, 1, -3.61109, -6.508882, 2, -3.444757, -6.209377, 2, -3.61109, -6.508882, 3, -3.444757, -6.209377, 3, -3.61109, -6.508882 ]); var buf11 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf11); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var mvMatLoc11 = gl.getUniformLocation(prog11,"mvMatrix"); var prMatLoc11 = gl.getUniformLocation(prog11,"prMatrix"); // ****** text object 12 ****** var prog12 = gl.createProgram(); gl.attachShader(prog12, getShader( gl, "testglvshader12" )); gl.attachShader(prog12, getShader( gl, "testglfshader12" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog12, 0, "aPos"); gl.bindAttribLocation(prog12, 1, "aCol"); gl.linkProgram(prog12); var texts = [ "-2", "-1", "0", "1", "2", "3" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX12 = texinfo.canvasX; var canvasY12 = texinfo.canvasY; var ofsLoc12 = gl.getAttribLocation(prog12, "aOfs"); var texture12 = gl.createTexture(); var texLoc12 = gl.getAttribLocation(prog12, "aTexcoord"); var sampler12 = gl.getUniformLocation(prog12,"uSampler"); handleLoadedTexture(texture12, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ -2, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, -2, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, -2, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, -2, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5, -1, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, -1, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, -1, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, -1, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5, 0, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, 0, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, 0, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, 0, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5, 1, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, 1, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, 1, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, 1, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5, 2, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, 2, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, 2, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, 2, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5, 3, -3.943758, -7.107892, 0, -0.5, 0.5, 0.5, 3, -3.943758, -7.107892, 1, -0.5, 0.5, 0.5, 3, -3.943758, -7.107892, 1, 1.5, 0.5, 0.5, 3, -3.943758, -7.107892, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<6; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23 ]); var buf12 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf12); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf12 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf12); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc12 = gl.getUniformLocation(prog12,"mvMatrix"); var prMatLoc12 = gl.getUniformLocation(prog12,"prMatrix"); // ****** lines object 13 ****** var prog13 = gl.createProgram(); gl.attachShader(prog13, getShader( gl, "testglvshader13" )); gl.attachShader(prog13, getShader( gl, "testglfshader13" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog13, 0, "aPos"); gl.bindAttribLocation(prog13, 1, "aCol"); gl.linkProgram(prog13); var v=new Float32Array([ -3.04745, -3, -6.209377, -3.04745, 3, -6.209377, -3.04745, -3, -6.209377, -3.211183, -3, -6.508882, -3.04745, -2, -6.209377, -3.211183, -2, -6.508882, -3.04745, -1, -6.209377, -3.211183, -1, -6.508882, -3.04745, 0, -6.209377, -3.211183, 0, -6.508882, -3.04745, 1, -6.209377, -3.211183, 1, -6.508882, -3.04745, 2, -6.209377, -3.211183, 2, -6.508882, -3.04745, 3, -6.209377, -3.211183, 3, -6.508882 ]); var buf13 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf13); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var mvMatLoc13 = gl.getUniformLocation(prog13,"mvMatrix"); var prMatLoc13 = gl.getUniformLocation(prog13,"prMatrix"); // ****** text object 14 ****** var prog14 = gl.createProgram(); gl.attachShader(prog14, getShader( gl, "testglvshader14" )); gl.attachShader(prog14, getShader( gl, "testglfshader14" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog14, 0, "aPos"); gl.bindAttribLocation(prog14, 1, "aCol"); gl.linkProgram(prog14); var texts = [ "-3", "-2", "-1", "0", "1", "2", "3" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX14 = texinfo.canvasX; var canvasY14 = texinfo.canvasY; var ofsLoc14 = gl.getAttribLocation(prog14, "aOfs"); var texture14 = gl.createTexture(); var texLoc14 = gl.getAttribLocation(prog14, "aTexcoord"); var sampler14 = gl.getUniformLocation(prog14,"uSampler"); handleLoadedTexture(texture14, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ -3.538648, -3, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, -3, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, -3, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, -3, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, -2, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, -2, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, -2, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, -2, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, -1, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, -1, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, -1, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, -1, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, 0, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, 0, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, 0, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, 0, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, 1, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, 1, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, 1, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, 1, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, 2, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, 2, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, 2, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, 2, -7.107892, 0, 1.5, 0.5, 0.5, -3.538648, 3, -7.107892, 0, -0.5, 0.5, 0.5, -3.538648, 3, -7.107892, 1, -0.5, 0.5, 0.5, -3.538648, 3, -7.107892, 1, 1.5, 0.5, 0.5, -3.538648, 3, -7.107892, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<7; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23, 24, 25, 26, 24, 26, 27 ]); var buf14 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf14); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf14 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf14); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc14 = gl.getUniformLocation(prog14,"mvMatrix"); var prMatLoc14 = gl.getUniformLocation(prog14,"prMatrix"); // ****** lines object 15 ****** var prog15 = gl.createProgram(); gl.attachShader(prog15, getShader( gl, "testglvshader15" )); gl.attachShader(prog15, getShader( gl, "testglfshader15" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog15, 0, "aPos"); gl.bindAttribLocation(prog15, 1, "aCol"); gl.linkProgram(prog15); var v=new Float32Array([ -3.04745, -3.444757, -6, -3.04745, -3.444757, 4, -3.04745, -3.444757, -6, -3.211183, -3.61109, -6, -3.04745, -3.444757, -4, -3.211183, -3.61109, -4, -3.04745, -3.444757, -2, -3.211183, -3.61109, -2, -3.04745, -3.444757, 0, -3.211183, -3.61109, 0, -3.04745, -3.444757, 2, -3.211183, -3.61109, 2, -3.04745, -3.444757, 4, -3.211183, -3.61109, 4 ]); var buf15 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf15); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var mvMatLoc15 = gl.getUniformLocation(prog15,"mvMatrix"); var prMatLoc15 = gl.getUniformLocation(prog15,"prMatrix"); // ****** text object 16 ****** var prog16 = gl.createProgram(); gl.attachShader(prog16, getShader( gl, "testglvshader16" )); gl.attachShader(prog16, getShader( gl, "testglfshader16" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog16, 0, "aPos"); gl.bindAttribLocation(prog16, 1, "aCol"); gl.linkProgram(prog16); var texts = [ "-6", "-4", "-2", "0", "2", "4" ]; var texinfo = drawTextToCanvas(texts, 1); var canvasX16 = texinfo.canvasX; var canvasY16 = texinfo.canvasY; var ofsLoc16 = gl.getAttribLocation(prog16, "aOfs"); var texture16 = gl.createTexture(); var texLoc16 = gl.getAttribLocation(prog16, "aTexcoord"); var sampler16 = gl.getUniformLocation(prog16,"uSampler"); handleLoadedTexture(texture16, document.getElementById("testgltextureCanvas")); var v=new Float32Array([ -3.538648, -3.943758, -6, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, -6, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, -6, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, -6, 0, 1.5, 0.5, 0.5, -3.538648, -3.943758, -4, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, -4, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, -4, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, -4, 0, 1.5, 0.5, 0.5, -3.538648, -3.943758, -2, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, -2, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, -2, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, -2, 0, 1.5, 0.5, 0.5, -3.538648, -3.943758, 0, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, 0, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, 0, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, 0, 0, 1.5, 0.5, 0.5, -3.538648, -3.943758, 2, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, 2, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, 2, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, 2, 0, 1.5, 0.5, 0.5, -3.538648, -3.943758, 4, 0, -0.5, 0.5, 0.5, -3.538648, -3.943758, 4, 1, -0.5, 0.5, 0.5, -3.538648, -3.943758, 4, 1, 1.5, 0.5, 0.5, -3.538648, -3.943758, 4, 0, 1.5, 0.5, 0.5 ]); for (var i=0; i<6; i++) for (var j=0; j<4; j++) { ind = 7*(4*i + j) + 3; v[ind+2] = 2*(v[ind]-v[ind+2])*texinfo.widths[i]/width; v[ind+3] = 2*(v[ind+1]-v[ind+3])*texinfo.textHeight/height; v[ind] *= texinfo.widths[i]/texinfo.canvasX; v[ind+1] = 1.0-(texinfo.offset + i*texinfo.skip - v[ind+1]*texinfo.textHeight)/texinfo.canvasY; } var f=new Uint16Array([ 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23 ]); var buf16 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf16); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var ibuf16 = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf16); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, f, gl.STATIC_DRAW); var mvMatLoc16 = gl.getUniformLocation(prog16,"mvMatrix"); var prMatLoc16 = gl.getUniformLocation(prog16,"prMatrix"); // ****** lines object 17 ****** var prog17 = gl.createProgram(); gl.attachShader(prog17, getShader( gl, "testglvshader17" )); gl.attachShader(prog17, getShader( gl, "testglfshader17" )); // Force aPos to location 0, aCol to location 1 gl.bindAttribLocation(prog17, 0, "aPos"); gl.bindAttribLocation(prog17, 1, "aCol"); gl.linkProgram(prog17); var v=new Float32Array([ -3.04745, -3.444757, -6.209377, -3.04745, 3.208599, -6.209377, -3.04745, -3.444757, 5.770821, -3.04745, 3.208599, 5.770821, -3.04745, -3.444757, -6.209377, -3.04745, -3.444757, 5.770821, -3.04745, 3.208599, -6.209377, -3.04745, 3.208599, 5.770821, -3.04745, -3.444757, -6.209377, 3.501848, -3.444757, -6.209377, -3.04745, -3.444757, 5.770821, 3.501848, -3.444757, 5.770821, -3.04745, 3.208599, -6.209377, 3.501848, 3.208599, -6.209377, -3.04745, 3.208599, 5.770821, 3.501848, 3.208599, 5.770821, 3.501848, -3.444757, -6.209377, 3.501848, 3.208599, -6.209377, 3.501848, -3.444757, 5.770821, 3.501848, 3.208599, 5.770821, 3.501848, -3.444757, -6.209377, 3.501848, -3.444757, 5.770821, 3.501848, 3.208599, -6.209377, 3.501848, 3.208599, 5.770821 ]); var buf17 = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf17); gl.bufferData(gl.ARRAY_BUFFER, v, gl.STATIC_DRAW); var mvMatLoc17 = gl.getUniformLocation(prog17,"mvMatrix"); var prMatLoc17 = gl.getUniformLocation(prog17,"prMatrix"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LEQUAL); gl.clearDepth(1.0); gl.clearColor(1, 1, 1, 1); var xOffs = yOffs = 0, drag = 0; drawScene(); function drawScene(){ gl.depthMask(true); gl.disable(gl.BLEND); var radius = 8.110277; var s = sin(fov*PI/360); var t = tan(fov*PI/360); var distance = radius/s; var near = distance - radius; var far = distance + radius; var hlen = t*near; var aspect = width/height; prMatrix.makeIdentity(); if (aspect > 1) prMatrix.frustum(-hlen*aspect*zoom, hlen*aspect*zoom, -hlen*zoom, hlen*zoom, near, far); else prMatrix.frustum(-hlen*zoom, hlen*zoom, -hlen*zoom/aspect, hlen*zoom/aspect, near, far); mvMatrix.makeIdentity(); mvMatrix.translate( -0.227199, 0.1180786, 0.2192783 ); mvMatrix.scale( 1.338921, 1.31798, 0.7319571 ); mvMatrix.multRight( userMatrix ); mvMatrix.translate(0, 0, -distance); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); // ****** points object 6 ******* gl.useProgram(prog6); gl.bindBuffer(gl.ARRAY_BUFFER, buf6); gl.uniformMatrix4fv( prMatLoc6, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc6, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.enableVertexAttribArray( colLoc ); gl.vertexAttribPointer(colLoc, 4, gl.FLOAT, false, 28, 12); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawArrays(gl.POINTS, 0, 1000); // ****** text object 8 ******* gl.useProgram(prog8); gl.bindBuffer(gl.ARRAY_BUFFER, buf8); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf8); gl.uniformMatrix4fv( prMatLoc8, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc8, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc8 ); gl.vertexAttribPointer(texLoc8, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture8); gl.uniform1i( sampler8, 0); gl.enableVertexAttribArray( ofsLoc8 ); gl.vertexAttribPointer(ofsLoc8, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0); // ****** text object 9 ******* gl.useProgram(prog9); gl.bindBuffer(gl.ARRAY_BUFFER, buf9); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf9); gl.uniformMatrix4fv( prMatLoc9, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc9, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc9 ); gl.vertexAttribPointer(texLoc9, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture9); gl.uniform1i( sampler9, 0); gl.enableVertexAttribArray( ofsLoc9 ); gl.vertexAttribPointer(ofsLoc9, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0); // ****** text object 10 ******* gl.useProgram(prog10); gl.bindBuffer(gl.ARRAY_BUFFER, buf10); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf10); gl.uniformMatrix4fv( prMatLoc10, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc10, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc10 ); gl.vertexAttribPointer(texLoc10, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture10); gl.uniform1i( sampler10, 0); gl.enableVertexAttribArray( ofsLoc10 ); gl.vertexAttribPointer(ofsLoc10, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0); // ****** lines object 11 ******* gl.useProgram(prog11); gl.bindBuffer(gl.ARRAY_BUFFER, buf11); gl.uniformMatrix4fv( prMatLoc11, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc11, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.lineWidth( 1 ); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 12, 0); gl.drawArrays(gl.LINES, 0, 14); // ****** text object 12 ******* gl.useProgram(prog12); gl.bindBuffer(gl.ARRAY_BUFFER, buf12); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf12); gl.uniformMatrix4fv( prMatLoc12, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc12, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc12 ); gl.vertexAttribPointer(texLoc12, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture12); gl.uniform1i( sampler12, 0); gl.enableVertexAttribArray( ofsLoc12 ); gl.vertexAttribPointer(ofsLoc12, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0); // ****** lines object 13 ******* gl.useProgram(prog13); gl.bindBuffer(gl.ARRAY_BUFFER, buf13); gl.uniformMatrix4fv( prMatLoc13, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc13, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.lineWidth( 1 ); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 12, 0); gl.drawArrays(gl.LINES, 0, 16); // ****** text object 14 ******* gl.useProgram(prog14); gl.bindBuffer(gl.ARRAY_BUFFER, buf14); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf14); gl.uniformMatrix4fv( prMatLoc14, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc14, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc14 ); gl.vertexAttribPointer(texLoc14, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture14); gl.uniform1i( sampler14, 0); gl.enableVertexAttribArray( ofsLoc14 ); gl.vertexAttribPointer(ofsLoc14, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 42, gl.UNSIGNED_SHORT, 0); // ****** lines object 15 ******* gl.useProgram(prog15); gl.bindBuffer(gl.ARRAY_BUFFER, buf15); gl.uniformMatrix4fv( prMatLoc15, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc15, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.lineWidth( 1 ); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 12, 0); gl.drawArrays(gl.LINES, 0, 14); // ****** text object 16 ******* gl.useProgram(prog16); gl.bindBuffer(gl.ARRAY_BUFFER, buf16); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibuf16); gl.uniformMatrix4fv( prMatLoc16, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc16, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.enableVertexAttribArray( texLoc16 ); gl.vertexAttribPointer(texLoc16, 2, gl.FLOAT, false, 28, 12); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, texture16); gl.uniform1i( sampler16, 0); gl.enableVertexAttribArray( ofsLoc16 ); gl.vertexAttribPointer(ofsLoc16, 2, gl.FLOAT, false, 28, 20); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 28, 0); gl.drawElements(gl.TRIANGLES, 36, gl.UNSIGNED_SHORT, 0); // ****** lines object 17 ******* gl.useProgram(prog17); gl.bindBuffer(gl.ARRAY_BUFFER, buf17); gl.uniformMatrix4fv( prMatLoc17, false, new Float32Array(prMatrix.getAsArray()) ); gl.uniformMatrix4fv( mvMatLoc17, false, new Float32Array(mvMatrix.getAsArray()) ); gl.enableVertexAttribArray( posLoc ); gl.disableVertexAttribArray( colLoc ); gl.vertexAttrib4f( colLoc, 0, 0, 0, 1 ); gl.lineWidth( 1 ); gl.vertexAttribPointer(posLoc, 3, gl.FLOAT, false, 12, 0); gl.drawArrays(gl.LINES, 0, 24); gl.flush (); } var vlen = function(v) { return sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]) } var xprod = function(a, b) { return [a[1]*b[2] - a[2]*b[1], a[2]*b[0] - a[0]*b[2], a[0]*b[1] - a[1]*b[0]]; } var screenToVector = function(x, y) { var radius = max(width, height)/2.0; var cx = width/2.0; var cy = height/2.0; var px = (x-cx)/radius; var py = (y-cy)/radius; var plen = sqrt(px*px+py*py); if (plen > 1.e-6) { px = px/plen; py = py/plen; } var angle = (SQRT2 - plen)/SQRT2*PI/2; var z = sin(angle); var zlen = sqrt(1.0 - z*z); px = px * zlen; py = py * zlen; return [px, py, z]; } var rotBase; var trackballdown = function(x,y) { rotBase = screenToVector(x, y); saveMat.load(userMatrix); } var trackballmove = function(x,y) { var rotCurrent = screenToVector(x,y); var dot = rotBase[0]*rotCurrent[0] + rotBase[1]*rotCurrent[1] + rotBase[2]*rotCurrent[2]; var angle = acos( dot/vlen(rotBase)/vlen(rotCurrent) )*180./PI; var axis = xprod(rotBase, rotCurrent); userMatrix.load(saveMat); userMatrix.rotate(angle, axis[0], axis[1], axis[2]); drawScene(); } var y0zoom = 0; var zoom0 = 1; var zoomdown = function(x, y) { y0zoom = y; zoom0 = log(zoom); } var zoommove = function(x, y) { zoom = exp(zoom0 + (y-y0zoom)/height); drawScene(); } var y0fov = 0; var fov0 = 1; var fovdown = function(x, y) { y0fov = y; fov0 = fov; } var fovmove = function(x, y) { fov = max(1, min(179, fov0 + 180*(y-y0fov)/height)); drawScene(); } var mousedown = [trackballdown, zoomdown, fovdown]; var mousemove = [trackballmove, zoommove, fovmove]; function relMouseCoords(event){ var totalOffsetX = 0; var totalOffsetY = 0; var currentElement = canvas; do{ totalOffsetX += currentElement.offsetLeft; totalOffsetY += currentElement.offsetTop; } while(currentElement = currentElement.offsetParent) var canvasX = event.pageX - totalOffsetX; var canvasY = event.pageY - totalOffsetY; return {x:canvasX, y:canvasY} } canvas.onmousedown = function ( ev ){ if (!ev.which) // Use w3c defns in preference to MS switch (ev.button) { case 0: ev.which = 1; break; case 1: case 4: ev.which = 2; break; case 2: ev.which = 3; } drag = ev.which; var f = mousedown[drag-1]; if (f) { var coords = relMouseCoords(ev); f(coords.x, height-coords.y); ev.preventDefault(); } } canvas.onmouseup = function ( ev ){ drag = 0; } canvas.onmouseout = canvas.onmouseup; canvas.onmousemove = function ( ev ){ if ( drag == 0 ) return; var f = mousemove[drag-1]; if (f) { var coords = relMouseCoords(ev); f(coords.x, height-coords.y); } } var wheelHandler = function(ev) { var del = 1.1; if (ev.shiftKey) del = 1.01; var ds = ((ev.detail || ev.wheelDelta) > 0) ? del : (1 / del); zoom *= ds; drawScene(); ev.preventDefault(); }; canvas.addEventListener("DOMMouseScroll", wheelHandler, false); canvas.addEventListener("mousewheel", wheelHandler, false); } </script> <script>testglwebGLStart();</script>