
#ifdef GL_ES
precision lowp float;
#endif

#define N_HIDDEN 20
vec4 bufA[N_HIDDEN/4];
vec4 bufB[N_HIDDEN/2];
vec4 cppn_fn(vec2 coordinate, float in0, float in1, float in2, float in3) {
    vec4 tmp;
    bufB[0] = vec4(coordinate.x, coordinate.y, 0., 0.);

 // layer 0
bufA[0] = vec4(-0.438, 0.054, -0.363, -0.006) + mat4(vec4(-0.710, 1.217, 0.011, -0.733), vec4(-0.082, 0.490, -0.409, 1.856), vec4(0.000, 0.000, 0.000, 0.000), vec4(0.000, 0.000, 0.000, 0.000)) * bufB[0];
bufA[1] = vec4(-0.057, 0.111, -0.400, -0.045) + mat4(vec4(0.258, -0.912, -1.028, 0.743), vec4(-0.675, 0.193, 0.139, 0.705), vec4(0.000, 0.000, 0.000, 0.000), vec4(0.000, 0.000, 0.000, 0.000)) * bufB[0];
bufA[2] = vec4(-0.117, -0.332, 0.397, -0.305) + mat4(vec4(1.362, -0.308, -1.502, -0.518), vec4(0.611, 1.164, 0.419, -0.247), vec4(0.000, 0.000, 0.000, 0.000), vec4(0.000, 0.000, 0.000, 0.000)) * bufB[0];
bufA[3] = vec4(-0.305, 0.234, -0.233, 0.483) + mat4(vec4(-0.676, 0.794, 1.700, -0.016), vec4(0.417, -0.315, -0.683, -0.978), vec4(0.000, 0.000, 0.000, 0.000), vec4(0.000, 0.000, 0.000, 0.000)) * bufB[0];
bufA[4] = vec4(0.170, -0.049, -0.391, -0.345) + mat4(vec4(-1.192, 0.070, 1.500, 1.881), vec4(0.112, -0.217, -1.199, 0.442), vec4(0.000, 0.000, 0.000, 0.000), vec4(0.000, 0.000, 0.000, 0.000)) * bufB[0];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 1
bufA[0] = vec4(0.194, 0.236, -0.370, -0.504) + mat4(vec4(-0.011, -0.090, -0.166, 0.098), vec4(0.052, -0.069, -0.364, 0.308), vec4(-0.142, 0.002, -0.146, 0.042), vec4(0.079, 0.150, -0.034, 0.154)) * bufB[0] + mat4(vec4(-0.135, -0.348, -0.076, 0.399), vec4(-0.298, -0.381, -0.015, -0.228), vec4(-0.099, -0.269, 0.050, -0.348), vec4(-0.231, 0.213, 0.248, 0.124)) * bufB[1] + mat4(vec4(0.127, 0.076, 0.171, -0.090), vec4(-0.042, 0.015, -0.210, -0.077), vec4(0.024, -0.119, 0.010, -0.244), vec4(0.158, -0.185, 0.002, 0.231)) * bufB[2] + mat4(vec4(-0.147, 0.124, -0.030, 0.086), vec4(0.023, 0.059, -0.024, -0.056), vec4(0.074, -0.248, 0.052, -0.165), vec4(0.084, -0.233, -0.114, -0.293)) * bufB[3] + mat4(vec4(-0.426, -0.064, 0.061, -0.127), vec4(-0.122, 0.091, -0.245, 0.089), vec4(0.027, 0.152, -0.291, 0.273), vec4(-0.069, -0.208, 0.036, 0.170)) * bufB[4] + mat4(vec4(0.171, -0.068, -0.057, 0.147), vec4(0.347, -0.208, 0.129, 0.159), vec4(0.063, 0.088, -0.163, 0.054), vec4(0.027, 0.051, -0.017, -0.347)) * bufB[5] + mat4(vec4(-0.057, -0.029, -0.098, 0.115), vec4(0.038, -0.101, 0.122, -0.051), vec4(-0.099, -0.188, -0.075, 0.030), vec4(0.223, 0.149, -0.401, 0.006)) * bufB[6] + mat4(vec4(0.142, -0.171, 0.037, -0.190), vec4(-0.153, -0.011, -0.012, -0.110), vec4(-0.082, 0.282, 0.291, -0.149), vec4(-0.250, -0.495, -0.296, -0.119)) * bufB[7] + mat4(vec4(-0.173, -0.047, -0.127, 0.027), vec4(-0.155, -0.114, 0.341, 0.082), vec4(-0.069, 0.245, 0.105, -0.014), vec4(0.340, -0.047, 0.056, 0.080)) * bufB[8] + mat4(vec4(0.145, 0.050, 0.108, -0.004), vec4(0.011, -0.088, -0.100, -0.086), vec4(0.266, 0.323, -0.115, -0.299), vec4(0.262, -0.091, 0.363, -0.192)) * bufB[9];
bufA[1] = vec4(0.466, 0.076, -0.209, 0.096) + mat4(vec4(0.041, 0.083, 0.014, 0.187), vec4(0.083, -0.122, 0.245, -0.185), vec4(0.279, 0.006, -0.011, 0.077), vec4(-0.229, -0.152, -0.043, -0.037)) * bufB[0] + mat4(vec4(0.238, 0.098, -0.044, 0.096), vec4(0.031, 0.034, 0.011, 0.112), vec4(-0.132, 0.141, -0.110, -0.099), vec4(-0.234, -0.204, -0.349, 0.108)) * bufB[1] + mat4(vec4(-0.113, -0.261, 0.108, -0.173), vec4(0.006, -0.218, 0.292, 0.003), vec4(-0.038, -0.051, -0.003, 0.020), vec4(0.029, -0.301, 0.001, 0.479)) * bufB[2] + mat4(vec4(-0.198, -0.003, -0.300, 0.076), vec4(0.269, 0.146, -0.102, 0.064), vec4(-0.035, -0.116, -0.164, -0.254), vec4(0.468, -0.034, -0.008, 0.330)) * bufB[3] + mat4(vec4(0.060, -0.105, 0.122, 0.050), vec4(0.059, -0.131, -0.137, -0.006), vec4(-0.325, -0.227, 0.020, -0.047), vec4(-0.224, -0.057, -0.091, 0.209)) * bufB[4] + mat4(vec4(-0.200, 0.025, -0.098, 0.241), vec4(0.034, 0.205, 0.294, 0.057), vec4(0.028, -0.058, -0.118, 0.222), vec4(0.016, 0.049, -0.007, 0.093)) * bufB[5] + mat4(vec4(-0.004, 0.167, 0.125, -0.232), vec4(-0.107, 0.006, 0.126, 0.195), vec4(-0.413, -0.076, -0.030, -0.125), vec4(0.158, -0.008, -0.001, -0.040)) * bufB[6] + mat4(vec4(0.517, 0.236, 0.350, -0.123), vec4(0.199, 0.021, 0.130, -0.015), vec4(0.058, -0.099, 0.170, 0.165), vec4(-0.157, -0.023, 0.066, 0.193)) * bufB[7] + mat4(vec4(0.015, 0.088, -0.064, 0.061), vec4(0.106, -0.338, 0.071, 0.051), vec4(0.002, -0.104, 0.010, -0.031), vec4(-0.305, -0.134, 0.082, -0.086)) * bufB[8] + mat4(vec4(0.158, 0.144, 0.092, -0.010), vec4(-0.014, -0.016, 0.014, 0.109), vec4(0.022, 0.007, -0.138, -0.013), vec4(-0.071, 0.502, -0.026, 0.076)) * bufB[9];
bufA[2] = vec4(-0.558, 0.246, 0.456, 0.177) + mat4(vec4(0.117, 0.122, 0.073, -0.241), vec4(0.072, 0.296, 0.270, 0.043), vec4(0.103, -0.036, 0.266, 0.285), vec4(0.151, 0.037, -0.029, -0.054)) * bufB[0] + mat4(vec4(0.081, 0.081, 0.232, -0.030), vec4(0.092, 0.031, -0.192, 0.032), vec4(-0.044, 0.089, -0.207, -0.313), vec4(0.080, 0.067, -0.016, 0.108)) * bufB[1] + mat4(vec4(-0.211, -0.131, 0.135, -0.213), vec4(-0.278, 0.161, 0.330, 0.048), vec4(-0.162, -0.036, 0.109, -0.071), vec4(0.129, -0.070, -0.320, -0.204)) * bufB[2] + mat4(vec4(-0.046, -0.062, -0.139, -0.271), vec4(0.440, 0.120, 0.074, -0.139), vec4(0.100, -0.090, -0.162, -0.022), vec4(-0.207, 0.238, 0.093, 0.187)) * bufB[3] + mat4(vec4(-0.089, -0.037, 0.184, 0.063), vec4(0.026, 0.039, -0.199, -0.014), vec4(0.106, -0.126, -0.026, -0.389), vec4(-0.277, -0.081, -0.081, -0.153)) * bufB[4] + mat4(vec4(-0.082, 0.006, 0.007, 0.215), vec4(-0.390, 0.346, -0.102, -0.041), vec4(-0.435, -0.073, 0.111, -0.303), vec4(-0.302, 0.091, -0.101, 0.227)) * bufB[5] + mat4(vec4(0.095, 0.096, 0.176, 0.146), vec4(-0.205, -0.103, -0.078, -0.186), vec4(-0.064, 0.080, -0.152, -0.099), vec4(-0.296, -0.049, 0.311, -0.164)) * bufB[6] + mat4(vec4(-0.059, -0.033, 0.048, 0.046), vec4(-0.136, -0.061, 0.049, -0.097), vec4(0.025, 0.170, -0.209, 0.159), vec4(0.005, -0.210, -0.292, -0.095)) * bufB[7] + mat4(vec4(0.116, -0.238, -0.015, -0.044), vec4(0.228, -0.247, 0.178, 0.191), vec4(0.050, 0.205, -0.255, 0.001), vec4(0.035, 0.081, -0.065, -0.027)) * bufB[8] + mat4(vec4(-0.146, 0.041, -0.017, 0.146), vec4(0.460, -0.108, -0.128, -0.215), vec4(-0.286, 0.039, -0.123, -0.320), vec4(-0.062, 0.057, 0.188, 0.272)) * bufB[9];
bufA[3] = vec4(0.084, -0.265, -0.140, -0.135) + mat4(vec4(0.194, -0.187, 0.131, -0.150), vec4(-0.236, -0.000, -0.185, 0.094), vec4(0.279, 0.053, -0.010, -0.340), vec4(-0.311, -0.036, 0.104, 0.182)) * bufB[0] + mat4(vec4(0.171, 0.174, 0.121, -0.132), vec4(0.020, -0.079, -0.086, 0.001), vec4(-0.033, -0.030, -0.170, 0.187), vec4(-0.035, 0.424, -0.127, 0.002)) * bufB[1] + mat4(vec4(-0.006, -0.125, 0.000, 0.085), vec4(-0.181, 0.054, 0.099, -0.028), vec4(-0.032, -0.099, -0.079, 0.278), vec4(-0.062, -0.006, 0.068, 0.022)) * bufB[2] + mat4(vec4(-0.224, 0.107, -0.331, -0.054), vec4(0.074, 0.092, 0.030, -0.221), vec4(-0.130, -0.021, 0.131, 0.109), vec4(0.079, -0.150, -0.286, 0.013)) * bufB[3] + mat4(vec4(-0.200, -0.007, 0.178, 0.116), vec4(-0.092, 0.125, 0.053, 0.262), vec4(0.142, 0.204, 0.014, -0.253), vec4(-0.102, 0.136, 0.218, -0.108)) * bufB[4] + mat4(vec4(0.171, 0.326, 0.007, 0.063), vec4(0.130, -0.043, 0.012, 0.202), vec4(-0.138, 0.122, 0.000, 0.084), vec4(0.427, -0.081, 0.372, 0.102)) * bufB[5] + mat4(vec4(-0.023, -0.021, 0.191, -0.103), vec4(-0.360, -0.129, 0.053, 0.098), vec4(-0.089, 0.307, -0.000, -0.080), vec4(0.101, 0.095, -0.227, -0.035)) * bufB[6] + mat4(vec4(0.405, 0.149, -0.009, 0.199), vec4(-0.046, -0.095, 0.099, 0.131), vec4(0.117, 0.016, 0.091, 0.044), vec4(-0.052, 0.028, -0.163, 0.099)) * bufB[7] + mat4(vec4(-0.080, -0.371, -0.053, -0.153), vec4(0.010, 0.057, 0.107, 0.035), vec4(0.297, -0.059, -0.008, -0.060), vec4(0.223, 0.077, -0.344, -0.124)) * bufB[8] + mat4(vec4(0.327, -0.157, -0.115, 0.028), vec4(-0.366, 0.166, 0.126, 0.240), vec4(-0.026, -0.188, 0.144, 0.044), vec4(-0.035, -0.078, 0.141, -0.380)) * bufB[9];
bufA[4] = vec4(0.120, -0.443, 0.019, -0.354) + mat4(vec4(0.192, 0.249, -0.013, 0.109), vec4(0.052, -0.140, 0.137, 0.197), vec4(-0.011, -0.080, 0.347, 0.062), vec4(0.080, 0.083, -0.082, 0.187)) * bufB[0] + mat4(vec4(-0.076, -0.009, -0.143, -0.282), vec4(-0.015, -0.148, -0.121, 0.074), vec4(-0.193, -0.116, -0.084, -0.244), vec4(0.023, -0.157, -0.018, 0.318)) * bufB[1] + mat4(vec4(0.222, 0.337, -0.166, -0.073), vec4(0.085, 0.098, -0.044, 0.299), vec4(-0.105, 0.193, 0.031, 0.059), vec4(-0.041, -0.006, 0.137, -0.174)) * bufB[2] + mat4(vec4(0.013, 0.303, -0.211, 0.341), vec4(0.207, -0.120, -0.047, 0.272), vec4(0.219, 0.078, 0.211, -0.028), vec4(0.119, -0.090, 0.394, -0.279)) * bufB[3] + mat4(vec4(0.080, -0.270, 0.038, 0.225), vec4(0.140, 0.098, 0.107, 0.124), vec4(0.305, 0.079, 0.078, -0.091), vec4(0.183, 0.205, -0.003, 0.338)) * bufB[4] + mat4(vec4(0.151, 0.163, 0.135, -0.263), vec4(0.015, 0.071, -0.035, -0.046), vec4(0.195, -0.288, 0.152, 0.045), vec4(0.015, 0.312, -0.254, 0.142)) * bufB[5] + mat4(vec4(0.164, 0.052, -0.064, -0.055), vec4(-0.249, 0.049, -0.124, -0.158), vec4(-0.304, 0.121, -0.052, -0.377), vec4(0.040, 0.335, 0.003, -0.206)) * bufB[6] + mat4(vec4(0.051, -0.026, 0.318, -0.130), vec4(-0.172, 0.007, 0.099, -0.106), vec4(-0.038, -0.078, -0.023, -0.174), vec4(-0.155, 0.204, 0.058, -0.108)) * bufB[7] + mat4(vec4(-0.107, -0.272, 0.017, 0.033), vec4(-0.073, 0.045, 0.113, -0.063), vec4(-0.024, -0.138, -0.322, 0.089), vec4(0.089, -0.060, 0.092, -0.318)) * bufB[8] + mat4(vec4(-0.190, -0.038, -0.177, -0.068), vec4(-0.031, -0.087, 0.314, -0.151), vec4(-0.084, -0.252, -0.302, -0.063), vec4(0.119, 0.253, -0.260, -0.246)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 2
bufA[0] = vec4(0.392, 0.421, -0.111, 0.303) + mat4(vec4(-0.017, 0.169, 0.225, -0.251), vec4(0.034, 0.301, -0.000, 0.153), vec4(-0.218, 0.387, -0.135, -0.014), vec4(-0.283, -0.013, -0.370, 0.034)) * bufB[0] + mat4(vec4(0.063, -0.128, 0.202, -0.036), vec4(0.083, 0.008, 0.165, 0.031), vec4(0.042, 0.036, 0.024, -0.101), vec4(-0.005, 0.013, -0.247, -0.168)) * bufB[1] + mat4(vec4(-0.265, 0.522, -0.623, 0.452), vec4(0.038, -0.058, 0.192, 0.142), vec4(-0.082, 0.058, 0.060, -0.038), vec4(-0.075, 0.063, 0.271, -0.193)) * bufB[2] + mat4(vec4(-0.207, 0.379, 0.436, -0.094), vec4(-0.125, 0.027, 0.069, 0.282), vec4(-0.232, 0.011, 0.138, -0.065), vec4(0.088, -0.241, 0.267, -0.020)) * bufB[3] + mat4(vec4(-0.062, -0.203, 0.091, -0.038), vec4(0.030, -0.223, 0.111, 0.079), vec4(-0.009, -0.098, 0.124, -0.089), vec4(0.177, 0.010, -0.225, -0.244)) * bufB[4] + mat4(vec4(0.112, -0.052, -0.007, 0.055), vec4(-0.068, -0.205, 0.256, -0.080), vec4(0.203, -0.034, 0.093, -0.092), vec4(0.043, -0.079, 0.106, 0.043)) * bufB[5] + mat4(vec4(-0.205, 0.087, -0.191, 0.116), vec4(-0.246, -0.236, 0.023, -0.204), vec4(-0.087, 0.029, -0.119, 0.024), vec4(-0.150, 0.215, -0.087, 0.271)) * bufB[6] + mat4(vec4(0.073, 0.039, -0.178, 0.023), vec4(0.143, 0.110, 0.187, -0.249), vec4(0.130, 0.165, -0.155, 0.237), vec4(0.025, 0.053, -0.005, 0.147)) * bufB[7] + mat4(vec4(0.181, -0.012, 0.077, 0.021), vec4(0.376, 0.084, 0.158, -0.103), vec4(-0.215, 0.336, 0.020, -0.011), vec4(-0.035, 0.189, -0.022, -0.248)) * bufB[8] + mat4(vec4(-0.030, -0.083, -0.183, 0.234), vec4(0.007, -0.003, -0.036, -0.020), vec4(0.158, -0.129, -0.123, 0.211), vec4(0.253, -0.146, -0.061, 0.058)) * bufB[9];
bufA[1] = vec4(0.311, 0.075, -0.417, -0.385) + mat4(vec4(-0.232, -0.070, 0.090, -0.007), vec4(-0.008, 0.229, -0.061, 0.105), vec4(0.143, -0.049, 0.210, 0.197), vec4(-0.002, 0.076, -0.185, -0.132)) * bufB[0] + mat4(vec4(-0.168, -0.403, 0.540, 0.102), vec4(-0.057, -0.149, 0.258, -0.023), vec4(0.269, 0.110, 0.131, 0.084), vec4(0.095, 0.114, -0.004, 0.052)) * bufB[1] + mat4(vec4(-0.227, -0.203, -0.110, -0.283), vec4(-0.218, 0.044, 0.355, 0.162), vec4(0.011, -0.060, -0.147, -0.262), vec4(0.197, -0.203, -0.223, 0.063)) * bufB[2] + mat4(vec4(-0.355, 0.143, 0.076, -0.171), vec4(0.144, 0.376, -0.042, -0.169), vec4(0.103, -0.003, 0.067, 0.065), vec4(-0.042, 0.012, -0.015, -0.216)) * bufB[3] + mat4(vec4(-0.026, -0.026, -0.061, -0.115), vec4(0.061, -0.060, 0.230, -0.212), vec4(0.077, 0.004, -0.334, -0.144), vec4(-0.003, -0.106, 0.143, 0.077)) * bufB[4] + mat4(vec4(0.052, -0.112, 0.035, 0.168), vec4(0.231, -0.025, 0.097, 0.071), vec4(0.060, 0.207, -0.268, -0.130), vec4(0.067, 0.189, -0.187, -0.169)) * bufB[5] + mat4(vec4(-0.343, -0.208, 0.093, 0.079), vec4(0.502, 0.376, 0.119, -0.294), vec4(0.201, -0.051, -0.451, -0.315), vec4(0.017, 0.209, 0.066, -0.119)) * bufB[6] + mat4(vec4(-0.072, 0.213, 0.122, 0.111), vec4(0.108, -0.050, -0.056, -0.090), vec4(0.048, 0.213, -0.040, 0.045), vec4(-0.061, -0.126, 0.228, 0.149)) * bufB[7] + mat4(vec4(-0.180, -0.074, -0.171, 0.011), vec4(-0.075, -0.152, 0.202, 0.136), vec4(0.090, 0.324, -0.242, 0.016), vec4(0.158, -0.202, 0.107, -0.140)) * bufB[8] + mat4(vec4(0.044, -0.088, 0.178, -0.077), vec4(-0.451, 0.357, 0.028, -0.268), vec4(0.229, 0.370, -0.031, 0.229), vec4(0.047, -0.214, -0.034, -0.014)) * bufB[9];
bufA[2] = vec4(-0.469, -0.276, 0.234, 0.355) + mat4(vec4(0.044, 0.041, -0.105, 0.159), vec4(0.248, -0.051, 0.132, -0.109), vec4(-0.065, 0.139, -0.438, 0.250), vec4(0.049, 0.237, 0.003, -0.050)) * bufB[0] + mat4(vec4(0.038, -0.058, -0.314, 0.032), vec4(0.086, 0.004, -0.137, 0.068), vec4(-0.321, -0.090, 0.140, 0.090), vec4(0.166, 0.125, -0.125, -0.209)) * bufB[1] + mat4(vec4(-0.355, 0.154, -0.105, -0.308), vec4(-0.183, 0.086, -0.191, -0.134), vec4(0.155, -0.198, 0.011, 0.224), vec4(-0.003, -0.239, -0.135, -0.011)) * bufB[2] + mat4(vec4(-0.060, -0.160, -0.266, -0.154), vec4(-0.063, 0.157, -0.069, -0.172), vec4(0.290, -0.162, 0.141, -0.160), vec4(0.047, -0.236, 0.138, 0.058)) * bufB[3] + mat4(vec4(0.039, -0.293, 0.284, -0.050), vec4(0.093, -0.165, 0.018, 0.142), vec4(-0.030, -0.033, -0.075, -0.009), vec4(-0.037, -0.119, 0.157, 0.019)) * bufB[4] + mat4(vec4(-0.132, -0.060, 0.004, -0.011), vec4(0.143, 0.096, 0.079, 0.145), vec4(-0.208, 0.085, -0.082, 0.264), vec4(0.110, 0.417, -0.519, 0.043)) * bufB[5] + mat4(vec4(-0.167, 0.152, -0.299, 0.402), vec4(-0.079, -0.083, -0.017, 0.171), vec4(-0.162, -0.302, 0.176, 0.061), vec4(-0.150, -0.075, 0.128, -0.136)) * bufB[6] + mat4(vec4(-0.069, -0.146, 0.177, -0.032), vec4(0.217, 0.044, -0.003, 0.248), vec4(0.155, 0.005, 0.063, -0.183), vec4(-0.046, -0.040, -0.086, 0.009)) * bufB[7] + mat4(vec4(0.305, 0.004, 0.199, -0.086), vec4(0.103, -0.036, -0.289, -0.013), vec4(-0.023, 0.171, -0.010, -0.116), vec4(0.062, 0.092, 0.008, -0.303)) * bufB[8] + mat4(vec4(-0.116, -0.135, -0.122, -0.112), vec4(-0.026, 0.125, 0.032, -0.076), vec4(0.020, -0.443, 0.177, 0.297), vec4(0.158, -0.085, 0.223, 0.106)) * bufB[9];
bufA[3] = vec4(0.374, 0.188, -0.495, -0.234) + mat4(vec4(0.330, 0.088, -0.280, 0.062), vec4(0.213, 0.066, 0.187, 0.018), vec4(-0.005, -0.204, 0.271, -0.093), vec4(-0.024, -0.003, 0.134, -0.162)) * bufB[0] + mat4(vec4(0.246, 0.113, 0.047, 0.154), vec4(0.118, 0.006, 0.276, 0.062), vec4(0.057, 0.011, -0.260, -0.014), vec4(0.196, -0.107, -0.187, 0.013)) * bufB[1] + mat4(vec4(-0.376, -0.203, 0.152, 0.150), vec4(0.040, 0.102, 0.232, 0.124), vec4(0.049, 0.068, -0.026, -0.021), vec4(-0.060, 0.144, 0.439, -0.303)) * bufB[2] + mat4(vec4(0.053, 0.122, 0.072, 0.083), vec4(-0.013, -0.133, -0.313, -0.124), vec4(-0.018, 0.303, 0.006, 0.120), vec4(-0.158, 0.278, 0.189, -0.039)) * bufB[3] + mat4(vec4(0.024, -0.007, -0.072, 0.068), vec4(-0.122, 0.135, -0.186, -0.019), vec4(0.083, -0.283, -0.048, 0.148), vec4(-0.270, -0.137, -0.056, -0.088)) * bufB[4] + mat4(vec4(-0.128, -0.000, 0.260, 0.045), vec4(0.188, 0.351, -0.070, -0.185), vec4(-0.173, 0.335, 0.081, 0.121), vec4(-0.290, 0.014, -0.291, -0.002)) * bufB[5] + mat4(vec4(0.030, -0.143, 0.008, 0.058), vec4(0.010, 0.196, 0.221, 0.119), vec4(-0.014, -0.066, -0.119, -0.159), vec4(-0.049, -0.048, 0.019, 0.068)) * bufB[6] + mat4(vec4(-0.105, -0.274, -0.120, 0.108), vec4(0.068, 0.119, -0.049, 0.140), vec4(0.169, 0.031, 0.004, 0.181), vec4(0.088, -0.087, -0.049, 0.109)) * bufB[7] + mat4(vec4(-0.001, -0.034, 0.086, -0.257), vec4(-0.006, -0.379, -0.154, -0.012), vec4(-0.218, -0.368, -0.165, -0.118), vec4(0.204, 0.229, -0.093, 0.304)) * bufB[8] + mat4(vec4(0.042, 0.146, 0.089, 0.215), vec4(-0.096, 0.188, -0.168, -0.214), vec4(-0.085, 0.006, -0.209, -0.223), vec4(-0.006, 0.145, -0.121, 0.030)) * bufB[9];
bufA[4] = vec4(-0.126, -0.275, 0.371, 0.398) + mat4(vec4(0.118, -0.046, -0.012, 0.140), vec4(0.080, 0.108, 0.160, -0.025), vec4(-0.154, 0.081, -0.123, -0.054), vec4(-0.172, 0.371, -0.132, -0.012)) * bufB[0] + mat4(vec4(0.023, -0.086, 0.079, 0.030), vec4(-0.078, 0.011, -0.245, 0.090), vec4(-0.038, -0.088, 0.146, 0.083), vec4(-0.121, 0.075, -0.174, 0.109)) * bufB[1] + mat4(vec4(0.251, -0.046, 0.123, 0.188), vec4(0.076, 0.242, -0.012, -0.118), vec4(0.200, -0.080, -0.035, 0.012), vec4(-0.142, -0.064, 0.283, 0.070)) * bufB[2] + mat4(vec4(0.110, 0.155, -0.069, 0.146), vec4(0.092, 0.240, -0.057, -0.063), vec4(0.176, 0.112, -0.111, -0.163), vec4(-0.212, -0.025, -0.266, 0.004)) * bufB[3] + mat4(vec4(-0.249, 0.043, 0.053, -0.061), vec4(0.420, 0.080, -0.030, 0.023), vec4(0.201, -0.085, -0.099, -0.051), vec4(0.080, 0.053, 0.255, 0.105)) * bufB[4] + mat4(vec4(0.117, 0.022, -0.304, 0.324), vec4(-0.297, -0.257, 0.071, 0.099), vec4(-0.213, 0.179, -0.268, -0.067), vec4(-0.009, -0.037, 0.005, 0.124)) * bufB[5] + mat4(vec4(-0.194, -0.040, 0.105, 0.107), vec4(0.079, 0.114, 0.176, -0.227), vec4(-0.314, 0.215, 0.019, 0.351), vec4(0.233, 0.057, 0.041, 0.073)) * bufB[6] + mat4(vec4(0.176, 0.114, 0.029, 0.067), vec4(0.228, -0.230, -0.323, 0.106), vec4(0.274, -0.108, 0.038, 0.076), vec4(0.121, -0.014, -0.043, 0.056)) * bufB[7] + mat4(vec4(0.128, -0.459, -0.006, 0.024), vec4(-0.160, 0.234, -0.112, -0.040), vec4(0.051, 0.012, -0.085, -0.082), vec4(0.200, 0.052, -0.001, 0.022)) * bufB[8] + mat4(vec4(0.391, 0.029, -0.150, 0.174), vec4(-0.061, 0.133, -0.075, 0.338), vec4(0.002, -0.153, -0.140, 0.201), vec4(-0.091, -0.296, 0.055, -0.125)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 3
bufA[0] = vec4(-0.249, 0.123, -0.313, -0.249) + mat4(vec4(0.215, -0.066, -0.030, 0.117), vec4(-0.103, -0.219, -0.079, 0.007), vec4(-0.217, -0.213, -0.176, 0.214), vec4(-0.215, -0.007, 0.169, -0.125)) * bufB[0] + mat4(vec4(-0.149, -0.207, 0.181, 0.091), vec4(-0.001, 0.265, -0.015, 0.028), vec4(-0.133, 0.057, 0.065, 0.001), vec4(-0.001, 0.067, -0.043, -0.161)) * bufB[1] + mat4(vec4(0.111, 0.006, -0.065, 0.158), vec4(-0.232, 0.129, -0.090, 0.130), vec4(0.078, -0.054, 0.108, -0.146), vec4(-0.268, -0.038, 0.006, 0.077)) * bufB[2] + mat4(vec4(-0.134, -0.267, 0.223, 0.182), vec4(0.165, 0.109, -0.324, 0.294), vec4(0.066, 0.025, 0.006, 0.186), vec4(-0.036, -0.217, 0.163, -0.033)) * bufB[3] + mat4(vec4(0.030, -0.070, -0.048, -0.032), vec4(-0.245, 0.272, 0.285, -0.176), vec4(-0.172, -0.074, 0.062, -0.063), vec4(-0.035, 0.319, -0.116, 0.009)) * bufB[4] + mat4(vec4(-0.125, 0.179, -0.176, -0.015), vec4(0.304, -0.209, 0.005, -0.310), vec4(0.205, -0.228, -0.306, -0.306), vec4(0.168, 0.087, -0.020, 0.222)) * bufB[5] + mat4(vec4(0.066, 0.124, -0.038, 0.074), vec4(-0.062, 0.049, 0.012, -0.061), vec4(0.215, -0.146, 0.147, 0.047), vec4(-0.110, -0.069, 0.181, 0.069)) * bufB[6] + mat4(vec4(-0.232, 0.031, 0.157, -0.035), vec4(-0.040, 0.046, 0.191, 0.391), vec4(-0.119, -0.034, -0.002, 0.195), vec4(-0.125, -0.076, -0.265, 0.017)) * bufB[7] + mat4(vec4(0.007, -0.021, -0.347, 0.065), vec4(-0.266, -0.128, 0.027, 0.072), vec4(0.206, -0.177, -0.161, -0.139), vec4(-0.052, -0.140, -0.019, -0.190)) * bufB[8] + mat4(vec4(0.201, 0.296, 0.140, -0.043), vec4(0.154, -0.078, -0.087, 0.143), vec4(-0.077, -0.185, -0.071, -0.407), vec4(-0.112, -0.236, -0.090, 0.005)) * bufB[9] + in0;
bufA[1] = vec4(0.033, -0.176, 0.043, 0.092) + mat4(vec4(-0.023, -0.293, -0.129, -0.239), vec4(-0.144, -0.152, 0.328, -0.074), vec4(0.039, -0.038, -0.148, -0.078), vec4(0.020, 0.058, 0.094, -0.000)) * bufB[0] + mat4(vec4(0.119, 0.022, -0.142, -0.200), vec4(0.128, -0.035, -0.050, -0.190), vec4(-0.273, 0.049, -0.157, -0.038), vec4(-0.133, 0.059, 0.079, 0.156)) * bufB[1] + mat4(vec4(-0.181, -0.038, -0.244, 0.155), vec4(0.161, 0.192, 0.331, -0.169), vec4(0.053, -0.052, -0.082, -0.025), vec4(-0.280, -0.054, 0.001, -0.094)) * bufB[2] + mat4(vec4(0.296, -0.140, 0.090, 0.167), vec4(-0.219, -0.044, -0.032, 0.184), vec4(-0.256, -0.038, 0.160, 0.186), vec4(0.001, -0.121, -0.174, 0.015)) * bufB[3] + mat4(vec4(0.140, 0.093, 0.188, 0.027), vec4(0.192, -0.098, 0.341, 0.079), vec4(-0.016, -0.442, 0.273, 0.114), vec4(-0.143, -0.017, 0.077, -0.212)) * bufB[4] + mat4(vec4(-0.060, 0.118, -0.159, 0.338), vec4(-0.185, 0.026, -0.088, -0.036), vec4(-0.186, 0.043, -0.092, -0.044), vec4(0.101, -0.037, 0.024, -0.033)) * bufB[5] + mat4(vec4(0.169, 0.234, 0.162, 0.078), vec4(0.163, -0.315, 0.247, 0.110), vec4(-0.065, -0.119, 0.065, 0.047), vec4(-0.015, 0.170, 0.004, 0.014)) * bufB[6] + mat4(vec4(0.075, 0.095, 0.170, -0.248), vec4(-0.023, -0.072, 0.238, -0.161), vec4(0.206, 0.271, -0.146, 0.118), vec4(-0.231, -0.161, -0.063, -0.058)) * bufB[7] + mat4(vec4(0.195, -0.110, 0.037, -0.099), vec4(0.096, 0.029, -0.044, 0.058), vec4(0.171, -0.024, 0.090, -0.168), vec4(0.102, 0.007, -0.227, 0.259)) * bufB[8] + mat4(vec4(-0.116, 0.183, 0.040, -0.165), vec4(0.044, 0.097, -0.066, 0.010), vec4(-0.055, -0.064, 0.087, 0.102), vec4(0.038, 0.018, 0.148, 0.011)) * bufB[9] + in1;
bufA[2] = vec4(-0.118, 0.223, 0.356, -0.385) + mat4(vec4(0.189, -0.037, -0.041, -0.199), vec4(-0.166, -0.082, 0.050, 0.298), vec4(0.087, -0.174, 0.264, -0.114), vec4(-0.252, -0.170, 0.108, 0.061)) * bufB[0] + mat4(vec4(0.088, 0.046, 0.104, -0.175), vec4(0.110, 0.047, -0.150, -0.131), vec4(-0.112, -0.126, 0.082, -0.012), vec4(0.006, -0.103, -0.289, 0.090)) * bufB[1] + mat4(vec4(-0.029, 0.253, 0.020, -0.114), vec4(0.413, -0.047, 0.113, 0.099), vec4(0.138, -0.069, -0.208, -0.097), vec4(0.192, 0.058, 0.007, -0.160)) * bufB[2] + mat4(vec4(-0.082, 0.134, -0.171, 0.411), vec4(0.356, 0.156, -0.142, -0.024), vec4(-0.192, -0.037, -0.125, 0.033), vec4(0.065, 0.165, -0.187, -0.056)) * bufB[3] + mat4(vec4(-0.238, -0.021, -0.021, -0.057), vec4(-0.198, -0.223, 0.069, 0.103), vec4(0.189, 0.078, 0.115, 0.169), vec4(-0.336, -0.100, -0.307, 0.275)) * bufB[4] + mat4(vec4(-0.043, 0.236, -0.143, -0.080), vec4(0.168, -0.011, 0.262, 0.117), vec4(0.044, 0.003, -0.027, -0.191), vec4(-0.127, -0.443, -0.193, -0.172)) * bufB[5] + mat4(vec4(0.188, -0.052, 0.262, 0.455), vec4(0.124, -0.009, -0.159, 0.259), vec4(0.016, -0.080, -0.210, -0.130), vec4(0.032, 0.092, 0.162, -0.234)) * bufB[6] + mat4(vec4(-0.229, 0.004, 0.116, -0.093), vec4(0.237, -0.224, 0.026, -0.126), vec4(0.722, 0.133, 0.423, -0.194), vec4(0.178, -0.020, -0.112, -0.035)) * bufB[7] + mat4(vec4(0.042, -0.004, 0.040, 0.062), vec4(-0.003, -0.001, 0.042, -0.020), vec4(0.340, 0.051, 0.187, -0.017), vec4(0.002, 0.443, 0.167, -0.046)) * bufB[8] + mat4(vec4(-0.063, 0.141, 0.105, 0.334), vec4(0.045, 0.294, -0.028, 0.221), vec4(-0.245, -0.059, -0.087, -0.028), vec4(0.014, -0.066, -0.074, -0.061)) * bufB[9] + in2;
bufA[3] = vec4(0.345, -0.043, -0.206, -0.395) + mat4(vec4(0.019, -0.099, -0.261, -0.096), vec4(0.277, 0.078, 0.005, -0.005), vec4(0.020, -0.072, 0.218, -0.248), vec4(-0.160, -0.038, -0.049, 0.227)) * bufB[0] + mat4(vec4(-0.007, 0.091, -0.125, 0.169), vec4(-0.241, 0.168, 0.405, -0.044), vec4(-0.072, 0.132, 0.213, 0.037), vec4(0.262, -0.163, 0.024, 0.025)) * bufB[1] + mat4(vec4(0.093, -0.297, 0.242, 0.212), vec4(0.200, -0.142, -0.034, 0.122), vec4(-0.066, 0.221, -0.186, 0.178), vec4(-0.129, 0.100, -0.065, 0.132)) * bufB[2] + mat4(vec4(-0.194, -0.002, -0.159, -0.087), vec4(-0.167, 0.289, 0.009, -0.250), vec4(-0.065, 0.003, -0.232, -0.156), vec4(0.085, -0.105, 0.075, -0.177)) * bufB[3] + mat4(vec4(-0.040, -0.039, -0.396, 0.072), vec4(0.140, 0.198, -0.304, -0.001), vec4(0.076, 0.028, 0.078, -0.203), vec4(0.071, 0.104, 0.015, -0.173)) * bufB[4] + mat4(vec4(0.028, -0.132, 0.072, -0.046), vec4(0.039, 0.002, -0.008, -0.224), vec4(-0.037, 0.115, 0.060, -0.259), vec4(0.126, -0.047, 0.031, -0.077)) * bufB[5] + mat4(vec4(0.170, -0.087, -0.155, 0.274), vec4(0.095, -0.291, -0.124, 0.115), vec4(-0.005, -0.000, 0.166, -0.061), vec4(0.125, 0.091, 0.028, 0.016)) * bufB[6] + mat4(vec4(0.350, 0.268, -0.104, -0.246), vec4(0.122, 0.184, -0.105, -0.141), vec4(-0.192, 0.157, -0.210, -0.278), vec4(-0.195, -0.172, 0.393, 0.020)) * bufB[7] + mat4(vec4(0.175, 0.179, 0.069, 0.025), vec4(-0.165, 0.133, 0.198, -0.237), vec4(-0.315, 0.086, -0.126, -0.041), vec4(-0.049, -0.094, -0.037, -0.008)) * bufB[8] + mat4(vec4(0.242, -0.384, 0.132, 0.213), vec4(-0.492, -0.134, 0.066, 0.160), vec4(-0.134, 0.370, -0.209, -0.065), vec4(0.215, -0.195, -0.035, 0.027)) * bufB[9] + in3;
bufA[4] = vec4(0.144, 0.129, 0.482, 0.044) + mat4(vec4(-0.014, 0.008, 0.015, 0.253), vec4(-0.270, -0.019, 0.091, -0.037), vec4(-0.229, -0.319, -0.022, 0.223), vec4(0.101, 0.104, 0.087, 0.116)) * bufB[0] + mat4(vec4(-0.095, 0.143, -0.116, 0.209), vec4(0.003, 0.223, -0.217, 0.029), vec4(-0.116, -0.263, -0.001, -0.026), vec4(-0.134, -0.005, 0.120, 0.128)) * bufB[1] + mat4(vec4(-0.354, 0.208, -0.155, 0.048), vec4(-0.030, -0.177, -0.251, 0.095), vec4(0.120, 0.314, -0.107, 0.071), vec4(-0.217, 0.017, 0.299, -0.249)) * bufB[2] + mat4(vec4(-0.084, -0.132, 0.094, -0.054), vec4(-0.018, 0.038, 0.257, 0.009), vec4(0.178, 0.251, 0.085, 0.149), vec4(-0.329, -0.210, -0.110, 0.002)) * bufB[3] + mat4(vec4(-0.068, 0.013, 0.089, 0.006), vec4(-0.074, 0.086, 0.228, -0.221), vec4(0.176, -0.286, -0.049, -0.045), vec4(0.121, -0.336, 0.015, -0.098)) * bufB[4] + mat4(vec4(0.106, -0.304, -0.066, -0.305), vec4(0.172, -0.001, -0.208, 0.108), vec4(0.042, -0.000, -0.033, 0.125), vec4(-0.241, -0.199, -0.097, -0.059)) * bufB[5] + mat4(vec4(0.044, -0.399, 0.078, 0.062), vec4(-0.096, 0.018, -0.118, 0.183), vec4(0.238, 0.005, -0.012, -0.103), vec4(0.060, 0.034, 0.463, -0.169)) * bufB[6] + mat4(vec4(-0.367, -0.088, -0.052, 0.122), vec4(0.035, -0.031, -0.215, 0.020), vec4(0.117, -0.129, -0.050, 0.218), vec4(0.251, -0.155, 0.160, 0.016)) * bufB[7] + mat4(vec4(-0.332, -0.223, -0.062, -0.170), vec4(-0.047, -0.193, 0.006, 0.064), vec4(0.264, 0.032, 0.011, -0.115), vec4(-0.034, 0.170, 0.079, 0.221)) * bufB[8] + mat4(vec4(0.246, 0.261, 0.139, -0.255), vec4(-0.100, 0.122, -0.069, 0.101), vec4(-0.194, 0.056, 0.064, -0.106), vec4(-0.038, 0.052, -0.172, 0.165)) * bufB[9] + in0;
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 4
bufA[0] = vec4(0.285, 0.106, -0.327, 0.159) + mat4(vec4(0.201, -0.127, -0.037, -0.240), vec4(-0.157, -0.174, -0.007, 0.208), vec4(-0.095, 0.053, 0.077, -0.299), vec4(-0.103, -0.248, 0.333, 0.046)) * bufB[0] + mat4(vec4(0.087, -0.130, 0.137, -0.067), vec4(0.080, 0.025, -0.362, 0.040), vec4(0.140, 0.304, -0.095, 0.237), vec4(0.104, -0.287, 0.142, 0.033)) * bufB[1] + mat4(vec4(-0.093, 0.203, -0.123, -0.032), vec4(-0.019, 0.022, -0.051, 0.079), vec4(0.054, 0.058, -0.050, 0.041), vec4(-0.028, 0.068, 0.385, 0.313)) * bufB[2] + mat4(vec4(-0.129, 0.019, -0.148, 0.298), vec4(-0.072, 0.407, 0.255, 0.026), vec4(0.186, -0.062, -0.087, -0.012), vec4(-0.149, -0.153, -0.260, 0.031)) * bufB[3] + mat4(vec4(0.167, -0.037, 0.222, 0.254), vec4(-0.240, -0.195, -0.012, -0.221), vec4(0.009, -0.057, -0.061, -0.106), vec4(0.160, 0.128, -0.139, 0.044)) * bufB[4] + mat4(vec4(0.284, 0.144, -0.037, 0.208), vec4(0.116, 0.095, -0.107, 0.066), vec4(-0.065, -0.289, -0.114, -0.001), vec4(0.109, 0.073, 0.010, 0.034)) * bufB[5] + mat4(vec4(-0.161, -0.167, -0.023, -0.028), vec4(0.027, -0.016, -0.243, 0.043), vec4(-0.213, 0.158, 0.285, -0.087), vec4(-0.167, -0.018, 0.170, 0.364)) * bufB[6] + mat4(vec4(-0.193, -0.162, -0.050, -0.481), vec4(-0.047, -0.196, -0.250, 0.093), vec4(-0.118, 0.198, 0.207, 0.035), vec4(0.304, -0.023, 0.174, -0.499)) * bufB[7] + mat4(vec4(0.068, -0.018, -0.046, -0.106), vec4(0.212, 0.141, -0.311, 0.098), vec4(-0.101, 0.137, -0.054, 0.101), vec4(-0.219, 0.097, 0.027, -0.034)) * bufB[8] + mat4(vec4(-0.258, 0.155, -0.143, 0.163), vec4(0.164, 0.114, 0.038, 0.131), vec4(0.058, 0.072, -0.035, -0.100), vec4(-0.169, 0.022, -0.039, -0.037)) * bufB[9];
bufA[1] = vec4(-0.213, -0.029, -0.161, -0.363) + mat4(vec4(-0.175, 0.157, 0.066, -0.119), vec4(0.192, 0.016, -0.249, -0.022), vec4(-0.362, 0.067, -0.076, 0.194), vec4(0.212, -0.206, -0.113, -0.027)) * bufB[0] + mat4(vec4(-0.002, 0.277, 0.018, -0.266), vec4(0.163, -0.003, -0.138, -0.088), vec4(0.006, 0.321, -0.136, 0.403), vec4(0.045, 0.066, 0.040, -0.135)) * bufB[1] + mat4(vec4(0.002, 0.069, -0.193, 0.177), vec4(0.116, -0.004, 0.103, 0.107), vec4(0.079, -0.044, 0.287, 0.258), vec4(0.077, -0.137, 0.032, -0.053)) * bufB[2] + mat4(vec4(-0.072, -0.034, 0.078, -0.038), vec4(-0.187, 0.011, -0.072, 0.161), vec4(-0.152, -0.236, -0.213, -0.019), vec4(0.166, 0.003, -0.090, 0.133)) * bufB[3] + mat4(vec4(-0.074, 0.125, 0.085, -0.065), vec4(-0.079, 0.066, 0.045, 0.045), vec4(0.038, 0.014, -0.107, -0.054), vec4(0.288, 0.119, -0.077, -0.110)) * bufB[4] + mat4(vec4(0.016, -0.019, -0.101, 0.085), vec4(0.045, 0.012, -0.017, -0.293), vec4(0.178, -0.214, 0.101, -0.292), vec4(-0.089, -0.101, 0.148, -0.015)) * bufB[5] + mat4(vec4(-0.154, 0.021, 0.160, -0.045), vec4(-0.107, -0.067, 0.107, 0.219), vec4(-0.162, -0.044, 0.364, -0.031), vec4(0.231, -0.165, 0.016, 0.145)) * bufB[6] + mat4(vec4(-0.082, -0.292, 0.174, 0.203), vec4(0.015, -0.016, -0.219, 0.081), vec4(-0.108, -0.103, -0.182, -0.005), vec4(-0.007, 0.012, -0.039, 0.113)) * bufB[7] + mat4(vec4(-0.299, -0.122, -0.039, -0.319), vec4(-0.268, 0.107, 0.006, -0.210), vec4(0.237, 0.039, 0.092, 0.067), vec4(-0.149, -0.155, 0.090, 0.115)) * bufB[8] + mat4(vec4(-0.001, -0.213, -0.207, -0.060), vec4(0.337, -0.027, -0.087, -0.129), vec4(0.072, 0.002, -0.047, 0.165), vec4(-0.236, -0.078, 0.082, 0.232)) * bufB[9];
bufA[2] = vec4(0.329, 0.137, -0.260, -0.213) + mat4(vec4(-0.410, -0.224, 0.301, -0.036), vec4(0.292, 0.114, -0.100, 0.127), vec4(0.143, -0.017, -0.275, -0.038), vec4(-0.215, -0.025, -0.005, -0.127)) * bufB[0] + mat4(vec4(-0.038, -0.052, 0.149, 0.090), vec4(0.131, 0.347, -0.022, 0.126), vec4(0.021, -0.105, -0.025, 0.045), vec4(-0.215, -0.046, 0.075, -0.229)) * bufB[1] + mat4(vec4(0.004, -0.360, -0.233, -0.208), vec4(0.326, 0.074, -0.099, -0.269), vec4(-0.130, 0.006, 0.206, 0.218), vec4(0.081, -0.082, 0.079, 0.041)) * bufB[2] + mat4(vec4(-0.298, -0.089, -0.101, 0.141), vec4(-0.058, -0.417, -0.350, 0.037), vec4(-0.205, 0.300, -0.031, 0.504), vec4(0.216, -0.062, -0.093, -0.086)) * bufB[3] + mat4(vec4(0.218, -0.013, 0.022, -0.318), vec4(-0.038, 0.012, -0.119, 0.211), vec4(-0.038, 0.045, -0.115, 0.111), vec4(-0.159, -0.065, -0.086, -0.122)) * bufB[4] + mat4(vec4(0.077, -0.170, -0.071, -0.122), vec4(-0.265, -0.149, 0.026, 0.229), vec4(-0.123, 0.020, 0.211, 0.209), vec4(0.067, 0.179, 0.080, -0.131)) * bufB[5] + mat4(vec4(-0.002, -0.051, -0.092, 0.042), vec4(-0.267, 0.276, 0.163, 0.250), vec4(-0.025, 0.053, -0.140, 0.000), vec4(-0.059, -0.019, 0.191, -0.021)) * bufB[6] + mat4(vec4(-0.314, -0.270, -0.003, 0.048), vec4(0.188, 0.040, -0.259, 0.055), vec4(0.102, -0.093, 0.129, 0.112), vec4(0.008, -0.123, 0.132, -0.023)) * bufB[7] + mat4(vec4(0.122, -0.179, -0.200, -0.115), vec4(0.100, 0.090, 0.435, -0.206), vec4(-0.008, -0.021, -0.168, -0.157), vec4(0.043, -0.068, -0.295, 0.163)) * bufB[8] + mat4(vec4(-0.003, -0.090, -0.000, -0.273), vec4(0.023, -0.110, -0.173, -0.080), vec4(0.032, 0.315, 0.277, -0.196), vec4(0.049, -0.097, 0.298, 0.066)) * bufB[9];
bufA[3] = vec4(0.165, 0.147, -0.378, 0.205) + mat4(vec4(-0.091, -0.252, -0.252, 0.073), vec4(0.399, 0.072, -0.170, -0.171), vec4(0.125, -0.029, -0.096, -0.208), vec4(0.096, 0.331, 0.052, 0.219)) * bufB[0] + mat4(vec4(-0.115, 0.025, 0.068, 0.031), vec4(-0.394, -0.047, 0.097, 0.120), vec4(0.101, -0.115, -0.111, 0.023), vec4(0.026, 0.065, -0.110, 0.030)) * bufB[1] + mat4(vec4(-0.147, 0.111, -0.146, 0.215), vec4(-0.103, -0.103, -0.055, -0.196), vec4(0.013, 0.070, -0.051, 0.031), vec4(-0.077, -0.278, -0.010, -0.245)) * bufB[2] + mat4(vec4(0.344, 0.102, -0.427, 0.123), vec4(-0.220, -0.385, -0.020, 0.173), vec4(0.010, 0.105, -0.087, 0.021), vec4(0.281, 0.035, -0.049, -0.057)) * bufB[3] + mat4(vec4(-0.178, -0.121, -0.013, -0.041), vec4(0.038, -0.161, 0.242, 0.130), vec4(-0.161, -0.171, -0.113, 0.192), vec4(-0.208, -0.112, 0.237, 0.114)) * bufB[4] + mat4(vec4(-0.279, -0.045, 0.202, -0.084), vec4(-0.121, 0.059, -0.020, 0.070), vec4(-0.009, 0.326, -0.013, 0.243), vec4(0.089, -0.173, -0.021, -0.188)) * bufB[5] + mat4(vec4(-0.057, 0.231, -0.317, -0.036), vec4(0.138, 0.050, -0.145, -0.123), vec4(-0.194, 0.009, 0.308, -0.202), vec4(-0.174, -0.123, 0.101, 0.172)) * bufB[6] + mat4(vec4(0.144, -0.012, -0.332, 0.082), vec4(0.510, -0.117, 0.036, -0.098), vec4(0.081, 0.355, -0.040, -0.004), vec4(-0.333, 0.083, -0.182, -0.200)) * bufB[7] + mat4(vec4(-0.054, -0.247, 0.169, 0.113), vec4(0.311, 0.150, -0.008, 0.013), vec4(0.030, -0.035, -0.062, 0.159), vec4(0.025, -0.123, 0.083, 0.440)) * bufB[8] + mat4(vec4(0.090, 0.063, 0.107, 0.177), vec4(0.166, 0.148, -0.190, 0.184), vec4(0.082, 0.129, -0.126, -0.034), vec4(-0.115, -0.030, -0.024, 0.018)) * bufB[9];
bufA[4] = vec4(-0.442, 0.419, -0.084, 0.013) + mat4(vec4(-0.334, -0.073, -0.248, 0.007), vec4(-0.057, -0.056, 0.132, 0.167), vec4(-0.092, -0.257, -0.084, -0.014), vec4(0.196, 0.083, -0.072, 0.317)) * bufB[0] + mat4(vec4(0.162, -0.168, -0.115, -0.037), vec4(0.156, 0.155, 0.048, 0.476), vec4(0.274, 0.013, -0.107, -0.352), vec4(-0.135, 0.041, 0.107, -0.179)) * bufB[1] + mat4(vec4(0.348, 0.431, 0.200, 0.146), vec4(0.010, 0.204, 0.137, -0.198), vec4(0.119, -0.102, 0.227, -0.127), vec4(-0.137, -0.121, 0.052, -0.010)) * bufB[2] + mat4(vec4(0.007, -0.027, -0.116, -0.080), vec4(0.140, 0.019, 0.021, -0.171), vec4(0.261, -0.103, 0.221, 0.413), vec4(0.068, -0.370, -0.205, 0.132)) * bufB[3] + mat4(vec4(-0.510, -0.004, 0.088, -0.201), vec4(-0.257, 0.130, -0.140, -0.038), vec4(-0.252, -0.096, -0.056, -0.005), vec4(0.192, 0.119, -0.108, 0.143)) * bufB[4] + mat4(vec4(-0.149, -0.142, -0.393, -0.069), vec4(0.092, -0.368, 0.055, 0.055), vec4(-0.000, -0.146, -0.093, 0.054), vec4(-0.247, 0.078, -0.032, 0.018)) * bufB[5] + mat4(vec4(0.483, 0.054, -0.048, 0.242), vec4(-0.034, 0.155, 0.069, -0.029), vec4(-0.090, 0.150, -0.071, 0.052), vec4(0.045, 0.315, -0.050, -0.076)) * bufB[6] + mat4(vec4(0.035, -0.321, 0.420, 0.202), vec4(0.433, -0.212, 0.174, 0.133), vec4(0.032, 0.178, 0.241, 0.084), vec4(0.030, 0.007, -0.028, 0.229)) * bufB[7] + mat4(vec4(0.272, -0.003, 0.091, -0.012), vec4(-0.100, 0.247, 0.276, 0.210), vec4(-0.052, -0.076, -0.227, 0.011), vec4(-0.131, 0.027, 0.249, 0.004)) * bufB[8] + mat4(vec4(0.038, 0.231, 0.130, -0.222), vec4(0.122, -0.021, 0.110, 0.102), vec4(-0.103, 0.059, 0.193, 0.176), vec4(-0.008, 0.063, 0.157, -0.019)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 5
bufA[0] = vec4(-0.509, -0.103, -0.270, -0.490) + mat4(vec4(-0.123, -0.022, -0.147, -0.342), vec4(-0.098, 0.053, -0.244, -0.143), vec4(0.305, 0.072, -0.069, 0.069), vec4(0.104, -0.101, 0.175, 0.001)) * bufB[0] + mat4(vec4(0.120, -0.374, -0.194, -0.277), vec4(-0.015, -0.269, -0.084, 0.146), vec4(0.134, -0.049, 0.046, 0.113), vec4(0.263, 0.127, 0.007, -0.154)) * bufB[1] + mat4(vec4(-0.156, 0.001, 0.015, -0.292), vec4(0.109, 0.095, -0.225, 0.108), vec4(0.148, -0.217, -0.055, -0.128), vec4(0.149, -0.010, -0.089, -0.025)) * bufB[2] + mat4(vec4(-0.031, 0.121, 0.371, -0.170), vec4(-0.164, 0.076, 0.038, -0.147), vec4(0.053, 0.261, 0.235, 0.111), vec4(0.009, -0.109, -0.090, -0.039)) * bufB[3] + mat4(vec4(0.198, -0.082, -0.278, 0.035), vec4(-0.293, -0.073, 0.169, -0.029), vec4(-0.224, -0.007, 0.282, -0.033), vec4(0.103, 0.099, -0.086, -0.140)) * bufB[4] + mat4(vec4(0.190, -0.133, 0.062, 0.070), vec4(-0.080, -0.152, 0.172, -0.052), vec4(0.104, 0.103, 0.067, 0.046), vec4(0.083, 0.075, -0.284, -0.195)) * bufB[5] + mat4(vec4(-0.131, -0.036, -0.150, 0.053), vec4(0.316, -0.139, -0.243, 0.342), vec4(0.114, -0.134, 0.107, 0.214), vec4(0.133, 0.076, -0.043, -0.044)) * bufB[6] + mat4(vec4(0.167, 0.041, -0.329, -0.064), vec4(-0.045, 0.069, 0.107, -0.033), vec4(-0.388, 0.075, -0.163, -0.013), vec4(0.055, -0.127, 0.476, 0.164)) * bufB[7] + mat4(vec4(0.221, -0.176, -0.047, -0.048), vec4(-0.043, -0.090, -0.159, 0.433), vec4(-0.141, 0.197, -0.252, -0.124), vec4(0.096, -0.013, -0.062, -0.108)) * bufB[8] + mat4(vec4(-0.026, -0.178, 0.189, -0.056), vec4(0.126, 0.173, 0.175, -0.098), vec4(0.179, -0.010, 0.048, -0.049), vec4(-0.088, 0.011, 0.280, -0.114)) * bufB[9];
bufA[1] = vec4(-0.186, 0.079, -0.263, -0.220) + mat4(vec4(0.005, 0.133, -0.075, 0.194), vec4(0.355, 0.050, -0.076, -0.454), vec4(-0.047, 0.024, 0.066, 0.124), vec4(-0.219, 0.023, -0.027, -0.107)) * bufB[0] + mat4(vec4(0.043, 0.170, -0.005, -0.133), vec4(-0.053, -0.503, -0.048, -0.048), vec4(-0.049, -0.002, 0.073, 0.209), vec4(-0.199, 0.045, 0.063, 0.083)) * bufB[1] + mat4(vec4(-0.070, -0.078, -0.112, 0.251), vec4(-0.002, 0.113, -0.003, 0.165), vec4(-0.184, -0.079, -0.110, 0.224), vec4(-0.021, -0.235, -0.230, -0.023)) * bufB[2] + mat4(vec4(-0.023, 0.277, 0.173, 0.156), vec4(0.201, -0.035, 0.024, 0.190), vec4(0.102, -0.347, 0.047, 0.009), vec4(0.243, 0.023, 0.432, -0.205)) * bufB[3] + mat4(vec4(0.104, -0.187, 0.048, -0.058), vec4(-0.145, -0.113, -0.168, -0.128), vec4(-0.333, 0.077, 0.185, 0.076), vec4(-0.023, -0.087, 0.094, 0.220)) * bufB[4] + mat4(vec4(-0.109, -0.166, -0.299, 0.021), vec4(0.161, 0.050, -0.055, 0.215), vec4(0.274, -0.080, -0.231, 0.308), vec4(0.065, -0.206, 0.193, 0.050)) * bufB[5] + mat4(vec4(0.019, 0.030, 0.204, 0.033), vec4(0.259, 0.003, -0.072, -0.300), vec4(-0.194, 0.067, 0.172, 0.289), vec4(-0.020, 0.277, -0.029, 0.108)) * bufB[6] + mat4(vec4(-0.222, -0.129, -0.055, -0.142), vec4(0.159, 0.021, 0.103, 0.037), vec4(0.199, -0.201, 0.055, 0.078), vec4(-0.199, 0.033, -0.094, -0.083)) * bufB[7] + mat4(vec4(0.349, 0.241, -0.353, -0.285), vec4(0.117, -0.010, 0.413, 0.158), vec4(0.106, 0.173, 0.009, 0.309), vec4(-0.111, -0.103, 0.243, -0.142)) * bufB[8] + mat4(vec4(-0.073, -0.062, -0.169, -0.180), vec4(0.182, 0.194, -0.289, -0.143), vec4(0.008, 0.018, -0.025, -0.122), vec4(0.045, 0.024, 0.087, -0.298)) * bufB[9];
bufA[2] = vec4(-0.031, -0.211, -0.203, 0.460) + mat4(vec4(0.042, 0.208, 0.026, 0.123), vec4(-0.110, 0.161, 0.232, -0.182), vec4(0.150, -0.107, -0.086, -0.350), vec4(-0.228, 0.270, -0.191, 0.147)) * bufB[0] + mat4(vec4(0.053, 0.065, -0.399, -0.087), vec4(-0.095, -0.055, -0.054, 0.110), vec4(0.034, 0.179, -0.010, 0.139), vec4(-0.021, 0.040, 0.020, -0.189)) * bufB[1] + mat4(vec4(0.014, -0.045, -0.144, -0.079), vec4(0.044, -0.240, 0.009, 0.182), vec4(0.133, -0.046, 0.206, 0.240), vec4(0.168, 0.208, 0.101, 0.095)) * bufB[2] + mat4(vec4(0.066, -0.171, -0.202, -0.063), vec4(0.319, 0.056, -0.042, -0.145), vec4(-0.135, 0.104, 0.061, -0.259), vec4(0.011, 0.158, -0.128, 0.032)) * bufB[3] + mat4(vec4(0.126, 0.001, -0.030, -0.291), vec4(-0.158, 0.073, -0.218, 0.076), vec4(-0.128, 0.014, 0.207, -0.047), vec4(0.110, -0.086, -0.091, 0.023)) * bufB[4] + mat4(vec4(-0.148, -0.100, 0.081, 0.220), vec4(-0.069, 0.283, 0.151, -0.121), vec4(-0.299, 0.080, -0.008, -0.338), vec4(0.039, 0.195, 0.160, 0.105)) * bufB[5] + mat4(vec4(0.114, -0.076, 0.043, -0.067), vec4(0.321, 0.047, -0.037, 0.150), vec4(0.072, -0.106, 0.107, -0.122), vec4(-0.018, 0.190, 0.160, 0.015)) * bufB[6] + mat4(vec4(0.052, 0.100, -0.059, 0.126), vec4(0.078, -0.267, 0.241, 0.203), vec4(-0.034, -0.076, -0.003, 0.157), vec4(-0.013, 0.048, 0.127, 0.067)) * bufB[7] + mat4(vec4(-0.064, -0.021, -0.180, 0.005), vec4(0.014, -0.093, 0.024, -0.117), vec4(0.049, -0.170, -0.232, -0.116), vec4(0.027, -0.190, -0.202, 0.030)) * bufB[8] + mat4(vec4(-0.319, 0.577, -0.276, 0.298), vec4(0.043, -0.222, -0.172, -0.033), vec4(0.136, 0.165, -0.071, -0.096), vec4(-0.011, -0.068, -0.296, 0.148)) * bufB[9];
bufA[3] = vec4(0.411, 0.072, 0.152, 0.306) + mat4(vec4(-0.019, 0.048, -0.077, -0.096), vec4(-0.203, -0.270, -0.012, -0.214), vec4(-0.020, -0.086, 0.044, 0.151), vec4(0.247, 0.140, -0.000, 0.227)) * bufB[0] + mat4(vec4(0.160, 0.072, 0.032, 0.106), vec4(-0.068, 0.121, -0.171, -0.040), vec4(0.226, 0.053, 0.106, -0.090), vec4(0.188, -0.319, 0.024, -0.050)) * bufB[1] + mat4(vec4(0.044, -0.230, 0.178, 0.089), vec4(-0.012, 0.119, 0.391, -0.006), vec4(0.086, -0.172, -0.253, 0.067), vec4(-0.114, 0.036, -0.186, 0.113)) * bufB[2] + mat4(vec4(0.172, 0.101, 0.028, 0.151), vec4(0.320, -0.098, -0.041, -0.027), vec4(-0.179, 0.041, -0.074, 0.201), vec4(-0.017, -0.017, -0.198, -0.193)) * bufB[3] + mat4(vec4(0.237, -0.223, -0.005, 0.291), vec4(-0.158, -0.143, 0.182, 0.241), vec4(0.465, -0.413, -0.042, 0.169), vec4(0.026, 0.125, 0.246, -0.013)) * bufB[4] + mat4(vec4(-0.089, 0.056, 0.078, 0.122), vec4(-0.049, -0.094, 0.004, -0.208), vec4(-0.005, -0.041, 0.180, 0.191), vec4(-0.276, 0.129, 0.051, -0.209)) * bufB[5] + mat4(vec4(0.204, 0.061, -0.141, -0.078), vec4(-0.003, 0.245, -0.141, 0.119), vec4(0.196, -0.066, 0.078, -0.175), vec4(-0.261, -0.016, -0.026, 0.023)) * bufB[6] + mat4(vec4(-0.046, -0.025, 0.222, 0.188), vec4(0.060, 0.110, -0.177, 0.165), vec4(-0.003, 0.039, 0.003, 0.185), vec4(0.142, 0.256, 0.114, 0.140)) * bufB[7] + mat4(vec4(0.148, 0.049, 0.027, -0.090), vec4(-0.114, 0.455, -0.347, -0.247), vec4(0.092, -0.068, 0.062, -0.079), vec4(0.091, 0.117, 0.121, 0.231)) * bufB[8] + mat4(vec4(-0.199, 0.131, -0.267, -0.067), vec4(-0.081, 0.217, 0.074, -0.114), vec4(-0.011, 0.007, -0.178, 0.167), vec4(0.066, -0.030, -0.051, -0.265)) * bufB[9];
bufA[4] = vec4(-0.217, -0.225, 0.239, 0.287) + mat4(vec4(0.018, -0.133, -0.223, 0.064), vec4(0.110, 0.182, -0.099, -0.028), vec4(-0.187, 0.317, -0.122, -0.007), vec4(0.146, -0.080, -0.119, 0.283)) * bufB[0] + mat4(vec4(-0.060, 0.042, -0.142, -0.050), vec4(-0.055, -0.046, -0.214, -0.062), vec4(0.097, -0.057, -0.131, 0.017), vec4(0.130, -0.183, 0.019, -0.106)) * bufB[1] + mat4(vec4(-0.101, -0.100, -0.169, 0.217), vec4(0.222, -0.115, -0.151, 0.262), vec4(0.024, -0.080, 0.062, 0.188), vec4(0.101, 0.075, 0.155, 0.055)) * bufB[2] + mat4(vec4(-0.045, 0.001, 0.105, 0.225), vec4(-0.017, 0.002, 0.252, -0.451), vec4(-0.212, -0.108, 0.077, -0.221), vec4(0.156, 0.044, 0.157, -0.017)) * bufB[3] + mat4(vec4(-0.295, -0.000, -0.188, -0.232), vec4(-0.051, 0.181, -0.055, -0.315), vec4(-0.315, -0.029, -0.085, -0.226), vec4(-0.087, -0.032, -0.122, -0.336)) * bufB[4] + mat4(vec4(-0.321, 0.093, -0.065, 0.178), vec4(0.052, 0.272, 0.033, -0.258), vec4(0.044, 0.382, -0.498, -0.017), vec4(-0.313, -0.483, -0.041, -0.098)) * bufB[5] + mat4(vec4(-0.112, -0.114, 0.158, 0.181), vec4(-0.134, -0.078, 0.051, 0.219), vec4(0.104, -0.049, -0.154, 0.089), vec4(-0.025, 0.453, 0.276, -0.035)) * bufB[6] + mat4(vec4(-0.301, 0.290, -0.124, -0.094), vec4(-0.041, 0.154, -0.020, 0.064), vec4(0.179, 0.186, -0.163, 0.139), vec4(-0.144, 0.044, 0.001, 0.258)) * bufB[7] + mat4(vec4(0.325, 0.153, -0.019, 0.029), vec4(-0.189, 0.013, 0.204, -0.273), vec4(0.060, -0.113, 0.093, 0.055), vec4(0.034, 0.085, 0.182, 0.080)) * bufB[8] + mat4(vec4(0.459, -0.339, 0.114, 0.158), vec4(-0.056, -0.072, -0.106, -0.050), vec4(-0.242, -0.092, 0.196, -0.239), vec4(-0.225, 0.154, 0.108, 0.289)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 6
bufA[0] = vec4(-0.504, 0.193, -0.248, 0.438) + mat4(vec4(-0.259, -0.337, 0.213, 0.058), vec4(0.152, -0.022, -0.079, 0.147), vec4(0.107, 0.122, -0.139, 0.268), vec4(-0.019, 0.014, -0.217, -0.216)) * bufB[0] + mat4(vec4(0.072, 0.009, 0.246, -0.123), vec4(0.155, 0.044, 0.133, -0.044), vec4(-0.067, 0.067, -0.171, -0.055), vec4(-0.214, 0.030, 0.401, 0.042)) * bufB[1] + mat4(vec4(0.146, -0.003, -0.253, 0.040), vec4(0.072, 0.058, 0.100, 0.021), vec4(-0.164, -0.088, 0.478, 0.381), vec4(0.012, 0.228, -0.301, -0.100)) * bufB[2] + mat4(vec4(0.057, 0.140, -0.153, -0.169), vec4(0.119, 0.066, -0.136, 0.277), vec4(-0.115, -0.098, -0.028, -0.194), vec4(-0.042, 0.110, -0.336, -0.063)) * bufB[3] + mat4(vec4(0.142, 0.216, -0.269, -0.056), vec4(-0.385, 0.161, 0.245, -0.147), vec4(0.033, 0.084, -0.462, -0.305), vec4(0.213, 0.372, 0.093, 0.208)) * bufB[4] + mat4(vec4(0.128, 0.009, 0.043, 0.114), vec4(-0.012, -0.222, -0.126, 0.018), vec4(0.119, -0.088, -0.466, -0.076), vec4(-0.024, 0.007, -0.118, 0.268)) * bufB[5] + mat4(vec4(-0.131, -0.175, 0.221, 0.024), vec4(-0.196, -0.229, 0.171, 0.384), vec4(-0.055, 0.007, -0.214, 0.131), vec4(0.026, 0.332, -0.169, -0.264)) * bufB[6] + mat4(vec4(-0.060, 0.061, -0.313, 0.020), vec4(-0.260, 0.000, -0.007, -0.143), vec4(0.298, -0.042, -0.115, 0.008), vec4(0.109, 0.257, -0.011, 0.107)) * bufB[7] + mat4(vec4(-0.007, 0.038, 0.121, 0.053), vec4(-0.067, -0.015, -0.018, -0.027), vec4(-0.069, -0.199, -0.318, 0.057), vec4(0.147, -0.073, 0.115, -0.118)) * bufB[8] + mat4(vec4(0.170, 0.041, -0.207, 0.050), vec4(0.011, -0.004, 0.070, 0.203), vec4(-0.015, 0.013, -0.276, 0.221), vec4(0.054, 0.203, 0.138, -0.024)) * bufB[9];
bufA[1] = vec4(-0.086, 0.456, -0.289, -0.478) + mat4(vec4(-0.199, -0.200, -0.153, 0.093), vec4(0.006, 0.080, 0.051, 0.271), vec4(0.121, -0.219, 0.034, 0.329), vec4(-0.172, -0.162, 0.170, 0.003)) * bufB[0] + mat4(vec4(0.419, -0.170, -0.176, 0.183), vec4(0.103, 0.261, 0.002, 0.155), vec4(0.385, -0.197, 0.217, 0.165), vec4(0.175, 0.129, -0.030, 0.374)) * bufB[1] + mat4(vec4(0.133, 0.068, 0.102, 0.023), vec4(-0.083, -0.180, -0.161, 0.243), vec4(-0.024, 0.052, -0.257, 0.251), vec4(-0.031, 0.114, 0.023, -0.004)) * bufB[2] + mat4(vec4(0.190, -0.003, 0.117, 0.053), vec4(0.345, 0.246, 0.421, -0.330), vec4(-0.208, 0.126, 0.080, -0.158), vec4(0.140, -0.091, 0.049, 0.044)) * bufB[3] + mat4(vec4(-0.108, 0.137, -0.233, 0.174), vec4(-0.069, -0.047, -0.205, -0.263), vec4(0.035, -0.059, -0.039, 0.068), vec4(-0.120, 0.267, -0.177, -0.235)) * bufB[4] + mat4(vec4(0.176, -0.090, -0.077, 0.226), vec4(-0.473, -0.121, -0.091, 0.004), vec4(-0.036, -0.086, -0.509, 0.098), vec4(-0.026, 0.059, -0.166, 0.133)) * bufB[5] + mat4(vec4(-0.238, -0.007, 0.143, -0.168), vec4(0.108, 0.288, -0.365, 0.095), vec4(0.020, 0.191, -0.186, -0.269), vec4(0.076, -0.307, -0.052, 0.143)) * bufB[6] + mat4(vec4(-0.186, 0.090, -0.343, 0.011), vec4(-0.155, 0.139, -0.177, -0.094), vec4(0.083, -0.019, 0.120, -0.332), vec4(-0.409, -0.001, 0.279, 0.087)) * bufB[7] + mat4(vec4(-0.241, -0.093, -0.035, 0.061), vec4(-0.066, 0.273, -0.067, -0.011), vec4(-0.283, 0.467, 0.040, 0.195), vec4(-0.189, 0.048, 0.070, 0.122)) * bufB[8] + mat4(vec4(0.362, -0.075, -0.037, 0.112), vec4(0.081, 0.189, 0.205, -0.188), vec4(0.033, -0.112, -0.142, -0.268), vec4(0.036, 0.052, 0.361, -0.222)) * bufB[9];
bufA[2] = vec4(-0.079, 0.179, -0.173, -0.097) + mat4(vec4(-0.090, -0.163, -0.174, 0.143), vec4(-0.156, 0.097, -0.148, 0.162), vec4(-0.026, -0.106, 0.171, -0.203), vec4(0.033, -0.295, -0.017, 0.110)) * bufB[0] + mat4(vec4(-0.121, -0.324, 0.309, -0.118), vec4(-0.006, 0.093, -0.070, -0.013), vec4(0.267, 0.291, 0.327, 0.183), vec4(0.051, -0.008, 0.191, 0.038)) * bufB[1] + mat4(vec4(0.157, 0.237, 0.104, -0.034), vec4(0.004, 0.403, -0.026, -0.443), vec4(-0.190, -0.074, 0.019, 0.233), vec4(-0.016, -0.051, -0.130, 0.132)) * bufB[2] + mat4(vec4(-0.016, -0.134, -0.181, -0.005), vec4(-0.025, -0.022, 0.670, -0.067), vec4(-0.008, -0.070, 0.027, 0.078), vec4(0.023, 0.260, -0.020, -0.010)) * bufB[3] + mat4(vec4(0.145, -0.079, -0.370, -0.130), vec4(0.085, -0.089, -0.170, 0.079), vec4(-0.097, 0.013, 0.291, 0.197), vec4(-0.109, -0.039, 0.019, 0.134)) * bufB[4] + mat4(vec4(-0.047, -0.151, -0.199, 0.140), vec4(-0.080, -0.171, -0.019, -0.012), vec4(-0.025, -0.115, -0.049, -0.253), vec4(0.031, 0.112, -0.039, 0.060)) * bufB[5] + mat4(vec4(0.199, 0.188, 0.237, -0.129), vec4(-0.248, 0.079, 0.134, 0.109), vec4(0.289, 0.312, 0.045, -0.036), vec4(0.031, 0.027, 0.096, -0.001)) * bufB[6] + mat4(vec4(0.115, 0.040, -0.125, -0.079), vec4(-0.180, 0.056, 0.170, 0.209), vec4(0.070, 0.318, 0.183, -0.296), vec4(0.151, 0.227, 0.124, -0.096)) * bufB[7] + mat4(vec4(-0.110, -0.050, -0.009, -0.211), vec4(-0.135, -0.026, 0.018, 0.165), vec4(0.155, -0.027, -0.028, -0.203), vec4(-0.171, -0.331, 0.059, 0.339)) * bufB[8] + mat4(vec4(-0.267, 0.236, -0.277, 0.148), vec4(-0.094, 0.115, -0.079, -0.082), vec4(-0.220, 0.065, -0.256, -0.311), vec4(0.312, 0.237, -0.200, -0.158)) * bufB[9];
bufA[3] = vec4(0.181, 0.087, 0.486, 0.149) + mat4(vec4(0.286, -0.114, -0.244, 0.181), vec4(-0.260, -0.036, -0.142, 0.079), vec4(-0.519, 0.105, 0.239, -0.075), vec4(-0.310, -0.253, -0.058, -0.023)) * bufB[0] + mat4(vec4(0.527, 0.456, 0.003, -0.156), vec4(-0.211, 0.086, 0.285, 0.062), vec4(0.217, 0.011, -0.011, -0.058), vec4(0.023, 0.210, 0.271, 0.205)) * bufB[1] + mat4(vec4(0.166, -0.390, -0.058, 0.197), vec4(0.232, -0.135, -0.375, 0.053), vec4(-0.154, -0.101, -0.088, -0.407), vec4(-0.129, 0.185, -0.090, 0.284)) * bufB[2] + mat4(vec4(0.013, -0.185, 0.073, -0.090), vec4(-0.016, 0.160, 0.071, 0.270), vec4(0.013, 0.240, 0.317, 0.127), vec4(-0.014, -0.389, -0.126, 0.126)) * bufB[3] + mat4(vec4(0.116, 0.219, 0.051, 0.022), vec4(-0.152, 0.170, 0.207, -0.022), vec4(-0.040, -0.269, -0.274, -0.228), vec4(-0.040, 0.348, -0.320, -0.100)) * bufB[4] + mat4(vec4(0.053, 0.083, 0.257, -0.266), vec4(0.008, -0.157, -0.002, 0.118), vec4(0.144, -0.188, -0.033, -0.087), vec4(0.150, -0.126, 0.236, 0.126)) * bufB[5] + mat4(vec4(-0.009, -0.184, 0.236, -0.074), vec4(-0.004, -0.098, -0.071, -0.167), vec4(0.164, 0.191, 0.029, -0.220), vec4(0.053, 0.005, -0.130, -0.020)) * bufB[6] + mat4(vec4(-0.033, 0.531, 0.059, -0.106), vec4(0.118, 0.072, -0.426, 0.053), vec4(0.184, 0.082, 0.034, -0.036), vec4(0.078, 0.381, -0.145, -0.066)) * bufB[7] + mat4(vec4(-0.116, -0.058, 0.150, -0.031), vec4(-0.162, 0.383, 0.184, -0.128), vec4(-0.128, 0.099, -0.118, 0.032), vec4(0.189, 0.244, 0.012, 0.208)) * bufB[8] + mat4(vec4(-0.078, -0.084, -0.101, 0.003), vec4(-0.048, -0.147, -0.201, -0.050), vec4(0.448, 0.255, -0.046, 0.002), vec4(-0.136, 0.069, 0.024, -0.209)) * bufB[9];
bufA[4] = vec4(0.352, -0.064, 0.322, -0.068) + mat4(vec4(-0.012, 0.107, -0.023, 0.057), vec4(-0.108, -0.129, -0.121, -0.101), vec4(0.174, 0.291, 0.081, 0.121), vec4(-0.120, 0.114, 0.018, 0.243)) * bufB[0] + mat4(vec4(0.060, 0.184, -0.276, 0.094), vec4(0.024, -0.207, 0.017, 0.290), vec4(-0.028, 0.068, 0.141, 0.168), vec4(-0.410, -0.444, 0.013, -0.006)) * bufB[1] + mat4(vec4(0.076, 0.150, -0.010, 0.155), vec4(0.194, -0.039, -0.117, -0.234), vec4(-0.166, -0.122, 0.544, 0.203), vec4(0.163, -0.059, -0.012, -0.018)) * bufB[2] + mat4(vec4(-0.171, -0.177, -0.152, -0.193), vec4(0.156, 0.147, 0.243, -0.030), vec4(0.009, -0.019, 0.233, -0.022), vec4(0.253, -0.097, 0.061, 0.061)) * bufB[3] + mat4(vec4(0.008, 0.067, 0.158, 0.157), vec4(0.092, -0.262, -0.288, -0.016), vec4(0.072, 0.178, 0.048, 0.213), vec4(0.409, 0.061, 0.120, -0.137)) * bufB[4] + mat4(vec4(-0.324, 0.044, 0.121, -0.166), vec4(-0.053, -0.203, 0.118, -0.067), vec4(-0.111, 0.009, -0.291, 0.156), vec4(0.289, 0.069, 0.141, 0.079)) * bufB[5] + mat4(vec4(-0.004, -0.211, 0.005, 0.227), vec4(-0.170, -0.079, 0.171, -0.003), vec4(0.127, 0.205, -0.137, -0.496), vec4(0.139, 0.329, -0.142, -0.049)) * bufB[6] + mat4(vec4(0.095, 0.061, 0.059, -0.151), vec4(0.217, -0.089, -0.174, -0.073), vec4(0.183, 0.252, -0.147, -0.239), vec4(0.252, -0.200, -0.243, -0.078)) * bufB[7] + mat4(vec4(0.099, -0.005, 0.075, -0.087), vec4(0.133, 0.181, -0.291, 0.168), vec4(0.226, 0.023, 0.144, -0.019), vec4(-0.221, 0.022, 0.038, 0.276)) * bufB[8] + mat4(vec4(-0.081, 0.149, 0.114, 0.081), vec4(-0.060, 0.202, -0.097, -0.135), vec4(0.247, 0.040, -0.218, -0.024), vec4(0.007, -0.011, 0.088, 0.087)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 7
bufA[0] = vec4(0.000, 0.273, -0.539, -0.332) + mat4(vec4(0.296, -0.207, -0.034, -0.095), vec4(0.220, -0.127, 0.071, 0.020), vec4(-0.148, 0.011, -0.119, -0.082), vec4(0.093, -0.410, -0.287, -0.068)) * bufB[0] + mat4(vec4(-0.560, -0.083, -0.142, 0.215), vec4(0.246, -0.462, -0.118, -0.289), vec4(0.030, -0.193, 0.167, -0.372), vec4(0.188, 0.009, -0.196, -0.041)) * bufB[1] + mat4(vec4(0.184, 0.031, 0.298, 0.030), vec4(0.051, 0.069, 0.041, -0.284), vec4(0.304, 0.016, 0.179, 0.080), vec4(0.052, 0.122, -0.215, 0.020)) * bufB[2] + mat4(vec4(0.136, 0.234, -0.033, -0.326), vec4(0.117, -0.147, -0.050, -0.225), vec4(-0.030, -0.242, -0.032, 0.392), vec4(-0.150, -0.302, -0.177, -0.086)) * bufB[3] + mat4(vec4(-0.225, -0.036, -0.319, -0.193), vec4(0.121, 0.009, -0.160, -0.028), vec4(0.194, -0.310, -0.185, -0.090), vec4(0.217, 0.076, -0.065, 0.051)) * bufB[4] + mat4(vec4(0.407, 0.153, 0.258, -0.270), vec4(0.113, -0.180, -0.072, -0.348), vec4(0.128, -0.082, -0.002, 0.415), vec4(-0.057, -0.181, 0.077, -0.182)) * bufB[5] + mat4(vec4(0.083, 0.226, -0.151, -0.039), vec4(-0.015, -0.126, -0.004, -0.314), vec4(0.042, 0.006, 0.161, -0.568), vec4(0.109, 0.056, -0.011, 0.276)) * bufB[6] + mat4(vec4(-0.002, -0.073, 0.191, -0.185), vec4(0.035, 0.199, -0.012, -0.165), vec4(-0.139, 0.100, -0.138, -0.156), vec4(0.153, 0.059, 0.148, -0.271)) * bufB[7] + mat4(vec4(-0.328, 0.131, 0.030, 0.299), vec4(-0.237, -0.145, -0.037, -0.022), vec4(-0.075, -0.056, 0.049, 0.086), vec4(-0.104, -0.401, -0.155, -0.136)) * bufB[8] + mat4(vec4(0.406, 0.230, -0.139, 0.265), vec4(-0.088, 0.066, -0.139, -0.018), vec4(-0.007, 0.368, 0.060, 0.072), vec4(-0.098, 0.320, 0.191, -0.115)) * bufB[9];
bufA[1] = vec4(-0.135, 0.333, 0.138, 0.294) + mat4(vec4(0.088, 0.400, -0.127, 0.045), vec4(0.151, -0.103, -0.264, -0.153), vec4(0.099, -0.118, -0.160, -0.110), vec4(0.099, 0.053, 0.140, 0.029)) * bufB[0] + mat4(vec4(-0.152, -0.162, -0.381, -0.035), vec4(-0.080, -0.154, 0.029, -0.286), vec4(0.262, -0.028, -0.015, 0.164), vec4(-0.030, 0.172, 0.150, -0.103)) * bufB[1] + mat4(vec4(0.058, -0.049, -0.335, -0.039), vec4(-0.239, 0.089, -0.126, 0.106), vec4(0.091, 0.509, 0.049, -0.052), vec4(0.019, 0.007, 0.223, 0.008)) * bufB[2] + mat4(vec4(-0.126, -0.075, -0.199, 0.005), vec4(-0.032, -0.178, -0.408, 0.002), vec4(0.005, -0.036, 0.023, -0.106), vec4(0.015, 0.013, 0.088, -0.112)) * bufB[3] + mat4(vec4(0.123, -0.031, 0.217, 0.079), vec4(0.331, 0.151, -0.066, -0.104), vec4(0.000, 0.136, -0.030, -0.078), vec4(0.242, -0.022, -0.058, -0.099)) * bufB[4] + mat4(vec4(-0.155, 0.052, 0.213, -0.441), vec4(-0.153, 0.155, -0.144, 0.047), vec4(0.013, -0.071, -0.268, -0.156), vec4(-0.032, -0.028, 0.290, -0.266)) * bufB[5] + mat4(vec4(0.250, -0.047, 0.099, 0.296), vec4(0.355, 0.170, -0.003, 0.299), vec4(0.034, -0.164, -0.119, 0.053), vec4(-0.007, -0.297, -0.193, 0.135)) * bufB[6] + mat4(vec4(0.038, -0.033, -0.199, -0.181), vec4(0.063, 0.288, -0.229, -0.290), vec4(-0.010, -0.032, 0.212, 0.100), vec4(0.237, 0.185, -0.083, -0.375)) * bufB[7] + mat4(vec4(-0.153, 0.008, -0.203, 0.014), vec4(-0.131, 0.020, 0.334, -0.088), vec4(0.069, 0.337, 0.330, -0.025), vec4(-0.280, -0.044, 0.138, -0.163)) * bufB[8] + mat4(vec4(0.318, 0.072, -0.064, 0.188), vec4(-0.102, 0.310, 0.015, -0.124), vec4(-0.037, 0.093, -0.083, -0.071), vec4(0.095, -0.192, -0.403, 0.062)) * bufB[9];
bufA[2] = vec4(0.048, 0.004, -0.150, -0.516) + mat4(vec4(-0.364, 0.015, -0.022, -0.108), vec4(0.031, 0.096, 0.083, -0.169), vec4(0.323, -0.120, -0.471, -0.294), vec4(0.273, 0.022, 0.215, -0.195)) * bufB[0] + mat4(vec4(-0.036, 0.134, -0.033, 0.315), vec4(0.478, -0.271, 0.188, -0.125), vec4(0.138, -0.084, -0.058, 0.270), vec4(-0.202, 0.207, -0.122, 0.026)) * bufB[1] + mat4(vec4(-0.057, -0.294, 0.104, -0.114), vec4(0.160, -0.045, -0.063, 0.233), vec4(-0.070, -0.182, 0.176, 0.340), vec4(0.042, -0.209, 0.186, 0.216)) * bufB[2] + mat4(vec4(0.351, -0.139, -0.215, 0.125), vec4(0.102, -0.199, 0.205, 0.132), vec4(-0.106, 0.049, 0.170, 0.101), vec4(-0.064, -0.060, 0.264, 0.146)) * bufB[3] + mat4(vec4(-0.081, 0.083, -0.045, -0.100), vec4(-0.093, -0.361, 0.296, 0.167), vec4(0.204, -0.123, 0.218, -0.160), vec4(0.020, -0.142, -0.498, -0.060)) * bufB[4] + mat4(vec4(0.182, 0.057, -0.071, 0.169), vec4(-0.065, 0.163, 0.035, -0.338), vec4(-0.194, -0.073, -0.167, -0.224), vec4(0.223, 0.141, -0.027, -0.057)) * bufB[5] + mat4(vec4(0.023, -0.267, -0.021, -0.228), vec4(-0.178, 0.148, 0.118, 0.194), vec4(0.068, -0.104, -0.322, -0.112), vec4(0.052, -0.319, 0.054, 0.051)) * bufB[6] + mat4(vec4(0.065, -0.097, 0.266, -0.171), vec4(0.051, -0.347, -0.152, 0.072), vec4(0.206, 0.133, -0.005, -0.091), vec4(-0.052, 0.288, -0.050, 0.110)) * bufB[7] + mat4(vec4(0.016, -0.125, -0.134, 0.056), vec4(0.225, 0.222, 0.060, -0.030), vec4(0.164, 0.436, 0.055, 0.321), vec4(-0.095, 0.084, -0.169, -0.028)) * bufB[8] + mat4(vec4(-0.157, 0.087, 0.287, 0.004), vec4(-0.207, -0.003, 0.201, 0.070), vec4(0.114, -0.017, 0.142, -0.128), vec4(0.243, -0.009, -0.181, -0.030)) * bufB[9];
bufA[3] = vec4(-0.300, -0.361, -0.274, -0.142) + mat4(vec4(0.093, -0.046, -0.010, -0.281), vec4(-0.501, -0.233, -0.196, -0.072), vec4(0.245, 0.225, -0.032, -0.034), vec4(-0.070, -0.006, -0.079, 0.079)) * bufB[0] + mat4(vec4(0.158, 0.123, 0.075, -0.206), vec4(-0.039, 0.057, 0.051, 0.084), vec4(-0.274, -0.218, -0.053, 0.257), vec4(-0.078, -0.029, -0.157, -0.039)) * bufB[1] + mat4(vec4(0.052, 0.177, -0.104, 0.216), vec4(-0.075, 0.153, -0.092, 0.126), vec4(0.063, 0.017, -0.064, -0.190), vec4(-0.054, 0.205, 0.002, -0.154)) * bufB[2] + mat4(vec4(0.382, 0.034, -0.183, 0.046), vec4(0.033, -0.088, 0.086, -0.307), vec4(-0.142, -0.177, -0.336, -0.061), vec4(-0.068, -0.576, -0.255, 0.050)) * bufB[3] + mat4(vec4(0.342, -0.067, -0.107, 0.158), vec4(0.240, 0.155, -0.359, -0.156), vec4(-0.256, -0.104, 0.371, 0.326), vec4(-0.228, -0.014, -0.004, -0.165)) * bufB[4] + mat4(vec4(0.331, -0.030, -0.583, 0.016), vec4(0.214, 0.203, -0.039, -0.371), vec4(0.174, 0.065, -0.546, -0.085), vec4(0.441, -0.199, -0.185, -0.128)) * bufB[5] + mat4(vec4(-0.392, 0.348, -0.179, -0.148), vec4(-0.225, 0.120, -0.220, 0.168), vec4(-0.169, -0.241, -0.046, 0.039), vec4(0.357, -0.048, -0.315, 0.155)) * bufB[6] + mat4(vec4(0.073, -0.210, -0.213, -0.154), vec4(0.402, 0.233, -0.125, 0.000), vec4(-0.012, 0.010, 0.311, -0.172), vec4(0.150, -0.173, 0.322, 0.319)) * bufB[7] + mat4(vec4(0.333, -0.239, 0.330, 0.096), vec4(-0.101, 0.161, 0.198, 0.084), vec4(0.010, 0.061, 0.182, 0.088), vec4(0.162, 0.126, 0.180, -0.116)) * bufB[8] + mat4(vec4(0.085, 0.275, 0.040, -0.191), vec4(0.152, 0.360, -0.314, -0.054), vec4(0.600, 0.035, 0.200, -0.571), vec4(0.397, 0.038, -0.114, 0.307)) * bufB[9];
bufA[4] = vec4(0.042, 0.516, -0.399, -0.001) + mat4(vec4(-0.119, -0.101, -0.213, 0.104), vec4(0.224, 0.086, -0.197, -0.032), vec4(0.295, 0.235, -0.362, 0.159), vec4(0.173, 0.164, 0.113, 0.062)) * bufB[0] + mat4(vec4(0.070, -0.283, 0.144, 0.104), vec4(-0.177, 0.299, -0.049, 0.134), vec4(0.113, -0.159, -0.122, 0.231), vec4(0.108, 0.072, -0.173, -0.040)) * bufB[1] + mat4(vec4(-0.060, 0.113, -0.031, -0.058), vec4(-0.231, -0.220, -0.012, -0.056), vec4(0.219, -0.200, 0.057, -0.072), vec4(-0.113, 0.183, -0.009, -0.229)) * bufB[2] + mat4(vec4(-0.183, 0.040, 0.098, -0.135), vec4(0.206, -0.067, -0.007, -0.389), vec4(-0.132, 0.009, -0.118, 0.213), vec4(0.066, 0.147, 0.180, -0.252)) * bufB[3] + mat4(vec4(-0.189, 0.046, -0.103, 0.015), vec4(-0.301, -0.005, -0.008, -0.213), vec4(0.067, -0.124, -0.043, -0.251), vec4(0.432, 0.293, 0.168, 0.045)) * bufB[4] + mat4(vec4(-0.056, -0.081, -0.107, -0.171), vec4(-0.398, -0.036, -0.190, -0.114), vec4(-0.267, 0.159, -0.180, 0.106), vec4(0.052, -0.248, 0.085, 0.020)) * bufB[5] + mat4(vec4(0.173, -0.252, -0.101, -0.029), vec4(0.106, -0.031, -0.145, -0.267), vec4(0.131, 0.061, 0.342, 0.042), vec4(-0.254, -0.029, -0.198, -0.066)) * bufB[6] + mat4(vec4(-0.284, 0.061, -0.001, 0.191), vec4(-0.091, 0.237, 0.095, -0.011), vec4(-0.025, -0.230, -0.185, -0.002), vec4(-0.591, 0.043, 0.079, 0.133)) * bufB[7] + mat4(vec4(0.111, 0.109, 0.383, 0.074), vec4(0.217, 0.199, -0.136, 0.093), vec4(0.230, -0.003, 0.035, 0.219), vec4(0.102, -0.090, -0.241, -0.026)) * bufB[8] + mat4(vec4(-0.028, -0.068, 0.089, -0.242), vec4(-0.290, -0.185, 0.125, -0.086), vec4(0.019, -0.193, -0.231, 0.183), vec4(0.247, 0.133, 0.126, 0.124)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 8
bufA[0] = vec4(0.279, 0.238, -0.027, -0.508) + mat4(vec4(0.199, -0.060, 0.161, 0.362), vec4(-0.027, 0.152, 0.173, 0.010), vec4(-0.478, -0.295, -0.432, -0.013), vec4(0.009, 0.054, -0.164, 0.056)) * bufB[0] + mat4(vec4(-0.134, -0.040, -0.174, 0.065), vec4(-0.121, -0.224, -0.020, -0.011), vec4(0.426, 0.004, 0.195, 0.156), vec4(-0.082, 0.274, 0.024, 0.384)) * bufB[1] + mat4(vec4(-0.209, -0.247, -0.022, -0.014), vec4(-0.216, -0.022, -0.369, -0.032), vec4(-0.059, -0.160, 0.099, -0.078), vec4(-0.087, -0.418, -0.235, 0.244)) * bufB[2] + mat4(vec4(0.021, -0.114, 0.045, 0.072), vec4(0.191, 0.413, -0.188, 0.017), vec4(0.106, 0.002, -0.341, 0.087), vec4(-0.253, -0.086, -0.137, -0.237)) * bufB[3] + mat4(vec4(0.042, 0.141, 0.305, -0.007), vec4(0.073, 0.128, -0.520, 0.007), vec4(0.130, 0.187, -0.042, 0.060), vec4(-0.122, 0.251, -0.196, -0.303)) * bufB[4] + mat4(vec4(-0.199, -0.102, 0.078, -0.323), vec4(0.441, -0.037, -0.100, -0.076), vec4(-0.093, -0.176, 0.133, 0.271), vec4(0.096, -0.680, -0.143, -0.112)) * bufB[5] + mat4(vec4(0.263, 0.312, 0.148, 0.107), vec4(0.364, -0.021, -0.012, -0.065), vec4(-0.119, -0.066, -0.206, 0.278), vec4(-0.209, -0.269, 0.087, 0.119)) * bufB[6] + mat4(vec4(0.098, 0.371, -0.263, -0.049), vec4(0.143, 0.020, 0.303, -0.288), vec4(-0.499, -0.252, -0.108, 0.170), vec4(0.173, 0.183, -0.048, 0.221)) * bufB[7] + mat4(vec4(0.163, 0.315, 0.348, -0.137), vec4(0.341, 0.082, -0.200, 0.214), vec4(-0.173, -0.029, -0.161, -0.024), vec4(-0.013, 0.136, -0.239, 0.044)) * bufB[8] + mat4(vec4(-0.247, -0.027, -0.021, 0.051), vec4(-0.039, -0.086, 0.349, 0.213), vec4(0.120, -0.022, -0.221, -0.240), vec4(-0.005, -0.185, 0.051, -0.002)) * bufB[9];
bufA[1] = vec4(-0.266, 0.203, -0.213, -0.049) + mat4(vec4(-0.171, -0.024, 0.261, -0.123), vec4(-0.210, -0.085, -0.108, -0.133), vec4(0.112, -0.049, -0.304, -0.077), vec4(0.381, 0.026, -0.078, 0.139)) * bufB[0] + mat4(vec4(-0.087, -0.195, -0.214, -0.162), vec4(0.399, -0.256, -0.334, 0.008), vec4(0.187, 0.167, 0.075, -0.009), vec4(0.306, 0.173, 0.040, 0.215)) * bufB[1] + mat4(vec4(-0.128, -0.036, 0.218, 0.174), vec4(-0.066, -0.109, -0.038, 0.075), vec4(0.100, 0.059, -0.039, 0.277), vec4(0.144, -0.139, -0.137, 0.161)) * bufB[2] + mat4(vec4(-0.009, -0.060, 0.296, 0.040), vec4(0.036, 0.126, -0.042, -0.229), vec4(0.501, 0.429, 0.011, 0.118), vec4(0.083, 0.120, 0.325, 0.375)) * bufB[3] + mat4(vec4(0.143, 0.151, -0.266, 0.085), vec4(-0.362, 0.143, -0.055, -0.169), vec4(0.320, -0.001, 0.028, 0.061), vec4(0.076, -0.051, -0.183, 0.005)) * bufB[4] + mat4(vec4(0.159, 0.211, 0.338, -0.301), vec4(-0.142, 0.238, -0.093, -0.021), vec4(0.091, 0.006, -0.148, -0.154), vec4(0.292, -0.218, -0.010, 0.147)) * bufB[5] + mat4(vec4(0.275, 0.044, 0.255, -0.167), vec4(0.136, 0.042, -0.190, 0.195), vec4(-0.003, 0.154, -0.026, 0.029), vec4(-0.114, -0.184, -0.283, 0.056)) * bufB[6] + mat4(vec4(-0.229, -0.069, -0.079, 0.049), vec4(0.208, -0.040, 0.006, -0.169), vec4(-0.337, 0.218, 0.211, 0.009), vec4(-0.125, 0.249, 0.258, 0.126)) * bufB[7] + mat4(vec4(0.086, -0.169, 0.077, 0.006), vec4(0.183, 0.170, -0.073, -0.034), vec4(0.333, -0.149, 0.129, -0.139), vec4(-0.173, 0.162, 0.173, -0.148)) * bufB[8] + mat4(vec4(0.025, -0.252, 0.265, -0.094), vec4(0.247, 0.215, 0.131, 0.045), vec4(-0.012, 0.157, -0.131, 0.239), vec4(-0.174, 0.170, 0.267, -0.393)) * bufB[9];
bufA[2] = vec4(0.168, -0.260, -0.360, 0.405) + mat4(vec4(-0.113, -0.124, 0.046, 0.051), vec4(0.383, 0.118, -0.235, 0.041), vec4(-0.124, -0.154, -0.389, 0.048), vec4(0.117, -0.225, -0.007, 0.246)) * bufB[0] + mat4(vec4(-0.184, -0.032, 0.389, -0.236), vec4(-0.167, -0.057, -0.126, -0.346), vec4(-0.199, -0.120, 0.131, -0.125), vec4(0.435, -0.017, -0.029, 0.075)) * bufB[1] + mat4(vec4(0.071, 0.219, 0.152, 0.406), vec4(0.155, -0.169, 0.016, 0.048), vec4(-0.329, -0.173, 0.043, 0.112), vec4(-0.272, 0.458, 0.097, 0.047)) * bufB[2] + mat4(vec4(0.120, -0.063, -0.318, 0.082), vec4(0.039, 0.076, -0.085, -0.310), vec4(-0.119, 0.309, 0.032, 0.321), vec4(-0.190, -0.034, -0.081, 0.119)) * bufB[3] + mat4(vec4(0.058, 0.057, 0.141, 0.169), vec4(-0.338, -0.012, 0.045, -0.142), vec4(0.154, 0.009, -0.155, -0.461), vec4(0.288, -0.328, -0.290, -0.123)) * bufB[4] + mat4(vec4(-0.199, -0.062, 0.002, -0.183), vec4(-0.359, 0.459, 0.201, 0.381), vec4(-0.226, -0.241, 0.036, 0.199), vec4(0.195, 0.000, -0.282, 0.432)) * bufB[5] + mat4(vec4(0.034, -0.234, -0.514, -0.138), vec4(-0.121, 0.414, -0.102, 0.306), vec4(0.148, 0.110, 0.411, 0.655), vec4(-0.128, 0.106, 0.267, 0.353)) * bufB[6] + mat4(vec4(0.144, 0.126, -0.179, -0.135), vec4(0.194, 0.128, 0.054, -0.033), vec4(0.088, -0.345, -0.001, 0.057), vec4(-0.091, -0.068, 0.150, 0.134)) * bufB[7] + mat4(vec4(0.080, 0.058, -0.125, 0.071), vec4(0.305, 0.000, -0.063, -0.037), vec4(0.194, 0.157, -0.076, -0.048), vec4(-0.106, 0.225, -0.234, 0.140)) * bufB[8] + mat4(vec4(0.041, -0.045, 0.108, -0.022), vec4(-0.170, 0.215, 0.059, -0.164), vec4(0.103, -0.176, 0.108, 0.260), vec4(-0.142, 0.167, -0.099, -0.145)) * bufB[9];
bufA[3] = vec4(0.319, 0.045, 0.299, -0.138) + mat4(vec4(0.117, -0.142, 0.079, 0.271), vec4(-0.022, -0.157, 0.011, -0.222), vec4(0.034, -0.281, 0.124, 0.189), vec4(0.177, -0.082, 0.247, -0.093)) * bufB[0] + mat4(vec4(-0.180, -0.014, 0.076, -0.044), vec4(-0.022, 0.172, -0.223, -0.102), vec4(-0.106, -0.058, 0.221, 0.144), vec4(0.068, -0.028, -0.051, 0.042)) * bufB[1] + mat4(vec4(-0.214, -0.146, -0.498, 0.108), vec4(-0.171, 0.287, -0.119, -0.106), vec4(-0.190, -0.066, 0.111, 0.133), vec4(-0.016, 0.195, -0.078, 0.491)) * bufB[2] + mat4(vec4(0.047, -0.058, -0.059, -0.085), vec4(-0.218, 0.013, -0.446, 0.001), vec4(-0.183, -0.083, 0.020, 0.164), vec4(-0.000, -0.221, 0.051, -0.098)) * bufB[3] + mat4(vec4(0.407, 0.088, -0.243, 0.292), vec4(0.218, 0.072, -0.201, -0.133), vec4(0.135, 0.191, 0.466, 0.176), vec4(0.236, 0.043, -0.082, 0.074)) * bufB[4] + mat4(vec4(-0.148, 0.055, 0.321, -0.136), vec4(0.470, 0.397, -0.048, 0.035), vec4(-0.022, -0.271, -0.026, 0.098), vec4(-0.173, -0.216, -0.002, -0.009)) * bufB[5] + mat4(vec4(0.258, -0.152, 0.230, 0.019), vec4(0.047, 0.240, -0.377, 0.018), vec4(0.091, -0.087, 0.222, 0.146), vec4(-0.121, -0.228, -0.050, 0.021)) * bufB[6] + mat4(vec4(-0.047, -0.052, -0.368, -0.261), vec4(0.296, 0.273, 0.146, -0.007), vec4(-0.178, 0.030, -0.224, -0.192), vec4(-0.192, 0.103, -0.352, 0.046)) * bufB[7] + mat4(vec4(0.514, -0.061, 0.190, -0.121), vec4(-0.135, 0.106, -0.171, -0.095), vec4(0.177, 0.011, 0.115, -0.256), vec4(-0.097, 0.046, 0.189, 0.124)) * bufB[8] + mat4(vec4(-0.388, -0.009, 0.184, 0.035), vec4(0.225, -0.037, 0.005, 0.029), vec4(-0.236, -0.186, -0.119, 0.005), vec4(0.107, 0.108, 0.240, 0.407)) * bufB[9];
bufA[4] = vec4(-0.147, -0.207, 0.521, 0.154) + mat4(vec4(-0.016, 0.062, -0.012, 0.152), vec4(-0.373, -0.186, 0.201, -0.016), vec4(-0.339, -0.179, -0.119, -0.132), vec4(0.079, -0.131, 0.070, 0.175)) * bufB[0] + mat4(vec4(-0.121, -0.340, 0.250, 0.269), vec4(0.175, 0.171, -0.097, -0.105), vec4(0.264, 0.133, -0.165, -0.037), vec4(-0.197, -0.115, 0.218, 0.398)) * bufB[1] + mat4(vec4(0.065, -0.120, -0.036, 0.031), vec4(-0.106, 0.002, 0.198, 0.044), vec4(0.181, -0.132, 0.044, -0.177), vec4(-0.123, 0.020, 0.210, 0.022)) * bufB[2] + mat4(vec4(-0.097, 0.188, -0.050, -0.044), vec4(-0.181, 0.276, -0.053, 0.112), vec4(0.124, -0.194, -0.017, 0.012), vec4(0.055, -0.309, -0.204, -0.191)) * bufB[3] + mat4(vec4(0.063, 0.118, 0.019, 0.001), vec4(-0.291, 0.649, -0.030, 0.047), vec4(-0.056, -0.251, 0.043, 0.095), vec4(0.093, -0.184, -0.044, -0.163)) * bufB[4] + mat4(vec4(-0.241, 0.169, -0.178, -0.054), vec4(-0.027, 0.060, 0.021, 0.014), vec4(0.146, 0.225, -0.094, 0.421), vec4(-0.174, -0.123, -0.239, 0.509)) * bufB[5] + mat4(vec4(-0.293, -0.291, 0.060, -0.075), vec4(0.168, -0.125, -0.330, -0.209), vec4(-0.240, 0.009, 0.182, 0.075), vec4(-0.055, 0.342, 0.108, -0.065)) * bufB[6] + mat4(vec4(0.130, -0.180, 0.051, -0.148), vec4(0.381, 0.263, 0.162, 0.112), vec4(0.065, 0.246, -0.280, -0.316), vec4(0.048, 0.084, 0.138, 0.045)) * bufB[7] + mat4(vec4(-0.287, 0.301, 0.048, -0.235), vec4(0.375, 0.316, 0.214, 0.010), vec4(0.002, -0.043, -0.074, -0.210), vec4(0.359, -0.058, -0.051, -0.287)) * bufB[8] + mat4(vec4(0.122, 0.255, -0.206, -0.006), vec4(-0.048, -0.344, 0.030, -0.070), vec4(0.198, 0.025, -0.156, -0.035), vec4(-0.267, 0.086, -0.110, -0.251)) * bufB[9];
tmp = atan(bufA[0]);
bufB[0] = tmp/0.67;
bufB[5] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[1]);
bufB[1] = tmp/0.67;
bufB[6] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[2]);
bufB[2] = tmp/0.67;
bufB[7] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[3]);
bufB[3] = tmp/0.67;
bufB[8] = (tmp*tmp - 0.45) / 0.396;
tmp = atan(bufA[4]);
bufB[4] = tmp/0.67;
bufB[9] = (tmp*tmp - 0.45) / 0.396;

 // layer 9
bufA[0] = vec4(0.248, 0.011, -0.110, 0.000) + mat4(vec4(-0.027, -0.211, -0.312, 0.000), vec4(-0.239, -0.310, 0.061, 0.000), vec4(-0.058, -0.071, -0.183, 0.000), vec4(-0.030, 0.000, -0.242, 0.000)) * bufB[0] + mat4(vec4(0.140, 0.030, 0.294, 0.000), vec4(0.001, -0.305, 0.015, 0.000), vec4(-0.104, -0.014, 0.056, 0.000), vec4(0.227, -0.020, -0.029, 0.000)) * bufB[1] + mat4(vec4(-0.238, -0.234, -0.111, 0.000), vec4(-0.095, -0.005, 0.019, 0.000), vec4(0.113, -0.290, -0.323, 0.000), vec4(0.169, 0.094, 0.021, 0.000)) * bufB[2] + mat4(vec4(-0.104, 0.149, 0.099, 0.000), vec4(-0.115, 0.074, -0.153, 0.000), vec4(0.290, 0.230, 0.141, 0.000), vec4(-0.185, 0.099, -0.340, 0.000)) * bufB[3] + mat4(vec4(0.392, 0.021, -0.131, 0.000), vec4(0.317, -0.130, -0.320, 0.000), vec4(-0.139, -0.249, -0.370, 0.000), vec4(0.336, -0.220, -0.425, 0.000)) * bufB[4] + mat4(vec4(0.350, 0.170, -0.050, 0.000), vec4(0.049, -0.014, -0.302, 0.000), vec4(-0.220, 0.150, 0.445, 0.000), vec4(-0.130, -0.025, 0.243, 0.000)) * bufB[5] + mat4(vec4(-0.264, -0.174, -0.262, 0.000), vec4(0.050, 0.141, 0.158, 0.000), vec4(-0.368, 0.107, 0.421, 0.000), vec4(0.154, 0.114, -0.217, 0.000)) * bufB[6] + mat4(vec4(0.035, -0.129, -0.170, 0.000), vec4(-0.116, -0.186, -0.164, 0.000), vec4(0.226, 0.212, 0.038, 0.000), vec4(0.101, -0.182, -0.330, 0.000)) * bufB[7] + mat4(vec4(-0.103, -0.146, -0.254, 0.000), vec4(0.173, 0.069, 0.256, 0.000), vec4(0.059, 0.083, -0.111, 0.000), vec4(0.055, -0.175, 0.188, 0.000)) * bufB[8] + mat4(vec4(0.413, 0.118, -0.247, 0.000), vec4(0.157, -0.080, -0.136, 0.000), vec4(0.303, 0.067, 0.206, 0.000), vec4(-0.002, -0.038, -0.014, 0.000)) * bufB[9];

 return vec4((1. / (1. + exp(-bufA[0]))).xyz, 1.0);
}

void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
    // Normalized pixel coordinates (from 0 to 1)
    vec2 uv = fragCoord/iResolution.xy;
    vec2 mouseNorm = (iMouse.xy / iResolution.xy) - vec2(0.5, 0.5);

    uv.x *= iResolution.x / iResolution.y;
    uv.x -= ((iResolution.x / iResolution.y) - 1.) /2.;

    // Shifted to the form expected by the CPPN
    uv = vec2(1., -1.) * 1.8 * (uv - vec2(0.5, 0.5));
    // Output to screen
    fragColor = cppn_fn(uv, 0.23*sin(iTime), 0.32*sin(0.69*iTime), 0.32*sin(0.44*iTime), 0.23*sin(1.23*iTime));
}
