Explorar o código

Added 15-shadowmaps-simple and 16-shadowmaps.

Dario Manesku %!s(int64=12) %!d(string=hai) anos
pai
achega
5594e9af8c
Modificáronse 100 ficheiros con 22716 adicións e 1 borrados
  1. 96 0
      examples/15-shadowmaps-simple/fs_smsimple_draw.sc
  2. 15 0
      examples/15-shadowmaps-simple/fs_smsimple_packdepth.sc
  3. 934 0
      examples/15-shadowmaps-simple/hollowcube.obj
  4. 22 0
      examples/15-shadowmaps-simple/makefile
  5. 670 0
      examples/15-shadowmaps-simple/shadowmaps_simple.cpp
  6. 7 0
      examples/15-shadowmaps-simple/varying.def.sc
  7. 24 0
      examples/15-shadowmaps-simple/vs_smsimple_draw.sc
  8. 15 0
      examples/15-shadowmaps-simple/vs_smsimple_packdepth.sc
  9. 235 0
      examples/16-shadowmaps/common.sh
  10. 11 0
      examples/16-shadowmaps/fs_shadowmaps_color_black.sc
  11. 84 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning.sh
  12. 15 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm.sc
  13. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_csm.sc
  14. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear.sc
  15. 18 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear_csm.sc
  16. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear_omni.sc
  17. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_omni.sc
  18. 15 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard.sc
  19. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_csm.sc
  20. 15 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear.sc
  21. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear_csm.sc
  22. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear_omni.sc
  23. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_omni.sc
  24. 151 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_main.sh
  25. 15 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf.sc
  26. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_csm.sc
  27. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear.sc
  28. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear_csm.sc
  29. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear_omni.sc
  30. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_omni.sc
  31. 15 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm.sc
  32. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_csm.sc
  33. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear.sc
  34. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear_csm.sc
  35. 17 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear_omni.sc
  36. 16 0
      examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_omni.sc
  37. 22 0
      examples/16-shadowmaps/fs_shadowmaps_color_texture.sc
  38. 14 0
      examples/16-shadowmaps/fs_shadowmaps_hblur.sc
  39. 15 0
      examples/16-shadowmaps/fs_shadowmaps_hblur_vsm.sc
  40. 14 0
      examples/16-shadowmaps/fs_shadowmaps_packdepth.sc
  41. 13 0
      examples/16-shadowmaps/fs_shadowmaps_packdepth_linear.sc
  42. 20 0
      examples/16-shadowmaps/fs_shadowmaps_packdepth_vsm.sc
  43. 20 0
      examples/16-shadowmaps/fs_shadowmaps_packdepth_vsm_linear.sc
  44. 14 0
      examples/16-shadowmaps/fs_shadowmaps_texture.sc
  45. 19 0
      examples/16-shadowmaps/fs_shadowmaps_unpackdepth.sc
  46. 20 0
      examples/16-shadowmaps/fs_shadowmaps_unpackdepth_vsm.sc
  47. 14 0
      examples/16-shadowmaps/fs_shadowmaps_vblur.sc
  48. 15 0
      examples/16-shadowmaps/fs_shadowmaps_vblur_vsm.sc
  49. 934 0
      examples/16-shadowmaps/hollowcube.obj
  50. 22 0
      examples/16-shadowmaps/makefile
  51. 3296 0
      examples/16-shadowmaps/shadowmaps.cpp
  52. 14156 0
      examples/16-shadowmaps/tree.obj
  53. 14 0
      examples/16-shadowmaps/varying.def.sc
  54. 13 0
      examples/16-shadowmaps/vs_shadowmaps_color.sc
  55. 25 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning.sc
  56. 36 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning_csm.sc
  57. 26 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear.sc
  58. 41 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear_csm.sc
  59. 40 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear_omni.sc
  60. 35 0
      examples/16-shadowmaps/vs_shadowmaps_color_lightning_omni.sc
  61. 16 0
      examples/16-shadowmaps/vs_shadowmaps_color_texture.sc
  62. 13 0
      examples/16-shadowmaps/vs_shadowmaps_depth.sc
  63. 32 0
      examples/16-shadowmaps/vs_shadowmaps_hblur.sc
  64. 15 0
      examples/16-shadowmaps/vs_shadowmaps_packdepth.sc
  65. 15 0
      examples/16-shadowmaps/vs_shadowmaps_packdepth_linear.sc
  66. 16 0
      examples/16-shadowmaps/vs_shadowmaps_texture.sc
  67. 20 0
      examples/16-shadowmaps/vs_shadowmaps_texture_lightning.sc
  68. 16 0
      examples/16-shadowmaps/vs_shadowmaps_unpackdepth.sc
  69. 32 0
      examples/16-shadowmaps/vs_shadowmaps_vblur.sc
  70. 30 1
      examples/common/entry/entry.cpp
  71. 10 0
      examples/common/fpumath.h
  72. BIN=BIN
      examples/runtime/meshes/hollowcube.bin
  73. BIN=BIN
      examples/runtime/meshes/tree.bin
  74. BIN=BIN
      examples/runtime/meshes/tricube.bin
  75. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_black.bin
  76. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning.bin
  77. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm.bin
  78. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_csm.bin
  79. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear.bin
  80. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear_csm.bin
  81. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear_omni.bin
  82. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_omni.bin
  83. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard.bin
  84. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_csm.bin
  85. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear.bin
  86. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear_csm.bin
  87. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear_omni.bin
  88. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_omni.bin
  89. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_omni.bin
  90. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf.bin
  91. 293 0
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_csm.bin
  92. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear.bin
  93. 321 0
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear_csm.bin
  94. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear_omni.bin
  95. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_omni.bin
  96. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pfc.bin
  97. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm.bin
  98. 194 0
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_csm.bin
  99. BIN=BIN
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_linear.bin
  100. 202 0
      examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_linear_csm.bin

+ 96 - 0
examples/15-shadowmaps-simple/fs_smsimple_draw.sc

@@ -0,0 +1,96 @@
+$input v_view, v_normal, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+uniform vec4 u_lightPos;
+SAMPLER2D(u_shadowMap, 4);
+
+vec2 lit(vec3 _ld, vec3 _n, vec3 _vd, float _exp)
+{
+	//diff
+	float ndotl = dot(_n, _ld);
+
+	//spec
+	vec3 r = 2.0*ndotl*_n - _ld; //reflect(_ld, _n);
+	float rdotv = dot(r, _vd);
+	float spec = step(0.0, ndotl) * pow(max(0.0, rdotv), _exp) * (2.0 + _exp)/8.0;
+
+	return max(vec2(ndotl, spec), 0.0);
+}
+
+float hardShadow(sampler2D _sampler, vec4 _shadowCoord, float _bias)
+{
+	vec2 texCoord = _shadowCoord.xy/_shadowCoord.w;
+
+	bool outside = any(greaterThan(texCoord, vec2_splat(1.0)))
+				|| any(lessThan   (texCoord, vec2_splat(0.0)))
+				 ;
+
+	if (outside)
+	{
+		return 1.0;
+	}
+
+	float receiver = (_shadowCoord.z-_bias)/_shadowCoord.w;
+	float occluder = unpackRgbaToFloat(texture2D(_sampler, texCoord) );
+
+	float visibility = step(receiver, occluder);
+	return visibility;
+}
+
+float PCF(sampler2D _sampler, vec4 _shadowCoord, float _bias, vec2 _texelSize)
+{
+	float result = 0.0;
+	vec2 offset = _texelSize * _shadowCoord.w;
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	return result / 16.0;
+}
+
+void main()
+{
+	const float shadowMapBias = 0.005;
+	const vec3 color = vec3_splat(1.0);
+
+	vec3 v  = v_view;
+	vec3 vd = -normalize(v);
+	vec3 n  = v_normal;
+	vec3 l  = u_lightPos.xyz;
+	vec3 ld = -normalize(l);
+
+	vec2 lc = lit(ld, n, vd, 1.0);
+
+	vec2 texelSize = vec2_splat(1.0/512.0);
+	float visibility = PCF(u_shadowMap, v_shadowcoord, shadowMapBias, texelSize);
+
+	vec3 ambient = 0.1 * color;
+	vec3 brdf = (lc.x + lc.y) * color * visibility;
+
+	vec3 final = toGamma(abs(ambient + brdf) );
+	gl_FragColor.xyz = final;
+	gl_FragColor.w = 1.0;
+}

+ 15 - 0
examples/15-shadowmaps-simple/fs_smsimple_packdepth.sc

@@ -0,0 +1,15 @@
+$input v_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	float depth = v_position.z/v_position.w * 0.5 + 0.5;
+	gl_FragColor = packFloatToRgba(depth);
+}
+

+ 934 - 0
examples/15-shadowmaps-simple/hollowcube.obj

@@ -0,0 +1,934 @@
+# Blender v2.66 (sub 1) OBJ File: ''
+# www.blender.org
+g holeycube
+v 1.500000 1.211657 0.000000
+v 1.500000 1.211656 1.209338
+v 1.236416 1.211656 1.209338
+v 1.236416 1.211657 0.000000
+v 1.500000 1.500000 0.000000
+v 1.500000 1.500000 1.209338
+v 1.236416 1.500000 1.209338
+v 1.236416 1.500000 0.000000
+v 1.500000 -0.000000 1.209337
+v 1.500000 -1.211657 1.209337
+v 1.236416 -1.211657 1.209337
+v 1.236416 -0.000000 1.209337
+v 1.236416 -0.000000 1.500000
+v 1.236416 -1.211657 1.500000
+v 1.500000 -1.211657 1.500000
+v 1.500000 -0.000000 1.500000
+v 1.500000 0.000000 -1.500000
+v 1.500000 -1.211656 -1.500000
+v 1.236416 -1.211656 -1.500000
+v 1.236416 0.000000 -1.500000
+v -1.236416 0.000000 -1.500000
+v -1.236416 -1.211656 -1.500000
+v -1.500000 -1.211656 -1.500000
+v -1.500000 0.000000 -1.500000
+v -1.500000 -0.000000 1.500000
+v -1.500000 -1.211657 1.500000
+v -1.236416 -1.211657 1.500000
+v -1.236416 -0.000000 1.500000
+v -1.236416 -0.000000 1.209337
+v -1.236416 -1.211657 1.209337
+v -1.500000 -1.211657 1.209337
+v -1.500000 -0.000000 1.209337
+v -1.500000 1.211656 1.500000
+v -1.500000 1.211656 1.209338
+v -1.236416 1.211656 1.209338
+v -1.236416 1.211656 1.500000
+v -1.500000 1.211657 -1.500000
+v -1.236416 1.211657 -1.500000
+v 1.236416 1.211657 -1.500000
+v 1.500000 1.211657 -1.500000
+v 1.500000 1.211656 1.500000
+v 1.236416 1.211656 1.500000
+v 0.000000 -1.500000 1.209337
+v -1.236416 -1.500000 1.209337
+v 0.000000 -1.211657 1.209337
+v 0.000000 1.211656 1.209338
+v -1.236416 1.500000 1.209338
+v 0.000000 1.500000 1.209338
+v -1.236416 1.500000 1.500000
+v 0.000000 1.500000 1.500000
+v 0.000000 1.211656 1.500000
+v 1.236416 1.500000 1.500000
+v -1.500000 1.500000 1.500000
+v 1.500000 1.500000 1.500000
+v 0.000000 -1.500000 -1.500000
+v -1.236416 -1.500000 -1.500000
+v 0.000000 -1.211656 -1.500000
+v 0.000000 -1.500000 -1.209338
+v -1.236416 -1.500000 -1.209338
+v 1.236416 -1.211657 -0.000000
+v 1.236416 -1.211656 -1.209338
+v 1.236416 -1.500000 -1.209338
+v 1.236416 -1.500000 -0.000000
+v 1.500000 -1.500000 -0.000000
+v 1.500000 -1.500000 -1.209338
+v 1.500000 -1.211656 -1.209338
+v 1.500000 -1.211657 -0.000000
+v 1.500000 -1.500000 1.209337
+v 1.236416 -1.500000 1.209337
+v -1.236416 -1.500000 -0.000000
+v -1.500000 -1.500000 1.209337
+v -1.500000 -1.500000 -0.000000
+v -1.500000 -1.500000 -1.209338
+v -1.236416 -1.211657 -0.000000
+v -1.236416 -1.211656 -1.209338
+v -1.500000 -1.211656 -1.209338
+v -1.500000 -1.211657 -0.000000
+v -1.500000 1.211657 0.000000
+v -1.500000 1.211657 -1.209337
+v -1.236416 1.211657 -1.209337
+v -1.236416 1.211657 0.000000
+v -1.236416 1.500000 0.000000
+v -1.236416 1.500000 -1.209337
+v -1.500000 1.500000 -1.209337
+v -1.500000 1.500000 0.000000
+v -1.500000 1.500000 1.209338
+v 1.500000 1.500000 -1.209337
+v 1.236416 1.500000 -1.209337
+v 1.236416 1.211657 -1.209337
+v 1.500000 1.211657 -1.209337
+v 1.236416 0.000000 -1.209337
+v 1.500000 0.000000 -1.209337
+v -1.500000 0.000000 -1.209337
+v -1.236416 0.000000 -1.209337
+v 0.000000 -1.211656 -1.209338
+v 0.000000 1.211657 -1.209337
+v 0.000000 1.211657 -1.500000
+v 0.000000 1.500000 -1.209337
+v 0.000000 1.500000 -1.500000
+v -1.236416 1.500000 -1.500000
+v 1.236416 1.500000 -1.500000
+v -1.500000 1.500000 -1.500000
+v 1.500000 1.500000 -1.500000
+v -1.500000 -1.500000 1.500000
+v -1.236416 -1.500000 1.500000
+v 0.000000 -1.211657 1.500000
+v -1.500000 -1.500000 -1.500000
+v 0.000000 -1.500000 1.500000
+v 1.236416 -1.500000 1.500000
+v 1.500000 -1.500000 1.500000
+v 1.236416 -1.500000 -1.500000
+v 1.500000 -1.500000 -1.500000
+v 1.500000 1.500000 0.000000
+v 1.500000 1.500000 1.209338
+v 1.236416 1.500000 1.209338
+v 1.236416 1.500000 0.000000
+v -1.236416 1.500000 1.209338
+v 0.000000 1.500000 1.209338
+v -1.236416 1.500000 1.500000
+v 0.000000 1.500000 1.500000
+v 1.236416 1.500000 1.500000
+v -1.500000 1.500000 1.500000
+v 1.500000 1.500000 1.500000
+v -1.236416 1.500000 0.000000
+v -1.236416 1.500000 -1.209337
+v -1.500000 1.500000 -1.209337
+v -1.500000 1.500000 0.000000
+v -1.500000 1.500000 1.209338
+v 1.500000 1.500000 -1.209337
+v 1.236416 1.500000 -1.209337
+v 0.000000 1.500000 -1.209337
+v 0.000000 1.500000 -1.500000
+v -1.236416 1.500000 -1.500000
+v 1.236416 1.500000 -1.500000
+v -1.500000 1.500000 -1.500000
+v 1.500000 1.500000 -1.500000
+v 0.000000 -1.500000 1.209337
+v 0.000000 -1.211657 1.209337
+v 0.000000 -1.211657 1.500000
+v 0.000000 -1.500000 1.500000
+v 1.236416 -1.211657 1.209337
+v -1.236416 -1.211657 1.209337
+v 0.000000 -1.211657 1.209337
+vn 0.000000 -1.000000 -0.000001
+vn 1.000000 0.000000 0.000000
+vn -1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 -0.000000 1.000000
+vn 0.000000 0.000001 -1.000000
+vn 0.000000 0.000000 0.000000
+vn 0.000000 -1.000000 -0.000000
+vn 0.000000 1.000000 0.000001
+vn 0.000000 -0.000001 1.000000
+vn 0.000000 1.000000 0.000000
+s off
+f 1//1 2//1 3//1 4//1
+f 2//2 1//2 5//2 6//2
+f 4//3 3//3 7//3 8//3
+f 9//4 10//4 11//4 12//4
+f 13//5 14//5 15//5 16//5
+f 17//4 18//4 19//4 20//4
+f 21//4 22//4 23//4 24//4
+f 25//5 26//5 27//5 28//5
+f 29//4 30//4 31//4 32//4
+f 32//3 31//3 26//3 25//3
+f 25//3 33//3 34//3 32//3
+f 32//6 34//6 35//6 29//6
+f 28//5 36//5 33//5 25//5
+f 24//4 37//4 38//4 21//4
+f 20//4 39//4 40//4 17//4
+f 16//5 41//5 42//5 13//5
+f 12//6 3//6 2//6 9//6
+f 9//2 2//2 41//2 16//2
+f 13//3 42//3 3//3 12//3
+f 43//4 44//4 30//4 45//4
+f 46//4 35//4 47//4 48//4
+f 99//7 100//7 133//7 132//7
+f 50//5 49//5 36//5 51//5
+f 51//5 42//5 52//5 50//5
+f 100//7 102//7 135//7 133//7
+f 48//4 7//4 3//4 46//4
+f 46//8 3//8 42//8 51//8
+f 49//5 53//5 33//5 36//5
+f 42//5 41//5 54//5 52//5
+f 86//7 53//7 122//7 128//7
+f 41//2 2//2 6//2 54//2
+f 55//4 56//4 22//4 57//4
+f 58//8 59//8 56//8 55//8
+f 60//3 61//3 62//3 63//3
+f 64//2 65//2 66//2 67//2
+f 67//9 66//9 61//9 60//9
+f 63//8 62//8 65//8 64//8
+f 64//8 68//8 69//8 63//8
+f 70//8 44//8 71//8 72//8
+f 72//8 73//8 59//8 70//8
+f 74//9 75//9 76//9 77//9
+f 78//8 79//8 80//8 81//8
+f 5//7 87//7 129//7 113//7
+f 54//7 6//7 114//7 123//7
+f 48//7 47//7 117//7 118//7
+f 87//7 103//7 136//7 129//7
+f 90//8 1//8 4//8 89//8
+f 1//2 90//2 87//2 5//2
+f 8//3 88//3 89//3 4//3
+f 20//3 19//3 61//3 91//3
+f 92//2 66//2 18//2 17//2
+f 91//10 61//10 66//10 92//10
+f 93//10 76//10 75//10 94//10
+f 24//3 23//3 76//3 93//3
+f 94//2 75//2 22//2 21//2
+f 21//2 38//2 80//2 94//2
+f 57//11 22//11 75//11 95//11
+f 96//8 80//8 38//8 97//8
+f 93//3 79//3 37//3 24//3
+f 94//5 80//5 79//5 93//5
+f 92//5 90//5 89//5 91//5
+f 17//2 40//2 90//2 92//2
+f 91//3 89//3 39//3 20//3
+f 95//5 75//5 59//5 58//5
+f 98//5 83//5 80//5 96//5
+f 103//7 101//7 134//7 136//7
+f 97//4 38//4 100//4 99//4
+f 99//4 101//4 39//4 97//4
+f 6//7 5//7 113//7 114//7
+f 96//5 89//5 88//5 98//5
+f 97//8 39//8 89//8 96//8
+f 38//4 37//4 102//4 100//4
+f 101//4 103//4 40//4 39//4
+f 7//7 48//7 118//7 115//7
+f 103//2 87//2 90//2 40//2
+f 26//3 31//3 71//3 104//3
+f 71//8 44//8 105//8 104//8
+f 28//2 27//2 30//2 29//2
+f 29//2 35//2 36//2 28//2
+f 74//2 30//2 44//2 70//2
+f 72//3 71//3 31//3 77//3
+f 77//11 31//11 30//11 74//11
+f 81//1 35//1 34//1 78//1
+f 78//3 34//3 86//3 85//3
+f 82//2 47//2 35//2 81//2
+f 45//11 30//11 27//11 106//11
+f 51//8 36//8 35//8 46//8
+f 102//7 84//7 126//7 135//7
+f 53//3 86//3 34//3 33//3
+f 107//3 73//3 76//3 23//3
+f 107//8 56//8 59//8 73//8
+f 70//2 59//2 75//2 74//2
+f 77//3 76//3 73//3 72//3
+f 85//3 84//3 79//3 78//3
+f 81//2 80//2 83//2 82//2
+f 88//7 8//7 116//7 130//7
+f 37//3 79//3 84//3 102//3
+f 60//11 11//11 10//11 67//11
+f 67//2 10//2 68//2 64//2
+f 63//3 69//3 11//3 60//3
+f 16//2 15//2 10//2 9//2
+f 12//3 11//3 14//3 13//3
+f 108//8 105//8 44//8 43//8
+f 106//5 27//5 105//5 108//5
+f 108//5 109//5 14//5 106//5
+f 43//8 69//8 109//8 108//8
+f 45//4 11//4 69//4 43//4
+f 106//11 14//11 11//11 45//11
+f 27//5 26//5 104//5 105//5
+f 109//5 110//5 15//5 14//5
+f 110//8 109//8 69//8 68//8
+f 110//2 68//2 10//2 15//2
+f 57//4 19//4 111//4 55//4
+f 55//8 111//8 62//8 58//8
+f 58//5 62//5 61//5 95//5
+f 95//11 61//11 19//11 57//11
+f 56//4 107//4 23//4 22//4
+f 19//4 18//4 112//4 111//4
+f 65//8 62//8 111//8 112//8
+f 18//2 66//2 65//2 112//2
+f 118//11 117//11 119//11 120//11
+f 120//11 121//11 115//11 118//11
+f 114//11 115//11 121//11 123//11
+f 124//11 125//11 126//11 127//11
+f 127//11 128//11 117//11 124//11
+f 116//11 115//11 114//11 113//11
+f 113//11 129//11 130//11 116//11
+f 132//11 133//11 125//11 131//11
+f 131//11 130//11 134//11 132//11
+f 136//11 134//11 130//11 129//11
+f 122//11 119//11 117//11 128//11
+f 126//11 125//11 133//11 135//11
+f 82//7 83//7 125//7 124//7
+f 49//7 50//7 120//7 119//7
+f 84//7 85//7 127//7 126//7
+f 50//7 52//7 121//7 120//7
+f 52//7 54//7 123//7 121//7
+f 53//7 49//7 119//7 122//7
+f 8//7 7//7 115//7 116//7
+f 85//7 86//7 128//7 127//7
+f 83//7 98//7 131//7 125//7
+f 47//7 82//7 124//7 117//7
+f 101//7 99//7 132//7 134//7
+f 98//7 88//7 130//7 131//7
+f 108//7 106//7 139//7 140//7
+f 45//7 43//7 137//7 138//7
+f 106//7 45//7 138//7 139//7
+f 43//7 108//7 140//7 137//7
+f 30//7 45//7 143//7 142//7
+f 45//7 11//7 141//7 143//7
+g holeycube.001
+v 0.037848 0.053616 0.680965
+v 0.414385 -0.152030 0.676229
+v 0.382376 -0.209100 0.609416
+v 0.005839 -0.003453 0.614153
+v 0.003506 -0.010911 0.752536
+v 0.380043 -0.216558 0.747800
+v 0.348034 -0.273628 0.680987
+v -0.028503 -0.067981 0.685724
+v 0.558694 0.119124 0.375479
+v 0.703003 0.390278 0.074730
+v 0.670994 0.333208 0.007917
+v 0.526685 0.062054 0.308667
+v 0.617185 0.012627 0.307529
+v 0.761494 0.283781 0.006779
+v 0.793503 0.340851 0.073591
+v 0.649194 0.069697 0.374341
+v -0.284880 0.579845 0.386090
+v -0.140571 0.850998 0.085340
+v -0.172580 0.793929 0.018528
+v -0.316889 0.522775 0.319277
+v -0.617185 -0.012627 -0.307529
+v -0.472876 0.258527 -0.608278
+v -0.504885 0.201457 -0.675091
+v -0.649194 -0.069697 -0.374341
+v 0.284880 -0.579845 -0.386090
+v 0.429189 -0.308690 -0.686840
+v 0.461198 -0.251621 -0.620027
+v 0.316889 -0.522775 -0.319277
+v 0.226389 -0.473348 -0.318139
+v 0.370698 -0.202194 -0.618889
+v 0.338689 -0.259263 -0.685701
+v 0.194380 -0.530418 -0.384952
+v 0.140571 -0.850998 -0.085340
+v 0.050071 -0.801571 -0.084202
+v 0.082080 -0.744502 -0.017389
+v 0.172580 -0.793929 -0.018528
+v -0.793503 -0.340851 -0.073591
+v -0.761494 -0.283781 -0.006779
+v -0.461198 0.251621 0.620027
+v -0.429189 0.308690 0.686840
+v 0.504885 -0.201457 0.675091
+v 0.472876 -0.258527 0.608278
+v 0.555187 0.130035 -0.377057
+v 0.405040 -0.137666 -0.690460
+v 0.520846 0.065507 -0.305486
+v 0.232228 -0.476801 0.296014
+v 0.047738 -0.809030 0.054181
+v 0.197886 -0.541329 0.367584
+v 0.138238 -0.858457 0.053043
+v 0.288386 -0.590756 0.366446
+v 0.322728 -0.526228 0.294875
+v 0.438534 -0.323055 0.679849
+v 0.106229 -0.915526 -0.013769
+v 0.470543 -0.265985 0.746662
+v -0.288386 0.590756 -0.366446
+v -0.438534 0.323055 -0.679849
+v -0.322728 0.526228 -0.294875
+v -0.197886 0.541329 -0.367584
+v -0.348034 0.273628 -0.680987
+v 0.294457 0.538855 0.012653
+v -0.082080 0.744502 0.017389
+v -0.047738 0.809030 -0.054181
+v 0.328799 0.603383 -0.058918
+v 0.360808 0.660452 0.007895
+v -0.015729 0.866099 0.012631
+v -0.050071 0.801571 0.084202
+v 0.326466 0.595925 0.079466
+v 0.737345 0.454805 0.003159
+v 0.705335 0.397736 -0.063654
+v 0.028503 0.067981 -0.685724
+v 0.373030 -0.194736 -0.757272
+v -0.003506 0.010911 -0.752536
+v -0.380043 0.216558 -0.747800
+v -0.005839 0.003453 -0.614153
+v -0.382376 0.209100 -0.609416
+v -0.414385 0.152030 -0.676229
+v -0.037848 -0.053616 -0.680965
+v -0.326466 -0.595925 -0.079466
+v -0.703003 -0.390278 -0.074730
+v -0.670994 -0.333208 -0.007917
+v -0.294457 -0.538855 -0.012653
+v -0.328799 -0.603383 0.058918
+v -0.705335 -0.397736 0.063654
+v -0.737345 -0.454805 -0.003159
+v -0.360808 -0.660452 -0.007895
+v 0.015729 -0.866099 -0.012631
+v -0.373030 0.194736 0.757272
+v -0.405040 0.137666 0.690460
+v -0.370698 0.202194 0.618889
+v -0.338689 0.259263 0.685701
+v -0.226389 0.473348 0.318139
+v -0.194380 0.530418 0.384952
+v -0.558694 -0.119124 -0.375479
+v -0.526685 -0.062054 -0.308667
+v -0.232228 0.476801 -0.296014
+v -0.520846 -0.065507 0.305486
+v -0.611346 -0.016080 0.306624
+v -0.555187 -0.130035 0.377057
+v -0.645688 -0.080608 0.378195
+v -0.795836 -0.348309 0.064792
+v -0.495540 0.187093 0.691598
+v -0.827845 -0.405378 -0.002021
+v -0.463531 0.244163 0.758410
+v 0.463531 -0.244163 -0.758410
+v 0.495540 -0.187093 -0.691598
+v 0.611346 0.016080 -0.306624
+v -0.470543 0.265985 -0.746662
+v 0.645688 0.080608 -0.378195
+v 0.795836 0.348309 -0.064792
+v 0.827845 0.405378 0.002021
+v -0.138238 0.858457 -0.053043
+v -0.106229 0.915526 0.013769
+v 0.003506 -0.010911 0.752536
+v 0.380043 -0.216558 0.747800
+v 0.348034 -0.273628 0.680987
+v -0.028503 -0.067981 0.685724
+v 0.047738 -0.809030 0.054181
+v 0.197886 -0.541329 0.367584
+v 0.138238 -0.858457 0.053043
+v 0.288386 -0.590756 0.366446
+v 0.438534 -0.323055 0.679849
+v 0.106229 -0.915526 -0.013769
+v 0.470543 -0.265985 0.746662
+v -0.328799 -0.603383 0.058918
+v -0.705335 -0.397736 0.063654
+v -0.737345 -0.454805 -0.003159
+v -0.360808 -0.660452 -0.007895
+v 0.015729 -0.866099 -0.012631
+v -0.373030 0.194736 0.757272
+v -0.405040 0.137666 0.690460
+v -0.555187 -0.130035 0.377057
+v -0.645688 -0.080608 0.378195
+v -0.795836 -0.348309 0.064792
+v -0.495540 0.187093 0.691598
+v -0.827845 -0.405378 -0.002021
+v -0.463531 0.244163 0.758410
+v 0.555187 0.130035 -0.377057
+v 0.520846 0.065507 -0.305486
+v 0.611346 0.016080 -0.306624
+v 0.645688 0.080608 -0.378195
+v 0.670994 0.333208 0.007917
+v 0.370698 -0.202194 -0.618889
+v 0.520846 0.065507 -0.305486
+vn 0.335692 0.630762 -0.699607
+vn 0.342281 0.610259 0.714442
+vn -0.342282 -0.610259 -0.714442
+vn -0.877584 0.479296 0.011038
+vn 0.877584 -0.479296 -0.011038
+vn -0.877584 0.479295 0.011038
+vn -0.342281 -0.610259 -0.714442
+vn -0.877584 0.479295 0.011039
+vn 0.877584 -0.479295 -0.011038
+vn 0.335693 0.630761 -0.699607
+vn -0.335692 -0.630762 0.699607
+vn 0.342282 0.610259 0.714442
+vn 0.877584 -0.479295 -0.011039
+vn -0.335693 -0.630761 0.699607
+vn -0.877584 0.479296 0.011039
+vn 0.335693 0.630761 -0.699608
+vn 0.877584 -0.479296 -0.011039
+vn -0.335693 -0.630761 0.699608
+s off
+f 144//12 145//12 146//12 147//12
+f 145//13 144//13 148//13 149//13
+f 147//14 146//14 150//14 151//14
+f 152//15 153//15 154//15 155//15
+f 156//16 157//16 158//16 159//16
+f 160//15 161//15 162//15 163//15
+f 164//17 165//17 166//17 167//17
+f 168//16 169//16 170//16 171//16
+f 172//15 173//15 174//15 175//15
+f 175//18 174//18 169//18 168//18
+f 168//14 176//14 177//14 175//14
+f 175//19 177//19 178//19 172//19
+f 171//16 179//16 176//16 168//16
+f 167//15 180//15 181//15 164//15
+f 163//15 182//15 183//15 160//15
+f 159//20 184//20 185//20 156//20
+f 155//19 146//19 145//19 152//19
+f 152//13 145//13 184//13 159//13
+f 156//18 185//18 146//18 155//18
+f 186//15 187//15 173//15 188//15
+f 189//15 178//15 190//15 191//15
+f 242//7 243//7 276//7 275//7
+f 193//16 192//16 179//16 194//16
+f 194//16 185//16 195//16 193//16
+f 243//7 245//7 278//7 276//7
+f 191//15 150//15 146//15 189//15
+f 189//21 146//21 185//21 194//21
+f 192//16 196//16 176//16 179//16
+f 185//16 184//16 197//16 195//16
+f 229//7 196//7 265//7 271//7
+f 184//13 145//13 149//13 197//13
+f 198//15 199//15 165//15 200//15
+f 201//21 202//21 199//21 198//21
+f 203//18 204//18 205//18 206//18
+f 207//13 208//13 209//13 210//13
+f 210//22 209//22 204//22 203//22
+f 206//21 205//21 208//21 207//21
+f 207//21 211//21 212//21 206//21
+f 213//21 187//21 214//21 215//21
+f 215//21 216//21 202//21 213//21
+f 217//22 218//22 219//22 220//22
+f 221//21 222//21 223//21 224//21
+f 148//7 230//7 272//7 256//7
+f 197//7 149//7 257//7 266//7
+f 191//7 190//7 260//7 261//7
+f 230//7 246//7 279//7 272//7
+f 233//21 144//21 147//21 232//21
+f 144//13 233//13 230//13 148//13
+f 151//14 231//14 232//14 147//14
+f 163//18 162//18 204//18 234//18
+f 235//23 209//23 161//23 160//23
+f 234//24 204//24 209//24 235//24
+f 236//24 219//24 218//24 237//24
+f 167//18 166//18 219//18 236//18
+f 237//13 218//13 165//13 164//13
+f 164//13 181//13 223//13 237//13
+f 200//25 165//25 218//25 238//25
+f 239//21 223//21 181//21 240//21
+f 236//14 222//14 180//14 167//14
+f 237//16 223//16 222//16 236//16
+f 235//16 233//16 232//16 234//16
+f 160//13 183//13 233//13 235//13
+f 234//18 232//18 182//18 163//18
+f 238//16 218//16 202//16 201//16
+f 241//16 226//16 223//16 239//16
+f 246//7 244//7 277//7 279//7
+f 240//15 181//15 243//15 242//15
+f 242//15 244//15 182//15 240//15
+f 149//7 148//7 256//7 257//7
+f 239//16 232//16 231//16 241//16
+f 240//21 182//21 232//21 239//21
+f 181//26 180//26 245//26 243//26
+f 244//15 246//15 183//15 182//15
+f 150//7 191//7 261//7 258//7
+f 246//13 230//13 233//13 183//13
+f 169//18 174//18 214//18 247//18
+f 214//21 187//21 248//21 247//21
+f 171//13 170//13 173//13 172//13
+f 172//13 178//13 179//13 171//13
+f 217//23 173//23 187//23 213//23
+f 215//18 214//18 174//18 220//18
+f 220//25 174//25 173//25 217//25
+f 224//12 178//12 177//12 221//12
+f 221//18 177//18 229//18 228//18
+f 225//13 190//13 178//13 224//13
+f 188//25 173//25 170//25 249//25
+f 194//21 179//21 178//21 189//21
+f 245//7 227//7 269//7 278//7
+f 196//14 229//14 177//14 176//14
+f 250//18 216//18 219//18 166//18
+f 250//27 199//27 202//27 216//27
+f 213//23 202//23 218//23 217//23
+f 220//18 219//18 216//18 215//18
+f 228//18 227//18 222//18 221//18
+f 224//13 223//13 226//13 225//13
+f 231//7 151//7 259//7 273//7
+f 180//14 222//14 227//14 245//14
+f 203//25 154//25 153//25 210//25
+f 210//13 153//13 211//13 207//13
+f 206//18 212//18 154//18 203//18
+f 159//23 158//23 153//23 152//23
+f 155//18 154//18 157//18 156//18
+f 251//21 248//21 187//21 186//21
+f 249//16 170//16 248//16 251//16
+f 251//16 252//16 157//16 249//16
+f 186//21 212//21 252//21 251//21
+f 188//15 154//15 212//15 186//15
+f 249//25 157//25 154//25 188//25
+f 170//16 169//16 247//16 248//16
+f 252//28 253//28 158//28 157//28
+f 253//21 252//21 212//21 211//21
+f 253//23 211//23 153//23 158//23
+f 200//15 162//15 254//15 198//15
+f 198//21 254//21 205//21 201//21
+f 201//16 205//16 204//16 238//16
+f 238//25 204//25 162//25 200//25
+f 199//15 250//15 166//15 165//15
+f 162//15 161//15 255//15 254//15
+f 208//21 205//21 254//21 255//21
+f 161//23 209//23 208//23 255//23
+f 261//25 260//25 262//25 263//25
+f 263//25 264//25 258//25 261//25
+f 257//29 258//29 264//29 266//29
+f 267//25 268//25 269//25 270//25
+f 270//25 271//25 260//25 267//25
+f 259//25 258//25 257//25 256//25
+f 256//25 272//25 273//25 259//25
+f 275//25 276//25 268//25 274//25
+f 274//25 273//25 277//25 275//25
+f 279//25 277//25 273//25 272//25
+f 265//25 262//25 260//25 271//25
+f 269//25 268//25 276//25 278//25
+f 225//7 226//7 268//7 267//7
+f 192//7 193//7 263//7 262//7
+f 227//7 228//7 270//7 269//7
+f 193//7 195//7 264//7 263//7
+f 195//7 197//7 266//7 264//7
+f 196//7 192//7 262//7 265//7
+f 151//7 150//7 258//7 259//7
+f 228//7 229//7 271//7 270//7
+f 226//7 241//7 274//7 268//7
+f 190//7 225//7 267//7 260//7
+f 244//7 242//7 275//7 277//7
+f 241//7 231//7 273//7 274//7
+f 251//7 249//7 282//7 283//7
+f 188//7 186//7 280//7 281//7
+f 249//7 188//7 281//7 282//7
+f 186//7 251//7 283//7 280//7
+f 173//7 188//7 286//7 285//7
+f 188//7 154//7 284//7 286//7
+g holeycube.002
+v 0.369385 2.003562 1.792544
+v 0.963329 0.880686 2.925211
+v 0.707927 0.635014 2.815589
+v 0.113983 1.757890 1.682922
+v 0.111409 2.147654 2.070667
+v 0.705351 1.024778 3.203335
+v 0.449950 0.779106 3.093713
+v -0.143993 1.901982 1.961045
+v 2.047380 0.275193 1.756502
+v 3.131433 -0.330301 0.587792
+v 2.876031 -0.575973 0.478171
+v 1.791978 0.029521 1.646880
+v 1.934732 -0.240361 1.919116
+v 3.018785 -0.845855 0.750406
+v 3.274187 -0.600183 0.860028
+v 2.190134 0.005311 2.028738
+v 0.716742 2.790825 -0.781068
+v 1.800794 2.185331 -1.949777
+v 1.545392 1.939659 -2.059399
+v 0.461340 2.545153 -0.890690
+v -1.934732 0.240361 -1.919116
+v -0.850680 -0.365133 -3.087824
+v -1.106082 -0.610805 -3.197446
+v -2.190134 -0.005311 -2.028738
+v -0.716742 -2.790825 0.781068
+v 0.367311 -3.396319 -0.387641
+v 0.622713 -3.150647 -0.278019
+v -0.461340 -2.545153 0.890690
+v -0.604093 -2.275271 0.618455
+v 0.479959 -2.880765 -0.550255
+v 0.224557 -3.126437 -0.659877
+v -0.859495 -2.520943 0.508833
+v -1.800794 -2.185331 1.949777
+v -1.943547 -1.915450 1.677542
+v -1.688145 -1.669778 1.787164
+v -1.545392 -1.939659 2.059399
+v -3.274187 0.600183 -0.860028
+v -3.018785 0.845855 -0.750406
+v -0.622713 3.150647 0.278019
+v -0.367311 3.396319 0.387641
+v 1.106082 0.610805 3.197446
+v 0.850680 0.365133 3.087824
+v 1.935972 -1.872461 -0.314165
+v 0.737936 -3.024857 -0.828377
+v 1.677995 -1.728369 -0.036042
+v -0.490109 -0.517382 2.301377
+v -1.946122 -1.525685 2.065288
+v -0.748086 -0.373290 2.579500
+v -1.803369 -1.795566 2.337522
+v -0.605333 -0.643171 2.851735
+v -0.347356 -0.787263 2.573611
+v 0.592703 0.509225 3.365948
+v -2.058771 -2.041239 2.227901
+v 0.848105 0.754897 3.475569
+v 0.605333 0.643171 -2.851735
+v -0.592703 -0.509225 -3.365948
+v 0.347356 0.787263 -2.573611
+v 0.748086 0.373290 -2.579500
+v -0.449950 -0.779106 -3.093713
+v 2.282089 0.546902 -0.654497
+v 1.688145 1.669778 -1.787164
+v 1.946122 1.525685 -2.065288
+v 2.540065 0.402810 -0.932619
+v 2.795467 0.648482 -0.822998
+v 2.201524 1.771358 -1.955666
+v 1.943547 1.915450 -1.677542
+v 2.537491 0.792574 -0.544875
+v 3.389409 -0.474393 0.309670
+v 3.134007 -0.720065 0.200048
+v 0.143993 -1.901982 -1.961045
+v 0.482534 -3.270529 -0.937999
+v -0.111409 -2.147654 -2.070667
+v -0.705351 -1.024778 -3.203335
+v -0.113983 -1.757890 -1.682922
+v -0.707927 -0.635014 -2.815589
+v -0.963329 -0.880686 -2.925211
+v -0.369385 -2.003562 -1.792544
+v -2.537491 -0.792574 0.544875
+v -3.131433 0.330301 -0.587792
+v -2.876031 0.575973 -0.478171
+v -2.282089 -0.546902 0.654497
+v -2.540065 -0.402810 0.932619
+v -3.134007 0.720065 -0.200048
+v -3.389409 0.474393 -0.309670
+v -2.795467 -0.648482 0.822998
+v -2.201524 -1.771358 1.955666
+v -0.482534 3.270529 0.937999
+v -0.737936 3.024857 0.828377
+v -0.479959 2.880765 0.550255
+v -0.224557 3.126437 0.659877
+v 0.604093 2.275271 -0.618455
+v 0.859495 2.520943 -0.508833
+v -2.047380 -0.275193 -1.756502
+v -1.791978 -0.029521 -1.646880
+v 0.490109 0.517382 -2.301377
+v -1.677995 1.728369 0.036042
+v -1.820749 1.998251 -0.236193
+v -1.935972 1.872461 0.314165
+v -2.078725 2.142343 0.041929
+v -3.276761 0.989947 -0.472284
+v -0.880689 3.294739 0.556142
+v -3.532163 0.744275 -0.581905
+v -0.625287 3.540411 0.665764
+v 0.625287 -3.540411 -0.665764
+v 0.880689 -3.294739 -0.556142
+v 1.820749 -1.998251 0.236193
+v -0.848105 -0.754897 -3.475569
+v 2.078725 -2.142343 -0.041929
+v 3.276761 -0.989947 0.472284
+v 3.532163 -0.744275 0.581905
+v 1.803369 1.795566 -2.337522
+v 2.058771 2.041239 -2.227901
+v 0.111409 2.147654 2.070667
+v 0.705351 1.024778 3.203335
+v 0.449950 0.779106 3.093713
+v -0.143993 1.901982 1.961045
+v -1.946122 -1.525685 2.065288
+v -0.748086 -0.373290 2.579500
+v -1.803369 -1.795566 2.337522
+v -0.605333 -0.643171 2.851735
+v 0.592703 0.509225 3.365948
+v -2.058771 -2.041239 2.227901
+v 0.848105 0.754897 3.475569
+v -2.540065 -0.402810 0.932619
+v -3.134007 0.720065 -0.200048
+v -3.389409 0.474393 -0.309670
+v -2.795467 -0.648482 0.822998
+v -2.201524 -1.771358 1.955666
+v -0.482534 3.270529 0.937999
+v -0.737936 3.024857 0.828377
+v -1.935972 1.872461 0.314165
+v -2.078725 2.142343 0.041929
+v -3.276761 0.989947 -0.472284
+v -0.880689 3.294739 0.556142
+v -3.532163 0.744275 -0.581905
+v -0.625287 3.540411 0.665764
+v 1.935972 -1.872461 -0.314165
+v 1.677995 -1.728369 -0.036042
+v 1.820749 -1.998251 0.236193
+v 2.078725 -2.142343 -0.041929
+v 2.876031 -0.575973 0.478171
+v 0.479959 -2.880765 -0.550255
+v 1.677995 -1.728369 -0.036042
+vn 0.635737 -0.355088 -0.685384
+vn 0.688513 0.662283 0.295519
+vn -0.688513 -0.662283 -0.295518
+vn -0.348983 0.659767 -0.665521
+vn 0.348982 -0.659767 0.665521
+vn -0.348982 0.659767 -0.665521
+vn 0.348982 -0.659768 0.665521
+vn -0.688513 -0.662283 -0.295519
+vn 0.348983 -0.659767 0.665521
+vn -0.348982 0.659768 -0.665521
+vn 0.688513 0.662283 0.295518
+vn 0.635737 -0.355089 -0.685383
+vn -0.635737 0.355088 0.685384
+vn 0.688512 0.662283 0.295519
+vn -0.635737 0.355089 0.685383
+vn -0.688512 -0.662283 -0.295519
+vn 0.635737 -0.355089 -0.685384
+vn -0.635737 0.355089 0.685384
+s off
+f 287//30 288//30 289//30 290//30
+f 288//31 287//31 291//31 292//31
+f 290//32 289//32 293//32 294//32
+f 295//33 296//33 297//33 298//33
+f 299//34 300//34 301//34 302//34
+f 303//33 304//33 305//33 306//33
+f 307//35 308//35 309//35 310//35
+f 311//36 312//36 313//36 314//36
+f 315//35 316//35 317//35 318//35
+f 318//37 317//37 312//37 311//37
+f 311//37 319//37 320//37 318//37
+f 318//33 320//33 321//33 315//33
+f 314//38 322//38 319//38 311//38
+f 310//35 323//35 324//35 307//35
+f 306//39 325//39 326//39 303//39
+f 302//34 327//34 328//34 299//34
+f 298//33 289//33 288//33 295//33
+f 295//40 288//40 327//40 302//40
+f 299//37 328//37 289//37 298//37
+f 329//33 330//33 316//33 331//33
+f 332//33 321//33 333//33 334//33
+f 385//7 386//7 419//7 418//7
+f 336//38 335//38 322//38 337//38
+f 337//38 328//38 338//38 336//38
+f 386//7 388//7 421//7 419//7
+f 334//33 293//33 289//33 332//33
+f 332//41 289//41 328//41 337//41
+f 335//38 339//38 319//38 322//38
+f 328//38 327//38 340//38 338//38
+f 372//7 339//7 408//7 414//7
+f 327//31 288//31 292//31 340//31
+f 341//33 342//33 308//33 343//33
+f 344//41 345//41 342//41 341//41
+f 346//32 347//32 348//32 349//32
+f 350//40 351//40 352//40 353//40
+f 353//42 352//42 347//42 346//42
+f 349//41 348//41 351//41 350//41
+f 350//41 354//41 355//41 349//41
+f 356//41 330//41 357//41 358//41
+f 358//41 359//41 345//41 356//41
+f 360//42 361//42 362//42 363//42
+f 364//41 365//41 366//41 367//41
+f 291//7 373//7 415//7 399//7
+f 340//7 292//7 400//7 409//7
+f 334//7 333//7 403//7 404//7
+f 373//7 389//7 422//7 415//7
+f 376//41 287//41 290//41 375//41
+f 287//43 376//43 373//43 291//43
+f 294//37 374//37 375//37 290//37
+f 306//37 305//37 347//37 377//37
+f 378//31 352//31 304//31 303//31
+f 377//38 347//38 352//38 378//38
+f 379//38 362//38 361//38 380//38
+f 310//32 309//32 362//32 379//32
+f 380//31 361//31 308//31 307//31
+f 307//31 324//31 366//31 380//31
+f 343//44 308//44 361//44 381//44
+f 382//41 366//41 324//41 383//41
+f 379//32 365//32 323//32 310//32
+f 380//38 366//38 365//38 379//38
+f 378//34 376//34 375//34 377//34
+f 303//31 326//31 376//31 378//31
+f 377//37 375//37 325//37 306//37
+f 381//38 361//38 345//38 344//38
+f 384//38 369//38 366//38 382//38
+f 389//7 387//7 420//7 422//7
+f 383//33 324//33 386//33 385//33
+f 385//33 387//33 325//33 383//33
+f 292//7 291//7 399//7 400//7
+f 382//38 375//38 374//38 384//38
+f 383//41 325//41 375//41 382//41
+f 324//33 323//33 388//33 386//33
+f 387//35 389//35 326//35 325//35
+f 293//7 334//7 404//7 401//7
+f 389//43 373//43 376//43 326//43
+f 312//45 317//45 357//45 390//45
+f 357//46 330//46 391//46 390//46
+f 314//31 313//31 316//31 315//31
+f 315//31 321//31 322//31 314//31
+f 360//31 316//31 330//31 356//31
+f 358//45 357//45 317//45 363//45
+f 363//44 317//44 316//44 360//44
+f 367//30 321//30 320//30 364//30
+f 364//32 320//32 372//32 371//32
+f 368//40 333//40 321//40 367//40
+f 331//44 316//44 313//44 392//44
+f 337//46 322//46 321//46 332//46
+f 388//7 370//7 412//7 421//7
+f 339//32 372//32 320//32 319//32
+f 393//37 359//37 362//37 309//37
+f 393//41 342//41 345//41 359//41
+f 356//40 345//40 361//40 360//40
+f 363//37 362//37 359//37 358//37
+f 371//32 370//32 365//32 364//32
+f 367//40 366//40 369//40 368//40
+f 374//7 294//7 402//7 416//7
+f 323//32 365//32 370//32 388//32
+f 346//44 297//44 296//44 353//44
+f 353//40 296//40 354//40 350//40
+f 349//32 355//32 297//32 346//32
+f 302//40 301//40 296//40 295//40
+f 298//37 297//37 300//37 299//37
+f 394//41 391//41 330//41 329//41
+f 392//38 313//38 391//38 394//38
+f 394//38 395//38 300//38 392//38
+f 329//41 355//41 395//41 394//41
+f 331//33 297//33 355//33 329//33
+f 392//44 300//44 297//44 331//44
+f 313//34 312//34 390//34 391//34
+f 395//38 396//38 301//38 300//38
+f 396//41 395//41 355//41 354//41
+f 396//40 354//40 296//40 301//40
+f 343//33 305//33 397//33 341//33
+f 341//41 397//41 348//41 344//41
+f 344//38 348//38 347//38 381//38
+f 381//47 347//47 305//47 343//47
+f 342//33 393//33 309//33 308//33
+f 305//33 304//33 398//33 397//33
+f 351//41 348//41 397//41 398//41
+f 304//40 352//40 351//40 398//40
+f 404//44 403//44 405//44 406//44
+f 406//44 407//44 401//44 404//44
+f 400//44 401//44 407//44 409//44
+f 410//44 411//44 412//44 413//44
+f 413//44 414//44 403//44 410//44
+f 402//44 401//44 400//44 399//44
+f 399//44 415//44 416//44 402//44
+f 418//44 419//44 411//44 417//44
+f 417//44 416//44 420//44 418//44
+f 422//47 420//47 416//47 415//47
+f 408//44 405//44 403//44 414//44
+f 412//44 411//44 419//44 421//44
+f 368//7 369//7 411//7 410//7
+f 335//7 336//7 406//7 405//7
+f 370//7 371//7 413//7 412//7
+f 336//7 338//7 407//7 406//7
+f 338//7 340//7 409//7 407//7
+f 339//7 335//7 405//7 408//7
+f 294//7 293//7 401//7 402//7
+f 371//7 372//7 414//7 413//7
+f 369//7 384//7 417//7 411//7
+f 333//7 368//7 410//7 403//7
+f 387//7 385//7 418//7 420//7
+f 384//7 374//7 416//7 417//7
+f 394//7 392//7 425//7 426//7
+f 331//7 329//7 423//7 424//7
+f 392//7 331//7 424//7 425//7
+f 329//7 394//7 426//7 423//7
+f 316//7 331//7 429//7 428//7
+f 331//7 297//7 427//7 429//7

+ 22 - 0
examples/15-shadowmaps-simple/makefile

@@ -0,0 +1,22 @@
+#
+# Copyright 2013 Dario Manesku. All rights reserved.
+# License: http://www.opensource.org/licenses/BSD-2-Clause
+#
+
+BGFX_DIR=../..
+RUNTIME_DIR=$(BGFX_DIR)/examples/runtime
+BUILD_DIR=../../.build
+
+include $(BGFX_DIR)/premake/shader.mk
+
+geometry: ../runtime/meshes/column.bin
+
+../runtime/meshes/column.bin: column.obj
+	../../tools/bin/geometryc -f column.obj -o ../runtime/meshes/column.bin --packnormal 1
+
+rebuild:
+	@make -s --no-print-directory TARGET=0 clean all
+	@make -s --no-print-directory TARGET=1 clean all
+	@make -s --no-print-directory TARGET=2 clean all
+	@make -s --no-print-directory TARGET=3 clean all
+	@make -s --no-print-directory TARGET=4 clean all

+ 670 - 0
examples/15-shadowmaps-simple/shadowmaps_simple.cpp

@@ -0,0 +1,670 @@
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include <string>
+#include <vector>
+#include <algorithm>
+
+#include "common.h"
+
+#include <bgfx.h>
+#include <bx/timer.h>
+#include <bx/readerwriter.h>
+#include "entry/entry.h"
+#include "fpumath.h"
+
+#define RENDER_PASS_0 0
+#define RENDER_PASS_1 1
+
+uint32_t packUint32(uint8_t _x, uint8_t _y, uint8_t _z, uint8_t _w)
+{
+	union
+	{
+		uint32_t ui32;
+		uint8_t arr[4];
+	} un;
+
+	un.arr[0] = _x;
+	un.arr[1] = _y;
+	un.arr[2] = _z;
+	un.arr[3] = _w;
+
+	return un.ui32;
+}
+
+uint32_t packF4u(float _x, float _y = 0.0f, float _z = 0.0f, float _w = 0.0f)
+{
+	const uint8_t xx = uint8_t(_x*127.0f + 128.0f);
+	const uint8_t yy = uint8_t(_y*127.0f + 128.0f);
+	const uint8_t zz = uint8_t(_z*127.0f + 128.0f);
+	const uint8_t ww = uint8_t(_w*127.0f + 128.0f);
+	return packUint32(xx, yy, zz, ww);
+}
+
+struct PosNormalVertex
+{
+	float    m_x;
+	float    m_y;
+	float    m_z;
+	uint32_t m_normal;
+};
+
+static const float s_texcoord = 5.0f;
+static const uint32_t s_numHPlaneVertices = 4;
+static PosNormalVertex s_hplaneVertices[s_numHPlaneVertices] =
+{
+	{ -1.0f, 0.0f,  1.0f, packF4u(0.0f, 1.0f, 0.0f) },
+	{  1.0f, 0.0f,  1.0f, packF4u(0.0f, 1.0f, 0.0f) },
+	{ -1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f) },
+	{  1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f) },
+};
+
+static const uint32_t s_numPlaneIndices = 6;
+static const uint16_t s_planeIndices[s_numPlaneIndices] =
+{
+	0, 1, 2,
+	1, 3, 2,
+};
+
+static const char* s_shaderPath = NULL;
+static bool s_flipV = false;
+static float s_texelHalf = 0.0f;
+static bgfx::RenderTargetHandle s_rtShadowMap;
+static bgfx::UniformHandle u_shadowMap;
+
+static void shaderFilePath(char* _out, const char* _name)
+{
+	strcpy(_out, s_shaderPath);
+	strcat(_out, _name);
+	strcat(_out, ".bin");
+}
+
+long int fsize(FILE* _file)
+{
+	long int pos = ftell(_file);
+	fseek(_file, 0L, SEEK_END);
+	long int size = ftell(_file);
+	fseek(_file, pos, SEEK_SET);
+	return size;
+}
+
+static const bgfx::Memory* load(const char* _filePath)
+{
+	FILE* file = fopen(_filePath, "rb");
+	if (NULL != file)
+	{
+		uint32_t size = (uint32_t)fsize(file);
+		const bgfx::Memory* mem = bgfx::alloc(size+1);
+		size_t ignore = fread(mem->data, 1, size, file);
+		BX_UNUSED(ignore);
+		fclose(file);
+		mem->data[mem->size-1] = '\0';
+		return mem;
+	}
+
+	return NULL;
+}
+
+static const bgfx::Memory* loadShader(const char* _name)
+{
+	char filePath[512];
+	shaderFilePath(filePath, _name);
+	return load(filePath);
+}
+
+static bgfx::ProgramHandle loadProgram(const char* _vsName, const char* _fsName)
+{
+	const bgfx::Memory* mem;
+
+	// Load vertex shader.
+	mem = loadShader(_vsName);
+	bgfx::VertexShaderHandle vsh = bgfx::createVertexShader(mem);
+
+	// Load fragment shader.
+	mem = loadShader(_fsName);
+	bgfx::FragmentShaderHandle fsh = bgfx::createFragmentShader(mem);
+
+	// Create program from shaders.
+	bgfx::ProgramHandle program = bgfx::createProgram(vsh, fsh);
+
+	// We can destroy vertex and fragment shader here since
+	// their reference is kept inside bgfx after calling createProgram.
+	// Vertex and fragment shader will be destroyed once program is
+	// destroyed.
+	bgfx::destroyVertexShader(vsh);
+	bgfx::destroyFragmentShader(fsh);
+
+	return program;
+}
+
+void mtxScaleRotateTranslate(float* _result
+							, const float _scaleX
+							, const float _scaleY
+							, const float _scaleZ
+							, const float _rotX
+							, const float _rotY
+							, const float _rotZ
+							, const float _translateX
+							, const float _translateY
+							, const float _translateZ
+							)
+{
+	float mtxRotateTranslate[16];
+	float mtxScale[16];
+
+	mtxRotateXYZ(mtxRotateTranslate, _rotX, _rotY, _rotZ);
+	mtxRotateTranslate[12] = _translateX;
+	mtxRotateTranslate[13] = _translateY;
+	mtxRotateTranslate[14] = _translateZ;
+
+	memset(mtxScale, 0, sizeof(float)*16);
+	mtxScale[0]  = _scaleX;
+	mtxScale[5]  = _scaleY;
+	mtxScale[10] = _scaleZ;
+	mtxScale[15] = 1.0f;
+
+	mtxMul(_result, mtxScale, mtxRotateTranslate);
+}
+
+struct Aabb
+{
+	float m_min[3];
+	float m_max[3];
+};
+
+struct Obb
+{
+	float m_mtx[16];
+};
+
+struct Sphere
+{
+	float m_center[3];
+	float m_radius;
+};
+
+struct Primitive
+{
+	uint32_t m_startIndex;
+	uint32_t m_numIndices;
+	uint32_t m_startVertex;
+	uint32_t m_numVertices;
+
+	Sphere m_sphere;
+	Aabb m_aabb;
+	Obb m_obb;
+};
+
+typedef std::vector<Primitive> PrimitiveArray;
+
+struct Group
+{
+	Group()
+	{
+		reset();
+	}
+
+	void reset()
+	{
+		m_vbh.idx = bgfx::invalidHandle;
+		m_ibh.idx = bgfx::invalidHandle;
+		m_prims.clear();
+	}
+
+	bgfx::VertexBufferHandle m_vbh;
+	bgfx::IndexBufferHandle m_ibh;
+	Sphere m_sphere;
+	Aabb m_aabb;
+	Obb m_obb;
+	PrimitiveArray m_prims;
+};
+;
+
+struct Mesh
+{
+	void load(const void* _vertices, uint32_t _numVertices, const bgfx::VertexDecl _decl, const uint16_t* _indices, uint32_t _numIndices)
+	{
+		Group group;
+		const bgfx::Memory* mem;
+		uint32_t size;
+
+		size = _numVertices*_decl.getStride();
+		mem = bgfx::makeRef(_vertices, size);
+		group.m_vbh = bgfx::createVertexBuffer(mem, _decl);
+
+		size = _numIndices*2;
+		mem = bgfx::makeRef(_indices, size);
+		group.m_ibh = bgfx::createIndexBuffer(mem);
+
+		//TODO:
+		// group.m_sphere = ...
+		// group.m_aabb = ...
+		// group.m_obb = ...
+		// group.m_prims = ...
+
+		m_groups.push_back(group);
+	}
+
+	void load(const char* _filePath)
+	{
+#define BGFX_CHUNK_MAGIC_VB BX_MAKEFOURCC('V', 'B', ' ', 0x0)
+#define BGFX_CHUNK_MAGIC_IB BX_MAKEFOURCC('I', 'B', ' ', 0x0)
+#define BGFX_CHUNK_MAGIC_PRI BX_MAKEFOURCC('P', 'R', 'I', 0x0)
+
+		bx::CrtFileReader reader;
+		reader.open(_filePath);
+
+		Group group;
+
+		uint32_t chunk;
+		while (4 == bx::read(&reader, chunk) )
+		{
+			switch (chunk)
+			{
+			case BGFX_CHUNK_MAGIC_VB:
+				{
+					bx::read(&reader, group.m_sphere);
+					bx::read(&reader, group.m_aabb);
+					bx::read(&reader, group.m_obb);
+
+					bx::read(&reader, m_decl);
+					uint16_t stride = m_decl.getStride();
+
+					uint16_t numVertices;
+					bx::read(&reader, numVertices);
+					const bgfx::Memory* mem = bgfx::alloc(numVertices*stride);
+					bx::read(&reader, mem->data, mem->size);
+
+					group.m_vbh = bgfx::createVertexBuffer(mem, m_decl);
+				}
+				break;
+
+			case BGFX_CHUNK_MAGIC_IB:
+				{
+					uint32_t numIndices;
+					bx::read(&reader, numIndices);
+					const bgfx::Memory* mem = bgfx::alloc(numIndices*2);
+					bx::read(&reader, mem->data, mem->size);
+					group.m_ibh = bgfx::createIndexBuffer(mem);
+				}
+				break;
+
+			case BGFX_CHUNK_MAGIC_PRI:
+				{
+					uint16_t len;
+					bx::read(&reader, len);
+
+					std::string material;
+					material.resize(len);
+					bx::read(&reader, const_cast<char*>(material.c_str() ), len);
+
+					uint16_t num;
+					bx::read(&reader, num);
+
+					for (uint32_t ii = 0; ii < num; ++ii)
+					{
+						bx::read(&reader, len);
+
+						std::string name;
+						name.resize(len);
+						bx::read(&reader, const_cast<char*>(name.c_str() ), len);
+
+						Primitive prim;
+						bx::read(&reader, prim.m_startIndex);
+						bx::read(&reader, prim.m_numIndices);
+						bx::read(&reader, prim.m_startVertex);
+						bx::read(&reader, prim.m_numVertices);
+						bx::read(&reader, prim.m_sphere);
+						bx::read(&reader, prim.m_aabb);
+						bx::read(&reader, prim.m_obb);
+
+						group.m_prims.push_back(prim);
+					}
+
+					m_groups.push_back(group);
+					group.reset();
+				}
+				break;
+
+			default:
+				DBG("%08x at %d", chunk, reader.seek() );
+				break;
+			}
+		}
+
+		reader.close();
+	}
+
+	void unload()
+	{
+		for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it)
+		{
+			const Group& group = *it;
+			bgfx::destroyVertexBuffer(group.m_vbh);
+
+			if (bgfx::isValid(group.m_ibh) )
+			{
+				bgfx::destroyIndexBuffer(group.m_ibh);
+			}
+		}
+		m_groups.clear();
+	}
+
+	void submit(uint8_t _view, float* _mtx, bgfx::ProgramHandle _program)
+	{
+		for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it)
+		{
+			const Group& group = *it;
+
+			// Set model matrix for rendering.
+			bgfx::setTransform(_mtx);
+			bgfx::setProgram(_program);
+			bgfx::setIndexBuffer(group.m_ibh);
+			bgfx::setVertexBuffer(group.m_vbh);
+
+			// Set shadow map.
+			bgfx::setTexture(4, u_shadowMap, s_rtShadowMap);
+
+			// Set render states.
+			bgfx::setState(0
+					|BGFX_STATE_RGB_WRITE
+					|BGFX_STATE_ALPHA_WRITE
+					|BGFX_STATE_DEPTH_WRITE
+					|BGFX_STATE_DEPTH_TEST_LESS
+					|BGFX_STATE_CULL_CCW
+					|BGFX_STATE_MSAA
+					);
+
+			// Submit primitive for rendering.
+			bgfx::submit(_view);
+		}
+	}
+
+	bgfx::VertexDecl m_decl;
+	typedef std::vector<Group> GroupArray;
+	GroupArray m_groups;
+};
+
+int _main_(int /*_argc*/, char** /*_argv*/)
+{
+	uint32_t width = 1280;
+	uint32_t height = 720;
+	uint32_t debug = BGFX_DEBUG_TEXT;
+	uint32_t reset = BGFX_RESET_VSYNC;
+
+	bgfx::init();
+	bgfx::reset(width, height, reset);
+
+	// Enable debug text.
+	bgfx::setDebug(debug);
+
+	// Setup root path for binary shaders. Shader binaries are different
+	// for each renderer.
+	switch (bgfx::getRendererType() )
+	{
+	default:
+	case bgfx::RendererType::Direct3D9:
+		s_shaderPath = "shaders/dx9/";
+		s_texelHalf = 0.5f;
+		break;
+
+	case bgfx::RendererType::Direct3D11:
+		s_shaderPath = "shaders/dx11/";
+		break;
+
+	case bgfx::RendererType::OpenGL:
+		s_shaderPath = "shaders/glsl/";
+		s_flipV = true;
+		break;
+
+	case bgfx::RendererType::OpenGLES2:
+	case bgfx::RendererType::OpenGLES3:
+		s_shaderPath = "shaders/gles/";
+		s_flipV = true;
+		break;
+	}
+
+	// Uniforms.
+	u_shadowMap = bgfx::createUniform("u_shadowMap", bgfx::UniformType::Uniform1iv);
+
+	bgfx::UniformHandle u_lightPos = bgfx::createUniform("u_lightPos", bgfx::UniformType::Uniform4fv);
+	bgfx::UniformHandle u_lightMtx = bgfx::createUniform("u_lightMtx", bgfx::UniformType::Uniform4x4fv);
+
+	// Programs.
+	bgfx::ProgramHandle progPackDepth = loadProgram("vs_smsimple_packdepth", "fs_smsimple_packdepth");
+	bgfx::ProgramHandle progDraw      = loadProgram("vs_smsimple_draw",      "fs_smsimple_draw");
+
+	// Vertex declarations.
+	bgfx::VertexDecl PosNormalDecl;
+	PosNormalDecl.begin();
+	PosNormalDecl.add(bgfx::Attrib::Position,  3, bgfx::AttribType::Float);
+	PosNormalDecl.add(bgfx::Attrib::Normal,    4, bgfx::AttribType::Uint8, true, true);
+	PosNormalDecl.end();
+
+	// Meshes.
+	Mesh bunnyMesh;
+	Mesh cubeMesh;
+	Mesh hollowcubeMesh;
+	Mesh hplaneMesh;
+	bunnyMesh.load("meshes/bunny.bin");
+	cubeMesh.load("meshes/cube.bin");
+	hollowcubeMesh.load("meshes/hollowcube.bin");
+	hplaneMesh.load(s_hplaneVertices, s_numHPlaneVertices, PosNormalDecl, s_planeIndices, s_numPlaneIndices);
+
+	// Render targets.
+	uint16_t shadowMapSize = 512;
+	s_rtShadowMap = bgfx::createRenderTarget(shadowMapSize, shadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8 | BGFX_RENDER_TARGET_DEPTH_D16);
+
+	// Set view and projection matrices.
+	float view[16];
+	float proj[16];
+
+	const float eye[3] = { 0.0f, 30.0f, -60.0f };
+	const float at[3]  = { 0.0f, 5.0f, 0.0f };
+	mtxLookAt(view, eye, at);
+
+	const float aspect = float(int32_t(width) ) / float(int32_t(height) );
+	mtxProj(proj, 60.0f, aspect, 0.1f, 1000.0f);
+
+	// Time acumulators.
+	float timeAccumulatorLight = 0.0f;
+	float timeAccumulatorScene = 0.0f;
+
+	entry::MouseState mouseState;
+	while (!entry::processEvents(width, height, debug, reset, &mouseState) )
+	{
+		// Time.
+		int64_t now = bx::getHPCounter();
+		static int64_t last = now;
+		const int64_t frameTime = now - last;
+		last = now;
+		const double freq = double(bx::getHPFrequency() );
+		const double toMs = 1000.0/freq;
+		const float deltaTime = float(frameTime/freq);
+
+		// Update time accumulators.
+		timeAccumulatorLight += deltaTime;
+		timeAccumulatorScene += deltaTime;
+
+		// Use debug font to print information about this example.
+		bgfx::dbgTextClear();
+		bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/15-shadowmaps-simple");
+		bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: Shadow maps example.");
+		bgfx::dbgTextPrintf(0, 3, 0x0f, "Frame: % 7.3f[ms]", double(frameTime)*toMs);
+
+		// Setup lights.
+		float lightPos[4];
+		lightPos[0] = -cos(timeAccumulatorLight);
+		lightPos[1] = -1.0f;
+		lightPos[2] = -sin(timeAccumulatorLight);
+		lightPos[3] = 0.0f;
+
+		bgfx::setUniform(u_lightPos, lightPos);
+
+		// Setup instance matrices.
+		float mtxFloor[16];
+		mtxScaleRotateTranslate(mtxFloor
+			, 30.0f //scaleX
+			, 30.0f //scaleY
+			, 30.0f //scaleZ
+			, 0.0f  //rotX
+			, 0.0f  //rotY
+			, 0.0f  //rotZ
+			, 0.0f  //translateX
+			, 0.0f  //translateY
+			, 0.0f  //translateZ
+			);
+
+		float mtxBunny[16];
+		mtxScaleRotateTranslate(mtxBunny
+			, 5.0f
+			, 5.0f
+			, 5.0f
+			, 0.0f
+			, float(M_PI) - timeAccumulatorScene
+			, 0.0f
+			, 15.0f
+			, 5.0f
+			, 0.0f
+			);
+
+		float mtxHollowcube[16];
+		mtxScaleRotateTranslate(mtxHollowcube
+			, 2.5f
+			, 2.5f
+			, 2.5f
+			, 0.0f
+			, 1.56f - timeAccumulatorScene
+			, 0.0f
+			, 0.0f
+			, 10.0f
+			, 0.0f
+			);
+
+		float mtxCube[16];
+		mtxScaleRotateTranslate(mtxCube
+			, 2.5f
+			, 2.5f
+			, 2.5f
+			, 0.0f
+			, 1.56f - timeAccumulatorScene
+			, 0.0f
+			, -15.0f
+			, 5.0f
+			, 0.0f
+			);
+
+		// Define matrices.
+		float screenView[16];
+		float screenProj[16];
+		mtxIdentity(screenView);
+		mtxOrtho(screenProj, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f);
+
+		float lightView[16];
+		float lightProj[16];
+
+		const float eye[3] =
+		{
+			-lightPos[0],
+			-lightPos[1],
+			-lightPos[2],
+		};
+		const float at[3] = { 0.0f, 0.0f, 0.0f };
+		mtxLookAt(lightView, eye, at);
+
+		const float area = 30.0f;
+		mtxOrtho(lightProj, -area, area, -area, area, -100.0f, 100.0f);
+
+		/**
+		 * RENDER_PASS_0 - Craft shadow map.
+		 * RENDER_PASS_1 - Draw scene.
+		 */
+		bgfx::setViewRect(RENDER_PASS_0, 0, 0, shadowMapSize, shadowMapSize);
+		bgfx::setViewRect(RENDER_PASS_1, 0, 0, width, height);
+
+		bgfx::setViewTransform(RENDER_PASS_0, lightView, lightProj);
+		bgfx::setViewTransform(RENDER_PASS_1, view, proj);
+
+		bgfx::setViewRenderTarget(RENDER_PASS_0, s_rtShadowMap);
+
+		// Clear backbuffer and shadowmap rendertarget at beginning.
+		bgfx::setViewClearMask(0x3, BGFX_CLEAR_COLOR_BIT | BGFX_CLEAR_DEPTH_BIT, 0x303030ff, 1.0f, 0);
+		bgfx::submitMask(0x3);
+
+		// Render.
+
+		{ // Craft shadow map.
+
+			hplaneMesh.submit(RENDER_PASS_0, mtxFloor, progPackDepth);
+			bunnyMesh.submit(RENDER_PASS_0, mtxBunny, progPackDepth);
+			hollowcubeMesh.submit(RENDER_PASS_0, mtxHollowcube, progPackDepth);
+			cubeMesh.submit(RENDER_PASS_0, mtxCube, progPackDepth);
+		}
+
+		{ // Draw Scene.
+
+			float mtxShadow[16]; //lightviewProjCrop
+			float lightMtx[16];  //modelLightviewProjCrop
+
+			const float s = (s_flipV) ? 1.0f : -1.0f; //sign
+
+			const float mtxCrop[16] =
+			{
+				0.5f,   0.0f, 0.0f, 0.0f,
+				0.0f, s*0.5f, 0.0f, 0.0f,
+				0.0f,   0.0f, 0.5f, 0.0f,
+				0.5f,   0.5f, 0.5f, 1.0f,
+			};
+
+			float mtxTmp[16];
+			mtxMul(mtxTmp, lightProj, mtxCrop);
+			mtxMul(mtxShadow, lightView, mtxTmp);
+
+			// Floor.
+			mtxMul(lightMtx, mtxFloor, mtxShadow);
+			bgfx::setUniform(u_lightMtx, lightMtx);
+			hplaneMesh.submit(RENDER_PASS_1, mtxFloor, progDraw);
+
+			// Bunny.
+			mtxMul(lightMtx, mtxBunny, mtxShadow);
+			bgfx::setUniform(u_lightMtx, lightMtx);
+			bunnyMesh.submit(RENDER_PASS_1, mtxBunny, progDraw);
+
+			// Hollow cube.
+			mtxMul(lightMtx, mtxHollowcube, mtxShadow);
+			bgfx::setUniform(u_lightMtx, lightMtx);
+			hollowcubeMesh.submit(RENDER_PASS_1, mtxHollowcube, progDraw);
+
+			// Cube.
+			mtxMul(lightMtx, mtxCube, mtxShadow);
+			bgfx::setUniform(u_lightMtx, lightMtx);
+			cubeMesh.submit(RENDER_PASS_1, mtxCube, progDraw);
+		}
+
+		// Advance to next frame. Rendering thread will be kicked to
+		// process submitted rendering primitives.
+		bgfx::frame();
+
+	}
+
+	bunnyMesh.unload();
+	cubeMesh.unload();
+	hollowcubeMesh.unload();
+	hplaneMesh.unload();
+
+	bgfx::destroyProgram(progPackDepth);
+	bgfx::destroyProgram(progDraw);
+
+	bgfx::destroyRenderTarget(s_rtShadowMap);
+
+	bgfx::destroyUniform(u_shadowMap);
+	bgfx::destroyUniform(u_lightPos);
+	bgfx::destroyUniform(u_lightMtx);
+
+	// Shutdown bgfx.
+	bgfx::shutdown();
+
+	return 0;
+}

+ 7 - 0
examples/15-shadowmaps-simple/varying.def.sc

@@ -0,0 +1,7 @@
+vec3 v_view        : TEXCOORD0 = vec3(0.0, 0.0, 0.0);
+vec4 v_shadowcoord : TEXCOORD1 = vec4(0.0, 0.0, 0.0, 0.0);
+vec4 v_position    : TEXCOORD2 = vec4(0.0, 0.0, 0.0, 0.0);
+vec3 v_normal      : NORMAL    = vec3(0.0, 0.0, 1.0);
+
+vec3 a_position  : POSITION;
+vec4 a_normal    : NORMAL;

+ 24 - 0
examples/15-shadowmaps-simple/vs_smsimple_draw.sc

@@ -0,0 +1,24 @@
+$input a_position, a_normal
+$output v_view, v_normal, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+uniform mat4 u_lightMtx;
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	const float shadowMapOffset = 0.001;
+	vec3 posOffset = a_position + normal.xyz * shadowMapOffset;
+	v_shadowcoord = mul(u_lightMtx, vec4(posOffset, 1.0) );
+}

+ 15 - 0
examples/15-shadowmaps-simple/vs_smsimple_packdepth.sc

@@ -0,0 +1,15 @@
+$input a_position
+$output v_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+	v_position = gl_Position;
+}

+ 235 - 0
examples/16-shadowmaps/common.sh

@@ -0,0 +1,235 @@
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+float linstep(float _edge0, float _edge1, float _x)
+{
+	return clamp((_x-_edge0)/(_edge1-_edge0), 0.0, 1.0);
+}
+
+float attenuation(float _dist, vec3 _attn)
+{
+	return 1.0 / ( _attn.x                  //const
+				 + _attn.y * _dist          //linear
+				 + _attn.z * _dist * _dist  //quadrantic
+				 );
+}
+
+float spot(float _ldotsd, float _inner, float _outer)
+{
+	float inner = cos(radians(_inner));
+	float outer = cos(radians(min(_outer, _inner - 0.001)));
+	float spot = clamp((_ldotsd - inner) / (outer - inner), 0.0, 1.0);
+	return spot;
+}
+
+vec2 lit(vec3 _ld, vec3 _n, vec3 _vd, float _exp)
+{
+	//diff
+	float ndotl = dot(_n, _ld);
+
+	//spec
+	vec3 r = 2.0*ndotl*_n - _ld; // reflect(_ld, _n);
+	float rdotv = dot(r, _vd);
+	float spec = step(0.0, ndotl) * pow(max(0.0, rdotv), _exp) * (2.0 + _exp)/8.0;
+
+	return max(vec2(ndotl, spec), 0.0);
+}
+
+struct Light
+{
+	vec3 l;
+	vec3 ld;
+	float attn;
+};
+
+Light evalLight(vec3 _v, vec4 _l, vec3 _spotDirection, float _spotInner, float _spotOuter, vec3 _attnParams)
+{
+	Light light;
+
+	//directional
+	light.l    = _l.xyz;
+	light.ld   = -normalize(light.l);
+	light.attn = 1.0;
+
+	if (0.0 != _l.w) //point or spot
+	{
+		light.l  = _l.xyz - _v;
+		light.ld = normalize(light.l);
+
+		float ldotsd = max(0.0, dot(-light.ld, normalize(_spotDirection)));
+		float falloff = spot(ldotsd, _spotOuter, _spotInner); 
+		light.attn = attenuation(length(light.l), _attnParams) * mix(falloff, 1.0, step(90, _spotOuter));
+	}
+
+	return light;
+}
+
+float texcoordInRange(vec2 _texcoord)
+{
+	bool inRange = all(greaterThan(_texcoord, vec2_splat(0.0)))
+				&& all(lessThan   (_texcoord, vec2_splat(1.0)))
+				 ;
+
+	return float(inRange);
+}
+
+float hardShadow(sampler2D _sampler, vec4 _shadowCoord, float _bias)
+{
+	vec2 texCoord = _shadowCoord.xy/_shadowCoord.w;
+
+	bool outside = any(greaterThan(texCoord, vec2_splat(1.0)))
+				|| any(lessThan   (texCoord, vec2_splat(0.0)))
+				 ;
+
+	if (outside)
+	{
+		return 1.0;
+	}
+
+	float receiver = (_shadowCoord.z-_bias)/_shadowCoord.w;
+	float occluder = unpackRgbaToFloat(texture2D(_sampler, texCoord) );
+
+	float visibility = step(receiver, occluder);
+	return visibility;
+}
+
+float PCF(sampler2D _sampler, vec4 _shadowCoord, float _bias, vec4 _pcfParams, vec2 _texelSize)
+{
+	float result = 0.0;
+	vec2 offset = _pcfParams.zw * _texelSize * _shadowCoord.w;
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-1.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(-0.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(0.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5, -1.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5, -0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5,  0.5) * offset, 0.0, 0.0), _bias);
+	result += hardShadow(_sampler, _shadowCoord + vec4(vec2(1.5,  1.5) * offset, 0.0, 0.0), _bias);
+
+	return result / 16.0;
+}
+
+float VSM(sampler2D _sampler, vec4 _shadowCoord, float _bias, float _depthMultiplier, float _minVariance)
+{
+	vec2 texCoord = _shadowCoord.xy/_shadowCoord.w;
+
+	bool outside = any(greaterThan(texCoord, vec2_splat(1.0)))
+				|| any(lessThan   (texCoord, vec2_splat(0.0)))
+				 ;
+
+	if (outside)
+	{
+		return 1.0;
+	}
+
+	float receiver = (_shadowCoord.z-_bias)/_shadowCoord.w * _depthMultiplier;
+	vec4 rgba = texture2D(_sampler, texCoord);
+	vec2 occluder = vec2(unpackHalfFloat(rgba.rg), unpackHalfFloat(rgba.ba)) * _depthMultiplier;
+
+	if (receiver < occluder.x)
+	{
+		return 1.0;
+	}
+
+	float variance = max(occluder.y - (occluder.x*occluder.x), _minVariance);
+	float d = receiver - occluder.x;
+
+	float visibility = variance / (variance + d*d);
+
+	return visibility;
+}
+
+float ESM(sampler2D _sampler, vec4 _shadowCoord, float _bias, float _depthMultiplier)
+{
+	vec2 texCoord = _shadowCoord.xy/_shadowCoord.w;
+
+	bool outside = any(greaterThan(texCoord, vec2_splat(1.0)))
+				|| any(lessThan   (texCoord, vec2_splat(0.0)))
+				 ;
+
+	if (outside)
+	{
+		return 1.0;
+	}
+
+	float receiver = (_shadowCoord.z-_bias)/_shadowCoord.w;
+	float occluder = unpackRgbaToFloat(texture2D(_sampler, texCoord) );
+
+	float visibility = clamp(exp(_depthMultiplier * (occluder-receiver) ), 0.0, 1.0);
+
+	return visibility;
+}
+
+
+vec4 blur9(sampler2D _sampler, vec2 _uv0, vec4 _uv1, vec4 _uv2, vec4 _uv3, vec4 _uv4)
+{
+#define _BLUR9_WEIGHT_0 1.0
+#define _BLUR9_WEIGHT_1 0.9
+#define _BLUR9_WEIGHT_2 0.55
+#define _BLUR9_WEIGHT_3 0.18
+#define _BLUR9_WEIGHT_4 0.1
+#define _BLUR9_NORMALIZE (_BLUR9_WEIGHT_0+2.0*(_BLUR9_WEIGHT_1+_BLUR9_WEIGHT_2+_BLUR9_WEIGHT_3+_BLUR9_WEIGHT_4) )
+#define BLUR9_WEIGHT(_x) (_BLUR9_WEIGHT_##_x/_BLUR9_NORMALIZE)
+
+	float blur;
+	blur  = unpackRgbaToFloat(texture2D(_sampler, _uv0)    * BLUR9_WEIGHT(0));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv1.xy) * BLUR9_WEIGHT(1));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv1.zw) * BLUR9_WEIGHT(1));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv2.xy) * BLUR9_WEIGHT(2));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv2.zw) * BLUR9_WEIGHT(2));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv3.xy) * BLUR9_WEIGHT(3));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv3.zw) * BLUR9_WEIGHT(3));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv4.xy) * BLUR9_WEIGHT(4));
+	blur += unpackRgbaToFloat(texture2D(_sampler, _uv4.zw) * BLUR9_WEIGHT(4));
+	return packFloatToRgba(blur);
+}
+
+vec4 blur9VSM(sampler2D _sampler, vec2 _uv0, vec4 _uv1, vec4 _uv2, vec4 _uv3, vec4 _uv4)
+{
+#define _BLUR9_WEIGHT_0 1.0
+#define _BLUR9_WEIGHT_1 0.9
+#define _BLUR9_WEIGHT_2 0.55
+#define _BLUR9_WEIGHT_3 0.18
+#define _BLUR9_WEIGHT_4 0.1
+#define _BLUR9_NORMALIZE (_BLUR9_WEIGHT_0+2.0*(_BLUR9_WEIGHT_1+_BLUR9_WEIGHT_2+_BLUR9_WEIGHT_3+_BLUR9_WEIGHT_4) )
+#define BLUR9_WEIGHT(_x) (_BLUR9_WEIGHT_##_x/_BLUR9_NORMALIZE)
+
+	vec2 blur;
+	vec4 val;
+	val = texture2D(_sampler, _uv0) * BLUR9_WEIGHT(0);
+	blur = vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv1.xy) * BLUR9_WEIGHT(1);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv1.zw) * BLUR9_WEIGHT(1);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv2.xy) * BLUR9_WEIGHT(2);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv2.zw) * BLUR9_WEIGHT(2);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv3.xy) * BLUR9_WEIGHT(3);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv3.zw) * BLUR9_WEIGHT(3);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv4.xy) * BLUR9_WEIGHT(4);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+	val = texture2D(_sampler, _uv4.zw) * BLUR9_WEIGHT(4);
+	blur += vec2(unpackHalfFloat(val.rg), unpackHalfFloat(val.ba));
+
+	return vec4(packHalfFloat(blur.x), packHalfFloat(blur.y));
+}

+ 11 - 0
examples/16-shadowmaps/fs_shadowmaps_color_black.sc

@@ -0,0 +1,11 @@
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
+}

+ 84 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning.sh

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "common.sh"
+
+uniform vec4 u_params0;
+uniform vec4 u_params1;
+uniform vec4 u_params2;
+uniform vec4 u_color;
+
+uniform vec3 u_materialKa;
+uniform vec3 u_materialKd;
+uniform vec4 u_materialKs; 
+uniform vec4 u_lightPosition;
+uniform vec4 u_lightAmbientPower;
+uniform vec4 u_lightDiffusePower;
+uniform vec4 u_lightSpecularPower;
+uniform vec4 u_lightSpotDirectionInner;
+uniform vec4 u_lightAttenuationSpotOuter;
+uniform vec4 u_smSamplingParams;
+uniform vec4 u_csmFarDistances;
+
+#if SM_OMNI
+uniform vec3 u_tetraNormalGreen;
+uniform vec3 u_tetraNormalYellow;
+uniform vec3 u_tetraNormalBlue;
+uniform vec3 u_tetraNormalRed;
+#endif
+
+SAMPLER2D(u_shadowMap0, 4);
+SAMPLER2D(u_shadowMap1, 5);
+SAMPLER2D(u_shadowMap2, 6);
+SAMPLER2D(u_shadowMap3, 7);
+
+struct Shader
+{
+	vec3 ambi;
+	vec3 diff;
+	vec3 spec;
+};
+
+Shader evalShader(float _diff, float _spec)
+{
+	Shader shader;
+
+	shader.ambi = u_lightAmbientPower.xyz  * u_lightAmbientPower.w  * u_materialKa;    
+	shader.diff = u_lightDiffusePower.xyz  * u_lightDiffusePower.w  * u_materialKd     * _diff;
+	shader.spec = u_lightSpecularPower.xyz * u_lightSpecularPower.w * u_materialKs.xyz * _spec;
+
+	return shader;
+}
+
+float computeVisibility(sampler2D _sampler
+					  , vec4 _shadowCoord
+					  , float _bias
+					  , vec4 _samplingParams
+					  , vec2 _texelSize
+					  , float _depthMultiplier
+					  , float _minVariance
+					  , float _hardness
+					  )
+{
+	float visibility;
+
+#if SM_LINEAR
+	vec4 shadowcoord = vec4(_shadowCoord.xy / _shadowCoord.w, _shadowCoord.z, 1.0);
+#else
+	vec4 shadowcoord = _shadowCoord;
+#endif
+
+#if SM_HARD
+	visibility = hardShadow(_sampler, shadowcoord, _bias);
+#elif SM_PCF
+	visibility = PCF(_sampler, shadowcoord, _bias, _samplingParams, _texelSize);
+#elif SM_VSM
+	visibility = VSM(_sampler, shadowcoord, _bias, _depthMultiplier, _minVariance);
+#elif SM_ESM
+	visibility = ESM(_sampler, shadowcoord, _bias, _depthMultiplier * _hardness);
+#endif
+
+	return visibility;
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm.sc

@@ -0,0 +1,15 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_csm.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear.sc

@@ -0,0 +1,16 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+#define SM_LINEAR 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 18 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear_csm.sc

@@ -0,0 +1,18 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+#define SM_LINEAR 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_linear_omni.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+#define SM_LINEAR 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_esm_omni.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_ESM 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard.sc

@@ -0,0 +1,15 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_HARD 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_csm.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_HARD 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear.sc

@@ -0,0 +1,15 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_HARD 1
+#define SM_LINEAR 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear_csm.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_HARD 1
+#define SM_LINEAR 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_linear_omni.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_HARD 1
+#define SM_LINEAR 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_hard_omni.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_HARD 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 151 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_main.sh

@@ -0,0 +1,151 @@
+#define u_ambientPass    u_params0.x
+#define u_lightningPass  u_params0.y
+
+#define u_shadowMapBias   u_params1.x
+#define u_shadowMapParam0 u_params1.z
+#define u_shadowMapParam1 u_params1.w
+
+#define u_shadowMapShowCoverage u_params2.y
+#define u_shadowMapTexelSize    u_params2.z
+
+#define u_spotDirection   u_lightSpotDirectionInner.xyz
+#define u_spotInner       u_lightSpotDirectionInner.w
+#define u_lightAttnParams u_lightAttenuationSpotOuter.xyz
+#define u_spotOuter       u_lightAttenuationSpotOuter.w
+
+// Pcf
+#define u_shadowMapPcfMode     u_shadowMapParam0
+#define u_shadowMapNoiseAmount u_shadowMapParam1
+
+// Vsm
+#define u_shadowMapMinVariance     u_shadowMapParam0
+#define u_shadowMapDepthMultiplier u_shadowMapParam1
+
+// Esm
+#define u_shadowMapHardness        u_shadowMapParam0
+#define u_shadowMapDepthMultiplier u_shadowMapParam1
+
+{
+	vec3 colorCoverage;
+	float visibility;
+
+#if SM_CSM
+	vec2 texelSize = vec2_splat(u_shadowMapTexelSize);
+
+	vec2 texcoord1 = v_texcoord1.xy/v_texcoord1.w;
+	vec2 texcoord2 = v_texcoord2.xy/v_texcoord2.w;
+	vec2 texcoord3 = v_texcoord3.xy/v_texcoord3.w;
+	vec2 texcoord4 = v_texcoord4.xy/v_texcoord4.w;
+
+	bool selection0 = all(lessThan(texcoord1, vec2_splat(0.99))) && all(greaterThan(texcoord1, vec2_splat(0.01)));
+	bool selection1 = all(lessThan(texcoord2, vec2_splat(0.99))) && all(greaterThan(texcoord2, vec2_splat(0.01)));
+	bool selection2 = all(lessThan(texcoord3, vec2_splat(0.99))) && all(greaterThan(texcoord3, vec2_splat(0.01)));
+	bool selection3 = all(lessThan(texcoord4, vec2_splat(0.99))) && all(greaterThan(texcoord4, vec2_splat(0.01)));
+
+	if (selection0)
+	{
+		vec4 shadowcoord = v_texcoord1;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.4;
+		colorCoverage = vec3(-coverage, coverage, -coverage);
+		visibility = computeVisibility(u_shadowMap0, shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+	}
+	else if (selection1)
+	{
+		vec4 shadowcoord = v_texcoord2;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.4;
+		colorCoverage = vec3(coverage, coverage, -coverage);
+		visibility = computeVisibility(u_shadowMap1, shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize/2.0, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+	}
+	else if (selection2)
+	{
+		vec4 shadowcoord = v_texcoord3;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.4;
+		colorCoverage = vec3(-coverage, -coverage, coverage);
+		visibility = computeVisibility(u_shadowMap2, shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize/3.0, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+	}
+	else //selection3
+	{
+		vec4 shadowcoord = v_texcoord4;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.4;
+		colorCoverage = vec3(coverage, -coverage, -coverage);
+		visibility = computeVisibility(u_shadowMap3, shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize/4.0, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+	}
+#elif SM_OMNI
+	vec2 texelSize = vec2_splat(u_shadowMapTexelSize/4.0);
+
+	vec4 faceSelection;
+	vec3 pos = v_position.xyz;
+	faceSelection.x = dot(u_tetraNormalGreen,  pos);
+	faceSelection.y = dot(u_tetraNormalYellow, pos);
+	faceSelection.z = dot(u_tetraNormalBlue,   pos);
+	faceSelection.w = dot(u_tetraNormalRed,    pos);
+
+	vec4 shadowcoord;
+	float faceMax = max(max(faceSelection.x, faceSelection.y), max(faceSelection.z, faceSelection.w));
+	if (faceSelection.x == faceMax)
+	{
+		shadowcoord = v_texcoord1;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.3;
+		colorCoverage = vec3(-coverage, coverage, -coverage);
+	}
+	else if (faceSelection.y == faceMax)
+	{
+		shadowcoord = v_texcoord2;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.3;
+		colorCoverage = vec3(coverage, coverage, -coverage);
+	}
+	else if (faceSelection.z == faceMax)
+	{
+		shadowcoord = v_texcoord3;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.3;
+		colorCoverage = vec3(-coverage, -coverage, coverage);
+	}
+	else // (faceSelection.w == faceMax) 
+	{
+		shadowcoord = v_texcoord4;
+
+		float coverage = texcoordInRange(shadowcoord.xy/shadowcoord.w) * 0.3;
+		colorCoverage = vec3(coverage, -coverage, -coverage);
+	}
+
+	visibility = computeVisibility(u_shadowMap0, shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+#else
+	vec2 texelSize = vec2_splat(u_shadowMapTexelSize);
+
+	float coverage = texcoordInRange(v_shadowcoord.xy/v_shadowcoord.w) * 0.3;
+	colorCoverage = vec3(coverage, -coverage, -coverage);
+
+	visibility = computeVisibility(u_shadowMap0, v_shadowcoord, u_shadowMapBias, u_smSamplingParams, texelSize, u_shadowMapDepthMultiplier, u_shadowMapMinVariance, u_shadowMapHardness);
+#endif
+
+	vec3 v = v_view;
+	vec3 vd = -normalize(v_view);
+	vec3 n = v_normal;
+	Light light = evalLight(v, u_lightPosition, u_spotDirection, u_spotInner, u_spotOuter, u_lightAttnParams);
+
+	vec2 lc = lit(light.ld, n, vd, u_materialKs.w) * light.attn;
+	Shader shader = evalShader(lc.x, lc.y);
+
+	//Fog.
+	const vec3 fogColor = vec3_splat(0.0);
+	const float fogDensity = 0.0035;
+	const float LOG2 = 1.442695;
+	float z = length(v);
+	float fogFactor = clamp(1.0/exp2(fogDensity*fogDensity*z*z*LOG2), 0.0, 1.0);
+
+	vec3 color = u_color.xyz;
+
+	vec3 ambient = shader.ambi * color;
+	vec3 brdf    = (shader.diff + shader.spec) * color * visibility;
+
+	vec3 final = toGamma(abs(ambient + brdf)) + (colorCoverage * u_shadowMapShowCoverage);
+	gl_FragColor.xyz = mix(fogColor, final, fogFactor);
+	gl_FragColor.w = 1.0;
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf.sc

@@ -0,0 +1,15 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_PCF 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_csm.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_PCF 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear.sc

@@ -0,0 +1,16 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_PCF 1
+#define SM_LINEAR 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear_csm.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_PCF 1
+#define SM_LINEAR 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_linear_omni.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_PCF 1
+#define SM_LINEAR 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_pcf_omni.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_PCF 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm.sc

@@ -0,0 +1,15 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_VSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_csm.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_VSM 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear.sc

@@ -0,0 +1,16 @@
+$input v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_VSM 1
+#define SM_LINEAR 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear_csm.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_VSM 1
+#define SM_LINEAR 1
+#define SM_CSM 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+ 

+ 17 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_linear_omni.sc

@@ -0,0 +1,17 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+#define SM_VSM 1
+#define SM_LINEAR 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}
+

+ 16 - 0
examples/16-shadowmaps/fs_shadowmaps_color_lightning_vsm_omni.sc

@@ -0,0 +1,16 @@
+$input v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#define SM_VSM 1
+#define SM_OMNI 1
+
+#include "fs_shadowmaps_color_lightning.sh"
+
+void main()
+{
+#include "fs_shadowmaps_color_lightning_main.sh"
+}

+ 22 - 0
examples/16-shadowmaps/fs_shadowmaps_color_texture.sc

@@ -0,0 +1,22 @@
+$input v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+uniform vec4 u_color;
+SAMPLER2D(u_texColor, 0);
+
+void main()
+{
+	vec4 tcolor = toLinear(texture2D(u_texColor, v_texcoord0));
+
+	if (tcolor.x < 0.1) //OK for now.
+	{
+		discard;
+	}
+
+	gl_FragColor = toGamma(tcolor + u_color);
+}

+ 14 - 0
examples/16-shadowmaps/fs_shadowmaps_hblur.sc

@@ -0,0 +1,14 @@
+$input v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+void main()
+{
+	gl_FragColor = blur9(u_shadowMap0, v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4);
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_hblur_vsm.sc

@@ -0,0 +1,15 @@
+$input v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+void main()
+{
+	gl_FragColor = blur9VSM(u_shadowMap0, v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4);
+}
+

+ 14 - 0
examples/16-shadowmaps/fs_shadowmaps_packdepth.sc

@@ -0,0 +1,14 @@
+$input v_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	float depth = v_position.z/v_position.w * 0.5 + 0.5;
+	gl_FragColor = packFloatToRgba(depth);
+}

+ 13 - 0
examples/16-shadowmaps/fs_shadowmaps_packdepth_linear.sc

@@ -0,0 +1,13 @@
+$input v_depth
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	gl_FragColor = packFloatToRgba(v_depth);
+}

+ 20 - 0
examples/16-shadowmaps/fs_shadowmaps_packdepth_vsm.sc

@@ -0,0 +1,20 @@
+$input v_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	float depth = v_position.z/v_position.w * 0.5 + 0.5;
+	float depthSq = depth*depth;
+
+	//TODO: try this.
+	//vec2 dxy = vec2(dFdx(depth), dFdy(depth));
+	//depthSq += 0.25*dot(dxy, dxy);
+
+	gl_FragColor = vec4(packHalfFloat(depth), packHalfFloat(depthSq));
+}

+ 20 - 0
examples/16-shadowmaps/fs_shadowmaps_packdepth_vsm_linear.sc

@@ -0,0 +1,20 @@
+$input v_depth
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+void main()
+{
+	float depth = v_depth;
+	float depthSq = depth*depth;
+
+	//TODO: try this.
+	//vec2 dxy = vec2(dFdx(depth), dFdy(depth));
+	//depthSq += 0.25*dot(dxy, dxy);
+
+	gl_FragColor = vec4(packHalfFloat(depth), packHalfFloat(depthSq));
+}

+ 14 - 0
examples/16-shadowmaps/fs_shadowmaps_texture.sc

@@ -0,0 +1,14 @@
+$input v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+SAMPLER2D(u_texColor, 0);
+
+void main()
+{
+	gl_FragColor = texture2D(u_texColor, v_texcoord0);
+}

+ 19 - 0
examples/16-shadowmaps/fs_shadowmaps_unpackdepth.sc

@@ -0,0 +1,19 @@
+$input v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+uniform vec4 u_params2;
+#define u_depthValuePow u_params2.x
+
+void main()
+{
+	float depth = unpackRgbaToFloat(texture2D(u_shadowMap0, v_texcoord0) );
+	vec3 rgba = pow(vec3_splat(depth), vec3_splat(u_depthValuePow) );
+	gl_FragColor = vec4(rgba, 1.0);
+}

+ 20 - 0
examples/16-shadowmaps/fs_shadowmaps_unpackdepth_vsm.sc

@@ -0,0 +1,20 @@
+$input v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+uniform vec4 u_params2;
+#define u_depthValuePow u_params2.x
+
+void main()
+{
+	vec4 val = texture2D(u_shadowMap0, v_texcoord0);
+	float depth = unpackHalfFloat(val.rg);
+	vec3 rgba = pow(vec3_splat(depth), vec3_splat(u_depthValuePow) );
+	gl_FragColor = vec4(rgba, 1.0);
+}

+ 14 - 0
examples/16-shadowmaps/fs_shadowmaps_vblur.sc

@@ -0,0 +1,14 @@
+$input v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+void main()
+{
+	gl_FragColor = blur9(u_shadowMap0, v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4);
+}

+ 15 - 0
examples/16-shadowmaps/fs_shadowmaps_vblur_vsm.sc

@@ -0,0 +1,15 @@
+$input v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "common.sh"
+SAMPLER2D(u_shadowMap0, 4);
+
+void main()
+{
+	gl_FragColor = blur9VSM(u_shadowMap0, v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4);
+}
+

+ 934 - 0
examples/16-shadowmaps/hollowcube.obj

@@ -0,0 +1,934 @@
+# Blender v2.66 (sub 1) OBJ File: ''
+# www.blender.org
+g holeycube
+v 1.500000 1.211657 0.000000
+v 1.500000 1.211656 1.209338
+v 1.236416 1.211656 1.209338
+v 1.236416 1.211657 0.000000
+v 1.500000 1.500000 0.000000
+v 1.500000 1.500000 1.209338
+v 1.236416 1.500000 1.209338
+v 1.236416 1.500000 0.000000
+v 1.500000 -0.000000 1.209337
+v 1.500000 -1.211657 1.209337
+v 1.236416 -1.211657 1.209337
+v 1.236416 -0.000000 1.209337
+v 1.236416 -0.000000 1.500000
+v 1.236416 -1.211657 1.500000
+v 1.500000 -1.211657 1.500000
+v 1.500000 -0.000000 1.500000
+v 1.500000 0.000000 -1.500000
+v 1.500000 -1.211656 -1.500000
+v 1.236416 -1.211656 -1.500000
+v 1.236416 0.000000 -1.500000
+v -1.236416 0.000000 -1.500000
+v -1.236416 -1.211656 -1.500000
+v -1.500000 -1.211656 -1.500000
+v -1.500000 0.000000 -1.500000
+v -1.500000 -0.000000 1.500000
+v -1.500000 -1.211657 1.500000
+v -1.236416 -1.211657 1.500000
+v -1.236416 -0.000000 1.500000
+v -1.236416 -0.000000 1.209337
+v -1.236416 -1.211657 1.209337
+v -1.500000 -1.211657 1.209337
+v -1.500000 -0.000000 1.209337
+v -1.500000 1.211656 1.500000
+v -1.500000 1.211656 1.209338
+v -1.236416 1.211656 1.209338
+v -1.236416 1.211656 1.500000
+v -1.500000 1.211657 -1.500000
+v -1.236416 1.211657 -1.500000
+v 1.236416 1.211657 -1.500000
+v 1.500000 1.211657 -1.500000
+v 1.500000 1.211656 1.500000
+v 1.236416 1.211656 1.500000
+v 0.000000 -1.500000 1.209337
+v -1.236416 -1.500000 1.209337
+v 0.000000 -1.211657 1.209337
+v 0.000000 1.211656 1.209338
+v -1.236416 1.500000 1.209338
+v 0.000000 1.500000 1.209338
+v -1.236416 1.500000 1.500000
+v 0.000000 1.500000 1.500000
+v 0.000000 1.211656 1.500000
+v 1.236416 1.500000 1.500000
+v -1.500000 1.500000 1.500000
+v 1.500000 1.500000 1.500000
+v 0.000000 -1.500000 -1.500000
+v -1.236416 -1.500000 -1.500000
+v 0.000000 -1.211656 -1.500000
+v 0.000000 -1.500000 -1.209338
+v -1.236416 -1.500000 -1.209338
+v 1.236416 -1.211657 -0.000000
+v 1.236416 -1.211656 -1.209338
+v 1.236416 -1.500000 -1.209338
+v 1.236416 -1.500000 -0.000000
+v 1.500000 -1.500000 -0.000000
+v 1.500000 -1.500000 -1.209338
+v 1.500000 -1.211656 -1.209338
+v 1.500000 -1.211657 -0.000000
+v 1.500000 -1.500000 1.209337
+v 1.236416 -1.500000 1.209337
+v -1.236416 -1.500000 -0.000000
+v -1.500000 -1.500000 1.209337
+v -1.500000 -1.500000 -0.000000
+v -1.500000 -1.500000 -1.209338
+v -1.236416 -1.211657 -0.000000
+v -1.236416 -1.211656 -1.209338
+v -1.500000 -1.211656 -1.209338
+v -1.500000 -1.211657 -0.000000
+v -1.500000 1.211657 0.000000
+v -1.500000 1.211657 -1.209337
+v -1.236416 1.211657 -1.209337
+v -1.236416 1.211657 0.000000
+v -1.236416 1.500000 0.000000
+v -1.236416 1.500000 -1.209337
+v -1.500000 1.500000 -1.209337
+v -1.500000 1.500000 0.000000
+v -1.500000 1.500000 1.209338
+v 1.500000 1.500000 -1.209337
+v 1.236416 1.500000 -1.209337
+v 1.236416 1.211657 -1.209337
+v 1.500000 1.211657 -1.209337
+v 1.236416 0.000000 -1.209337
+v 1.500000 0.000000 -1.209337
+v -1.500000 0.000000 -1.209337
+v -1.236416 0.000000 -1.209337
+v 0.000000 -1.211656 -1.209338
+v 0.000000 1.211657 -1.209337
+v 0.000000 1.211657 -1.500000
+v 0.000000 1.500000 -1.209337
+v 0.000000 1.500000 -1.500000
+v -1.236416 1.500000 -1.500000
+v 1.236416 1.500000 -1.500000
+v -1.500000 1.500000 -1.500000
+v 1.500000 1.500000 -1.500000
+v -1.500000 -1.500000 1.500000
+v -1.236416 -1.500000 1.500000
+v 0.000000 -1.211657 1.500000
+v -1.500000 -1.500000 -1.500000
+v 0.000000 -1.500000 1.500000
+v 1.236416 -1.500000 1.500000
+v 1.500000 -1.500000 1.500000
+v 1.236416 -1.500000 -1.500000
+v 1.500000 -1.500000 -1.500000
+v 1.500000 1.500000 0.000000
+v 1.500000 1.500000 1.209338
+v 1.236416 1.500000 1.209338
+v 1.236416 1.500000 0.000000
+v -1.236416 1.500000 1.209338
+v 0.000000 1.500000 1.209338
+v -1.236416 1.500000 1.500000
+v 0.000000 1.500000 1.500000
+v 1.236416 1.500000 1.500000
+v -1.500000 1.500000 1.500000
+v 1.500000 1.500000 1.500000
+v -1.236416 1.500000 0.000000
+v -1.236416 1.500000 -1.209337
+v -1.500000 1.500000 -1.209337
+v -1.500000 1.500000 0.000000
+v -1.500000 1.500000 1.209338
+v 1.500000 1.500000 -1.209337
+v 1.236416 1.500000 -1.209337
+v 0.000000 1.500000 -1.209337
+v 0.000000 1.500000 -1.500000
+v -1.236416 1.500000 -1.500000
+v 1.236416 1.500000 -1.500000
+v -1.500000 1.500000 -1.500000
+v 1.500000 1.500000 -1.500000
+v 0.000000 -1.500000 1.209337
+v 0.000000 -1.211657 1.209337
+v 0.000000 -1.211657 1.500000
+v 0.000000 -1.500000 1.500000
+v 1.236416 -1.211657 1.209337
+v -1.236416 -1.211657 1.209337
+v 0.000000 -1.211657 1.209337
+vn 0.000000 -1.000000 -0.000001
+vn 1.000000 0.000000 0.000000
+vn -1.000000 -0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 -0.000000 1.000000
+vn 0.000000 0.000001 -1.000000
+vn 0.000000 0.000000 0.000000
+vn 0.000000 -1.000000 -0.000000
+vn 0.000000 1.000000 0.000001
+vn 0.000000 -0.000001 1.000000
+vn 0.000000 1.000000 0.000000
+s off
+f 1//1 2//1 3//1 4//1
+f 2//2 1//2 5//2 6//2
+f 4//3 3//3 7//3 8//3
+f 9//4 10//4 11//4 12//4
+f 13//5 14//5 15//5 16//5
+f 17//4 18//4 19//4 20//4
+f 21//4 22//4 23//4 24//4
+f 25//5 26//5 27//5 28//5
+f 29//4 30//4 31//4 32//4
+f 32//3 31//3 26//3 25//3
+f 25//3 33//3 34//3 32//3
+f 32//6 34//6 35//6 29//6
+f 28//5 36//5 33//5 25//5
+f 24//4 37//4 38//4 21//4
+f 20//4 39//4 40//4 17//4
+f 16//5 41//5 42//5 13//5
+f 12//6 3//6 2//6 9//6
+f 9//2 2//2 41//2 16//2
+f 13//3 42//3 3//3 12//3
+f 43//4 44//4 30//4 45//4
+f 46//4 35//4 47//4 48//4
+f 99//7 100//7 133//7 132//7
+f 50//5 49//5 36//5 51//5
+f 51//5 42//5 52//5 50//5
+f 100//7 102//7 135//7 133//7
+f 48//4 7//4 3//4 46//4
+f 46//8 3//8 42//8 51//8
+f 49//5 53//5 33//5 36//5
+f 42//5 41//5 54//5 52//5
+f 86//7 53//7 122//7 128//7
+f 41//2 2//2 6//2 54//2
+f 55//4 56//4 22//4 57//4
+f 58//8 59//8 56//8 55//8
+f 60//3 61//3 62//3 63//3
+f 64//2 65//2 66//2 67//2
+f 67//9 66//9 61//9 60//9
+f 63//8 62//8 65//8 64//8
+f 64//8 68//8 69//8 63//8
+f 70//8 44//8 71//8 72//8
+f 72//8 73//8 59//8 70//8
+f 74//9 75//9 76//9 77//9
+f 78//8 79//8 80//8 81//8
+f 5//7 87//7 129//7 113//7
+f 54//7 6//7 114//7 123//7
+f 48//7 47//7 117//7 118//7
+f 87//7 103//7 136//7 129//7
+f 90//8 1//8 4//8 89//8
+f 1//2 90//2 87//2 5//2
+f 8//3 88//3 89//3 4//3
+f 20//3 19//3 61//3 91//3
+f 92//2 66//2 18//2 17//2
+f 91//10 61//10 66//10 92//10
+f 93//10 76//10 75//10 94//10
+f 24//3 23//3 76//3 93//3
+f 94//2 75//2 22//2 21//2
+f 21//2 38//2 80//2 94//2
+f 57//11 22//11 75//11 95//11
+f 96//8 80//8 38//8 97//8
+f 93//3 79//3 37//3 24//3
+f 94//5 80//5 79//5 93//5
+f 92//5 90//5 89//5 91//5
+f 17//2 40//2 90//2 92//2
+f 91//3 89//3 39//3 20//3
+f 95//5 75//5 59//5 58//5
+f 98//5 83//5 80//5 96//5
+f 103//7 101//7 134//7 136//7
+f 97//4 38//4 100//4 99//4
+f 99//4 101//4 39//4 97//4
+f 6//7 5//7 113//7 114//7
+f 96//5 89//5 88//5 98//5
+f 97//8 39//8 89//8 96//8
+f 38//4 37//4 102//4 100//4
+f 101//4 103//4 40//4 39//4
+f 7//7 48//7 118//7 115//7
+f 103//2 87//2 90//2 40//2
+f 26//3 31//3 71//3 104//3
+f 71//8 44//8 105//8 104//8
+f 28//2 27//2 30//2 29//2
+f 29//2 35//2 36//2 28//2
+f 74//2 30//2 44//2 70//2
+f 72//3 71//3 31//3 77//3
+f 77//11 31//11 30//11 74//11
+f 81//1 35//1 34//1 78//1
+f 78//3 34//3 86//3 85//3
+f 82//2 47//2 35//2 81//2
+f 45//11 30//11 27//11 106//11
+f 51//8 36//8 35//8 46//8
+f 102//7 84//7 126//7 135//7
+f 53//3 86//3 34//3 33//3
+f 107//3 73//3 76//3 23//3
+f 107//8 56//8 59//8 73//8
+f 70//2 59//2 75//2 74//2
+f 77//3 76//3 73//3 72//3
+f 85//3 84//3 79//3 78//3
+f 81//2 80//2 83//2 82//2
+f 88//7 8//7 116//7 130//7
+f 37//3 79//3 84//3 102//3
+f 60//11 11//11 10//11 67//11
+f 67//2 10//2 68//2 64//2
+f 63//3 69//3 11//3 60//3
+f 16//2 15//2 10//2 9//2
+f 12//3 11//3 14//3 13//3
+f 108//8 105//8 44//8 43//8
+f 106//5 27//5 105//5 108//5
+f 108//5 109//5 14//5 106//5
+f 43//8 69//8 109//8 108//8
+f 45//4 11//4 69//4 43//4
+f 106//11 14//11 11//11 45//11
+f 27//5 26//5 104//5 105//5
+f 109//5 110//5 15//5 14//5
+f 110//8 109//8 69//8 68//8
+f 110//2 68//2 10//2 15//2
+f 57//4 19//4 111//4 55//4
+f 55//8 111//8 62//8 58//8
+f 58//5 62//5 61//5 95//5
+f 95//11 61//11 19//11 57//11
+f 56//4 107//4 23//4 22//4
+f 19//4 18//4 112//4 111//4
+f 65//8 62//8 111//8 112//8
+f 18//2 66//2 65//2 112//2
+f 118//11 117//11 119//11 120//11
+f 120//11 121//11 115//11 118//11
+f 114//11 115//11 121//11 123//11
+f 124//11 125//11 126//11 127//11
+f 127//11 128//11 117//11 124//11
+f 116//11 115//11 114//11 113//11
+f 113//11 129//11 130//11 116//11
+f 132//11 133//11 125//11 131//11
+f 131//11 130//11 134//11 132//11
+f 136//11 134//11 130//11 129//11
+f 122//11 119//11 117//11 128//11
+f 126//11 125//11 133//11 135//11
+f 82//7 83//7 125//7 124//7
+f 49//7 50//7 120//7 119//7
+f 84//7 85//7 127//7 126//7
+f 50//7 52//7 121//7 120//7
+f 52//7 54//7 123//7 121//7
+f 53//7 49//7 119//7 122//7
+f 8//7 7//7 115//7 116//7
+f 85//7 86//7 128//7 127//7
+f 83//7 98//7 131//7 125//7
+f 47//7 82//7 124//7 117//7
+f 101//7 99//7 132//7 134//7
+f 98//7 88//7 130//7 131//7
+f 108//7 106//7 139//7 140//7
+f 45//7 43//7 137//7 138//7
+f 106//7 45//7 138//7 139//7
+f 43//7 108//7 140//7 137//7
+f 30//7 45//7 143//7 142//7
+f 45//7 11//7 141//7 143//7
+g holeycube.001
+v 0.037848 0.053616 0.680965
+v 0.414385 -0.152030 0.676229
+v 0.382376 -0.209100 0.609416
+v 0.005839 -0.003453 0.614153
+v 0.003506 -0.010911 0.752536
+v 0.380043 -0.216558 0.747800
+v 0.348034 -0.273628 0.680987
+v -0.028503 -0.067981 0.685724
+v 0.558694 0.119124 0.375479
+v 0.703003 0.390278 0.074730
+v 0.670994 0.333208 0.007917
+v 0.526685 0.062054 0.308667
+v 0.617185 0.012627 0.307529
+v 0.761494 0.283781 0.006779
+v 0.793503 0.340851 0.073591
+v 0.649194 0.069697 0.374341
+v -0.284880 0.579845 0.386090
+v -0.140571 0.850998 0.085340
+v -0.172580 0.793929 0.018528
+v -0.316889 0.522775 0.319277
+v -0.617185 -0.012627 -0.307529
+v -0.472876 0.258527 -0.608278
+v -0.504885 0.201457 -0.675091
+v -0.649194 -0.069697 -0.374341
+v 0.284880 -0.579845 -0.386090
+v 0.429189 -0.308690 -0.686840
+v 0.461198 -0.251621 -0.620027
+v 0.316889 -0.522775 -0.319277
+v 0.226389 -0.473348 -0.318139
+v 0.370698 -0.202194 -0.618889
+v 0.338689 -0.259263 -0.685701
+v 0.194380 -0.530418 -0.384952
+v 0.140571 -0.850998 -0.085340
+v 0.050071 -0.801571 -0.084202
+v 0.082080 -0.744502 -0.017389
+v 0.172580 -0.793929 -0.018528
+v -0.793503 -0.340851 -0.073591
+v -0.761494 -0.283781 -0.006779
+v -0.461198 0.251621 0.620027
+v -0.429189 0.308690 0.686840
+v 0.504885 -0.201457 0.675091
+v 0.472876 -0.258527 0.608278
+v 0.555187 0.130035 -0.377057
+v 0.405040 -0.137666 -0.690460
+v 0.520846 0.065507 -0.305486
+v 0.232228 -0.476801 0.296014
+v 0.047738 -0.809030 0.054181
+v 0.197886 -0.541329 0.367584
+v 0.138238 -0.858457 0.053043
+v 0.288386 -0.590756 0.366446
+v 0.322728 -0.526228 0.294875
+v 0.438534 -0.323055 0.679849
+v 0.106229 -0.915526 -0.013769
+v 0.470543 -0.265985 0.746662
+v -0.288386 0.590756 -0.366446
+v -0.438534 0.323055 -0.679849
+v -0.322728 0.526228 -0.294875
+v -0.197886 0.541329 -0.367584
+v -0.348034 0.273628 -0.680987
+v 0.294457 0.538855 0.012653
+v -0.082080 0.744502 0.017389
+v -0.047738 0.809030 -0.054181
+v 0.328799 0.603383 -0.058918
+v 0.360808 0.660452 0.007895
+v -0.015729 0.866099 0.012631
+v -0.050071 0.801571 0.084202
+v 0.326466 0.595925 0.079466
+v 0.737345 0.454805 0.003159
+v 0.705335 0.397736 -0.063654
+v 0.028503 0.067981 -0.685724
+v 0.373030 -0.194736 -0.757272
+v -0.003506 0.010911 -0.752536
+v -0.380043 0.216558 -0.747800
+v -0.005839 0.003453 -0.614153
+v -0.382376 0.209100 -0.609416
+v -0.414385 0.152030 -0.676229
+v -0.037848 -0.053616 -0.680965
+v -0.326466 -0.595925 -0.079466
+v -0.703003 -0.390278 -0.074730
+v -0.670994 -0.333208 -0.007917
+v -0.294457 -0.538855 -0.012653
+v -0.328799 -0.603383 0.058918
+v -0.705335 -0.397736 0.063654
+v -0.737345 -0.454805 -0.003159
+v -0.360808 -0.660452 -0.007895
+v 0.015729 -0.866099 -0.012631
+v -0.373030 0.194736 0.757272
+v -0.405040 0.137666 0.690460
+v -0.370698 0.202194 0.618889
+v -0.338689 0.259263 0.685701
+v -0.226389 0.473348 0.318139
+v -0.194380 0.530418 0.384952
+v -0.558694 -0.119124 -0.375479
+v -0.526685 -0.062054 -0.308667
+v -0.232228 0.476801 -0.296014
+v -0.520846 -0.065507 0.305486
+v -0.611346 -0.016080 0.306624
+v -0.555187 -0.130035 0.377057
+v -0.645688 -0.080608 0.378195
+v -0.795836 -0.348309 0.064792
+v -0.495540 0.187093 0.691598
+v -0.827845 -0.405378 -0.002021
+v -0.463531 0.244163 0.758410
+v 0.463531 -0.244163 -0.758410
+v 0.495540 -0.187093 -0.691598
+v 0.611346 0.016080 -0.306624
+v -0.470543 0.265985 -0.746662
+v 0.645688 0.080608 -0.378195
+v 0.795836 0.348309 -0.064792
+v 0.827845 0.405378 0.002021
+v -0.138238 0.858457 -0.053043
+v -0.106229 0.915526 0.013769
+v 0.003506 -0.010911 0.752536
+v 0.380043 -0.216558 0.747800
+v 0.348034 -0.273628 0.680987
+v -0.028503 -0.067981 0.685724
+v 0.047738 -0.809030 0.054181
+v 0.197886 -0.541329 0.367584
+v 0.138238 -0.858457 0.053043
+v 0.288386 -0.590756 0.366446
+v 0.438534 -0.323055 0.679849
+v 0.106229 -0.915526 -0.013769
+v 0.470543 -0.265985 0.746662
+v -0.328799 -0.603383 0.058918
+v -0.705335 -0.397736 0.063654
+v -0.737345 -0.454805 -0.003159
+v -0.360808 -0.660452 -0.007895
+v 0.015729 -0.866099 -0.012631
+v -0.373030 0.194736 0.757272
+v -0.405040 0.137666 0.690460
+v -0.555187 -0.130035 0.377057
+v -0.645688 -0.080608 0.378195
+v -0.795836 -0.348309 0.064792
+v -0.495540 0.187093 0.691598
+v -0.827845 -0.405378 -0.002021
+v -0.463531 0.244163 0.758410
+v 0.555187 0.130035 -0.377057
+v 0.520846 0.065507 -0.305486
+v 0.611346 0.016080 -0.306624
+v 0.645688 0.080608 -0.378195
+v 0.670994 0.333208 0.007917
+v 0.370698 -0.202194 -0.618889
+v 0.520846 0.065507 -0.305486
+vn 0.335692 0.630762 -0.699607
+vn 0.342281 0.610259 0.714442
+vn -0.342282 -0.610259 -0.714442
+vn -0.877584 0.479296 0.011038
+vn 0.877584 -0.479296 -0.011038
+vn -0.877584 0.479295 0.011038
+vn -0.342281 -0.610259 -0.714442
+vn -0.877584 0.479295 0.011039
+vn 0.877584 -0.479295 -0.011038
+vn 0.335693 0.630761 -0.699607
+vn -0.335692 -0.630762 0.699607
+vn 0.342282 0.610259 0.714442
+vn 0.877584 -0.479295 -0.011039
+vn -0.335693 -0.630761 0.699607
+vn -0.877584 0.479296 0.011039
+vn 0.335693 0.630761 -0.699608
+vn 0.877584 -0.479296 -0.011039
+vn -0.335693 -0.630761 0.699608
+s off
+f 144//12 145//12 146//12 147//12
+f 145//13 144//13 148//13 149//13
+f 147//14 146//14 150//14 151//14
+f 152//15 153//15 154//15 155//15
+f 156//16 157//16 158//16 159//16
+f 160//15 161//15 162//15 163//15
+f 164//17 165//17 166//17 167//17
+f 168//16 169//16 170//16 171//16
+f 172//15 173//15 174//15 175//15
+f 175//18 174//18 169//18 168//18
+f 168//14 176//14 177//14 175//14
+f 175//19 177//19 178//19 172//19
+f 171//16 179//16 176//16 168//16
+f 167//15 180//15 181//15 164//15
+f 163//15 182//15 183//15 160//15
+f 159//20 184//20 185//20 156//20
+f 155//19 146//19 145//19 152//19
+f 152//13 145//13 184//13 159//13
+f 156//18 185//18 146//18 155//18
+f 186//15 187//15 173//15 188//15
+f 189//15 178//15 190//15 191//15
+f 242//7 243//7 276//7 275//7
+f 193//16 192//16 179//16 194//16
+f 194//16 185//16 195//16 193//16
+f 243//7 245//7 278//7 276//7
+f 191//15 150//15 146//15 189//15
+f 189//21 146//21 185//21 194//21
+f 192//16 196//16 176//16 179//16
+f 185//16 184//16 197//16 195//16
+f 229//7 196//7 265//7 271//7
+f 184//13 145//13 149//13 197//13
+f 198//15 199//15 165//15 200//15
+f 201//21 202//21 199//21 198//21
+f 203//18 204//18 205//18 206//18
+f 207//13 208//13 209//13 210//13
+f 210//22 209//22 204//22 203//22
+f 206//21 205//21 208//21 207//21
+f 207//21 211//21 212//21 206//21
+f 213//21 187//21 214//21 215//21
+f 215//21 216//21 202//21 213//21
+f 217//22 218//22 219//22 220//22
+f 221//21 222//21 223//21 224//21
+f 148//7 230//7 272//7 256//7
+f 197//7 149//7 257//7 266//7
+f 191//7 190//7 260//7 261//7
+f 230//7 246//7 279//7 272//7
+f 233//21 144//21 147//21 232//21
+f 144//13 233//13 230//13 148//13
+f 151//14 231//14 232//14 147//14
+f 163//18 162//18 204//18 234//18
+f 235//23 209//23 161//23 160//23
+f 234//24 204//24 209//24 235//24
+f 236//24 219//24 218//24 237//24
+f 167//18 166//18 219//18 236//18
+f 237//13 218//13 165//13 164//13
+f 164//13 181//13 223//13 237//13
+f 200//25 165//25 218//25 238//25
+f 239//21 223//21 181//21 240//21
+f 236//14 222//14 180//14 167//14
+f 237//16 223//16 222//16 236//16
+f 235//16 233//16 232//16 234//16
+f 160//13 183//13 233//13 235//13
+f 234//18 232//18 182//18 163//18
+f 238//16 218//16 202//16 201//16
+f 241//16 226//16 223//16 239//16
+f 246//7 244//7 277//7 279//7
+f 240//15 181//15 243//15 242//15
+f 242//15 244//15 182//15 240//15
+f 149//7 148//7 256//7 257//7
+f 239//16 232//16 231//16 241//16
+f 240//21 182//21 232//21 239//21
+f 181//26 180//26 245//26 243//26
+f 244//15 246//15 183//15 182//15
+f 150//7 191//7 261//7 258//7
+f 246//13 230//13 233//13 183//13
+f 169//18 174//18 214//18 247//18
+f 214//21 187//21 248//21 247//21
+f 171//13 170//13 173//13 172//13
+f 172//13 178//13 179//13 171//13
+f 217//23 173//23 187//23 213//23
+f 215//18 214//18 174//18 220//18
+f 220//25 174//25 173//25 217//25
+f 224//12 178//12 177//12 221//12
+f 221//18 177//18 229//18 228//18
+f 225//13 190//13 178//13 224//13
+f 188//25 173//25 170//25 249//25
+f 194//21 179//21 178//21 189//21
+f 245//7 227//7 269//7 278//7
+f 196//14 229//14 177//14 176//14
+f 250//18 216//18 219//18 166//18
+f 250//27 199//27 202//27 216//27
+f 213//23 202//23 218//23 217//23
+f 220//18 219//18 216//18 215//18
+f 228//18 227//18 222//18 221//18
+f 224//13 223//13 226//13 225//13
+f 231//7 151//7 259//7 273//7
+f 180//14 222//14 227//14 245//14
+f 203//25 154//25 153//25 210//25
+f 210//13 153//13 211//13 207//13
+f 206//18 212//18 154//18 203//18
+f 159//23 158//23 153//23 152//23
+f 155//18 154//18 157//18 156//18
+f 251//21 248//21 187//21 186//21
+f 249//16 170//16 248//16 251//16
+f 251//16 252//16 157//16 249//16
+f 186//21 212//21 252//21 251//21
+f 188//15 154//15 212//15 186//15
+f 249//25 157//25 154//25 188//25
+f 170//16 169//16 247//16 248//16
+f 252//28 253//28 158//28 157//28
+f 253//21 252//21 212//21 211//21
+f 253//23 211//23 153//23 158//23
+f 200//15 162//15 254//15 198//15
+f 198//21 254//21 205//21 201//21
+f 201//16 205//16 204//16 238//16
+f 238//25 204//25 162//25 200//25
+f 199//15 250//15 166//15 165//15
+f 162//15 161//15 255//15 254//15
+f 208//21 205//21 254//21 255//21
+f 161//23 209//23 208//23 255//23
+f 261//25 260//25 262//25 263//25
+f 263//25 264//25 258//25 261//25
+f 257//29 258//29 264//29 266//29
+f 267//25 268//25 269//25 270//25
+f 270//25 271//25 260//25 267//25
+f 259//25 258//25 257//25 256//25
+f 256//25 272//25 273//25 259//25
+f 275//25 276//25 268//25 274//25
+f 274//25 273//25 277//25 275//25
+f 279//25 277//25 273//25 272//25
+f 265//25 262//25 260//25 271//25
+f 269//25 268//25 276//25 278//25
+f 225//7 226//7 268//7 267//7
+f 192//7 193//7 263//7 262//7
+f 227//7 228//7 270//7 269//7
+f 193//7 195//7 264//7 263//7
+f 195//7 197//7 266//7 264//7
+f 196//7 192//7 262//7 265//7
+f 151//7 150//7 258//7 259//7
+f 228//7 229//7 271//7 270//7
+f 226//7 241//7 274//7 268//7
+f 190//7 225//7 267//7 260//7
+f 244//7 242//7 275//7 277//7
+f 241//7 231//7 273//7 274//7
+f 251//7 249//7 282//7 283//7
+f 188//7 186//7 280//7 281//7
+f 249//7 188//7 281//7 282//7
+f 186//7 251//7 283//7 280//7
+f 173//7 188//7 286//7 285//7
+f 188//7 154//7 284//7 286//7
+g holeycube.002
+v 0.369385 2.003562 1.792544
+v 0.963329 0.880686 2.925211
+v 0.707927 0.635014 2.815589
+v 0.113983 1.757890 1.682922
+v 0.111409 2.147654 2.070667
+v 0.705351 1.024778 3.203335
+v 0.449950 0.779106 3.093713
+v -0.143993 1.901982 1.961045
+v 2.047380 0.275193 1.756502
+v 3.131433 -0.330301 0.587792
+v 2.876031 -0.575973 0.478171
+v 1.791978 0.029521 1.646880
+v 1.934732 -0.240361 1.919116
+v 3.018785 -0.845855 0.750406
+v 3.274187 -0.600183 0.860028
+v 2.190134 0.005311 2.028738
+v 0.716742 2.790825 -0.781068
+v 1.800794 2.185331 -1.949777
+v 1.545392 1.939659 -2.059399
+v 0.461340 2.545153 -0.890690
+v -1.934732 0.240361 -1.919116
+v -0.850680 -0.365133 -3.087824
+v -1.106082 -0.610805 -3.197446
+v -2.190134 -0.005311 -2.028738
+v -0.716742 -2.790825 0.781068
+v 0.367311 -3.396319 -0.387641
+v 0.622713 -3.150647 -0.278019
+v -0.461340 -2.545153 0.890690
+v -0.604093 -2.275271 0.618455
+v 0.479959 -2.880765 -0.550255
+v 0.224557 -3.126437 -0.659877
+v -0.859495 -2.520943 0.508833
+v -1.800794 -2.185331 1.949777
+v -1.943547 -1.915450 1.677542
+v -1.688145 -1.669778 1.787164
+v -1.545392 -1.939659 2.059399
+v -3.274187 0.600183 -0.860028
+v -3.018785 0.845855 -0.750406
+v -0.622713 3.150647 0.278019
+v -0.367311 3.396319 0.387641
+v 1.106082 0.610805 3.197446
+v 0.850680 0.365133 3.087824
+v 1.935972 -1.872461 -0.314165
+v 0.737936 -3.024857 -0.828377
+v 1.677995 -1.728369 -0.036042
+v -0.490109 -0.517382 2.301377
+v -1.946122 -1.525685 2.065288
+v -0.748086 -0.373290 2.579500
+v -1.803369 -1.795566 2.337522
+v -0.605333 -0.643171 2.851735
+v -0.347356 -0.787263 2.573611
+v 0.592703 0.509225 3.365948
+v -2.058771 -2.041239 2.227901
+v 0.848105 0.754897 3.475569
+v 0.605333 0.643171 -2.851735
+v -0.592703 -0.509225 -3.365948
+v 0.347356 0.787263 -2.573611
+v 0.748086 0.373290 -2.579500
+v -0.449950 -0.779106 -3.093713
+v 2.282089 0.546902 -0.654497
+v 1.688145 1.669778 -1.787164
+v 1.946122 1.525685 -2.065288
+v 2.540065 0.402810 -0.932619
+v 2.795467 0.648482 -0.822998
+v 2.201524 1.771358 -1.955666
+v 1.943547 1.915450 -1.677542
+v 2.537491 0.792574 -0.544875
+v 3.389409 -0.474393 0.309670
+v 3.134007 -0.720065 0.200048
+v 0.143993 -1.901982 -1.961045
+v 0.482534 -3.270529 -0.937999
+v -0.111409 -2.147654 -2.070667
+v -0.705351 -1.024778 -3.203335
+v -0.113983 -1.757890 -1.682922
+v -0.707927 -0.635014 -2.815589
+v -0.963329 -0.880686 -2.925211
+v -0.369385 -2.003562 -1.792544
+v -2.537491 -0.792574 0.544875
+v -3.131433 0.330301 -0.587792
+v -2.876031 0.575973 -0.478171
+v -2.282089 -0.546902 0.654497
+v -2.540065 -0.402810 0.932619
+v -3.134007 0.720065 -0.200048
+v -3.389409 0.474393 -0.309670
+v -2.795467 -0.648482 0.822998
+v -2.201524 -1.771358 1.955666
+v -0.482534 3.270529 0.937999
+v -0.737936 3.024857 0.828377
+v -0.479959 2.880765 0.550255
+v -0.224557 3.126437 0.659877
+v 0.604093 2.275271 -0.618455
+v 0.859495 2.520943 -0.508833
+v -2.047380 -0.275193 -1.756502
+v -1.791978 -0.029521 -1.646880
+v 0.490109 0.517382 -2.301377
+v -1.677995 1.728369 0.036042
+v -1.820749 1.998251 -0.236193
+v -1.935972 1.872461 0.314165
+v -2.078725 2.142343 0.041929
+v -3.276761 0.989947 -0.472284
+v -0.880689 3.294739 0.556142
+v -3.532163 0.744275 -0.581905
+v -0.625287 3.540411 0.665764
+v 0.625287 -3.540411 -0.665764
+v 0.880689 -3.294739 -0.556142
+v 1.820749 -1.998251 0.236193
+v -0.848105 -0.754897 -3.475569
+v 2.078725 -2.142343 -0.041929
+v 3.276761 -0.989947 0.472284
+v 3.532163 -0.744275 0.581905
+v 1.803369 1.795566 -2.337522
+v 2.058771 2.041239 -2.227901
+v 0.111409 2.147654 2.070667
+v 0.705351 1.024778 3.203335
+v 0.449950 0.779106 3.093713
+v -0.143993 1.901982 1.961045
+v -1.946122 -1.525685 2.065288
+v -0.748086 -0.373290 2.579500
+v -1.803369 -1.795566 2.337522
+v -0.605333 -0.643171 2.851735
+v 0.592703 0.509225 3.365948
+v -2.058771 -2.041239 2.227901
+v 0.848105 0.754897 3.475569
+v -2.540065 -0.402810 0.932619
+v -3.134007 0.720065 -0.200048
+v -3.389409 0.474393 -0.309670
+v -2.795467 -0.648482 0.822998
+v -2.201524 -1.771358 1.955666
+v -0.482534 3.270529 0.937999
+v -0.737936 3.024857 0.828377
+v -1.935972 1.872461 0.314165
+v -2.078725 2.142343 0.041929
+v -3.276761 0.989947 -0.472284
+v -0.880689 3.294739 0.556142
+v -3.532163 0.744275 -0.581905
+v -0.625287 3.540411 0.665764
+v 1.935972 -1.872461 -0.314165
+v 1.677995 -1.728369 -0.036042
+v 1.820749 -1.998251 0.236193
+v 2.078725 -2.142343 -0.041929
+v 2.876031 -0.575973 0.478171
+v 0.479959 -2.880765 -0.550255
+v 1.677995 -1.728369 -0.036042
+vn 0.635737 -0.355088 -0.685384
+vn 0.688513 0.662283 0.295519
+vn -0.688513 -0.662283 -0.295518
+vn -0.348983 0.659767 -0.665521
+vn 0.348982 -0.659767 0.665521
+vn -0.348982 0.659767 -0.665521
+vn 0.348982 -0.659768 0.665521
+vn -0.688513 -0.662283 -0.295519
+vn 0.348983 -0.659767 0.665521
+vn -0.348982 0.659768 -0.665521
+vn 0.688513 0.662283 0.295518
+vn 0.635737 -0.355089 -0.685383
+vn -0.635737 0.355088 0.685384
+vn 0.688512 0.662283 0.295519
+vn -0.635737 0.355089 0.685383
+vn -0.688512 -0.662283 -0.295519
+vn 0.635737 -0.355089 -0.685384
+vn -0.635737 0.355089 0.685384
+s off
+f 287//30 288//30 289//30 290//30
+f 288//31 287//31 291//31 292//31
+f 290//32 289//32 293//32 294//32
+f 295//33 296//33 297//33 298//33
+f 299//34 300//34 301//34 302//34
+f 303//33 304//33 305//33 306//33
+f 307//35 308//35 309//35 310//35
+f 311//36 312//36 313//36 314//36
+f 315//35 316//35 317//35 318//35
+f 318//37 317//37 312//37 311//37
+f 311//37 319//37 320//37 318//37
+f 318//33 320//33 321//33 315//33
+f 314//38 322//38 319//38 311//38
+f 310//35 323//35 324//35 307//35
+f 306//39 325//39 326//39 303//39
+f 302//34 327//34 328//34 299//34
+f 298//33 289//33 288//33 295//33
+f 295//40 288//40 327//40 302//40
+f 299//37 328//37 289//37 298//37
+f 329//33 330//33 316//33 331//33
+f 332//33 321//33 333//33 334//33
+f 385//7 386//7 419//7 418//7
+f 336//38 335//38 322//38 337//38
+f 337//38 328//38 338//38 336//38
+f 386//7 388//7 421//7 419//7
+f 334//33 293//33 289//33 332//33
+f 332//41 289//41 328//41 337//41
+f 335//38 339//38 319//38 322//38
+f 328//38 327//38 340//38 338//38
+f 372//7 339//7 408//7 414//7
+f 327//31 288//31 292//31 340//31
+f 341//33 342//33 308//33 343//33
+f 344//41 345//41 342//41 341//41
+f 346//32 347//32 348//32 349//32
+f 350//40 351//40 352//40 353//40
+f 353//42 352//42 347//42 346//42
+f 349//41 348//41 351//41 350//41
+f 350//41 354//41 355//41 349//41
+f 356//41 330//41 357//41 358//41
+f 358//41 359//41 345//41 356//41
+f 360//42 361//42 362//42 363//42
+f 364//41 365//41 366//41 367//41
+f 291//7 373//7 415//7 399//7
+f 340//7 292//7 400//7 409//7
+f 334//7 333//7 403//7 404//7
+f 373//7 389//7 422//7 415//7
+f 376//41 287//41 290//41 375//41
+f 287//43 376//43 373//43 291//43
+f 294//37 374//37 375//37 290//37
+f 306//37 305//37 347//37 377//37
+f 378//31 352//31 304//31 303//31
+f 377//38 347//38 352//38 378//38
+f 379//38 362//38 361//38 380//38
+f 310//32 309//32 362//32 379//32
+f 380//31 361//31 308//31 307//31
+f 307//31 324//31 366//31 380//31
+f 343//44 308//44 361//44 381//44
+f 382//41 366//41 324//41 383//41
+f 379//32 365//32 323//32 310//32
+f 380//38 366//38 365//38 379//38
+f 378//34 376//34 375//34 377//34
+f 303//31 326//31 376//31 378//31
+f 377//37 375//37 325//37 306//37
+f 381//38 361//38 345//38 344//38
+f 384//38 369//38 366//38 382//38
+f 389//7 387//7 420//7 422//7
+f 383//33 324//33 386//33 385//33
+f 385//33 387//33 325//33 383//33
+f 292//7 291//7 399//7 400//7
+f 382//38 375//38 374//38 384//38
+f 383//41 325//41 375//41 382//41
+f 324//33 323//33 388//33 386//33
+f 387//35 389//35 326//35 325//35
+f 293//7 334//7 404//7 401//7
+f 389//43 373//43 376//43 326//43
+f 312//45 317//45 357//45 390//45
+f 357//46 330//46 391//46 390//46
+f 314//31 313//31 316//31 315//31
+f 315//31 321//31 322//31 314//31
+f 360//31 316//31 330//31 356//31
+f 358//45 357//45 317//45 363//45
+f 363//44 317//44 316//44 360//44
+f 367//30 321//30 320//30 364//30
+f 364//32 320//32 372//32 371//32
+f 368//40 333//40 321//40 367//40
+f 331//44 316//44 313//44 392//44
+f 337//46 322//46 321//46 332//46
+f 388//7 370//7 412//7 421//7
+f 339//32 372//32 320//32 319//32
+f 393//37 359//37 362//37 309//37
+f 393//41 342//41 345//41 359//41
+f 356//40 345//40 361//40 360//40
+f 363//37 362//37 359//37 358//37
+f 371//32 370//32 365//32 364//32
+f 367//40 366//40 369//40 368//40
+f 374//7 294//7 402//7 416//7
+f 323//32 365//32 370//32 388//32
+f 346//44 297//44 296//44 353//44
+f 353//40 296//40 354//40 350//40
+f 349//32 355//32 297//32 346//32
+f 302//40 301//40 296//40 295//40
+f 298//37 297//37 300//37 299//37
+f 394//41 391//41 330//41 329//41
+f 392//38 313//38 391//38 394//38
+f 394//38 395//38 300//38 392//38
+f 329//41 355//41 395//41 394//41
+f 331//33 297//33 355//33 329//33
+f 392//44 300//44 297//44 331//44
+f 313//34 312//34 390//34 391//34
+f 395//38 396//38 301//38 300//38
+f 396//41 395//41 355//41 354//41
+f 396//40 354//40 296//40 301//40
+f 343//33 305//33 397//33 341//33
+f 341//41 397//41 348//41 344//41
+f 344//38 348//38 347//38 381//38
+f 381//47 347//47 305//47 343//47
+f 342//33 393//33 309//33 308//33
+f 305//33 304//33 398//33 397//33
+f 351//41 348//41 397//41 398//41
+f 304//40 352//40 351//40 398//40
+f 404//44 403//44 405//44 406//44
+f 406//44 407//44 401//44 404//44
+f 400//44 401//44 407//44 409//44
+f 410//44 411//44 412//44 413//44
+f 413//44 414//44 403//44 410//44
+f 402//44 401//44 400//44 399//44
+f 399//44 415//44 416//44 402//44
+f 418//44 419//44 411//44 417//44
+f 417//44 416//44 420//44 418//44
+f 422//47 420//47 416//47 415//47
+f 408//44 405//44 403//44 414//44
+f 412//44 411//44 419//44 421//44
+f 368//7 369//7 411//7 410//7
+f 335//7 336//7 406//7 405//7
+f 370//7 371//7 413//7 412//7
+f 336//7 338//7 407//7 406//7
+f 338//7 340//7 409//7 407//7
+f 339//7 335//7 405//7 408//7
+f 294//7 293//7 401//7 402//7
+f 371//7 372//7 414//7 413//7
+f 369//7 384//7 417//7 411//7
+f 333//7 368//7 410//7 403//7
+f 387//7 385//7 418//7 420//7
+f 384//7 374//7 416//7 417//7
+f 394//7 392//7 425//7 426//7
+f 331//7 329//7 423//7 424//7
+f 392//7 331//7 424//7 425//7
+f 329//7 394//7 426//7 423//7
+f 316//7 331//7 429//7 428//7
+f 331//7 297//7 427//7 429//7

+ 22 - 0
examples/16-shadowmaps/makefile

@@ -0,0 +1,22 @@
+#
+# Copyright 2013 Dario Manesku. All rights reserved.
+# License: http://www.opensource.org/licenses/BSD-2-Clause
+#
+
+BGFX_DIR=../..
+RUNTIME_DIR=$(BGFX_DIR)/examples/runtime
+BUILD_DIR=../../.build
+
+include $(BGFX_DIR)/premake/shader.mk
+
+geometry: ../runtime/meshes/column.bin
+
+../runtime/meshes/column.bin: column.obj
+	../../tools/bin/geometryc -f column.obj -o ../runtime/meshes/column.bin --packnormal 1
+
+rebuild:
+	@make -s --no-print-directory TARGET=0 clean all
+	@make -s --no-print-directory TARGET=1 clean all
+	@make -s --no-print-directory TARGET=2 clean all
+	@make -s --no-print-directory TARGET=3 clean all
+	@make -s --no-print-directory TARGET=4 clean all

+ 3296 - 0
examples/16-shadowmaps/shadowmaps.cpp

@@ -0,0 +1,3296 @@
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include <string>
+#include <vector>
+#include <algorithm>
+
+#include "common.h"
+
+#include <bgfx.h>
+#include <bx/timer.h>
+#include <bx/readerwriter.h>
+#include "entry/entry.h"
+#include "entry/camera.h"
+#include "fpumath.h"
+#include "imgui/imgui.h"
+
+#define RENDER_PASS_0 1
+#define RENDER_PASS_1 2
+#define RENDER_PASS_2 3
+#define RENDER_PASS_3 4
+#define RENDER_PASS_4 5
+#define RENDER_PASS_5 6
+#define RENDER_PASS_6 7
+#define RENDER_PASS_7 8
+#define RENDER_PASS_8 9
+#define RENDER_PASS_9 10
+#define RENDER_PASS_10 11
+#define RENDER_PASS_11 12
+#define RENDER_PASS_12 13
+#define RENDER_PASS_13 14
+#define RENDER_PASS_14 15
+#define RENDER_PASS_15 16
+#define RENDER_PASS_16 17
+#define RENDER_PASS_17 18
+#define RENDER_PASS_18 19
+
+uint32_t packUint32(uint8_t _x, uint8_t _y, uint8_t _z, uint8_t _w)
+{
+	union
+	{
+		uint32_t ui32;
+		uint8_t arr[4];
+	} un;
+
+	un.arr[0] = _x;
+	un.arr[1] = _y;
+	un.arr[2] = _z;
+	un.arr[3] = _w;
+
+	return un.ui32;
+}
+
+uint32_t packF4u(float _x, float _y = 0.0f, float _z = 0.0f, float _w = 0.0f)
+{
+	const uint8_t xx = uint8_t(_x*127.0f + 128.0f);
+	const uint8_t yy = uint8_t(_y*127.0f + 128.0f);
+	const uint8_t zz = uint8_t(_z*127.0f + 128.0f);
+	const uint8_t ww = uint8_t(_w*127.0f + 128.0f);
+	return packUint32(xx, yy, zz, ww);
+}
+
+struct LightType
+{
+	enum Enum
+	{
+		SpotLight        = 0,
+		PointLight       = 1,
+		DirectionalLight = 2,
+
+		Count
+	};
+
+};
+
+struct DepthImpl
+{
+	enum Enum
+	{
+		InvZ   = 0,
+		Linear = 1,
+
+		Count
+	};
+};
+
+struct PackDepth
+{
+	enum Enum
+	{
+		RGBA = 0,
+		VSM  = 1,
+
+		Count
+	};
+};
+
+struct SmImpl
+{
+	enum Enum
+	{
+		Hard = 0,
+		PCF  = 1,
+		VSM  = 2,
+		ESM  = 3,
+
+		Count
+	};
+};
+
+struct SmType
+{
+	enum Enum
+	{
+		Single  = 0,
+		Omni    = 1,
+		Cascade = 2,
+
+		Count
+	};
+};
+
+struct TetrahedronFaces
+{
+	enum Enum
+	{
+		Green  = 0,
+		Yellow = 1,
+		Blue   = 2,
+		Red    = 3,
+
+		Count  = 4
+	};
+};
+
+struct ProjType
+{
+	enum Enum
+	{
+		Horizontal = 0,
+		Vertical   = 1,
+
+		Count
+	};
+};
+
+struct ShadowMapRenderTargets
+{
+	enum Enum
+	{
+		First  = 0,
+		Second = 1,
+		Third  = 2,
+		Fourth = 3,
+
+		Count
+	};
+};
+
+void imguiEnum(SmImpl::Enum& _enum)
+{
+	if (imguiCheck("Hard", SmImpl::Hard == _enum) )
+	{
+		_enum = SmImpl::Hard;
+	}
+
+	if (imguiCheck("PCF", SmImpl::PCF == _enum) )
+	{
+		_enum = SmImpl::PCF;
+	}
+
+	if (imguiCheck("VSM", SmImpl::VSM == _enum) )
+	{
+		_enum = SmImpl::VSM;
+	}
+
+	if (imguiCheck("ESM", SmImpl::ESM == _enum) )
+	{
+		_enum = SmImpl::ESM;
+	}
+}
+
+void imguiEnum(DepthImpl::Enum& _enum)
+{
+	if (imguiCheck("InvZ", DepthImpl::InvZ == _enum) )
+	{
+		_enum = DepthImpl::InvZ;
+	}
+
+	if (imguiCheck("Linear", DepthImpl::Linear == _enum) )
+	{
+		_enum = DepthImpl::Linear;
+	}
+}
+
+void imguiEnum(LightType::Enum& _enum)
+{
+	if (imguiCheck("Spot light", LightType::SpotLight == _enum) )
+	{
+		_enum = LightType::SpotLight;
+	}
+
+	if (imguiCheck("Point light", LightType::PointLight == _enum) )
+	{
+		_enum = LightType::PointLight;
+	}
+
+	if (imguiCheck("Directional light", LightType::DirectionalLight == _enum) )
+	{
+		_enum = LightType::DirectionalLight;
+	}
+}
+
+void imguiBool(const char* _str, bool& _flag, bool _enabled = true)
+{
+	if (imguiCheck(_str, _flag, _enabled) )
+	{
+		_flag = !_flag;
+	}
+}
+
+struct PosNormalTexcoordVertex
+{
+	float    m_x;
+	float    m_y;
+	float    m_z;
+	uint32_t m_normal;
+	float    m_u;
+	float    m_v;
+};
+
+static const float s_texcoord = 5.0f;
+static const uint32_t s_numHPlaneVertices = 4;
+static PosNormalTexcoordVertex s_hplaneVertices[s_numHPlaneVertices] =
+{
+	{ -1.0f, 0.0f,  1.0f, packF4u(0.0f, 1.0f, 0.0f), s_texcoord, s_texcoord },
+	{  1.0f, 0.0f,  1.0f, packF4u(0.0f, 1.0f, 0.0f), s_texcoord, 0.0f       },
+	{ -1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f), 0.0f,       s_texcoord },
+	{  1.0f, 0.0f, -1.0f, packF4u(0.0f, 1.0f, 0.0f), 0.0f,       0.0f       },
+};
+
+static const uint32_t s_numVPlaneVertices = 4;
+static PosNormalTexcoordVertex s_vplaneVertices[s_numVPlaneVertices] =
+{
+	{ -1.0f,  1.0f, 0.0f, packF4u(0.0f, 0.0f, -1.0f), 1.0f, 1.0f },
+	{  1.0f,  1.0f, 0.0f, packF4u(0.0f, 0.0f, -1.0f), 1.0f, 0.0f },
+	{ -1.0f, -1.0f, 0.0f, packF4u(0.0f, 0.0f, -1.0f), 0.0f, 1.0f },
+	{  1.0f, -1.0f, 0.0f, packF4u(0.0f, 0.0f, -1.0f), 0.0f, 0.0f },
+};
+
+static const uint32_t s_numPlaneIndices = 6;
+static const uint16_t s_planeIndices[s_numPlaneIndices] =
+{
+	0, 1, 2,
+	1, 3, 2,
+};
+
+static const char* s_shaderPath = NULL;
+static bool s_flipV = false;
+static float s_texelHalf = 0.0f;
+
+static bgfx::UniformHandle u_texColor;
+static bgfx::UniformHandle u_shadowMap[ShadowMapRenderTargets::Count];
+static bgfx::RenderTargetHandle s_rtShadowMap[ShadowMapRenderTargets::Count];
+static bgfx::RenderTargetHandle s_rtBlur;
+
+static void shaderFilePath(char* _out, const char* _name)
+{
+	strcpy(_out, s_shaderPath);
+	strcat(_out, _name);
+	strcat(_out, ".bin");
+}
+
+long int fsize(FILE* _file)
+{
+	long int pos = ftell(_file);
+	fseek(_file, 0L, SEEK_END);
+	long int size = ftell(_file);
+	fseek(_file, pos, SEEK_SET);
+	return size;
+}
+
+static const bgfx::Memory* load(const char* _filePath)
+{
+	FILE* file = fopen(_filePath, "rb");
+	if (NULL != file)
+	{
+		uint32_t size = (uint32_t)fsize(file);
+		const bgfx::Memory* mem = bgfx::alloc(size+1);
+		size_t ignore = fread(mem->data, 1, size, file);
+		BX_UNUSED(ignore);
+		fclose(file);
+		mem->data[mem->size-1] = '\0';
+		return mem;
+	}
+
+	return NULL;
+}
+
+static const bgfx::Memory* loadShader(const char* _name)
+{
+	char filePath[512];
+	shaderFilePath(filePath, _name);
+	return load(filePath);
+}
+
+static const bgfx::Memory* loadTexture(const char* _name)
+{
+	char filePath[512];
+	strcpy(filePath, "textures/");
+	strcat(filePath, _name);
+	return load(filePath);
+}
+
+static bgfx::ProgramHandle loadProgram(const char* _vsName, const char* _fsName)
+{
+	const bgfx::Memory* mem;
+
+	// Load vertex shader.
+	mem = loadShader(_vsName);
+	bgfx::VertexShaderHandle vsh = bgfx::createVertexShader(mem);
+
+	// Load fragment shader.
+	mem = loadShader(_fsName);
+	bgfx::FragmentShaderHandle fsh = bgfx::createFragmentShader(mem);
+
+	// Create program from shaders.
+	bgfx::ProgramHandle program = bgfx::createProgram(vsh, fsh);
+
+	// We can destroy vertex and fragment shader here since
+	// their reference is kept inside bgfx after calling createProgram.
+	// Vertex and fragment shader will be destroyed once program is
+	// destroyed.
+	bgfx::destroyVertexShader(vsh);
+	bgfx::destroyFragmentShader(fsh);
+
+	return program;
+}
+
+void mtxScaleRotateTranslate(float* _result
+							, const float _scaleX
+							, const float _scaleY
+							, const float _scaleZ
+							, const float _rotX
+							, const float _rotY
+							, const float _rotZ
+							, const float _translateX
+							, const float _translateY
+							, const float _translateZ
+							)
+{
+	float mtxRotateTranslate[16];
+	float mtxScale[16];
+
+	mtxRotateXYZ(mtxRotateTranslate, _rotX, _rotY, _rotZ);
+	mtxRotateTranslate[12] = _translateX;
+	mtxRotateTranslate[13] = _translateY;
+	mtxRotateTranslate[14] = _translateZ;
+
+	memset(mtxScale, 0, sizeof(float)*16);
+	mtxScale[0]  = _scaleX;
+	mtxScale[5]  = _scaleY;
+	mtxScale[10] = _scaleZ;
+	mtxScale[15] = 1.0f;
+
+	mtxMul(_result, mtxScale, mtxRotateTranslate);
+}
+
+void mtxBillboard(float* __restrict _result
+				  , const float* __restrict _view
+				  , const float* __restrict _pos
+				  , const float* __restrict _scale)
+{
+	_result[ 0] = _view[0]  * _scale[0];
+	_result[ 1] = _view[4]  * _scale[0];
+	_result[ 2] = _view[8]  * _scale[0];
+	_result[ 3] = 0.0f;
+	_result[ 4] = _view[1]  * _scale[1];
+	_result[ 5] = _view[5]  * _scale[1];
+	_result[ 6] = _view[9]  * _scale[1];
+	_result[ 7] = 0.0f;
+	_result[ 8] = _view[2]  * _scale[2];
+	_result[ 9] = _view[6]  * _scale[2];
+	_result[10] = _view[10] * _scale[2];
+	_result[11] = 0.0f;
+	_result[12] = _pos[0];
+	_result[13] = _pos[1];
+	_result[14] = _pos[2];
+	_result[15] = 1.0f;
+}
+
+void mtxYawPitchRoll(float* __restrict _result
+		            , float _yaw
+		            , float _pitch
+		            , float _roll
+		            )
+{
+	float sroll  = sinf(_roll);
+	float croll  = cosf(_roll);
+	float spitch = sinf(_pitch);
+	float cpitch = cosf(_pitch);
+	float syaw   = sinf(_yaw);
+	float cyaw   = cosf(_yaw);
+
+	_result[ 0] = sroll * spitch * syaw + croll * cyaw;
+	_result[ 1] = sroll * cpitch;
+	_result[ 2] = sroll * spitch * cyaw - croll * syaw;
+	_result[ 3] = 0.0f;
+	_result[ 4] = croll * spitch * syaw - sroll * cyaw;
+	_result[ 5] = croll * cpitch;
+	_result[ 6] = croll * spitch * cyaw + sroll * syaw;
+	_result[ 7] = 0.0f;
+	_result[ 8] = cpitch * syaw;
+	_result[ 9] = -spitch;
+	_result[10] = cpitch * cyaw;
+	_result[11] = 0.0f;
+	_result[12] = 0.0f;
+	_result[13] = 0.0f;
+	_result[14] = 0.0f;
+	_result[15] = 1.0f;
+}
+
+struct Material
+{
+	union Ambient
+	{
+		struct
+		{
+			float m_r;
+			float m_g;
+			float m_b;
+			float m_unused;
+		};
+
+		float m_v[4];
+	};
+
+	union Diffuse
+	{
+		struct
+		{
+			float m_r;
+			float m_g;
+			float m_b;
+			float m_unused;
+		};
+
+		float m_v[4];
+	};
+
+	union Specular
+	{
+		struct
+		{
+			float m_r;
+			float m_g;
+			float m_b;
+			float m_ns;
+		};
+
+		float m_v[4];
+	};
+
+	Ambient m_ka;
+	Diffuse m_kd;
+	Specular m_ks;
+};
+
+struct Light
+{
+	union Position
+	{
+		struct
+		{
+			float m_x;
+			float m_y;
+			float m_z;
+			float m_w;
+		};
+
+		float m_v[4];
+	};
+
+	union LightRgbPower
+	{
+		struct
+		{
+			float m_r;
+			float m_g;
+			float m_b;
+			float m_power;
+		};
+
+		float m_v[4];
+	};
+
+	union SpotDirectionInner
+	{
+		struct
+		{
+			float m_x;
+			float m_y;
+			float m_z;
+			float m_inner;
+		};
+
+		float m_v[4];
+	};
+
+	union AttenuationSpotOuter
+	{
+		struct
+		{
+			float m_attnConst;
+			float m_attnLinear;
+			float m_attnQuadrantic;
+			float m_outer;
+		};
+
+		float m_v[4];
+	};
+
+	void computeViewSpaceComponents(float* _viewMtx)
+	{
+		vec4MulMtx(m_position_viewSpace, m_position.m_v, _viewMtx);
+
+		float tmp[] =
+		{
+			  m_spotDirectionInner.m_x
+			, m_spotDirectionInner.m_y
+			, m_spotDirectionInner.m_z
+			, 0.0f
+		};
+		vec4MulMtx(m_spotDirectionInner_viewSpace, tmp, _viewMtx);
+		m_spotDirectionInner_viewSpace[3] = m_spotDirectionInner.m_v[3];
+	}
+
+	Position              m_position;
+	float				  m_position_viewSpace[4];
+	LightRgbPower         m_ambientPower;
+	LightRgbPower         m_diffusePower;
+	LightRgbPower         m_specularPower;
+	SpotDirectionInner    m_spotDirectionInner;
+	float				  m_spotDirectionInner_viewSpace[4];
+	AttenuationSpotOuter  m_attenuationSpotOuter;
+};
+
+struct Uniforms
+{
+	void init()
+	{
+		m_ambientPass    = 1.0f;
+		m_lightningPass  = 1.0f;
+
+		m_shadowMapBias   = 0.003f;
+		m_shadowMapOffset = 0.0f;
+		m_shadowMapParam0 = 0.5;
+		m_shadowMapParam1 = 1.0;
+		m_depthValuePow   = 1.0f;
+		m_showSmCoverage  = 1.0f;
+		m_shadowMapTexelSize = 1.0f/512.0f;
+
+		m_csmFarDistances[0] = 30.0f;
+		m_csmFarDistances[1] = 90.0f;
+		m_csmFarDistances[2] = 180.0f;
+		m_csmFarDistances[3] = 1000.0f;
+
+		m_tetraNormalGreen[0] = 0.0f;
+		m_tetraNormalGreen[1] = -0.57735026f;
+		m_tetraNormalGreen[2] = 0.81649661f;
+
+		m_tetraNormalYellow[0] = 0.0f;
+		m_tetraNormalYellow[1] = -0.57735026f;
+		m_tetraNormalYellow[2] = -0.81649661f;
+
+		m_tetraNormalBlue[0] = -0.81649661f;
+		m_tetraNormalBlue[1] = 0.57735026f;
+		m_tetraNormalBlue[2] = 0.0f;
+
+		m_tetraNormalRed[0] = 0.81649661f;
+		m_tetraNormalRed[1] = 0.57735026f;
+		m_tetraNormalRed[2] = 0.0f;
+
+		m_XNum = 2.0f;
+		m_YNum = 2.0f;
+		m_XOffset = 10.0f/512.0f;
+		m_YOffset = 10.0f/512.0f;
+
+		u_params0          = bgfx::createUniform("u_params0",          bgfx::UniformType::Uniform4fv);
+		u_params1          = bgfx::createUniform("u_params1",          bgfx::UniformType::Uniform4fv);
+		u_params2          = bgfx::createUniform("u_params2",          bgfx::UniformType::Uniform4fv);
+		u_color            = bgfx::createUniform("u_color",            bgfx::UniformType::Uniform4fv);
+		u_smSamplingParams = bgfx::createUniform("u_smSamplingParams", bgfx::UniformType::Uniform4fv);
+		u_csmFarDistances  = bgfx::createUniform("u_csmFarDistances",  bgfx::UniformType::Uniform4fv);
+		u_lightMtx         = bgfx::createUniform("u_lightMtx",         bgfx::UniformType::Uniform4x4fv);
+
+		u_tetraNormalGreen  = bgfx::createUniform("u_tetraNormalGreen",  bgfx::UniformType::Uniform3fv);
+		u_tetraNormalYellow = bgfx::createUniform("u_tetraNormalYellow", bgfx::UniformType::Uniform3fv);
+		u_tetraNormalBlue   = bgfx::createUniform("u_tetraNormalBlue",   bgfx::UniformType::Uniform3fv);
+		u_tetraNormalRed    = bgfx::createUniform("u_tetraNormalRed",    bgfx::UniformType::Uniform3fv);
+
+		u_shadowMapMtx0 = bgfx::createUniform("u_shadowMapMtx0", bgfx::UniformType::Uniform4x4fv);
+		u_shadowMapMtx1 = bgfx::createUniform("u_shadowMapMtx1", bgfx::UniformType::Uniform4x4fv);
+		u_shadowMapMtx2 = bgfx::createUniform("u_shadowMapMtx2", bgfx::UniformType::Uniform4x4fv);
+		u_shadowMapMtx3 = bgfx::createUniform("u_shadowMapMtx3", bgfx::UniformType::Uniform4x4fv);
+
+		u_lightPosition             = bgfx::createUniform("u_lightPosition",              bgfx::UniformType::Uniform4fv);
+		u_lightAmbientPower         = bgfx::createUniform("u_lightAmbientPower",          bgfx::UniformType::Uniform4fv);
+		u_lightDiffusePower         = bgfx::createUniform("u_lightDiffusePower",          bgfx::UniformType::Uniform4fv);
+		u_lightSpecularPower        = bgfx::createUniform("u_lightSpecularPower",         bgfx::UniformType::Uniform4fv);
+		u_lightSpotDirectionInner   = bgfx::createUniform("u_lightSpotDirectionInner",    bgfx::UniformType::Uniform4fv);
+		u_lightAttenuationSpotOuter = bgfx::createUniform("u_lightAttenuationSpotOuter",  bgfx::UniformType::Uniform4fv);
+
+		u_materialKa = bgfx::createUniform("u_materialKa", bgfx::UniformType::Uniform4fv);
+		u_materialKd = bgfx::createUniform("u_materialKd", bgfx::UniformType::Uniform4fv);
+		u_materialKs = bgfx::createUniform("u_materialKs", bgfx::UniformType::Uniform4fv);
+
+	}
+
+	void setPtrs(Material* _materialPtr, Light* _lightPtr, float* _colorPtr, float* _lightMtxPtr, float* _shadowMapMtx0, float* _shadowMapMtx1, float* _shadowMapMtx2, float* _shadowMapMtx3)
+	{
+		m_lightMtxPtr = _lightMtxPtr;
+		m_colorPtr    = _colorPtr;
+		m_materialPtr = _materialPtr;
+		m_lightPtr    = _lightPtr;
+
+		m_shadowMapMtx0 = _shadowMapMtx0;
+		m_shadowMapMtx1 = _shadowMapMtx1;
+		m_shadowMapMtx2 = _shadowMapMtx2;
+		m_shadowMapMtx3 = _shadowMapMtx3;
+	}
+
+	// Call this once at initialization.
+	void submitConstUniforms()
+	{
+		bgfx::setUniform(u_tetraNormalGreen,  m_tetraNormalGreen);
+		bgfx::setUniform(u_tetraNormalYellow, m_tetraNormalYellow);
+		bgfx::setUniform(u_tetraNormalBlue,   m_tetraNormalBlue);
+		bgfx::setUniform(u_tetraNormalRed,    m_tetraNormalRed);
+	}
+
+	// Call this once per frame.
+	void submitPerFrameUniforms()
+	{
+		bgfx::setUniform(u_params1, m_params1);
+		bgfx::setUniform(u_params2, m_params2);
+		bgfx::setUniform(u_smSamplingParams, m_paramsBlur);
+		bgfx::setUniform(u_csmFarDistances, m_csmFarDistances);
+
+		bgfx::setUniform(u_materialKa, &m_materialPtr->m_ka);
+		bgfx::setUniform(u_materialKd, &m_materialPtr->m_kd);
+		bgfx::setUniform(u_materialKs, &m_materialPtr->m_ks);
+
+		bgfx::setUniform(u_lightPosition,             &m_lightPtr->m_position_viewSpace);
+		bgfx::setUniform(u_lightAmbientPower,         &m_lightPtr->m_ambientPower);
+		bgfx::setUniform(u_lightDiffusePower,         &m_lightPtr->m_diffusePower);
+		bgfx::setUniform(u_lightSpecularPower,        &m_lightPtr->m_specularPower);
+		bgfx::setUniform(u_lightSpotDirectionInner,   &m_lightPtr->m_spotDirectionInner_viewSpace);
+		bgfx::setUniform(u_lightAttenuationSpotOuter, &m_lightPtr->m_attenuationSpotOuter);
+	}
+
+	// Call this before each draw call.
+	void submitPerDrawUniforms()
+	{
+		bgfx::setUniform(u_shadowMapMtx0, m_shadowMapMtx0);
+		bgfx::setUniform(u_shadowMapMtx1, m_shadowMapMtx1);
+		bgfx::setUniform(u_shadowMapMtx2, m_shadowMapMtx2);
+		bgfx::setUniform(u_shadowMapMtx3, m_shadowMapMtx3);
+
+		bgfx::setUniform(u_params0,  m_params0);
+		bgfx::setUniform(u_lightMtx, m_lightMtxPtr);
+		bgfx::setUniform(u_color,    m_colorPtr);
+	}
+
+	void destroy()
+	{
+		bgfx::destroyUniform(u_params0);
+		bgfx::destroyUniform(u_params1);
+		bgfx::destroyUniform(u_params2);
+		bgfx::destroyUniform(u_color);
+		bgfx::destroyUniform(u_smSamplingParams);
+		bgfx::destroyUniform(u_csmFarDistances);
+
+		bgfx::destroyUniform(u_materialKa);
+		bgfx::destroyUniform(u_materialKd);
+		bgfx::destroyUniform(u_materialKs);
+
+		bgfx::destroyUniform(u_tetraNormalGreen);
+		bgfx::destroyUniform(u_tetraNormalYellow);
+		bgfx::destroyUniform(u_tetraNormalBlue);
+		bgfx::destroyUniform(u_tetraNormalRed);
+
+		bgfx::destroyUniform(u_shadowMapMtx0);
+		bgfx::destroyUniform(u_shadowMapMtx1);
+		bgfx::destroyUniform(u_shadowMapMtx2);
+		bgfx::destroyUniform(u_shadowMapMtx3);
+
+		bgfx::destroyUniform(u_lightMtx);
+		bgfx::destroyUniform(u_lightPosition);
+		bgfx::destroyUniform(u_lightAmbientPower);
+		bgfx::destroyUniform(u_lightDiffusePower);
+		bgfx::destroyUniform(u_lightSpecularPower);
+		bgfx::destroyUniform(u_lightSpotDirectionInner);
+		bgfx::destroyUniform(u_lightAttenuationSpotOuter);
+	}
+
+	union
+	{
+		struct
+		{
+			float m_ambientPass;
+			float m_lightningPass;
+			float m_unused00;
+			float m_unused01;
+		};
+
+		float m_params0[4];
+	};
+
+	union
+	{
+		struct
+		{
+			float m_shadowMapBias;
+			float m_shadowMapOffset;
+			float m_shadowMapParam0;
+			float m_shadowMapParam1;
+		};
+
+		float m_params1[4];
+	};
+
+	union
+	{
+		struct
+		{
+			float m_depthValuePow;
+			float m_showSmCoverage;
+			float m_shadowMapTexelSize;
+			float m_unused23;
+		};
+
+		float m_params2[4];
+	};
+
+	union
+	{
+		struct
+		{
+			float m_XNum;
+			float m_YNum;
+			float m_XOffset;
+			float m_YOffset;
+		};
+
+		float m_paramsBlur[4];
+	};
+
+	float m_tetraNormalGreen[3];
+	float m_tetraNormalYellow[3];
+	float m_tetraNormalBlue[3];
+	float m_tetraNormalRed[3];
+	float m_csmFarDistances[4];
+
+	float* m_lightMtxPtr;
+	float* m_colorPtr;
+	Light* m_lightPtr;
+	float* m_shadowMapMtx0;
+	float* m_shadowMapMtx1;
+	float* m_shadowMapMtx2;
+	float* m_shadowMapMtx3;
+	Material* m_materialPtr;
+
+private:
+	bgfx::UniformHandle u_params0;
+	bgfx::UniformHandle u_params1;
+	bgfx::UniformHandle u_params2;
+	bgfx::UniformHandle u_color;
+	bgfx::UniformHandle u_smSamplingParams;
+	bgfx::UniformHandle u_csmFarDistances;
+
+	bgfx::UniformHandle u_materialKa;
+	bgfx::UniformHandle u_materialKd;
+	bgfx::UniformHandle u_materialKs;
+
+	bgfx::UniformHandle u_tetraNormalGreen;
+	bgfx::UniformHandle u_tetraNormalYellow;
+	bgfx::UniformHandle u_tetraNormalBlue;
+	bgfx::UniformHandle u_tetraNormalRed;
+
+	bgfx::UniformHandle u_shadowMapMtx0;
+	bgfx::UniformHandle u_shadowMapMtx1;
+	bgfx::UniformHandle u_shadowMapMtx2;
+	bgfx::UniformHandle u_shadowMapMtx3;
+
+	bgfx::UniformHandle u_lightMtx;
+	bgfx::UniformHandle u_lightPosition;
+	bgfx::UniformHandle u_lightAmbientPower;
+	bgfx::UniformHandle u_lightDiffusePower;
+	bgfx::UniformHandle u_lightSpecularPower;
+	bgfx::UniformHandle u_lightSpotDirectionInner;
+	bgfx::UniformHandle u_lightAttenuationSpotOuter;
+};
+static Uniforms s_uniforms;
+
+struct RenderState
+{
+	enum Enum
+	{
+		Default = 0,
+
+		ShadowMap_PackDepth,
+		ShadowMap_PackDepthHoriz,
+		ShadowMap_PackDepthVert,
+
+		Custom_BlendLightTexture,
+		Custom_DrawPlaneBottom,
+
+		Count
+	};
+
+	uint64_t m_state;
+	uint32_t m_blendFactorRgba;
+	uint32_t m_fstencil;
+	uint32_t m_bstencil;
+};
+
+static RenderState s_renderStates[RenderState::Count] =
+{
+	{ // Default
+		0
+		| BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_ALPHA_WRITE
+		| BGFX_STATE_DEPTH_TEST_LESS
+		| BGFX_STATE_DEPTH_WRITE
+		| BGFX_STATE_CULL_CCW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_NONE
+		, BGFX_STENCIL_NONE
+	},
+	{ // ShadowMap_PackDepth
+		0
+		| BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_ALPHA_WRITE
+		| BGFX_STATE_DEPTH_WRITE
+		| BGFX_STATE_DEPTH_TEST_LESS
+		| BGFX_STATE_CULL_CCW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_NONE
+		, BGFX_STENCIL_NONE
+	},
+	{ // ShadowMap_PackDepthHoriz
+		0
+		| BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_ALPHA_WRITE
+		| BGFX_STATE_DEPTH_WRITE
+		| BGFX_STATE_DEPTH_TEST_LESS
+		| BGFX_STATE_CULL_CCW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_TEST_EQUAL
+		| BGFX_STENCIL_FUNC_REF(1)
+		| BGFX_STENCIL_FUNC_RMASK(0xff)
+		| BGFX_STENCIL_OP_FAIL_S_KEEP
+		| BGFX_STENCIL_OP_FAIL_Z_KEEP
+		| BGFX_STENCIL_OP_PASS_Z_KEEP
+		, BGFX_STENCIL_NONE
+	},
+	{ // ShadowMap_PackDepthVert
+		0
+		| BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_ALPHA_WRITE
+		| BGFX_STATE_DEPTH_WRITE
+		| BGFX_STATE_DEPTH_TEST_LESS
+		| BGFX_STATE_CULL_CCW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_TEST_EQUAL
+		| BGFX_STENCIL_FUNC_REF(0)
+		| BGFX_STENCIL_FUNC_RMASK(0xff)
+		| BGFX_STENCIL_OP_FAIL_S_KEEP
+		| BGFX_STENCIL_OP_FAIL_Z_KEEP
+		| BGFX_STENCIL_OP_PASS_Z_KEEP
+		, BGFX_STENCIL_NONE
+	},
+	{ // Custom_BlendLightTexture
+		BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_ALPHA_WRITE
+		| BGFX_STATE_DEPTH_WRITE
+		| BGFX_STATE_DEPTH_TEST_LESS
+		| BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_SRC_COLOR, BGFX_STATE_BLEND_INV_SRC_COLOR)
+		| BGFX_STATE_CULL_CCW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_NONE
+		, BGFX_STENCIL_NONE
+	},
+	{ // Custom_DrawPlaneBottom
+		BGFX_STATE_RGB_WRITE
+		| BGFX_STATE_CULL_CW
+		| BGFX_STATE_MSAA
+		, UINT32_MAX
+		, BGFX_STENCIL_NONE
+		, BGFX_STENCIL_NONE
+	},
+};
+
+struct ViewState
+{
+	ViewState(uint32_t _width = 1280, uint32_t _height = 720)
+		: m_width(_width)
+		, m_height(_height)
+	{
+	}
+
+	uint32_t m_width;
+	uint32_t m_height;
+
+	float m_view[16];
+	float m_proj[16];
+};
+
+struct ClearValues
+{
+	ClearValues(uint32_t _clearRgba  = 0x30303000
+		, float    _clearDepth       = 1.0f
+		, uint8_t  _clearStencil     = 0
+		)
+		: m_clearRgba(_clearRgba)
+		, m_clearDepth(_clearDepth)
+		, m_clearStencil(_clearStencil)
+	{
+	}
+
+	uint32_t m_clearRgba;
+	float    m_clearDepth;
+	uint8_t  m_clearStencil;
+};
+
+struct Aabb
+{
+	float m_min[3];
+	float m_max[3];
+};
+
+struct Obb
+{
+	float m_mtx[16];
+};
+
+struct Sphere
+{
+	float m_center[3];
+	float m_radius;
+};
+
+struct Primitive
+{
+	uint32_t m_startIndex;
+	uint32_t m_numIndices;
+	uint32_t m_startVertex;
+	uint32_t m_numVertices;
+
+	Sphere m_sphere;
+	Aabb m_aabb;
+	Obb m_obb;
+};
+
+typedef std::vector<Primitive> PrimitiveArray;
+
+struct Group
+{
+	Group()
+	{
+		reset();
+	}
+
+	void reset()
+	{
+		m_vbh.idx = bgfx::invalidHandle;
+		m_ibh.idx = bgfx::invalidHandle;
+		m_prims.clear();
+	}
+
+	bgfx::VertexBufferHandle m_vbh;
+	bgfx::IndexBufferHandle m_ibh;
+	Sphere m_sphere;
+	Aabb m_aabb;
+	Obb m_obb;
+	PrimitiveArray m_prims;
+};
+
+struct Mesh
+{
+	void load(const void* _vertices, uint32_t _numVertices, const bgfx::VertexDecl _decl, const uint16_t* _indices, uint32_t _numIndices)
+	{
+		Group group;
+		const bgfx::Memory* mem;
+		uint32_t size;
+
+		size = _numVertices*_decl.getStride();
+		mem = bgfx::makeRef(_vertices, size);
+		group.m_vbh = bgfx::createVertexBuffer(mem, _decl);
+
+		size = _numIndices*2;
+		mem = bgfx::makeRef(_indices, size);
+		group.m_ibh = bgfx::createIndexBuffer(mem);
+
+		//TODO:
+		// group.m_sphere = ...
+		// group.m_aabb = ...
+		// group.m_obb = ...
+		// group.m_prims = ...
+
+		m_groups.push_back(group);
+	}
+
+	void load(const char* _filePath)
+	{
+#define BGFX_CHUNK_MAGIC_VB BX_MAKEFOURCC('V', 'B', ' ', 0x0)
+#define BGFX_CHUNK_MAGIC_IB BX_MAKEFOURCC('I', 'B', ' ', 0x0)
+#define BGFX_CHUNK_MAGIC_PRI BX_MAKEFOURCC('P', 'R', 'I', 0x0)
+
+		bx::CrtFileReader reader;
+		reader.open(_filePath);
+
+		Group group;
+
+		uint32_t chunk;
+		while (4 == bx::read(&reader, chunk) )
+		{
+			switch (chunk)
+			{
+			case BGFX_CHUNK_MAGIC_VB:
+				{
+					bx::read(&reader, group.m_sphere);
+					bx::read(&reader, group.m_aabb);
+					bx::read(&reader, group.m_obb);
+
+					bx::read(&reader, m_decl);
+					uint16_t stride = m_decl.getStride();
+
+					uint16_t numVertices;
+					bx::read(&reader, numVertices);
+					const bgfx::Memory* mem = bgfx::alloc(numVertices*stride);
+					bx::read(&reader, mem->data, mem->size);
+
+					group.m_vbh = bgfx::createVertexBuffer(mem, m_decl);
+				}
+				break;
+
+			case BGFX_CHUNK_MAGIC_IB:
+				{
+					uint32_t numIndices;
+					bx::read(&reader, numIndices);
+					const bgfx::Memory* mem = bgfx::alloc(numIndices*2);
+					bx::read(&reader, mem->data, mem->size);
+					group.m_ibh = bgfx::createIndexBuffer(mem);
+				}
+				break;
+
+			case BGFX_CHUNK_MAGIC_PRI:
+				{
+					uint16_t len;
+					bx::read(&reader, len);
+
+					std::string material;
+					material.resize(len);
+					bx::read(&reader, const_cast<char*>(material.c_str() ), len);
+
+					uint16_t num;
+					bx::read(&reader, num);
+
+					for (uint32_t ii = 0; ii < num; ++ii)
+					{
+						bx::read(&reader, len);
+
+						std::string name;
+						name.resize(len);
+						bx::read(&reader, const_cast<char*>(name.c_str() ), len);
+
+						Primitive prim;
+						bx::read(&reader, prim.m_startIndex);
+						bx::read(&reader, prim.m_numIndices);
+						bx::read(&reader, prim.m_startVertex);
+						bx::read(&reader, prim.m_numVertices);
+						bx::read(&reader, prim.m_sphere);
+						bx::read(&reader, prim.m_aabb);
+						bx::read(&reader, prim.m_obb);
+
+						group.m_prims.push_back(prim);
+					}
+
+					m_groups.push_back(group);
+					group.reset();
+				}
+				break;
+
+			default:
+				DBG("%08x at %d", chunk, reader.seek() );
+				break;
+			}
+		}
+
+		reader.close();
+	}
+
+	void unload()
+	{
+		for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it)
+		{
+			const Group& group = *it;
+			bgfx::destroyVertexBuffer(group.m_vbh);
+
+			if (bgfx::invalidHandle != group.m_ibh.idx)
+			{
+				bgfx::destroyIndexBuffer(group.m_ibh);
+			}
+		}
+		m_groups.clear();
+	}
+
+	void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState)
+	{
+		bgfx::TextureHandle texture = BGFX_INVALID_HANDLE;
+		submit(_viewId, _mtx, _program, _renderState, texture);
+	}
+
+	void submit(uint8_t _viewId, float* _mtx, bgfx::ProgramHandle _program, const RenderState& _renderState, bgfx::TextureHandle _texture)
+	{
+		for (GroupArray::const_iterator it = m_groups.begin(), itEnd = m_groups.end(); it != itEnd; ++it)
+		{
+			const Group& group = *it;
+
+			// Set uniforms.
+			s_uniforms.submitPerDrawUniforms();
+
+			// Set model matrix for rendering.
+			bgfx::setTransform(_mtx);
+			bgfx::setProgram(_program);
+			bgfx::setIndexBuffer(group.m_ibh);
+			bgfx::setVertexBuffer(group.m_vbh);
+
+			// Set textures.
+			if (bgfx::invalidHandle != _texture.idx)
+			{
+				bgfx::setTexture(0, u_texColor, _texture);
+			}
+
+			for (uint8_t ii = 0; ii < ShadowMapRenderTargets::Count; ++ii)
+			{
+				bgfx::setTexture(4 + ii, u_shadowMap[ii], s_rtShadowMap[ii]);
+			}
+
+			// Apply render state.
+			bgfx::setStencil(_renderState.m_fstencil, _renderState.m_bstencil);
+			bgfx::setState(_renderState.m_state, _renderState.m_blendFactorRgba);
+
+			// Submit.
+			bgfx::submit(_viewId);
+		}
+	}
+
+	bgfx::VertexDecl m_decl;
+	typedef std::vector<Group> GroupArray;
+	GroupArray m_groups;
+};
+
+struct PosColorTexCoord0Vertex
+{
+	float m_x;
+	float m_y;
+	float m_z;
+	uint32_t m_rgba;
+	float m_u;
+	float m_v;
+
+	static void init()
+	{
+		ms_decl.begin();
+		ms_decl.add(bgfx::Attrib::Position,  3, bgfx::AttribType::Float);
+		ms_decl.add(bgfx::Attrib::Color0,    4, bgfx::AttribType::Uint8, true);
+		ms_decl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float);
+		ms_decl.end();
+	}
+
+	static bgfx::VertexDecl ms_decl;
+};
+
+bgfx::VertexDecl PosColorTexCoord0Vertex::ms_decl;
+
+void screenSpaceQuad(float _textureWidth, float _textureHeight, bool _originBottomLeft = true, float _width = 1.0f, float _height = 1.0f)
+{
+	if (bgfx::checkAvailTransientVertexBuffer(3, PosColorTexCoord0Vertex::ms_decl) )
+	{
+		bgfx::TransientVertexBuffer vb;
+		bgfx::allocTransientVertexBuffer(&vb, 3, PosColorTexCoord0Vertex::ms_decl);
+		PosColorTexCoord0Vertex* vertex = (PosColorTexCoord0Vertex*)vb.data;
+
+		const float zz = 0.0f;
+
+		const float minx = -_width;
+		const float maxx =  _width;
+		const float miny = 0.0f;
+		const float maxy = _height*2.0f;
+
+		const float texelHalfW = s_texelHalf/_textureWidth;
+		const float texelHalfH = s_texelHalf/_textureHeight;
+		const float minu = -1.0f + texelHalfW;
+		const float maxu =  1.0f + texelHalfW;
+
+		float minv = texelHalfH;
+		float maxv = 2.0f + texelHalfH;
+
+		if (_originBottomLeft)
+		{
+			std::swap(minv, maxv);
+			minv -= 1.0f;
+			maxv -= 1.0f;
+		}
+
+		vertex[0].m_x = minx;
+		vertex[0].m_y = miny;
+		vertex[0].m_z = zz;
+		vertex[0].m_rgba = 0xffffffff;
+		vertex[0].m_u = minu;
+		vertex[0].m_v = minv;
+
+		vertex[1].m_x = maxx;
+		vertex[1].m_y = miny;
+		vertex[1].m_z = zz;
+		vertex[1].m_rgba = 0xffffffff;
+		vertex[1].m_u = maxu;
+		vertex[1].m_v = minv;
+
+		vertex[2].m_x = maxx;
+		vertex[2].m_y = maxy;
+		vertex[2].m_z = zz;
+		vertex[2].m_rgba = 0xffffffff;
+		vertex[2].m_u = maxu;
+		vertex[2].m_v = maxv;
+
+		bgfx::setVertexBuffer(&vb);
+	}
+}
+
+void worldSpaceFrustumCorners(float* _corners24f
+		, float _near
+		, float _far
+		, float _projWidth
+		, float _projHeight
+		, const float* __restrict _invViewMtx
+		)
+{
+	// Define frustum corners in view space.
+	const float nw = _near * _projWidth;
+	const float nh = _near * _projHeight;
+	const float fw = _far  * _projWidth;
+	const float fh = _far  * _projHeight;
+
+	const uint8_t numCorners = 8;
+	const float corners[numCorners][3] =
+	{
+		{ -nw,  nh, _near },
+		{  nw,  nh, _near },
+		{  nw, -nh, _near },
+		{ -nw, -nh, _near },
+		{ -fw,  fh, _far  },
+		{  fw,  fh, _far  },
+		{  fw, -fh, _far  },
+		{ -fw, -fh, _far  },
+	};
+
+	// Convert them to world space.
+	float (*out)[3] = (float(*)[3])_corners24f;
+	for (uint8_t ii = 0; ii < numCorners; ++ii)
+	{
+		vec3MulMtx( (float*)&out[ii], (float*)&corners[ii], _invViewMtx);
+	}
+}
+
+/**
+ * _splits = { near0, far0, near1, far1... nearN, farN }
+ * N = _numSplits
+ */
+void splitFrustum(float* _splits, uint8_t _numSplits, float _near, float _far, float _splitWeight = 0.75f)
+{
+	const float l = _splitWeight;
+	const float ratio = _far/_near;
+	const int8_t numSlices = _numSplits*2;
+	const float numSlicesf = float(numSlices);
+
+	// First slice.
+	_splits[0] = _near;
+
+	for (uint8_t nn = 2, ff = 1; nn < numSlices; nn+=2, ff+=2)
+	{
+		float si = float(int8_t(ff) ) / numSlicesf;
+
+		const float nearp = l*(_near*powf(ratio, si) ) + (1 - l)*(_near + (_far - _near)*si);
+		_splits[nn] = nearp;          //near
+		_splits[ff] = nearp * 1.005f; //far from previous split
+	}
+
+	// Last slice.
+	_splits[numSlices-1] = _far;
+}
+
+struct Programs
+{
+	void init()
+	{
+		// Misc.
+		m_black        = loadProgram("vs_shadowmaps_color",         "fs_shadowmaps_color_black");
+		m_texture      = loadProgram("vs_shadowmaps_texture",       "fs_shadowmaps_texture");
+		m_colorTexture = loadProgram("vs_shadowmaps_color_texture", "fs_shadowmaps_color_texture");
+
+		// Blur.
+		m_vBlur[PackDepth::RGBA] = loadProgram("vs_shadowmaps_vblur", "fs_shadowmaps_vblur");
+		m_hBlur[PackDepth::RGBA] = loadProgram("vs_shadowmaps_hblur", "fs_shadowmaps_hblur");
+		m_vBlur[PackDepth::VSM]  = loadProgram("vs_shadowmaps_vblur", "fs_shadowmaps_vblur_vsm");
+		m_hBlur[PackDepth::VSM]  = loadProgram("vs_shadowmaps_hblur", "fs_shadowmaps_hblur_vsm");
+
+		// Draw depth.
+		m_drawDepth[PackDepth::RGBA] = loadProgram("vs_shadowmaps_unpackdepth", "fs_shadowmaps_unpackdepth");
+		m_drawDepth[PackDepth::VSM]  = loadProgram("vs_shadowmaps_unpackdepth", "fs_shadowmaps_unpackdepth_vsm");
+
+		// Pack depth.
+		m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] = loadProgram("vs_shadowmaps_packdepth", "fs_shadowmaps_packdepth");
+		m_packDepth[DepthImpl::InvZ][PackDepth::VSM]  = loadProgram("vs_shadowmaps_packdepth", "fs_shadowmaps_packdepth_vsm");
+
+		m_packDepth[DepthImpl::Linear][PackDepth::RGBA] = loadProgram("vs_shadowmaps_packdepth_linear", "fs_shadowmaps_packdepth_linear");
+		m_packDepth[DepthImpl::Linear][PackDepth::VSM]  = loadProgram("vs_shadowmaps_packdepth_linear", "fs_shadowmaps_packdepth_vsm_linear");
+
+		// Color lightning.
+		m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning", "fs_shadowmaps_color_lightning_hard");
+		m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning", "fs_shadowmaps_color_lightning_pcf");
+		m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning", "fs_shadowmaps_color_lightning_vsm");
+		m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning", "fs_shadowmaps_color_lightning_esm");
+
+		m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning_linear", "fs_shadowmaps_color_lightning_hard_linear");
+		m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning_linear", "fs_shadowmaps_color_lightning_pcf_linear");
+		m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning_linear", "fs_shadowmaps_color_lightning_vsm_linear");
+		m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning_linear", "fs_shadowmaps_color_lightning_esm_linear");
+
+		m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning_omni", "fs_shadowmaps_color_lightning_hard_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning_omni", "fs_shadowmaps_color_lightning_pcf_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning_omni", "fs_shadowmaps_color_lightning_vsm_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning_omni", "fs_shadowmaps_color_lightning_esm_omni");
+
+		m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning_linear_omni", "fs_shadowmaps_color_lightning_hard_linear_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning_linear_omni", "fs_shadowmaps_color_lightning_pcf_linear_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning_linear_omni", "fs_shadowmaps_color_lightning_vsm_linear_omni");
+		m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning_linear_omni", "fs_shadowmaps_color_lightning_esm_linear_omni");
+
+		m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning_csm", "fs_shadowmaps_color_lightning_hard_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning_csm", "fs_shadowmaps_color_lightning_pcf_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning_csm", "fs_shadowmaps_color_lightning_vsm_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning_csm", "fs_shadowmaps_color_lightning_esm_csm");
+
+		m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::Hard] = loadProgram("vs_shadowmaps_color_lightning_linear_csm", "fs_shadowmaps_color_lightning_hard_linear_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::PCF]  = loadProgram("vs_shadowmaps_color_lightning_linear_csm", "fs_shadowmaps_color_lightning_pcf_linear_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::VSM]  = loadProgram("vs_shadowmaps_color_lightning_linear_csm", "fs_shadowmaps_color_lightning_vsm_linear_csm");
+		m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::ESM]  = loadProgram("vs_shadowmaps_color_lightning_linear_csm", "fs_shadowmaps_color_lightning_esm_linear_csm");
+	}
+
+	void destroy()
+	{
+		// Color lightning.
+		for (uint8_t ii = 0; ii < SmType::Count; ++ii)
+		{
+			for (uint8_t jj = 0; jj < DepthImpl::Count; ++jj)
+			{
+				for (uint8_t kk = 0; kk < SmImpl::Count; ++kk)
+				{
+					bgfx::destroyProgram(m_colorLightning[ii][jj][kk]);
+				}
+			}
+		}
+
+		// Pack depth.
+		for (uint8_t ii = 0; ii < DepthImpl::Count; ++ii)
+		{
+			for (uint8_t jj = 0; jj < PackDepth::Count; ++jj)
+			{
+				bgfx::destroyProgram(m_packDepth[ii][jj]);
+			}
+		}
+
+		// Draw depth.
+		for (uint8_t ii = 0; ii < PackDepth::Count; ++ii)
+		{
+			bgfx::destroyProgram(m_drawDepth[ii]);
+		}
+
+		// Hblur.
+		for (uint8_t ii = 0; ii < PackDepth::Count; ++ii)
+		{
+			bgfx::destroyProgram(m_hBlur[ii]);
+		}
+
+		// Vblur.
+		for (uint8_t ii = 0; ii < PackDepth::Count; ++ii)
+		{
+			bgfx::destroyProgram(m_vBlur[ii]);
+		}
+
+		// Misc.
+		bgfx::destroyProgram(m_colorTexture);
+		bgfx::destroyProgram(m_texture);
+		bgfx::destroyProgram(m_black);
+	}
+
+	bgfx::ProgramHandle m_black;
+	bgfx::ProgramHandle m_texture;
+	bgfx::ProgramHandle m_colorTexture;
+	bgfx::ProgramHandle m_vBlur[PackDepth::Count];
+	bgfx::ProgramHandle m_hBlur[PackDepth::Count];
+	bgfx::ProgramHandle m_drawDepth[PackDepth::Count];
+	bgfx::ProgramHandle m_packDepth[DepthImpl::Count][PackDepth::Count];
+	bgfx::ProgramHandle m_colorLightning[SmType::Count][DepthImpl::Count][SmImpl::Count];
+};
+
+static Programs s_programs;
+
+struct ShadowMapSettings
+{
+#define IMGUI_FLOAT_PARAM(_name) float _name, _name##Min, _name##Max, _name##Step
+	IMGUI_FLOAT_PARAM(m_sizePwrTwo);
+	IMGUI_FLOAT_PARAM(m_depthValuePow);
+	IMGUI_FLOAT_PARAM(m_near);
+	IMGUI_FLOAT_PARAM(m_far);
+	IMGUI_FLOAT_PARAM(m_bias);
+	IMGUI_FLOAT_PARAM(m_normalOffset);
+	IMGUI_FLOAT_PARAM(m_customParam0);
+	IMGUI_FLOAT_PARAM(m_customParam1);
+	IMGUI_FLOAT_PARAM(m_xNum);
+	IMGUI_FLOAT_PARAM(m_yNum);
+	IMGUI_FLOAT_PARAM(m_xOffset);
+	IMGUI_FLOAT_PARAM(m_yOffset);
+	bool m_doBlur;
+	bgfx::ProgramHandle* m_progPack;
+	bgfx::ProgramHandle* m_progDraw;
+#undef IMGUI_FLOAT_PARAM
+};
+
+int _main_(int /*_argc*/, char** /*_argv*/)
+{
+	uint32_t debug = BGFX_DEBUG_TEXT;
+	uint32_t reset = BGFX_RESET_VSYNC;
+
+	ViewState viewState(1280, 720);
+	ClearValues clearValues(0x00000000, 1.0f, 0);
+
+	bgfx::init();
+	bgfx::reset(viewState.m_width, viewState.m_height, reset);
+
+	// Enable debug text.
+	bgfx::setDebug(debug);
+
+	// Setup root path for binary shaders. Shader binaries are different
+	// for each renderer.
+	switch (bgfx::getRendererType() )
+	{
+	default:
+	case bgfx::RendererType::Direct3D9:
+		s_shaderPath = "shaders/dx9/";
+		s_texelHalf = 0.5f;
+		break;
+
+	case bgfx::RendererType::Direct3D11:
+		s_shaderPath = "shaders/dx11/";
+		break;
+
+	case bgfx::RendererType::OpenGL:
+		s_shaderPath = "shaders/glsl/";
+		s_flipV = true;
+		break;
+
+	case bgfx::RendererType::OpenGLES2:
+	case bgfx::RendererType::OpenGLES3:
+		s_shaderPath = "shaders/gles/";
+		s_flipV = true;
+		break;
+	}
+
+	// Imgui.
+	FILE* file = fopen("font/droidsans.ttf", "rb");
+	uint32_t size = (uint32_t)fsize(file);
+	void* data = malloc(size);
+	size_t ignore = fread(data, 1, size, file);
+	BX_UNUSED(ignore);
+	fclose(file);
+	imguiCreate(data, size);
+
+	// Uniforms.
+	s_uniforms.init();
+	u_texColor = bgfx::createUniform("u_texColor",  bgfx::UniformType::Uniform1iv);
+	u_shadowMap[0] = bgfx::createUniform("u_shadowMap0", bgfx::UniformType::Uniform1iv);
+	u_shadowMap[1] = bgfx::createUniform("u_shadowMap1", bgfx::UniformType::Uniform1iv);
+	u_shadowMap[2] = bgfx::createUniform("u_shadowMap2", bgfx::UniformType::Uniform1iv);
+	u_shadowMap[3] = bgfx::createUniform("u_shadowMap3", bgfx::UniformType::Uniform1iv);
+
+	// Programs.
+	s_programs.init();
+
+	// Vertex declarations.
+	bgfx::VertexDecl PosNormalTexcoordDecl;
+	PosNormalTexcoordDecl.begin();
+	PosNormalTexcoordDecl.add(bgfx::Attrib::Position,  3, bgfx::AttribType::Float);
+	PosNormalTexcoordDecl.add(bgfx::Attrib::Normal,    4, bgfx::AttribType::Uint8, true, true);
+	PosNormalTexcoordDecl.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float);
+	PosNormalTexcoordDecl.end();
+
+	bgfx::VertexDecl posDecl;
+	posDecl.begin();
+	posDecl.add(bgfx::Attrib::Position,  3, bgfx::AttribType::Float);
+	posDecl.end();
+
+	PosColorTexCoord0Vertex::init();
+
+	// Textures.
+	const bgfx::Memory* mem;
+
+	mem = loadTexture("figure-rgba.dds");
+	bgfx::TextureHandle texFigure = bgfx::createTexture(mem);
+
+	mem = loadTexture("flare.dds");
+	bgfx::TextureHandle texFlare = bgfx::createTexture(mem);
+
+	mem = loadTexture("fieldstone-rgba.dds");
+	bgfx::TextureHandle texFieldstone = bgfx::createTexture(mem);
+
+	// Meshes.
+	Mesh bunnyMesh;
+	Mesh treeMesh;
+	Mesh cubeMesh;
+	Mesh hollowcubeMesh;
+	Mesh hplaneMesh;
+	Mesh vplaneMesh;
+	bunnyMesh.load("meshes/bunny.bin");
+	treeMesh.load("meshes/tree.bin");
+	cubeMesh.load("meshes/cube.bin");
+	hollowcubeMesh.load("meshes/hollowcube.bin");
+	hplaneMesh.load(s_hplaneVertices, s_numHPlaneVertices, PosNormalTexcoordDecl, s_planeIndices, s_numPlaneIndices);
+	vplaneMesh.load(s_vplaneVertices, s_numVPlaneVertices, PosNormalTexcoordDecl, s_planeIndices, s_numPlaneIndices);
+
+	// Materials.
+	Material defaultMaterial =
+	{
+		 {{ 1.0f, 1.0f, 1.0f, 0.0f }} //ambient
+		,{{ 1.0f, 1.0f, 1.0f, 0.0f }} //diffuse
+		,{{ 1.0f, 1.0f, 1.0f, 0.0f }} //specular, exponent
+	};
+
+	// Lights.
+	Light pointLight =
+	{
+		{{ 0.0f, 0.0f, 0.0f, 1.0f   }}, //position
+		{  0.0f, 0.0f, 0.0f, 0.0f    }, //-ignore
+		{{ 1.0f, 1.0f, 1.0f, 0.0f   }}, //ambient
+		{{ 1.0f, 1.0f, 1.0f, 850.0f }}, //diffuse
+		{{ 1.0f, 1.0f, 1.0f, 0.0f   }}, //specular
+		{{ 0.0f,-0.4f,-0.6f, 0.0f   }}, //spotdirection, spotexponent
+		{  0.0f, 0.0f, 0.0f, 0.0f    }, //-ignore
+		{{ 1.0f, 0.0f, 1.0f, 91.0f  }}, //attenuation, spotcutoff
+	};
+
+	Light directionalLight =
+	{
+		{{ 0.5f,-1.0f, 0.1f, 0.0f  }}, //position
+		{  0.0f, 0.0f, 0.0f, 0.0f   }, //-ignore
+		{{ 1.0f, 1.0f, 1.0f, 0.02f }}, //ambient
+		{{ 1.0f, 1.0f, 1.0f, 0.4f  }}, //diffuse
+		{{ 1.0f, 1.0f, 1.0f, 0.0f  }}, //specular
+		{{ 0.0f, 0.0f, 0.0f, 1.0f  }}, //spotdirection, spotexponent
+		{  0.0f, 0.0f, 0.0f, 0.0f   }, //-ignore
+		{{ 0.0f, 0.0f, 0.0f, 1.0f  }}, //attenuation, spotcutoff
+	};
+
+	// Setup uniforms.
+	float color[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
+	float lightMtx[16];
+	float shadowMapMtx[ShadowMapRenderTargets::Count][16];
+	s_uniforms.setPtrs(&defaultMaterial
+			         , &pointLight
+			         , color
+			         , lightMtx
+			         , &shadowMapMtx[ShadowMapRenderTargets::First][0]
+			         , &shadowMapMtx[ShadowMapRenderTargets::Second][0]
+			         , &shadowMapMtx[ShadowMapRenderTargets::Third][0]
+			         , &shadowMapMtx[ShadowMapRenderTargets::Fourth][0]
+			         );
+	s_uniforms.submitConstUniforms();
+
+	// Settings.
+	ShadowMapSettings smSettings[LightType::Count][DepthImpl::Count][SmImpl::Count] =
+	{
+		{ //LightType::Spot
+
+		{ //DepthImpl::InvZ
+
+		{ //SmImpl::Hard
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0035f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.0012f, 0.0f, 0.05f, 0.00001f   // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 500.0f, 1.0f, 1000.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.007f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 500.0f, 1.0f, 1000.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 8.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.045f, 0.0f, 0.1f, 0.00001f     // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.04f, 0.00001f     // m_customParam0
+			, 450.0f, 1.0f, 1000.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 3.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.02f, 0.0f, 0.3f, 0.00001f      // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 9000.0f, 1.0f, 15000.0f, 1.0f    // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::InvZ][SmImpl::ESM] //m_progDraw
+		}
+
+		},
+		{ //DepthImpl::Linear
+
+		{ //SmImpl::Hard
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0025f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.0012f, 0.0f, 0.05f, 0.00001f   // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 500.0f, 1.0f, 1000.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0025f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.05f,  0.00001f   // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 2000.0f, 1.0f, 2000.0f, 1.0f     // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.006f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.1f, 0.00001f      // m_customParam0
+			, 300.0f, 1.0f, 1500.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  10.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0055f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 2500.0f, 1.0f, 5000.0f, 1.0f     // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Single][DepthImpl::Linear][SmImpl::ESM] //m_progDraw
+		}
+
+		}
+
+		},
+		{ //LightType::Point
+
+		{ //DepthImpl::InvZ
+
+		{ //SmImpl::Hard
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.006f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 50.0f, 1.0f, 300.0f, 1.0f        // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.004f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 50.0f, 1.0f, 300.0f, 1.0f        // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.001f         // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.001f         // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 8.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.055f, 0.0f, 0.1f, 0.00001f     // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.04f, 0.00001f     // m_customParam0
+			, 450.0f, 1.0f, 900.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 10.0f, 1.0f, 20.0f, 1.0f         // m_depthValuePow
+			, 3.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.035f, 0.0f, 0.1f, 0.00001f     // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 9000.0f, 1.0f, 15000.0f, 1.0f    // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::InvZ][SmImpl::ESM] //m_progDraw
+		}
+
+		},
+		{ //DepthImpl::Linear
+
+		{ //SmImpl::Hard
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.003f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 120.0f, 1.0f, 300.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0035f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 120.0f, 1.0f, 300.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.001f         // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.001f         // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.006f, 0.0f, 0.1f, 0.00001f     // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.1f, 0.00001f      // m_customParam0
+			, 400.0f, 1.0f, 900.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  12.0f, 9.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 250.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.007f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.05f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 8000.0f, 1.0f, 15000.0f, 1.0f    // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_xOffset
+			, 0.25f, 0.0f, 2.0f, 0.001f        // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Omni][DepthImpl::Linear][SmImpl::ESM] //m_progDraw
+		}
+
+		}
+
+		},
+		{ //LightType::Directional
+
+		{ //DepthImpl::InvZ
+
+		{ //SmImpl::Hard
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0012f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 200.0f, 1.0f, 400.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0012f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 200.0f, 1.0f, 400.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.004f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.04f, 0.00001f     // m_customParam0
+			, 2500.0f, 1.0f, 5000.0f, 1.0f     // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.004f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 9500.0f, 1.0f, 15000.0f, 1.0f    // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::InvZ][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::InvZ][SmImpl::ESM] //m_progDraw
+		}
+
+		},
+		{ //DepthImpl::Linear
+
+		{ //SmImpl::Hard
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0012f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 500.0f, 1.0f, 1000.0f, 1.0f      // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::Hard] //m_progDraw
+		},
+		{ //SmImpl::PCF
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 99.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.0012f, 0.0f, 0.01f, 0.00001f   // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 200.0f, 1.0f, 400.0f, 1.0f       // m_customParam1
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 8.0f, 1.0f           // m_yNum
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_xOffset
+			, 1.0f, 0.0f, 3.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::PCF] //m_progDraw
+		},
+		{ //SmImpl::VSM
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 1.0f          // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.004f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.02f, 0.0f, 0.04f, 0.00001f     // m_customParam0
+			, 2500.0f, 1.0f, 5000.0f, 1.0f     // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::VSM] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::VSM] //m_progDraw
+		},
+		{ //SmImpl::ESM
+			  11.0f, 7.0f, 12.0f, 1.0f         // m_sizePwrTwo
+			, 1.0f, 1.0f, 20.0f, 1.0f          // m_depthValuePow
+			, 1.0f, 1.0f, 10.0f, 0.01f         // m_near
+			, 550.0f, 100.0f, 2000.0f, 50.0f   // m_far
+			, 0.004f, 0.0f, 0.01f, 0.00001f    // m_bias
+			, 0.001f, 0.0f, 0.04f, 0.00001f    // m_normalOffset
+			, 0.7f, 0.0f, 1.0f, 0.01f          // m_customParam0
+			, 9500.0f, 1.0f, 15000.0f, 1.0f    // m_customParam1
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_xNum
+			, 2.0f, 0.0f, 4.0f, 1.0f           // m_yNum
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_xOffset
+			, 0.2f, 0.0f, 1.0f, 0.01f          // m_yOffset
+			, true                             // m_doBlur
+			, &s_programs.m_packDepth[DepthImpl::Linear][PackDepth::RGBA] //m_progPack
+			, &s_programs.m_colorLightning[SmType::Cascade][DepthImpl::Linear][SmImpl::ESM] //m_progDraw
+		}
+
+		}
+		}
+	};
+
+	struct SceneSettings
+	{
+		LightType::Enum m_lightType;
+		DepthImpl::Enum m_depthImpl;
+		SmImpl::Enum m_smImpl;
+		float m_spotOuterAngle;
+		float m_spotInnerAngle;
+		float m_fovXAdjust;
+		float m_fovYAdjust;
+		float m_coverageSpotL;
+		float m_numSplitsf;
+		float m_splitDistribution;
+		uint8_t m_numSplits;
+		bool m_updateLights;
+		bool m_updateScene;
+		bool m_drawDepthBuffer;
+		bool m_showSmCoverage;
+		bool m_stencilPack;
+		bool m_stabilize;
+	};
+
+	SceneSettings settings;
+	settings.m_lightType = LightType::SpotLight;
+	settings.m_depthImpl = DepthImpl::InvZ;
+	settings.m_smImpl    = SmImpl::Hard;
+	settings.m_spotOuterAngle  = 45.0f;
+	settings.m_spotInnerAngle  = 30.0f;
+	settings.m_fovXAdjust      = 0.0f;
+	settings.m_fovYAdjust      = 0.0f;
+	settings.m_coverageSpotL   = 90.0f;
+	settings.m_numSplitsf      = 4.0f;
+	settings.m_splitDistribution = 0.6f;
+	settings.m_numSplits       = uint8_t(settings.m_numSplitsf);
+	settings.m_updateLights    = true;
+	settings.m_updateScene     = true;
+	settings.m_drawDepthBuffer = false;
+	settings.m_showSmCoverage  = false;
+	settings.m_stencilPack     = true;
+	settings.m_stabilize       = true;
+
+	ShadowMapSettings* currentSmSettings = &smSettings[settings.m_lightType][settings.m_depthImpl][settings.m_smImpl];
+
+	// Render targets.
+	uint16_t shadowMapSize = 1 << uint32_t(currentSmSettings->m_sizePwrTwo);
+	uint16_t currentShadowMapSize = shadowMapSize;
+	float currentShadowMapSizef = float(int16_t(currentShadowMapSize) );
+	s_uniforms.m_shadowMapTexelSize = 1.0f / currentShadowMapSizef;
+	for (uint8_t ii = 0; ii < ShadowMapRenderTargets::Count; ++ii)
+	{
+		s_rtShadowMap[ii] = bgfx::createRenderTarget(currentShadowMapSize, currentShadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8 | BGFX_RENDER_TARGET_DEPTH_D24S8);
+	}
+	s_rtBlur = bgfx::createRenderTarget(currentShadowMapSize, currentShadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8);
+
+	// Setup camera.
+	float initialPos[3] = { 0.0f, 60.0f, -105.0f };
+	cameraSetPosition(initialPos);
+	cameraSetVerticalAngle(-0.45f);
+
+	// Set view and projection matrices.
+	const float camFovy    = 60.0f;
+	const float camAspect  = float(int32_t(viewState.m_width) ) / float(int32_t(viewState.m_height) );
+	const float camNear    = 0.1f;
+	const float camFar     = 2000.0f;
+	const float projHeight = 1.0f/tanf(camFovy*( (float)M_PI/180.0f)*0.5f);
+	const float projWidth  = projHeight * 1.0f/camAspect;
+	mtxProj(viewState.m_proj, camFovy, camAspect, camNear, camFar);
+	cameraGetViewMtx(viewState.m_view);
+
+	float timeAccumulatorLight = 0.0f;
+	float timeAccumulatorScene = 0.0f;
+
+	entry::MouseState mouseState;
+	while (!entry::processEvents(viewState.m_width, viewState.m_height, debug, reset, &mouseState) )
+	{
+		// Imgui.
+		imguiBeginFrame(mouseState.m_mx
+			, mouseState.m_my
+			, (mouseState.m_buttons[entry::MouseButton::Left  ] ? IMGUI_MBUT_LEFT  : 0)
+			| (mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0)
+			, 0
+			, viewState.m_width
+			, viewState.m_height
+			);
+
+		static int32_t rightScrollArea = 0;
+		imguiBeginScrollArea("Settings", viewState.m_width - 256 - 10, 10, 256, 660, &rightScrollArea);
+#define IMGUI_FLOAT_SLIDER(_name, _val) \
+		imguiSlider(_name               \
+				, &_val                 \
+				, *(((float*)&_val)+1)  \
+				, *(((float*)&_val)+2)  \
+				, *(((float*)&_val)+3)  \
+				)
+
+		imguiBool("Update lights", settings.m_updateLights);
+		imguiBool("Update scene", settings.m_updateScene);
+
+		imguiSeparatorLine();
+		imguiLabel("Shadow map depth:");
+		imguiEnum(settings.m_depthImpl);
+	    currentSmSettings = &smSettings[settings.m_lightType][settings.m_depthImpl][settings.m_smImpl];
+
+		imguiSeparator();
+		imguiBool("Draw depth buffer.", settings.m_drawDepthBuffer);
+		if (settings.m_drawDepthBuffer)
+		{
+			IMGUI_FLOAT_SLIDER("Depth value pow:", currentSmSettings->m_depthValuePow);
+		}
+
+		imguiSeparatorLine();
+		imguiLabel("Shadow Map implementation:");
+		imguiEnum(settings.m_smImpl);
+	    currentSmSettings = &smSettings[settings.m_lightType][settings.m_depthImpl][settings.m_smImpl];
+
+		imguiSeparator();
+		IMGUI_FLOAT_SLIDER("Bias:", currentSmSettings->m_bias);
+		IMGUI_FLOAT_SLIDER("Normal offset:", currentSmSettings->m_normalOffset);
+		imguiSeparator();
+		if (LightType::DirectionalLight != settings.m_lightType)
+		{
+			IMGUI_FLOAT_SLIDER("Near plane:", currentSmSettings->m_near);
+		}
+		IMGUI_FLOAT_SLIDER("Far plane:", currentSmSettings->m_far);
+
+		imguiSeparator();
+		switch(settings.m_smImpl)
+		{
+			case SmImpl::Hard:
+				//imguiLabel("Hard");
+				break;
+			case SmImpl::PCF:
+				imguiLabel("PCF");
+				IMGUI_FLOAT_SLIDER("X Offset:", currentSmSettings->m_xOffset);
+				IMGUI_FLOAT_SLIDER("Y Offset:", currentSmSettings->m_yOffset);
+				break;
+			case SmImpl::VSM:
+				imguiLabel("VSM");
+				IMGUI_FLOAT_SLIDER("Min variance", currentSmSettings->m_customParam0);
+				IMGUI_FLOAT_SLIDER("Depth multiplier", currentSmSettings->m_customParam1);
+				imguiBool("Blur shadow map", currentSmSettings->m_doBlur);
+				if (currentSmSettings->m_doBlur)
+				{
+					IMGUI_FLOAT_SLIDER("Blur X Offset:", currentSmSettings->m_xOffset);
+					IMGUI_FLOAT_SLIDER("Blur Y Offset:", currentSmSettings->m_yOffset);
+				}
+				break;
+			case SmImpl::ESM:
+				imguiLabel("ESM");
+				IMGUI_FLOAT_SLIDER("ESM Hardness", currentSmSettings->m_customParam0);
+				IMGUI_FLOAT_SLIDER("Depth multiplier", currentSmSettings->m_customParam1);
+				imguiBool("Blur shadow map", currentSmSettings->m_doBlur);
+				if (currentSmSettings->m_doBlur)
+				{
+					IMGUI_FLOAT_SLIDER("Blur X Offset:", currentSmSettings->m_xOffset);
+					IMGUI_FLOAT_SLIDER("Blur Y Offset:", currentSmSettings->m_yOffset);
+				}
+				break;
+
+			case SmImpl::Count:
+			default:
+				break;
+		};
+
+		imguiEndScrollArea();
+
+		static int32_t leftScrollArea = 0;
+		imguiBeginScrollArea("Light", 10, 70, 256, 334, &leftScrollArea);
+
+		const LightType::Enum ltBefore = settings.m_lightType;
+		imguiEnum(settings.m_lightType);
+		const LightType::Enum ltAfter = settings.m_lightType;
+		const bool bLtChanged = (ltAfter != ltBefore);
+
+		imguiSeparator();
+		imguiBool("Show shadow map coverage.", settings.m_showSmCoverage);
+
+		imguiSeparator();
+		imguiLabel("Shadow map resolution: %ux%u", currentShadowMapSize, currentShadowMapSize);
+		IMGUI_FLOAT_SLIDER(" ", currentSmSettings->m_sizePwrTwo);
+
+		imguiSeparatorLine();
+		if (LightType::SpotLight == settings.m_lightType)
+		{
+			imguiLabel("Spot light");
+			imguiSlider("Shadow map area:", &settings.m_coverageSpotL, 45.0f, 120.0f, 1.0f);
+
+			imguiSeparator();
+			imguiSlider("Spot outer cone:", &settings.m_spotOuterAngle, 0.0f, 91.0f, 0.1f);
+			imguiSlider("Spot inner cone:", &settings.m_spotInnerAngle, 0.0f, 90.0f, 0.1f);
+		}
+		else if (LightType::PointLight == settings.m_lightType)
+		{
+			imguiLabel("Point light");
+			imguiBool("Stencil pack", settings.m_stencilPack);
+
+			imguiSlider("Fov X adjust:", &settings.m_fovXAdjust, -20.0f, 20.0f, 0.0001f);
+			imguiSlider("Fov Y adjust:", &settings.m_fovYAdjust, -20.0f, 20.0f, 0.0001f);
+		}
+		else if (LightType::DirectionalLight == settings.m_lightType)
+		{
+			imguiLabel("Directional light");
+			imguiBool("Stabilize cascades", settings.m_stabilize);
+			imguiSlider("Cascade splits:", &settings.m_numSplitsf, 1.0f, 4.0f, 1.0f);
+			imguiSlider("Cascade distribution:", &settings.m_splitDistribution, 0.0f, 1.0f, 0.001f);
+			settings.m_numSplits = uint8_t(settings.m_numSplitsf);
+		}
+
+#undef IMGUI_FLOAT_SLIDER
+		imguiEndScrollArea();
+		imguiEndFrame();
+
+		// Update uniforms.
+		s_uniforms.m_shadowMapBias   = currentSmSettings->m_bias;
+		s_uniforms.m_shadowMapOffset = currentSmSettings->m_normalOffset;
+		s_uniforms.m_shadowMapParam0 = currentSmSettings->m_customParam0;
+		s_uniforms.m_shadowMapParam1 = currentSmSettings->m_customParam1;
+		s_uniforms.m_depthValuePow   = currentSmSettings->m_depthValuePow;
+		s_uniforms.m_XNum            = currentSmSettings->m_xNum;
+		s_uniforms.m_YNum            = currentSmSettings->m_yNum;
+		s_uniforms.m_XOffset         = currentSmSettings->m_xOffset;
+		s_uniforms.m_YOffset         = currentSmSettings->m_yOffset;
+		s_uniforms.m_showSmCoverage  = float(settings.m_showSmCoverage);
+		s_uniforms.m_lightPtr = (LightType::DirectionalLight == settings.m_lightType) ? &directionalLight : &pointLight;
+
+		if (LightType::SpotLight == settings.m_lightType)
+		{
+			pointLight.m_attenuationSpotOuter.m_outer = settings.m_spotOuterAngle;
+			pointLight.m_spotDirectionInner.m_inner   = settings.m_spotInnerAngle;
+		}
+		else
+		{
+			pointLight.m_attenuationSpotOuter.m_outer = 91.0f; //above 90.0f means point light
+		}
+
+		s_uniforms.submitPerFrameUniforms();
+
+		// Time.
+		int64_t now = bx::getHPCounter();
+		static int64_t last = now;
+		const int64_t frameTime = now - last;
+		last = now;
+		const double freq = double(bx::getHPFrequency() );
+		const double toMs = 1000.0/freq;
+		const float deltaTime = float(frameTime/freq);
+
+		// Use debug font to print information about this example.
+		bgfx::dbgTextClear();
+		bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/16-shadowmaps");
+		bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: Shadow maps example.");
+		bgfx::dbgTextPrintf(0, 3, 0x0f, "Frame: % 7.3f[ms]", double(frameTime)*toMs);
+
+		// Update camera.
+		cameraUpdate(deltaTime);
+
+		// Update view mtx.
+		cameraGetViewMtx(viewState.m_view);
+
+		// Update lights.
+		pointLight.computeViewSpaceComponents(viewState.m_view);
+		directionalLight.computeViewSpaceComponents(viewState.m_view);
+
+		// Update time accumulators.
+		if (settings.m_updateLights) { timeAccumulatorLight += deltaTime; }
+		if (settings.m_updateScene)  { timeAccumulatorScene += deltaTime; }
+
+		// Setup lights.
+		pointLight.m_position.m_x = cos(timeAccumulatorLight) * 20.0f;
+		pointLight.m_position.m_y = 26.0f;
+		pointLight.m_position.m_z = sin(timeAccumulatorLight) * 20.0f;
+		pointLight.m_spotDirectionInner.m_x = -pointLight.m_position.m_x;
+		pointLight.m_spotDirectionInner.m_y = -pointLight.m_position.m_y;
+		pointLight.m_spotDirectionInner.m_z = -pointLight.m_position.m_z;
+
+		directionalLight.m_position.m_x = -cos(timeAccumulatorLight);
+		directionalLight.m_position.m_y = -1.0f;
+		directionalLight.m_position.m_z = -sin(timeAccumulatorLight);
+
+		// Setup instance matrices.
+		float mtxFloor[16];
+		const float floorScale = 550.0f;
+		mtxScaleRotateTranslate(mtxFloor
+			, floorScale //scaleX
+			, floorScale //scaleY
+			, floorScale //scaleZ
+			, 0.0f //rotX
+			, 0.0f //rotY
+			, 0.0f //rotZ
+			, 0.0f //translateX
+			, 0.0f //translateY
+			, 0.0f //translateZ
+			);
+
+		float mtxBunny[16];
+		mtxScaleRotateTranslate(mtxBunny
+			, 5.0f
+			, 5.0f
+			, 5.0f
+			, 0.0f
+			, 1.56f - timeAccumulatorScene
+			, 0.0f
+			, 15.0f
+			, 5.0f
+			, 0.0f
+			);
+
+		float mtxHollowcube[16];
+		mtxScaleRotateTranslate(mtxHollowcube
+			, 2.5f
+			, 2.5f
+			, 2.5f
+			, 0.0f
+			, 1.56f - timeAccumulatorScene
+			, 0.0f
+			, 0.0f
+			, 10.0f
+			, 0.0f
+			);
+
+		float mtxCube[16];
+		mtxScaleRotateTranslate(mtxCube
+			, 2.5f
+			, 2.5f
+			, 2.5f
+			, 0.0f
+			, 1.56f - timeAccumulatorScene
+			, 0.0f
+			, -15.0f
+			, 5.0f
+			, 0.0f
+			);
+
+		const uint8_t numTrees = 10;
+		float mtxTrees[numTrees][16];
+		for (uint8_t ii = 0; ii < numTrees; ++ii)
+		{
+			mtxScaleRotateTranslate(mtxTrees[ii]
+					, 2.0f
+					, 2.0f
+					, 2.0f
+					, 0.0f
+					, float(ii)
+					, 0.0f
+					, sin(float(ii)*2.0f*float(M_PI)/float(numTrees) ) * 60.0f
+					, 0.0f
+					, cos(float(ii)*2.0f*float(M_PI)/float(numTrees) ) * 60.0f
+					);
+		}
+
+		// Compute transform matrices.
+		const uint8_t shadowMapPasses = ShadowMapRenderTargets::Count;
+		float lightView[shadowMapPasses][16];
+		float lightProj[shadowMapPasses][16];
+		float mtxYpr[TetrahedronFaces::Count][16];
+
+		float screenProj[16];
+		float screenView[16];
+		mtxIdentity(screenView);
+		mtxOrtho(screenProj, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f);
+
+	    if (LightType::SpotLight == settings.m_lightType)
+		{
+			const float fovy = settings.m_coverageSpotL;
+			const float aspect = 1.0f;
+			mtxProj(lightProj[ProjType::Horizontal], fovy, aspect, currentSmSettings->m_near, currentSmSettings->m_far);
+
+			//For linear depth, prevent depth division by variable w-component in shaders and divide here by far plane
+			if (DepthImpl::Linear == settings.m_depthImpl)
+			{
+				lightProj[ProjType::Horizontal][10] /= currentSmSettings->m_far;
+				lightProj[ProjType::Horizontal][14] /= currentSmSettings->m_far;
+			}
+
+			float at[3];
+			vec3Add(at, pointLight.m_position.m_v, pointLight.m_spotDirectionInner.m_v);
+			mtxLookAt(lightView[TetrahedronFaces::Green], pointLight.m_position.m_v, at);
+		}
+		else if (LightType::PointLight == settings.m_lightType)
+		{
+			float ypr[TetrahedronFaces::Count][3] =
+			{
+				 { toRad(  0.0f), toRad( 27.36780516f), toRad(0.0f) }
+				,{ toRad(180.0f), toRad( 27.36780516f), toRad(0.0f) }
+				,{ toRad(-90.0f), toRad(-27.36780516f), toRad(0.0f) }
+				,{ toRad( 90.0f), toRad(-27.36780516f), toRad(0.0f) }
+			};
+
+
+			if (settings.m_stencilPack)
+			{
+				const float fovx = 143.98570868f + 3.51f + settings.m_fovXAdjust;
+				const float fovy = 125.26438968f + 9.85f + settings.m_fovYAdjust;
+				const float aspect = tanf(toRad(fovx*0.5f) )/tanf(toRad(fovy*0.5f) );
+
+				mtxProj(lightProj[ProjType::Vertical]
+						, fovx
+						, aspect
+						, currentSmSettings->m_near
+						, currentSmSettings->m_far
+						);
+
+				//For linear depth, prevent depth division by variable w-component in shaders and divide here by far plane
+				if (DepthImpl::Linear == settings.m_depthImpl)
+				{
+					lightProj[ProjType::Vertical][10] /= currentSmSettings->m_far;
+					lightProj[ProjType::Vertical][14] /= currentSmSettings->m_far;
+				}
+
+				ypr[TetrahedronFaces::Green][2]  = toRad(180.0f);
+				ypr[TetrahedronFaces::Yellow][2] = toRad(  0.0f);
+				ypr[TetrahedronFaces::Blue][2]   = toRad( 90.0f);
+				ypr[TetrahedronFaces::Red][2]    = toRad(-90.0f);
+			}
+
+			const float fovx = 143.98570868f + 7.8f + settings.m_fovXAdjust;
+			const float fovy = 125.26438968f + 3.0f + settings.m_fovYAdjust;
+			const float aspect = tanf(toRad(fovx*0.5f) )/tanf(toRad(fovy*0.5f) );
+
+			mtxProj(lightProj[ProjType::Horizontal], fovy, aspect, currentSmSettings->m_near, currentSmSettings->m_far);
+
+			//For linear depth, prevent depth division by variable w component in shaders and divide here by far plane
+			if (DepthImpl::Linear == settings.m_depthImpl)
+			{
+				lightProj[ProjType::Horizontal][10] /= currentSmSettings->m_far;
+				lightProj[ProjType::Horizontal][14] /= currentSmSettings->m_far;
+			}
+
+
+			for (uint8_t ii = 0; ii < TetrahedronFaces::Count; ++ii)
+			{
+				float mtxTmp[16];
+				mtxYawPitchRoll(mtxTmp, ypr[ii][0], ypr[ii][1], ypr[ii][2]);
+
+				float tmp[3] =
+				{
+					  -vec3Dot(pointLight.m_position.m_v, &mtxTmp[0])
+					, -vec3Dot(pointLight.m_position.m_v, &mtxTmp[4])
+					, -vec3Dot(pointLight.m_position.m_v, &mtxTmp[8])
+				};
+
+				mtxTranspose(mtxYpr[ii], mtxTmp);
+
+				memcpy(lightView[ii], mtxYpr[ii], 12*sizeof(float) );
+				lightView[ii][12] = tmp[0];
+				lightView[ii][13] = tmp[1];
+				lightView[ii][14] = tmp[2];
+				lightView[ii][15] = 1.0f;
+			}
+		}
+		else // LightType::DirectionalLight == settings.m_lightType
+		{
+			// Setup light view mtx.
+			float eye[3] =
+			{
+				  -directionalLight.m_position.m_x
+				, -directionalLight.m_position.m_y
+				, -directionalLight.m_position.m_z
+			};
+			float at[3] = { 0.0f, 0.0f, 0.0f };
+			mtxLookAt(lightView[0], eye, at);
+
+			// Compute camera inverse view mtx.
+			float mtxViewInv[16];
+			mtxInverse(mtxViewInv, viewState.m_view);
+
+			// Compute split distances.
+			const uint8_t maxNumSplits = 4;
+			BX_CHECK(maxNumSplits >= settings.m_numSplits, "Error! Max num splits.");
+
+			float splitSlices[maxNumSplits*2];
+			splitFrustum(splitSlices, settings.m_numSplits, currentSmSettings->m_near, currentSmSettings->m_far, settings.m_splitDistribution);
+
+			// Update uniforms.
+			for (uint8_t ii = 0, ff = 1; ii < settings.m_numSplits; ++ii, ff+=2)
+			{
+				// This lags for 1 frame, but it's not a problem.
+				s_uniforms.m_csmFarDistances[ii] = splitSlices[ff];
+			}
+
+			float mtxProj[16];
+			mtxOrtho(mtxProj, 1.0f, -1.0f, 1.0f, -1.0f, -currentSmSettings->m_far, currentSmSettings->m_far);
+
+			const uint8_t numCorners = 8;
+			float frustumCorners[maxNumSplits][numCorners][3];
+			for (uint8_t ii = 0, nn = 0, ff = 1; ii < settings.m_numSplits; ++ii, nn+=2, ff+=2)
+			{
+				// Compute frustum corners for one split in world space.
+				worldSpaceFrustumCorners( (float*)frustumCorners[ii], splitSlices[nn], splitSlices[ff], projWidth, projHeight, mtxViewInv);
+
+				float min[3] = {  9000.0f,  9000.0f,  9000.0f };
+				float max[3] = { -9000.0f, -9000.0f, -9000.0f };
+
+				for (uint8_t jj = 0; jj < numCorners; ++jj)
+				{
+					// Transform to light space.
+					float lightSpaceFrustumCorner[3];
+					vec3MulMtx(lightSpaceFrustumCorner, frustumCorners[ii][jj], lightView[0]);
+
+					// Update bounding box.
+					min[0] = fminf(min[0], lightSpaceFrustumCorner[0]);
+					max[0] = fmaxf(max[0], lightSpaceFrustumCorner[0]);
+					min[1] = fminf(min[1], lightSpaceFrustumCorner[1]);
+					max[1] = fmaxf(max[1], lightSpaceFrustumCorner[1]);
+					min[2] = fminf(min[2], lightSpaceFrustumCorner[2]);
+					max[2] = fmaxf(max[2], lightSpaceFrustumCorner[2]);
+				}
+
+				float minproj[3];
+				float maxproj[3];
+				vec3MulMtxH(minproj, min, mtxProj);
+				vec3MulMtxH(maxproj, max, mtxProj);
+
+				float offsetx, offsety;
+				float scalex, scaley;
+
+				scalex = 2.0f / (maxproj[0] - minproj[0]);
+				scaley = 2.0f / (maxproj[1] - minproj[1]);
+
+				if (settings.m_stabilize)
+				{
+					const float quantizer = 64.0f;
+					scalex = quantizer / ceilf(quantizer / scalex);
+					scaley = quantizer / ceilf(quantizer / scaley);
+				}
+
+				offsetx = 0.5f * (maxproj[0] + minproj[0]) * scalex;
+				offsety = 0.5f * (maxproj[1] + minproj[1]) * scaley;
+
+				if (settings.m_stabilize)
+				{
+					const float halfSize = currentShadowMapSizef * 0.5f;
+					offsetx = ceilf(offsetx * halfSize) / halfSize;
+					offsety = ceilf(offsety * halfSize) / halfSize;
+				}
+
+				float mtxCrop[16];
+				mtxIdentity(mtxCrop);
+				mtxCrop[ 0] = scalex;
+				mtxCrop[ 5] = scaley;
+				mtxCrop[12] = offsetx;
+				mtxCrop[13] = offsety;
+
+				mtxMul(lightProj[ii], mtxCrop, mtxProj);
+			}
+		}
+
+		// Reset render targets.
+		const uint32_t viewMask = (uint32_t(1) << (RENDER_PASS_18+1) ) - 1;
+		const bgfx::RenderTargetHandle invalidRt = BGFX_INVALID_HANDLE;
+		bgfx::setViewRenderTargetMask(viewMask, invalidRt);
+
+		// Determine on-screen rectangle size where depth buffer will be drawn.
+		const uint16_t depthRectHeight = uint16_t(float(viewState.m_height) / 2.5f);
+		const uint16_t depthRectWidth  = depthRectHeight;
+		const uint16_t depthRectX = 0;
+		const uint16_t depthRectY = viewState.m_height - depthRectHeight;
+
+		// Setup views and render targets.
+		bgfx::setViewRect(0, 0, 0, viewState.m_width, viewState.m_height);
+		bgfx::setViewTransform(0, viewState.m_view, viewState.m_proj);
+
+		if (LightType::SpotLight == settings.m_lightType)
+		{
+			/**
+			 * RENDER_PASS_0  - Clear shadow map. (used as convenience, otherwise render_pass_1 could be cleared)
+			 * RENDER_PASS_1  - Craft shadow map.
+			 * RENDER_PASS_5  - Vertical blur.
+			 * RENDER_PASS_6  - Horizontal blur.
+			 * RENDER_PASS_13 - Draw scene.
+			 * RENDER_PASS_14 - Draw floor bottom.
+			 * RENDER_PASS_15 - Draw depth buffer.
+			 */
+
+			bgfx::setViewRect(RENDER_PASS_0,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_1,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_5,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_6,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_13, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_14, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_15, depthRectX, depthRectY, depthRectWidth, depthRectHeight);
+
+			bgfx::setViewTransform(RENDER_PASS_0,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_1,  lightView[0], lightProj[ProjType::Horizontal]);
+			bgfx::setViewTransform(RENDER_PASS_5,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_6,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_13, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_14, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_15, screenView, screenProj);
+
+			bgfx::setViewRenderTarget(RENDER_PASS_0, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_1, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_5, s_rtBlur);
+			bgfx::setViewRenderTarget(RENDER_PASS_6, s_rtShadowMap[0]);
+		}
+		else if (LightType::PointLight == settings.m_lightType)
+		{
+			/**
+			 * RENDER_PASS_0  - Clear entire shadow map.
+			 * RENDER_PASS_1  - Craft green tetrahedron shadow face.
+			 * RENDER_PASS_2  - Craft yellow tetrahedron shadow face.
+			 * RENDER_PASS_3  - Craft blue tetrahedron shadow face.
+			 * RENDER_PASS_4  - Craft red tetrahedron shadow face.
+			 * RENDER_PASS_5  - Vertical blur.
+			 * RENDER_PASS_6  - Horizontal blur.
+			 * RENDER_PASS_13 - Draw scene.
+			 * RENDER_PASS_14 - Draw floor bottom.
+			 * RENDER_PASS_15 - Draw depth buffer.
+			 */
+
+			bgfx::setViewRect(RENDER_PASS_0, 0, 0, currentShadowMapSize, currentShadowMapSize);
+			if (settings.m_stencilPack)
+			{
+				const uint16_t f = currentShadowMapSize;   //full size
+				const uint16_t h = currentShadowMapSize/2; //half size
+				bgfx::setViewRect(RENDER_PASS_1, 0, 0, f, h);
+				bgfx::setViewRect(RENDER_PASS_2, 0, h, f, h);
+				bgfx::setViewRect(RENDER_PASS_3, 0, 0, h, f);
+				bgfx::setViewRect(RENDER_PASS_4, h, 0, h, f);
+			}
+			else
+			{
+				const uint16_t h = currentShadowMapSize/2; //half size
+				bgfx::setViewRect(RENDER_PASS_1, 0, 0, h, h);
+				bgfx::setViewRect(RENDER_PASS_2, h, 0, h, h);
+				bgfx::setViewRect(RENDER_PASS_3, 0, h, h, h);
+				bgfx::setViewRect(RENDER_PASS_4, h, h, h, h);
+			}
+			bgfx::setViewRect(RENDER_PASS_5,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_6,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_13, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_14, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_15, depthRectX, depthRectY, depthRectWidth, depthRectHeight);
+
+			bgfx::setViewTransform(RENDER_PASS_0, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_1, lightView[TetrahedronFaces::Green],  lightProj[ProjType::Horizontal]);
+			bgfx::setViewTransform(RENDER_PASS_2, lightView[TetrahedronFaces::Yellow], lightProj[ProjType::Horizontal]);
+			if(settings.m_stencilPack)
+			{
+				bgfx::setViewTransform(RENDER_PASS_3, lightView[TetrahedronFaces::Blue], lightProj[ProjType::Vertical]);
+				bgfx::setViewTransform(RENDER_PASS_4, lightView[TetrahedronFaces::Red],  lightProj[ProjType::Vertical]);
+			}
+			else
+			{
+				bgfx::setViewTransform(RENDER_PASS_3, lightView[TetrahedronFaces::Blue], lightProj[ProjType::Horizontal]);
+				bgfx::setViewTransform(RENDER_PASS_4, lightView[TetrahedronFaces::Red],  lightProj[ProjType::Horizontal]);
+			}
+			bgfx::setViewTransform(RENDER_PASS_5, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_6, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_13, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_14, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_15, screenView, screenProj);
+
+			bgfx::setViewRenderTarget(RENDER_PASS_0, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_1, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_2, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_3, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_4, s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_5, s_rtBlur);
+			bgfx::setViewRenderTarget(RENDER_PASS_6, s_rtShadowMap[0]);
+		}
+		else // LightType::DirectionalLight == settings.m_lightType
+		{
+			/**
+			 * RENDER_PASS_1  - Craft shadow map for first  split.
+			 * RENDER_PASS_2  - Craft shadow map for second split.
+			 * RENDER_PASS_3  - Craft shadow map for third  split.
+			 * RENDER_PASS_4  - Craft shadow map for fourth split.
+			 * RENDER_PASS_5  - Vertical   blur for first  split.
+			 * RENDER_PASS_6  - Horizontal blur for first  split.
+			 * RENDER_PASS_7  - Vertical   blur for second split.
+			 * RENDER_PASS_8  - Horizontal blur for second split.
+			 * RENDER_PASS_9  - Vertical   blur for third  split.
+			 * RENDER_PASS_10 - Horizontal blur for third  split.
+			 * RENDER_PASS_11 - Vertical   blur for fourth split.
+			 * RENDER_PASS_12 - Horizontal blur for fourth split.
+			 * RENDER_PASS_13 - Draw scene.
+			 * RENDER_PASS_14 - Draw floor bottom.
+			 * RENDER_PASS_15 - Draw depth buffer for first  split.
+			 * RENDER_PASS_16 - Draw depth buffer for second split.
+			 * RENDER_PASS_17 - Draw depth buffer for third  split.
+			 * RENDER_PASS_18 - Draw depth buffer for fourth split.
+			 */
+
+			const uint16_t depthRectHeight = viewState.m_height / 3;
+			const uint16_t depthRectWidth  = depthRectHeight;
+			const uint16_t depthRectX = 0;
+			const uint16_t depthRectY = viewState.m_height - depthRectHeight;
+
+			bgfx::setViewRect(RENDER_PASS_1,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_2,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_3,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_4,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_5,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_6,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_7,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_8,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_9,  0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_10, 0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_11, 0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_12, 0, 0, currentShadowMapSize, currentShadowMapSize);
+			bgfx::setViewRect(RENDER_PASS_13, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_14, 0, 0, viewState.m_width, viewState.m_height);
+			bgfx::setViewRect(RENDER_PASS_15, depthRectX+(0*depthRectWidth), depthRectY, depthRectWidth, depthRectHeight);
+			bgfx::setViewRect(RENDER_PASS_16, depthRectX+(1*depthRectWidth), depthRectY, depthRectWidth, depthRectHeight);
+			bgfx::setViewRect(RENDER_PASS_17, depthRectX+(2*depthRectWidth), depthRectY, depthRectWidth, depthRectHeight);
+			bgfx::setViewRect(RENDER_PASS_18, depthRectX+(3*depthRectWidth), depthRectY, depthRectWidth, depthRectHeight);
+
+			bgfx::setViewTransform(RENDER_PASS_1,  lightView[0], lightProj[0]);
+			bgfx::setViewTransform(RENDER_PASS_2,  lightView[0], lightProj[1]);
+			bgfx::setViewTransform(RENDER_PASS_3,  lightView[0], lightProj[2]);
+			bgfx::setViewTransform(RENDER_PASS_4,  lightView[0], lightProj[3]);
+			bgfx::setViewTransform(RENDER_PASS_5,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_6,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_7,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_8,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_9,  screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_10, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_11, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_12, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_13, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_14, viewState.m_view, viewState.m_proj);
+			bgfx::setViewTransform(RENDER_PASS_15, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_16, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_17, screenView, screenProj);
+			bgfx::setViewTransform(RENDER_PASS_18, screenView, screenProj);
+
+			bgfx::setViewRenderTarget(RENDER_PASS_1,  s_rtShadowMap[0]);
+			bgfx::setViewRenderTarget(RENDER_PASS_2,  s_rtShadowMap[1]);
+			bgfx::setViewRenderTarget(RENDER_PASS_3,  s_rtShadowMap[2]);
+			bgfx::setViewRenderTarget(RENDER_PASS_4,  s_rtShadowMap[3]);
+			bgfx::setViewRenderTarget(RENDER_PASS_5,  s_rtBlur);         //vblur
+			bgfx::setViewRenderTarget(RENDER_PASS_6,  s_rtShadowMap[0]); //hblur
+			bgfx::setViewRenderTarget(RENDER_PASS_7,  s_rtBlur);         //vblur
+			bgfx::setViewRenderTarget(RENDER_PASS_8,  s_rtShadowMap[1]); //hblur
+			bgfx::setViewRenderTarget(RENDER_PASS_9,  s_rtBlur);         //vblur
+			bgfx::setViewRenderTarget(RENDER_PASS_10, s_rtShadowMap[2]); //hblur
+			bgfx::setViewRenderTarget(RENDER_PASS_11, s_rtBlur);         //vblur
+			bgfx::setViewRenderTarget(RENDER_PASS_12, s_rtShadowMap[3]); //hblur
+		}
+
+		// Clear backbuffer at beginning.
+		bgfx::setViewClear(0
+				, BGFX_CLEAR_COLOR_BIT
+				| BGFX_CLEAR_DEPTH_BIT
+				, clearValues.m_clearRgba
+				, clearValues.m_clearDepth
+				, clearValues.m_clearStencil
+				);
+		bgfx::submit(0);
+
+		// Clear shadowmap rendertarget at beginning.
+		const uint8_t flags0 = (LightType::DirectionalLight == settings.m_lightType)
+							 ? 0
+							 : BGFX_CLEAR_COLOR_BIT | BGFX_CLEAR_DEPTH_BIT | BGFX_CLEAR_STENCIL_BIT
+							 ;
+
+		bgfx::setViewClear(RENDER_PASS_0
+				, flags0
+				, 0xfefefefe //blur fails on completely white regions
+				, clearValues.m_clearDepth
+				, clearValues.m_clearStencil
+				);
+		bgfx::submit(RENDER_PASS_0);
+
+		const uint8_t flags1 = (LightType::DirectionalLight == settings.m_lightType)
+							 ? BGFX_CLEAR_COLOR_BIT | BGFX_CLEAR_DEPTH_BIT
+							 : 0
+							 ;
+
+		for (uint8_t ii = 0; ii < 4; ++ii)
+		{
+			bgfx::setViewClear(RENDER_PASS_1+ii
+					, flags1
+					, 0xfefefefe //blur fails on completely white regions
+					, clearValues.m_clearDepth
+					, clearValues.m_clearStencil
+					);
+			bgfx::submit(RENDER_PASS_1+ii);
+		}
+
+		// Render.
+
+		// Craft shadow map.
+		{
+			// Craft stencil mask for point light shadow map packing.
+			if(LightType::PointLight == settings.m_lightType && settings.m_stencilPack)
+			{
+				if (bgfx::checkAvailTransientVertexBuffer(6, posDecl) )
+				{
+					struct Pos
+					{
+						float m_x, m_y, m_z;
+					};
+
+					bgfx::TransientVertexBuffer vb;
+					bgfx::allocTransientVertexBuffer(&vb, 6, posDecl);
+					Pos* vertex = (Pos*)vb.data;
+
+					const float min = 0.0f;
+					const float max = 1.0f;
+					const float center = 0.5f;
+					const float zz = 0.0f;
+
+					vertex[0].m_x = min;
+					vertex[0].m_y = min;
+					vertex[0].m_z = zz;
+
+					vertex[1].m_x = max;
+					vertex[1].m_y = min;
+					vertex[1].m_z = zz;
+
+					vertex[2].m_x = center;
+					vertex[2].m_y = center;
+					vertex[2].m_z = zz;
+
+					vertex[3].m_x = center;
+					vertex[3].m_y = center;
+					vertex[3].m_z = zz;
+
+					vertex[4].m_x = max;
+					vertex[4].m_y = max;
+					vertex[4].m_z = zz;
+
+					vertex[5].m_x = min;
+					vertex[5].m_y = max;
+					vertex[5].m_z = zz;
+
+					bgfx::setProgram(s_programs.m_black);
+					bgfx::setState(0);
+					bgfx::setStencil(BGFX_STENCIL_TEST_ALWAYS
+							| BGFX_STENCIL_FUNC_REF(1)
+							| BGFX_STENCIL_FUNC_RMASK(0xff)
+							| BGFX_STENCIL_OP_FAIL_S_REPLACE
+							| BGFX_STENCIL_OP_FAIL_Z_REPLACE
+							| BGFX_STENCIL_OP_PASS_Z_REPLACE
+							);
+					bgfx::setVertexBuffer(&vb);
+					bgfx::submit(RENDER_PASS_0);
+				}
+			}
+
+			// Draw scene into shadowmap.
+			uint8_t drawNum;
+			if (LightType::SpotLight == settings.m_lightType)
+			{
+				drawNum = 1;
+			}
+			else if (LightType::PointLight == settings.m_lightType)
+			{
+				drawNum = 4;
+			}
+			else //LightType::DirectionalLight == settings.m_lightType)
+			{
+				drawNum = settings.m_numSplits;
+			}
+
+			for (uint8_t ii = 0; ii < drawNum; ++ii)
+			{
+				const uint8_t viewId = RENDER_PASS_1 + ii;
+
+				uint8_t renderStateIndex = RenderState::ShadowMap_PackDepth;
+				if(LightType::PointLight == settings.m_lightType && settings.m_stencilPack)
+				{
+					renderStateIndex = (ii < 2) ? RenderState::ShadowMap_PackDepthHoriz : RenderState::ShadowMap_PackDepthVert;
+				}
+
+				// Floor.
+				hplaneMesh.submit(viewId
+						, mtxFloor
+						, *currentSmSettings->m_progPack
+						, s_renderStates[renderStateIndex]
+						);
+
+				// Bunny.
+				bunnyMesh.submit(viewId
+						, mtxBunny
+						, *currentSmSettings->m_progPack
+						, s_renderStates[renderStateIndex]
+						);
+
+				// Hollow cube.
+				hollowcubeMesh.submit(viewId
+						, mtxHollowcube
+						, *currentSmSettings->m_progPack
+						, s_renderStates[renderStateIndex]
+						);
+
+				// Cube.
+				cubeMesh.submit(viewId
+						, mtxCube
+						, *currentSmSettings->m_progPack
+						, s_renderStates[renderStateIndex]
+						);
+
+				// Trees.
+				for (uint8_t ii = 0; ii < numTrees; ++ii)
+				{
+					treeMesh.submit(viewId
+							, mtxTrees[ii]
+							, *currentSmSettings->m_progPack
+							, s_renderStates[renderStateIndex]
+							);
+				}
+			}
+		}
+
+		PackDepth::Enum depthType = (SmImpl::VSM == settings.m_smImpl) ? PackDepth::VSM : PackDepth::RGBA;
+		bool bVsmOrEsm = (SmImpl::VSM == settings.m_smImpl) || (SmImpl::ESM == settings.m_smImpl);
+
+		// Blur shadow map.
+		if (bVsmOrEsm && currentSmSettings->m_doBlur)
+		{
+			bgfx::setTexture(4, u_shadowMap[0], s_rtShadowMap[0]);
+			bgfx::setProgram(s_programs.m_vBlur[depthType]);
+			bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+			screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+			bgfx::submit(RENDER_PASS_5);
+
+			bgfx::setTexture(4, u_shadowMap[0], s_rtBlur);
+			bgfx::setProgram(s_programs.m_hBlur[depthType]);
+			bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+			screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+			bgfx::submit(RENDER_PASS_6);
+
+			if (LightType::DirectionalLight == settings.m_lightType)
+			{
+				for (uint8_t ii = 1, jj = 2; ii < settings.m_numSplits; ++ii, jj+=2)
+				{
+					const uint8_t viewId = RENDER_PASS_5 + jj;
+
+					bgfx::setTexture(4, u_shadowMap[0], s_rtShadowMap[ii]);
+					bgfx::setProgram(s_programs.m_vBlur[depthType]);
+					bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+					screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+					bgfx::submit(viewId);
+
+					bgfx::setTexture(4, u_shadowMap[0], s_rtBlur);
+					bgfx::setProgram(s_programs.m_hBlur[depthType]);
+					bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+					screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+					bgfx::submit(viewId+1);
+				}
+			}
+		}
+
+		// Draw scene.
+		{
+			// Setup shadow mtx.
+			float mtxShadow[16];
+
+			const float ymul = (s_flipV) ? 0.5f : -0.5f;
+			const float zadd = (DepthImpl::Linear == settings.m_depthImpl) ? 0.0f : 0.5f;
+
+			const float mtxBias[16] =
+			{
+				0.5f, 0.0f, 0.0f, 0.0f,
+				0.0f, ymul, 0.0f, 0.0f,
+				0.0f, 0.0f, 0.5f, 0.0f,
+				0.5f, 0.5f, zadd, 1.0f,
+			};
+
+			if (LightType::SpotLight == settings.m_lightType)
+			{
+				float mtxTmp[16];
+				mtxMul(mtxTmp, lightProj[ProjType::Horizontal], mtxBias);
+				mtxMul(mtxShadow, lightView[0], mtxTmp); //lightViewProjBias
+			}
+			else if (LightType::PointLight == settings.m_lightType)
+			{
+				const float s = (s_flipV) ? 1.0f : -1.0f; //sign
+				const float zadd = (DepthImpl::Linear == settings.m_depthImpl) ? 0.0f : 0.5f;
+
+				const float mtxCropBias[2][TetrahedronFaces::Count][16] =
+				{
+					{ // settings.m_stencilPack == false
+
+						{ // D3D: Green, OGL: Blue
+							0.25f,    0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.25f, 0.0f, 0.0f,
+							 0.0f,    0.0f, 0.5f, 0.0f,
+							0.25f,   0.25f, zadd, 1.0f,
+						},
+						{ // D3D: Yellow, OGL: Red
+							0.25f,    0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.25f, 0.0f, 0.0f,
+							 0.0f,    0.0f, 0.5f, 0.0f,
+							0.75f,   0.25f, zadd, 1.0f,
+						},
+						{ // D3D: Blue, OGL: Green
+							0.25f,    0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.25f, 0.0f, 0.0f,
+							 0.0f,    0.0f, 0.5f, 0.0f,
+							0.25f,   0.75f, zadd, 1.0f,
+						},
+						{ // D3D: Red, OGL: Yellow
+							0.25f,    0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.25f, 0.0f, 0.0f,
+							 0.0f,    0.0f, 0.5f, 0.0f,
+							0.75f,   0.75f, zadd, 1.0f,
+						},
+					},
+					{ // settings.m_stencilPack == true
+
+						{ // D3D: Red, OGL: Blue
+							0.25f,   0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.5f, 0.0f, 0.0f,
+							 0.0f,   0.0f, 0.5f, 0.0f,
+							0.25f,   0.5f, zadd, 1.0f,
+						},
+						{ // D3D: Blue, OGL: Red
+							0.25f,   0.0f, 0.0f, 0.0f,
+							 0.0f, s*0.5f, 0.0f, 0.0f,
+							 0.0f,   0.0f, 0.5f, 0.0f,
+							0.75f,   0.5f, zadd, 1.0f,
+						},
+						{ // D3D: Green, OGL: Green
+							0.5f,    0.0f, 0.0f, 0.0f,
+							0.0f, s*0.25f, 0.0f, 0.0f,
+							0.0f,    0.0f, 0.5f, 0.0f,
+							0.5f,   0.75f, zadd, 1.0f,
+						},
+						{ // D3D: Yellow, OGL: Yellow
+							0.5f,    0.0f, 0.0f, 0.0f,
+							0.0f, s*0.25f, 0.0f, 0.0f,
+							0.0f,    0.0f, 0.5f, 0.0f,
+							0.5f,   0.25f, zadd, 1.0f,
+						},
+					}
+				};
+
+				//Use as: [stencilPack][flipV][tetrahedronFace]
+				static const uint8_t cropBiasIndices[2][2][4] =
+				{
+					{ // settings.m_stencilPack == false
+						{ 0, 1, 2, 3 }, //flipV == false
+						{ 2, 3, 0, 1 }, //flipV == true
+					},
+					{ // settings.m_stencilPack == true
+						{ 3, 2, 0, 1 }, //flipV == false
+						{ 2, 3, 0, 1 }, //flipV == true
+					},
+				};
+
+				for (uint8_t ii = 0; ii < TetrahedronFaces::Count; ++ii)
+				{
+					ProjType::Enum projType = (settings.m_stencilPack) ? ProjType::Enum(ii>1) : ProjType::Horizontal;
+					uint8_t biasIndex = cropBiasIndices[settings.m_stencilPack][uint8_t(s_flipV)][ii];
+
+					float mtxTmp[16];
+					mtxMul(mtxTmp, mtxYpr[ii], lightProj[projType]);
+					mtxMul(shadowMapMtx[ii], mtxTmp, mtxCropBias[settings.m_stencilPack][biasIndex]); //mtxYprProjBias
+				}
+
+				mtxTranslate(mtxShadow //lightInvTranslate
+						, -pointLight.m_position.m_v[0]
+						, -pointLight.m_position.m_v[1]
+						, -pointLight.m_position.m_v[2]
+						);
+			}
+			else //LightType::DirectionalLight == settings.m_lightType
+			{
+				for (uint8_t ii = 0; ii < settings.m_numSplits; ++ii)
+				{
+					float mtxTmp[16];
+
+					mtxMul(mtxTmp, lightProj[ii], mtxBias);
+					mtxMul(shadowMapMtx[ii], lightView[0], mtxTmp); //lViewProjCropBias
+				}
+			}
+
+			// Floor.
+			if (LightType::DirectionalLight != settings.m_lightType)
+			{
+				mtxMul(lightMtx, mtxFloor, mtxShadow); //not needed for directional light
+			}
+			hplaneMesh.submit(RENDER_PASS_13
+					, mtxFloor
+					, *currentSmSettings->m_progDraw
+					, s_renderStates[RenderState::Default]
+					);
+
+			// Bunny.
+			if (LightType::DirectionalLight != settings.m_lightType)
+			{
+				mtxMul(lightMtx, mtxBunny, mtxShadow);
+			}
+			bunnyMesh.submit(RENDER_PASS_13
+					, mtxBunny
+					, *currentSmSettings->m_progDraw
+					, s_renderStates[RenderState::Default]
+					);
+
+			// Hollow cube.
+			if (LightType::DirectionalLight != settings.m_lightType)
+			{
+				mtxMul(lightMtx, mtxHollowcube, mtxShadow);
+			}
+			hollowcubeMesh.submit(RENDER_PASS_13
+					, mtxHollowcube
+					, *currentSmSettings->m_progDraw
+					, s_renderStates[RenderState::Default]
+					);
+
+			// Cube.
+			if (LightType::DirectionalLight != settings.m_lightType)
+			{
+				mtxMul(lightMtx, mtxCube, mtxShadow);
+			}
+			cubeMesh.submit(RENDER_PASS_13
+					, mtxCube
+					, *currentSmSettings->m_progDraw
+					, s_renderStates[RenderState::Default]
+					);
+
+			// Trees.
+			for (uint8_t ii = 0; ii < numTrees; ++ii)
+			{
+				if (LightType::DirectionalLight != settings.m_lightType)
+				{
+					mtxMul(lightMtx, mtxTrees[ii], mtxShadow);
+				}
+				treeMesh.submit(RENDER_PASS_13
+						, mtxTrees[ii]
+						, *currentSmSettings->m_progDraw
+						, s_renderStates[RenderState::Default]
+						);
+			}
+
+			// Lights.
+			if (LightType::SpotLight == settings.m_lightType || LightType::PointLight == settings.m_lightType)
+			{
+				const float lightScale[3] = { 1.5f, 1.5f, 1.5f };
+				float mtx[16];
+				mtxBillboard(mtx, viewState.m_view, pointLight.m_position.m_v, lightScale);
+				vplaneMesh.submit(RENDER_PASS_13
+						, mtx
+						, s_programs.m_colorTexture
+						, s_renderStates[RenderState::Custom_BlendLightTexture]
+						, texFlare
+						);
+			}
+
+			// Draw floor bottom.
+			float floorBottomMtx[16];
+			mtxScaleRotateTranslate(floorBottomMtx
+					, floorScale //scaleX
+					, floorScale //scaleY
+					, floorScale //scaleZ
+					, 0.0f  //rotX
+					, 0.0f  //rotY
+					, 0.0f  //rotZ
+					, 0.0f  //translateX
+					, -0.1f //translateY
+					, 0.0f  //translateZ
+					);
+
+			hplaneMesh.submit(RENDER_PASS_14
+					, floorBottomMtx
+					, s_programs.m_texture
+					, s_renderStates[RenderState::Custom_DrawPlaneBottom]
+					, texFigure
+					);
+		}
+
+		// Draw depth rect.
+		if (settings.m_drawDepthBuffer)
+		{
+			bgfx::setTexture(4, u_shadowMap[0], s_rtShadowMap[0]);
+			bgfx::setProgram(s_programs.m_drawDepth[depthType]);
+			bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+			screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+			bgfx::submit(RENDER_PASS_15);
+
+			if (LightType::DirectionalLight == settings.m_lightType)
+			{
+				for (uint8_t ii = 1; ii < settings.m_numSplits; ++ii)
+				{
+					bgfx::setTexture(4, u_shadowMap[0], s_rtShadowMap[ii]);
+					bgfx::setProgram(s_programs.m_drawDepth[depthType]);
+					bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
+					screenSpaceQuad(currentShadowMapSizef, currentShadowMapSizef, s_flipV);
+					bgfx::submit(RENDER_PASS_15+ii);
+				}
+			}
+		}
+
+		// Update render target size.
+		shadowMapSize = 1 << uint32_t(currentSmSettings->m_sizePwrTwo);
+		if (bLtChanged || currentShadowMapSize != shadowMapSize)
+		{
+			currentShadowMapSize = shadowMapSize;
+			currentShadowMapSizef = float(int16_t(currentShadowMapSize) );
+			s_uniforms.m_shadowMapTexelSize = 1.0f / currentShadowMapSizef;
+
+			bgfx::destroyRenderTarget(s_rtShadowMap[0]);
+			s_rtShadowMap[0] = bgfx::createRenderTarget(currentShadowMapSize, currentShadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8 | BGFX_RENDER_TARGET_DEPTH_D24S8);
+
+			if (LightType::DirectionalLight == settings.m_lightType)
+			{
+				for (uint8_t ii = 1; ii < ShadowMapRenderTargets::Count; ++ii)
+				{
+					bgfx::destroyRenderTarget(s_rtShadowMap[ii]);
+					s_rtShadowMap[ii] = bgfx::createRenderTarget(currentShadowMapSize, currentShadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8 | BGFX_RENDER_TARGET_DEPTH_D24S8);
+				}
+			}
+
+			bgfx::destroyRenderTarget(s_rtBlur);
+			s_rtBlur = bgfx::createRenderTarget(currentShadowMapSize, currentShadowMapSize, BGFX_RENDER_TARGET_COLOR_RGBA8);
+		}
+
+		// Advance to next frame. Rendering thread will be kicked to
+		// process submitted rendering primitives.
+		bgfx::frame();
+
+	}
+
+	bunnyMesh.unload();
+	treeMesh.unload();
+	cubeMesh.unload();
+	hollowcubeMesh.unload();
+	hplaneMesh.unload();
+	vplaneMesh.unload();
+
+	bgfx::destroyTexture(texFigure);
+	bgfx::destroyTexture(texFieldstone);
+	bgfx::destroyTexture(texFlare);
+
+	for (uint8_t ii = 0; ii < ShadowMapRenderTargets::Count; ++ii)
+	{
+		bgfx::destroyRenderTarget(s_rtShadowMap[ii]);
+	}
+	bgfx::destroyRenderTarget(s_rtBlur);
+
+	s_programs.destroy();
+
+	bgfx::destroyUniform(u_texColor);
+	bgfx::destroyUniform(u_shadowMap[3]);
+	bgfx::destroyUniform(u_shadowMap[2]);
+	bgfx::destroyUniform(u_shadowMap[1]);
+	bgfx::destroyUniform(u_shadowMap[0]);
+
+	s_uniforms.destroy();
+
+	imguiDestroy();
+
+	// Shutdown bgfx.
+	bgfx::shutdown();
+
+	return 0;
+}

+ 14156 - 0
examples/16-shadowmaps/tree.obj

@@ -0,0 +1,14156 @@
+# Blender v2.66 (sub 1) OBJ File: ''
+# www.blender.org
+g tree_tree.001
+v -0.528409 0.097456 -0.473664
+v -0.478109 -0.000000 0.533369
+v 0.528409 -0.097456 0.473663
+v 0.478109 0.000000 -0.533369
+v -0.462358 1.211925 -0.307472
+v -0.418346 1.126652 0.573681
+v 0.462358 1.041378 0.521439
+v 0.418346 1.126652 -0.359714
+v -0.161610 2.345739 -0.146935
+v -0.124433 2.269162 0.608021
+v 0.617872 2.115946 0.555926
+v 0.580694 2.192523 -0.199030
+v 0.138871 3.395035 0.012115
+v 0.172703 3.347843 0.642563
+v 0.799581 3.268506 0.602984
+v 0.765749 3.315698 -0.027465
+v 0.252438 4.463923 0.117709
+v 0.281878 4.461236 0.623338
+v 0.787508 4.458720 0.593885
+v 0.758068 4.461408 0.088255
+v 0.280523 5.583565 0.140432
+v 0.302545 5.595459 0.519476
+v 0.681740 5.599979 0.497304
+v 0.659719 5.588085 0.118260
+v 0.355254 6.718205 0.167615
+v 0.370780 6.750537 0.418309
+v 0.622686 6.727806 0.405640
+v 0.607160 6.695473 0.154946
+v 0.599378 7.806367 -0.038032
+v 0.607516 7.826366 0.086737
+v 0.733109 7.811326 0.080956
+v 0.724972 7.791327 -0.043812
+v 0.736643 8.933455 -0.083840
+v 0.736643 8.933455 -0.083840
+v 0.736643 8.933455 -0.083840
+v 0.736643 8.933455 -0.083840
+v -0.043875 1.245991 0.720704
+v 0.625158 1.126652 0.151676
+v 0.043874 1.007312 -0.506737
+v -0.625158 1.126652 0.062291
+v 0.040456 2.345212 0.463796
+v 0.613913 2.242920 -0.023942
+v 0.115669 2.140629 -0.588296
+v -0.457787 2.242920 -0.100557
+v -0.001515 3.470312 0.106235
+v 0.476565 3.375144 -0.297769
+v 0.062834 3.216559 -0.750002
+v -0.415246 3.311727 -0.345997
+v -0.067156 4.515477 -0.372318
+v 0.314097 4.452688 -0.699792
+v -0.013792 4.291711 -1.050663
+v -0.395045 4.354500 -0.723189
+v -0.260558 5.556573 -0.791282
+v 0.022492 5.525999 -1.042776
+v -0.218554 5.377425 -1.296004
+v -0.501603 5.408000 -1.044509
+v -0.520580 6.544024 -1.320909
+v -0.331084 6.520402 -1.487243
+v -0.487913 6.405616 -1.649609
+v -0.677409 6.429238 -1.483274
+v -0.787409 7.514112 -1.862816
+v -0.689601 7.487138 -1.938576
+v -0.768620 7.432738 -2.021221
+v -0.866427 7.459712 -1.945460
+v -0.768813 8.442052 -2.527225
+v -0.768813 8.442052 -2.527225
+v -0.768813 8.442052 -2.527225
+v -0.768813 8.442052 -2.527225
+v 0.110011 1.175972 -0.508065
+v -0.616962 1.126652 -0.003370
+v -0.110011 1.077331 0.722032
+v 0.616962 1.126652 0.217337
+v 0.071790 2.293404 -0.294377
+v -0.551330 2.251130 0.138220
+v -0.116801 2.208855 0.759993
+v 0.506319 2.251130 0.327396
+v 0.047230 3.417485 -0.157068
+v -0.472030 3.381736 0.203388
+v -0.109914 3.345987 0.721492
+v 0.409345 3.381736 0.361036
+v 0.008297 4.548745 0.060599
+v -0.406859 4.505913 0.347559
+v -0.116916 4.463082 0.760637
+v 0.298240 4.505913 0.473677
+v -0.032621 5.681410 0.289360
+v -0.343415 5.628910 0.501379
+v -0.125385 5.576409 0.807986
+v 0.185410 5.628910 0.595967
+v -0.102806 6.774024 0.676786
+v -0.306889 6.704557 0.809670
+v -0.161189 6.665717 1.013132
+v 0.042894 6.735184 0.880248
+v -0.379880 7.796240 1.099022
+v -0.480396 7.753480 1.163067
+v -0.408523 7.739197 1.266332
+v -0.308007 7.781956 1.202287
+v -0.626063 8.834417 1.481314
+v -0.626063 8.834417 1.481314
+v -0.626063 8.834417 1.481314
+v -0.626063 8.834417 1.481314
+v -0.405540 2.413642 -0.222202
+v -0.090634 2.242920 0.447793
+v 0.561666 2.072199 0.097702
+v 0.246759 2.242920 -0.572293
+v -0.002438 3.464207 -0.307356
+v 0.259984 3.321939 0.250973
+v 0.803567 3.179670 -0.040770
+v 0.541145 3.321939 -0.599099
+v 0.437213 4.495812 0.060550
+v 0.612478 4.280862 0.484359
+v 1.057593 4.196939 0.257719
+v 0.882328 4.411890 -0.166090
+v 0.910062 5.444958 0.465193
+v 1.054590 5.317750 0.792654
+v 1.377485 5.226364 0.614640
+v 1.232957 5.353572 0.287179
+v 1.402369 6.446171 0.540025
+v 1.512086 6.396442 0.762787
+v 1.723394 6.325138 0.642793
+v 1.613676 6.374866 0.420031
+v 1.833586 7.488668 0.608838
+v 1.889037 7.465502 0.720291
+v 1.995540 7.432285 0.660399
+v 1.940089 7.455451 0.548945
+v 2.281373 8.530154 0.679686
+v 2.281373 8.530154 0.679686
+v 2.281373 8.530154 0.679686
+v 2.281373 8.530154 0.679686
+v 0.045757 3.472828 0.272978
+v 0.432800 3.331770 0.753746
+v 0.892695 3.190712 0.342120
+v 0.505653 3.331770 -0.138647
+v 0.515805 4.507779 0.235422
+v 0.825438 4.394933 0.620036
+v 1.193355 4.282086 0.290736
+v 0.883721 4.394933 -0.093878
+v 0.921591 5.550832 0.344195
+v 1.151251 5.457928 0.632164
+v 1.434927 5.398242 0.386672
+v 1.205267 5.491146 0.098703
+v 1.315454 6.625363 0.448768
+v 1.462872 6.546413 0.638948
+v 1.648335 6.495693 0.474131
+v 1.500917 6.574642 0.283951
+v 1.892594 7.603518 0.611496
+v 1.961289 7.551551 0.704308
+v 2.056149 7.531493 0.622866
+v 1.987455 7.583460 0.530055
+v 2.337806 8.582873 0.960303
+v 2.337806 8.582873 0.960303
+v 2.337806 8.582873 0.960303
+v 2.337806 8.582873 0.960303
+v 0.075119 3.414347 0.119133
+v 0.700214 3.321939 0.158545
+v 0.726010 3.229530 -0.467260
+v 0.100915 3.321939 -0.506672
+v 0.368823 4.484950 -0.145467
+v 0.868899 4.411023 -0.113937
+v 0.889536 4.337096 -0.614581
+v 0.389460 4.411023 -0.646111
+v 0.549206 5.562881 -0.306934
+v 0.928361 5.548334 -0.288741
+v 0.944583 5.500314 -0.665214
+v 0.565428 5.514861 -0.683407
+v 0.597441 6.679924 -0.543151
+v 0.849305 6.657441 -0.529267
+v 0.859673 6.619125 -0.779383
+v 0.607809 6.641608 -0.793268
+v 0.897027 7.759521 -0.757094
+v 1.022450 7.743809 -0.749626
+v 1.028488 7.732147 -0.875566
+v 0.903066 7.747859 -0.883035
+v 1.018853 8.875552 -0.853471
+v 1.018853 8.875552 -0.853471
+v 1.018853 8.875552 -0.853471
+v 1.018853 8.875552 -0.853471
+v -0.099812 4.508025 -0.374087
+v 0.312258 4.403594 -0.649457
+v 0.018864 4.299163 -1.048894
+v -0.393205 4.403594 -0.773524
+v -0.017385 5.544228 -0.842778
+v 0.291667 5.465904 -1.049305
+v 0.071622 5.387581 -1.348883
+v -0.237430 5.465904 -1.142356
+v 0.042950 6.590305 -1.185851
+v 0.250028 6.565259 -1.329466
+v 0.104374 6.540214 -1.535115
+v -0.102703 6.565259 -1.391500
+v 0.066088 7.704221 -1.318290
+v 0.169526 7.689857 -1.389897
+v 0.097274 7.687843 -1.493863
+v -0.006165 7.702207 -1.422256
+v 0.263418 8.805511 -1.535754
+v 0.263418 8.805511 -1.535754
+v 0.263418 8.805511 -1.535754
+v 0.263418 8.805511 -1.535754
+v 0.586701 4.527606 0.460327
+v 1.066936 4.394933 0.551476
+v 1.122458 4.262259 0.065831
+v 0.642224 4.394933 -0.025318
+v 0.952455 5.563603 0.191010
+v 1.312631 5.464098 0.259372
+v 1.354273 5.364594 -0.104861
+v 0.994097 5.464098 -0.173223
+v 1.395377 6.562186 -0.135079
+v 1.628954 6.477534 -0.085993
+v 1.662767 6.428145 -0.332064
+v 1.429190 6.512798 -0.381150
+v 1.899929 7.566116 -0.211382
+v 2.015583 7.520914 -0.186593
+v 2.037583 7.509125 -0.310732
+v 1.921929 7.554327 -0.335521
+v 2.362276 8.598434 -0.285657
+v 2.362276 8.598434 -0.285657
+v 2.362276 8.598434 -0.285657
+v 2.362276 8.598434 -0.285657
+v 0.234590 5.599739 0.212547
+v 0.374764 5.591772 0.565518
+v 0.727674 5.583805 0.425189
+v 0.587500 5.591772 0.072218
+v 0.463122 6.717524 0.311101
+v 0.556572 6.712213 0.546415
+v 0.791845 6.706901 0.452862
+v 0.698396 6.712213 0.217548
+v 0.460257 7.836196 0.309866
+v 0.506938 7.840132 0.427504
+v 0.624532 7.844068 0.380709
+v 0.577850 7.840132 0.263071
+v 0.536183 8.971832 0.342609
+v 0.536183 8.971832 0.342609
+v 0.536183 8.971832 0.342609
+v 0.536183 8.971832 0.342609
+v 0.908358 5.459203 0.501608
+v 1.100631 5.335661 0.805038
+v 1.379189 5.212119 0.578225
+v 1.186916 5.335661 0.274795
+v 1.582771 6.375226 0.611354
+v 1.710952 6.292865 0.813640
+v 1.896658 6.210504 0.662432
+v 1.768476 6.292865 0.460145
+v 2.085047 7.370366 0.693394
+v 2.155433 7.343212 0.795090
+v 2.250140 7.306163 0.719648
+v 2.179754 7.333317 0.617953
+v 2.558996 8.397515 0.631808
+v 2.558996 8.397515 0.631808
+v 2.558996 8.397515 0.631808
+v 2.558996 8.397515 0.631808
+v 0.942113 5.539180 -0.670418
+v 0.562476 5.531597 -0.681370
+v 0.551676 5.524014 -0.301729
+v 0.931312 5.531597 -0.290778
+v 0.853708 6.667255 -0.564462
+v 0.600617 6.662200 -0.571763
+v 0.593416 6.657146 -0.318669
+v 0.846507 6.662200 -0.311368
+v 0.765387 7.798831 -0.503640
+v 0.639236 7.788551 -0.507357
+v 0.635508 7.788537 -0.380789
+v 0.761659 7.798817 -0.377072
+v 0.540220 8.913995 -0.446709
+v 0.540220 8.913995 -0.446709
+v 0.540220 8.913995 -0.446709
+v 0.540220 8.913995 -0.446709
+v 0.428081 6.744906 0.119655
+v 0.320734 6.723005 0.347977
+v 0.549859 6.701104 0.453600
+v 0.657205 6.723005 0.225278
+v 0.526116 7.835466 0.453931
+v 0.472443 7.824516 0.568092
+v 0.587005 7.813565 0.620903
+v 0.640678 7.824516 0.506743
+v 0.583237 8.955894 0.545132
+v 0.583237 8.955894 0.545132
+v 0.583237 8.955894 0.545132
+v 0.583237 8.955894 0.545132
+v -0.042385 6.759718 0.695130
+v -0.285679 6.719871 0.753041
+v -0.221611 6.680023 0.994788
+v 0.021684 6.719871 0.936876
+v -0.208110 7.846725 0.972215
+v -0.329757 7.826801 1.001170
+v -0.297723 7.806878 1.122043
+v -0.176075 7.826801 1.093088
+v -0.390498 8.926323 1.277159
+v -0.390498 8.926323 1.277159
+v -0.390498 8.926323 1.277159
+v -0.390498 8.926323 1.277159
+v 0.617951 6.663674 -0.521149
+v 0.869114 6.649524 -0.550314
+v 0.839163 6.635374 -0.801385
+v 0.588000 6.649524 -0.772220
+v 0.652161 7.787807 -0.564487
+v 0.777743 7.780732 -0.579070
+v 0.762767 7.773657 -0.704605
+v 0.637185 7.780732 -0.690022
+v 0.838714 8.892449 -0.800817
+v 0.838714 8.892449 -0.800817
+v 0.838714 8.892449 -0.800817
+v 0.838714 8.892449 -0.800817
+v 1.377453 6.589841 -0.244308
+v 1.516423 6.495166 -0.054946
+v 1.680690 6.400490 -0.222835
+v 1.541721 6.495166 -0.412197
+v 1.992822 7.525069 -0.394599
+v 2.062307 7.477731 -0.299918
+v 2.144441 7.430393 -0.383862
+v 2.074956 7.477731 -0.478543
+v 2.702756 8.384189 -0.150461
+v 2.702756 8.384189 -0.150461
+v 2.702756 8.384189 -0.150461
+v 2.702756 8.384189 -0.150461
+v 0.800229 6.671528 -0.280005
+v 0.885343 6.662200 -0.518337
+v 0.646895 6.652873 -0.603127
+v 0.561781 6.662200 -0.364794
+v 0.759049 7.798564 -0.366785
+v 0.801605 7.793900 -0.485951
+v 0.682381 7.789237 -0.528346
+v 0.639824 7.793900 -0.409180
+v 0.673068 8.920150 -0.547972
+v 0.673068 8.920150 -0.547972
+v 0.673068 8.920150 -0.547972
+v 0.673068 8.920150 -0.547972
+v -0.718623 7.521231 -1.895071
+v -0.722490 7.473425 -2.012259
+v -0.837405 7.425619 -1.988966
+v -0.833538 7.473425 -1.871777
+v -1.252052 8.430329 -2.316733
+v -1.252052 8.430329 -2.316733
+v -1.252052 8.430329 -2.316733
+v -1.252052 8.430329 -2.316733
+v 1.897282 7.612772 0.622163
+v 1.980146 7.567505 0.706531
+v 2.051461 7.522239 0.612199
+v 1.968597 7.567505 0.527831
+v 2.545339 8.543940 0.580283
+v 2.545339 8.543940 0.580283
+v 2.545339 8.543940 0.580283
+v 2.545339 8.543940 0.580283
+v 0.040961 7.718984 -1.482443
+v 0.002674 7.696032 -1.363949
+v 0.122400 7.673080 -1.329710
+v 0.160687 7.696032 -1.448204
+v 0.218177 8.789937 -1.150088
+v 0.218177 8.789937 -1.150088
+v 0.218177 8.789937 -1.150088
+v 0.218177 8.789937 -1.150088
+v 2.091922 7.383285 0.722760
+v 2.186380 7.338264 0.794064
+v 2.243265 7.293244 0.690282
+v 2.148807 7.338264 0.618978
+v 2.723973 8.316516 0.587124
+v 2.723973 8.316516 0.587124
+v 2.723973 8.316516 0.587124
+v 2.723973 8.316516 0.587124
+v 0.578359 7.844239 0.452844
+v 0.469858 7.824516 0.515070
+v 0.534762 7.804793 0.621990
+v 0.643263 7.824516 0.559765
+v 0.494338 8.928437 0.778821
+v 0.494338 8.928437 0.778821
+v 0.494338 8.928437 0.778821
+v 0.494338 8.928437 0.778821
+v 2.002199 7.511489 -0.438867
+v 2.015040 7.477731 -0.317504
+v 2.135065 7.443973 -0.339594
+v 2.122223 7.477731 -0.460957
+v 2.410454 8.525929 -0.133832
+v 2.410454 8.525929 -0.133832
+v 2.410454 8.525929 -0.133832
+v 2.410454 8.525929 -0.133832
+v 0.030978 2.218528 0.282723
+v 0.476373 1.789166 0.472171
+v 0.242779 1.359805 0.048259
+v -0.202616 1.789166 -0.141190
+v 0.445634 2.394507 -0.176301
+v 0.846490 2.008082 -0.005797
+v 0.636256 1.621656 -0.387319
+v 0.235399 2.008082 -0.557822
+v 0.849132 2.569747 -0.622973
+v 1.215357 2.232064 -0.482382
+v 1.038391 1.894381 -0.832481
+v 0.672166 2.232064 -0.973071
+v 1.187754 2.756847 -1.030606
+v 1.444959 2.420209 -0.870469
+v 1.479421 2.247960 -1.287921
+v 1.222215 2.584598 -1.448058
+v 1.658881 3.016298 -0.795178
+v 1.789981 2.672174 -0.672317
+v 1.989316 2.630133 -1.002773
+v 1.858217 2.974257 -1.125633
+v 2.183699 3.224029 -0.548596
+v 2.332776 2.964849 -0.425078
+v 2.503755 2.933187 -0.697876
+v 2.354678 3.192366 -0.821394
+v 2.562576 3.648449 -0.376433
+v 2.746550 3.516589 -0.250951
+v 2.869656 3.475306 -0.474825
+v 2.685682 3.607166 -0.600307
+v 2.875487 4.198833 -0.424820
+v 3.029747 4.129629 -0.329476
+v 3.111391 4.079177 -0.498191
+v 2.957130 4.148380 -0.593535
+v 3.196875 4.748547 -0.473247
+v 3.306449 4.717864 -0.411629
+v 3.357811 4.677191 -0.523220
+v 3.248237 4.707875 -0.584838
+v 3.401637 5.320391 -0.666617
+v 3.459148 5.313344 -0.637824
+v 3.483896 5.290167 -0.692929
+v 3.426385 5.297215 -0.721722
+v 3.600776 5.902134 -0.853176
+v 3.600776 5.902134 -0.853176
+v 3.600776 5.902134 -0.853176
+v 3.600776 5.902134 -0.853176
+v 0.564181 3.937667 0.499199
+v 0.868935 3.557681 0.135679
+v 0.394571 3.177695 0.135198
+v 0.089817 3.557681 0.498718
+v 0.346121 4.266285 0.031221
+v 0.620400 3.924297 -0.295947
+v 0.193472 3.582310 -0.296380
+v -0.080806 3.924297 0.030788
+v 0.077598 4.447006 -0.545058
+v 0.335432 4.127666 -0.805763
+v -0.030029 3.808327 -0.776037
+v -0.287863 4.127666 -0.515332
+v -0.157120 4.650384 -1.048788
+v 0.058904 4.381118 -1.297467
+v -0.270456 4.111852 -1.292019
+v -0.486479 4.381118 -1.043340
+v -0.389678 4.891850 -1.527435
+v -0.192695 4.613067 -1.655756
+v -0.494952 4.463249 -1.794259
+v -0.691935 4.742032 -1.665939
+v -0.023962 5.078492 -1.952825
+v 0.107580 4.807671 -1.994122
+v -0.092485 4.743999 -2.213832
+v -0.224027 5.014821 -2.172536
+v 0.329115 5.294895 -2.374830
+v 0.459604 5.098988 -2.435647
+v 0.305490 5.052929 -2.617947
+v 0.175001 5.248836 -2.557129
+v 0.615964 5.661395 -2.719426
+v 0.746423 5.573839 -2.811953
+v 0.625115 5.528870 -2.940441
+v 0.494655 5.616426 -2.847914
+v 0.562531 6.188720 -2.996017
+v 0.652214 6.165949 -3.074852
+v 0.570710 6.127679 -3.156516
+v 0.481028 6.150450 -3.077681
+v 0.522424 6.750989 -3.229042
+v 0.566836 6.745210 -3.270130
+v 0.525547 6.733097 -3.313056
+v 0.481135 6.738876 -3.271967
+v 0.483738 7.354445 -3.334101
+v 0.483738 7.354445 -3.334101
+v 0.483738 7.354445 -3.334101
+v 0.483738 7.354445 -3.334101
+v 0.270573 5.532626 0.407214
+v 0.588518 5.365683 0.594894
+v 0.707227 5.198740 0.245293
+v 0.389282 5.365683 0.057613
+v 0.564536 5.962564 0.298206
+v 0.850686 5.812315 0.467118
+v 0.957524 5.662066 0.152477
+v 0.671374 5.812315 -0.016434
+v 0.923466 6.397952 0.165107
+v 1.149977 6.230562 0.325576
+v 1.217099 6.063172 0.056221
+v 0.990588 6.230562 -0.104248
+v 1.394898 6.710867 -0.018780
+v 1.593808 6.564965 0.121210
+v 1.569436 6.352725 -0.065364
+v 1.370526 6.498627 -0.205354
+v 1.732361 6.817055 -0.467815
+v 1.915066 6.697523 -0.360873
+v 1.836507 6.489503 -0.459170
+v 1.653802 6.609035 -0.566112
+v 2.050285 6.840204 -0.898243
+v 2.202402 6.740556 -0.808934
+v 2.136698 6.567140 -0.890515
+v 1.984580 6.666788 -0.979824
+v 2.350442 6.927353 -1.306278
+v 2.468645 6.846192 -1.230712
+v 2.441736 6.718056 -1.326244
+v 2.323533 6.799217 -1.401809
+v 2.733628 7.136052 -1.559801
+v 2.827574 7.079269 -1.507586
+v 2.836925 7.005977 -1.604112
+v 2.742979 7.062759 -1.656327
+v 3.006976 7.523080 -1.739935
+v 3.082905 7.506373 -1.717065
+v 3.095454 7.467556 -1.787087
+v 3.019526 7.484262 -1.809956
+v 3.088130 7.967063 -2.001718
+v 3.127809 7.966621 -1.993522
+v 3.135410 7.953326 -2.031037
+v 3.095730 7.953768 -2.039232
+v 3.131412 8.486127 -2.098401
+v 3.131412 8.486127 -2.098401
+v 3.131412 8.486127 -2.098401
+v 3.131412 8.486127 -2.098401
+v 0.483662 7.268889 0.228216
+v 0.635827 7.157342 0.302031
+v 0.636097 7.045794 0.132907
+v 0.483932 7.157342 0.059092
+v 0.688479 7.508941 0.100156
+v 0.825427 7.408549 0.166590
+v 0.825670 7.308156 0.014379
+v 0.688722 7.408549 -0.052055
+v 0.954358 7.678635 -0.066081
+v 1.067884 7.582398 -0.001898
+v 1.059895 7.486161 -0.132067
+v 0.946369 7.582398 -0.196250
+v 1.191689 7.858946 -0.214469
+v 1.297306 7.780021 -0.162237
+v 1.296597 7.701096 -0.280062
+v 1.190980 7.780021 -0.332294
+v 1.421492 8.074857 -0.359087
+v 1.525034 8.020116 -0.326546
+v 1.505457 7.933648 -0.409712
+v 1.401915 7.988389 -0.442253
+v 1.534584 8.191300 -0.670799
+v 1.626938 8.152591 -0.655513
+v 1.598554 8.066798 -0.701289
+v 1.506201 8.105508 -0.716576
+v 1.643219 8.306662 -0.972986
+v 1.717352 8.276012 -0.961490
+v 1.695201 8.208086 -0.999735
+v 1.621067 8.238735 -1.011231
+v 1.747877 8.427661 -1.259939
+v 1.806696 8.413178 -1.264906
+v 1.792416 8.368400 -1.303442
+v 1.733597 8.382882 -1.298474
+v 1.713542 8.680011 -1.464676
+v 1.752693 8.678644 -1.475024
+v 1.743105 8.658057 -1.508581
+v 1.703954 8.659424 -1.498233
+v 1.693589 8.987329 -1.609271
+v 1.713202 8.984406 -1.613422
+v 1.708338 8.978333 -1.632127
+v 1.688724 8.981256 -1.627976
+v 1.776800 9.305593 -1.705940
+v 1.776800 9.305593 -1.705940
+v 1.776800 9.305593 -1.705940
+v 1.776800 9.305593 -1.705940
+v 0.215254 3.096841 -0.010823
+v 0.389574 2.683126 -0.498433
+v -0.097051 2.269412 -0.321383
+v -0.271371 2.683126 0.166227
+v -0.210909 3.358126 -0.434604
+v -0.054021 2.985784 -0.873453
+v -0.491984 2.613441 -0.714108
+v -0.648871 2.985784 -0.275259
+v -0.659801 3.645069 -0.880988
+v -0.494363 3.297059 -1.245238
+v -0.857680 2.949050 -1.077760
+v -1.023118 3.297059 -0.713510
+v -1.139512 3.784241 -1.362591
+v -0.936712 3.448618 -1.610565
+v -1.271894 3.153373 -1.485084
+v -1.474694 3.488996 -1.237110
+v -1.383661 3.907599 -1.943588
+v -1.191638 3.608573 -2.122088
+v -1.508300 3.373821 -2.069482
+v -1.700324 3.672846 -1.890982
+v -1.626861 4.072141 -2.518675
+v -1.470019 3.825666 -2.675130
+v -1.736399 3.632169 -2.637340
+v -1.893241 3.878644 -2.480885
+v -1.864952 4.234695 -3.085543
+v -1.762066 4.057687 -3.253984
+v -1.968971 3.897353 -3.211874
+v -2.071856 4.074361 -3.043433
+v -2.246600 4.507585 -3.467844
+v -2.204152 4.414534 -3.638366
+v -2.370815 4.307419 -3.621403
+v -2.413263 4.400470 -3.450882
+v -2.498368 4.990359 -3.728112
+v -2.486661 4.963476 -3.857389
+v -2.613716 4.925848 -3.861070
+v -2.625423 4.952732 -3.731792
+v -2.623986 5.599682 -3.789401
+v -2.619555 5.601023 -3.855519
+v -2.685446 5.606771 -3.859818
+v -2.689877 5.605429 -3.793700
+v -2.448132 6.219825 -3.761762
+v -2.448132 6.219825 -3.761762
+v -2.448132 6.219825 -3.761762
+v -2.448132 6.219825 -3.761762
+v 0.182796 4.498444 -0.693067
+v -0.129190 4.191563 -0.995257
+v -0.235290 3.884681 -0.574072
+v 0.076696 4.191563 -0.271882
+v -0.307591 4.780833 -0.553493
+v -0.588379 4.504640 -0.825464
+v -0.683868 4.228446 -0.446398
+v -0.403081 4.504640 -0.174427
+v -0.768359 5.106679 -0.422350
+v -1.017959 4.861182 -0.664099
+v -1.102850 4.615685 -0.327148
+v -0.853251 4.861182 -0.085399
+v -1.278765 5.402453 -0.277079
+v -1.477119 5.174305 -0.494315
+v -1.531353 4.946158 -0.205188
+v -1.332999 5.174305 0.012048
+v -1.795930 5.636257 -0.130221
+v -1.925755 5.417789 -0.323188
+v -2.006653 5.241852 -0.069573
+v -1.876828 5.460320 0.123394
+v -2.293664 5.867306 -0.207564
+v -2.397005 5.682246 -0.368129
+v -2.513417 5.565999 -0.159222
+v -2.410076 5.751059 0.001343
+v -2.731299 6.202507 -0.271831
+v -2.834881 6.071668 -0.403759
+v -2.941145 5.989480 -0.238817
+v -2.837563 6.120318 -0.106889
+v -3.143533 6.579815 -0.333081
+v -3.245724 6.509654 -0.433526
+v -3.323883 6.446256 -0.309726
+v -3.221692 6.516418 -0.209281
+v -3.439849 7.040773 -0.220347
+v -3.521527 7.018296 -0.284663
+v -3.577186 6.982401 -0.201436
+v -3.495508 7.004879 -0.137119
+v -3.621927 7.573471 -0.156214
+v -3.664697 7.569645 -0.187589
+v -3.695568 7.563377 -0.144741
+v -3.652798 7.567203 -0.113366
+v -3.654834 8.148314 -0.150027
+v -3.654834 8.148314 -0.150027
+v -3.654834 8.148314 -0.150027
+v -3.654834 8.148314 -0.150027
+v -0.504691 5.793649 -1.085307
+v -0.238655 5.668563 -0.887114
+v -0.080297 5.543478 -1.178625
+v -0.346333 5.668563 -1.376818
+v -0.319026 6.269679 -1.126132
+v -0.079594 6.157102 -0.947758
+v 0.062929 6.044524 -1.210117
+v -0.176504 6.157102 -1.388492
+v 0.064719 6.691062 -1.210511
+v 0.245086 6.548011 -1.044818
+v 0.339310 6.404961 -1.270889
+v 0.158943 6.548011 -1.436581
+v 0.474931 7.009770 -1.301599
+v 0.652955 6.904656 -1.164294
+v 0.704082 6.748398 -1.350206
+v 0.526059 6.853513 -1.487512
+v 0.784270 7.325398 -1.594241
+v 0.953355 7.250527 -1.489087
+v 0.963187 7.085212 -1.622604
+v 0.794102 7.160083 -1.727758
+v 1.142637 7.519582 -1.938004
+v 1.278548 7.453396 -1.845413
+v 1.275717 7.307259 -1.945719
+v 1.139806 7.373444 -2.038311
+v 1.474813 7.723254 -2.259379
+v 1.555735 7.649567 -2.169189
+v 1.598867 7.566514 -2.275746
+v 1.517945 7.640202 -2.365935
+v 1.834934 8.016046 -2.095647
+v 1.891590 7.956386 -2.028237
+v 1.960549 7.933952 -2.106049
+v 1.903893 7.993611 -2.173459
+v 2.034887 8.461429 -2.014464
+v 2.083082 8.445204 -1.965047
+v 2.132263 8.437495 -2.015544
+v 2.084067 8.453720 -2.064961
+v 2.116580 8.960448 -2.014332
+v 2.141433 8.962964 -1.989171
+v 2.166472 8.965432 -2.014151
+v 2.141619 8.962916 -2.039311
+v 1.983161 9.454809 -2.016325
+v 1.983161 9.454809 -2.016325
+v 1.983161 9.454809 -2.016325
+v 1.983161 9.454809 -2.016325
+v -0.675641 7.178840 -1.691000
+v -0.543834 7.073983 -1.746296
+v -0.661374 6.969126 -1.827630
+v -0.793180 7.073983 -1.772333
+v -0.648231 7.417481 -1.953491
+v -0.529606 7.323110 -2.003258
+v -0.635391 7.228738 -2.076458
+v -0.754017 7.323110 -2.026691
+v -0.610851 7.553941 -2.311472
+v -0.507690 7.459233 -2.333843
+v -0.604004 7.364525 -2.377043
+v -0.707166 7.459233 -2.354672
+v -0.574421 7.641823 -2.660360
+v -0.484426 7.558088 -2.677329
+v -0.568974 7.474352 -2.712523
+v -0.658968 7.558088 -2.695554
+v -0.542313 7.740645 -2.990953
+v -0.470950 7.661814 -2.988474
+v -0.530673 7.605619 -3.056213
+v -0.602036 7.684450 -3.058692
+v -0.275228 7.871494 -3.146321
+v -0.214629 7.806815 -3.145391
+v -0.239495 7.782346 -3.226873
+v -0.300094 7.847025 -3.227803
+v -0.088034 8.136748 -3.261612
+v -0.029864 8.096497 -3.266527
+v -0.046091 8.081269 -3.333854
+v -0.104260 8.121521 -3.328938
+v 0.099844 8.413099 -3.377527
+v 0.144845 8.385094 -3.381879
+v 0.135813 8.378662 -3.433892
+v 0.090812 8.406668 -3.429541
+v 0.277468 8.712964 -3.414500
+v 0.310975 8.702065 -3.418446
+v 0.306681 8.701608 -3.453636
+v 0.273175 8.712506 -3.449690
+v 0.322983 9.063005 -3.430531
+v 0.340589 9.062873 -3.432592
+v 0.338531 9.063192 -3.450196
+v 0.320924 9.063325 -3.448135
+v 0.298845 9.419161 -3.421915
+v 0.298845 9.419161 -3.421915
+v 0.298845 9.419161 -3.421915
+v 0.298845 9.419161 -3.421915
+v -0.001671 3.185294 0.116325
+v -0.519610 2.703372 0.164287
+v -0.050410 2.221451 0.388814
+v 0.467529 2.703372 0.340852
+v -0.126717 3.368171 0.815430
+v -0.592862 2.934442 0.858596
+v -0.170582 2.500713 1.060671
+v 0.295564 2.934442 1.017505
+v -0.267898 3.507638 1.604745
+v -0.669017 3.108096 1.569138
+v -0.280425 2.708554 1.674783
+v 0.120694 3.108096 1.710390
+v -0.426990 3.411704 2.393897
+v -0.674995 3.065660 2.138703
+v -0.379212 2.714534 2.327383
+v -0.131207 3.060579 2.582576
+v -1.151400 3.243455 2.691069
+v -1.198372 2.992833 2.350491
+v -1.007822 2.674379 2.558552
+v -0.960851 2.925001 2.899131
+v -1.770264 2.849980 2.926359
+v -1.788718 2.649581 2.634465
+v -1.603640 2.394943 2.797585
+v -1.585185 2.595342 3.089478
+v -2.380609 2.551003 3.161944
+v -2.312889 2.420087 2.919612
+v -2.272855 2.177867 3.061655
+v -2.340575 2.308782 3.303987
+v -2.959496 2.454287 2.722028
+v -2.841282 2.367758 2.567784
+v -2.881596 2.173931 2.645622
+v -2.999810 2.260460 2.799865
+v -3.529651 2.360264 2.291184
+v -3.438811 2.301606 2.199425
+v -3.499488 2.175120 2.220214
+v -3.590328 2.233779 2.311973
+v -3.799464 2.605383 1.682211
+v -3.754282 2.576247 1.635975
+v -3.803355 2.528215 1.618288
+v -3.848537 2.557351 1.664525
+v -3.998466 3.138178 1.234311
+v -3.998466 3.138178 1.234311
+v -3.998466 3.138178 1.234311
+v -3.998466 3.138178 1.234311
+v -0.256358 4.577042 0.279489
+v -0.220643 4.281078 0.719898
+v 0.156926 3.985113 0.490384
+v 0.121211 4.281078 0.049976
+v 0.155792 4.909343 0.489806
+v 0.187936 4.642975 0.886173
+v 0.527749 4.376607 0.679611
+v 0.495605 4.642975 0.283243
+v 0.576832 5.214528 0.704658
+v 0.611553 4.983334 1.060123
+v 0.919758 4.752141 0.879650
+v 0.885037 4.983334 0.524185
+v 0.952326 5.554422 0.896269
+v 1.000441 5.370520 1.216350
+v 1.287855 5.186618 1.067485
+v 1.239740 5.370520 0.747404
+v 1.319813 5.962473 1.082592
+v 1.382636 5.826939 1.364555
+v 1.592181 5.631621 1.223981
+v 1.529358 5.767155 0.942019
+v 1.827044 6.258907 1.100334
+v 1.895367 6.158826 1.337026
+v 2.032796 5.966105 1.215868
+v 1.964472 6.066185 0.979175
+v 2.282469 6.553214 1.116304
+v 2.351295 6.485343 1.305802
+v 2.488519 6.354647 1.209152
+v 2.419693 6.422518 1.019654
+v 2.605069 6.960312 1.137319
+v 2.692452 6.962200 1.270793
+v 2.810347 6.886287 1.194684
+v 2.722965 6.884399 1.061209
+v 2.733980 7.405344 0.860235
+v 2.797761 7.426516 0.942679
+v 2.882041 7.396384 0.885214
+v 2.818260 7.375213 0.802771
+v 2.794994 7.965482 0.796350
+v 2.826404 7.969051 0.839117
+v 2.869305 7.965096 0.807938
+v 2.837895 7.961527 0.765171
+v 2.831296 8.533143 0.761145
+v 2.831296 8.533143 0.761145
+v 2.831296 8.533143 0.761145
+v 2.831296 8.533143 0.761145
+v -0.251639 5.952323 0.767691
+v 0.086413 5.847103 0.786452
+v 0.072436 5.741882 0.448169
+v -0.265616 5.847103 0.429408
+v -0.152376 6.369647 0.669823
+v 0.151870 6.274948 0.686708
+v 0.139291 6.180249 0.382253
+v -0.164955 6.274948 0.365368
+v 0.070621 6.782498 0.449959
+v 0.312597 6.640930 0.493033
+v 0.272950 6.499361 0.250472
+v 0.030974 6.640930 0.207398
+v 0.361912 7.042350 0.153082
+v 0.580000 6.927280 0.181206
+v 0.501627 6.742934 0.034685
+v 0.283540 6.858004 0.006561
+v 0.416067 7.181156 -0.284645
+v 0.610962 7.096176 -0.291502
+v 0.528016 6.911130 -0.355773
+v 0.333120 6.996110 -0.348916
+v 0.465855 7.256377 -0.706594
+v 0.629086 7.188687 -0.720716
+v 0.561744 7.041291 -0.792585
+v 0.398514 7.108981 -0.778463
+v 0.506091 7.473518 -1.064455
+v 0.630839 7.406496 -1.056814
+v 0.592503 7.322838 -1.164722
+v 0.467755 7.389861 -1.172363
+v 0.802767 7.743731 -1.244311
+v 0.884152 7.677615 -1.226469
+v 0.871644 7.636019 -1.323559
+v 0.790259 7.702135 -1.341401
+v 1.081797 8.027205 -1.413946
+v 1.146934 7.999429 -1.410240
+v 1.139211 7.972620 -1.475430
+v 1.074074 8.000398 -1.479136
+v 1.144912 8.410880 -1.598435
+v 1.180199 8.408010 -1.600332
+v 1.177706 8.400151 -1.634814
+v 1.142419 8.403021 -1.632917
+v 1.168875 8.848171 -1.642228
+v 1.168875 8.848171 -1.642228
+v 1.168875 8.848171 -1.642228
+v 1.168875 8.848171 -1.642228
+v -0.203288 7.438608 1.061955
+v -0.268675 7.348580 0.923951
+v -0.375352 7.258552 1.033224
+v -0.309965 7.348580 1.171229
+v -0.403382 7.680932 1.028543
+v -0.462230 7.599907 0.904339
+v -0.558239 7.518882 1.002685
+v -0.499391 7.599907 1.126889
+v -0.688586 7.874747 0.980920
+v -0.718123 7.786000 0.874319
+v -0.780694 7.697253 0.965540
+v -0.751156 7.786000 1.072141
+v -1.007886 7.977595 0.927603
+v -1.015229 7.892677 0.837416
+v -1.051475 7.807759 0.920324
+v -1.044132 7.892677 1.010511
+v -1.325128 8.019187 0.876852
+v -1.383144 7.957044 0.812934
+v -1.352048 7.871465 0.867911
+v -1.294032 7.933609 0.931830
+v -1.351216 7.997553 1.177987
+v -1.429660 7.956294 1.178703
+v -1.389313 7.879930 1.198630
+v -1.310868 7.921190 1.197914
+v -1.382329 8.111908 1.452371
+v -1.446144 8.083068 1.463508
+v -1.415827 8.029692 1.499004
+v -1.352012 8.058532 1.487866
+v -1.411998 8.290936 1.700694
+v -1.459053 8.278932 1.722374
+v -1.436242 8.239766 1.750196
+v -1.389187 8.251771 1.728516
+v -1.281395 8.473245 1.912983
+v -1.310240 8.472101 1.933567
+v -1.293535 8.450059 1.955750
+v -1.264691 8.451202 1.935166
+v -1.210995 8.752906 2.035802
+v -1.225652 8.751491 2.045671
+v -1.215985 8.745179 2.059124
+v -1.201328 8.746594 2.049254
+v -1.200470 9.050039 2.147900
+v -1.200470 9.050039 2.147900
+v -1.200470 9.050039 2.147900
+v -1.200470 9.050039 2.147900
+v 0.888303 5.059340 0.257243
+v 0.599456 4.742090 0.411235
+v 0.923599 4.424841 0.365652
+v 1.212446 4.742090 0.211659
+v 1.098516 5.153478 0.902902
+v 0.838554 4.867954 1.041495
+v 1.130283 4.582429 1.000470
+v 1.390245 4.867954 0.861877
+v 1.318901 5.241826 1.579805
+v 1.078177 4.984366 1.673370
+v 1.327845 4.726907 1.607274
+v 1.568569 4.984366 1.513709
+v 1.534666 5.169797 2.246963
+v 1.311598 4.943348 2.274896
+v 1.535468 4.718581 2.240531
+v 1.758536 4.945030 2.212598
+v 1.508629 5.158965 2.921426
+v 1.316179 4.964624 2.920706
+v 1.510252 4.772389 2.934394
+v 1.702702 4.966730 2.935114
+v 1.484555 5.145156 3.568841
+v 1.322759 4.989028 3.606186
+v 1.483080 4.834593 3.655126
+v 1.644876 4.990720 3.617781
+v 1.455294 5.417045 4.123316
+v 1.336647 5.339576 4.238070
+v 1.467504 5.227461 4.297680
+v 1.586152 5.304929 4.182927
+v 1.783682 5.880831 4.426055
+v 1.713172 5.865119 4.542171
+v 1.816268 5.792396 4.594935
+v 1.886778 5.808107 4.478819
+v 1.996839 6.470776 4.638227
+v 1.951771 6.466588 4.717367
+v 2.029778 6.448174 4.760814
+v 2.074845 6.452362 4.681674
+v 1.996371 7.145664 4.665494
+v 1.974119 7.146146 4.705276
+v 2.013800 7.143133 4.727508
+v 2.036052 7.142652 4.687726
+v 2.099106 7.822017 4.731025
+v 2.099106 7.822017 4.731025
+v 2.099106 7.822017 4.731025
+v 2.099106 7.822017 4.731025
+v 1.318795 6.164705 0.597513
+v 1.466097 5.965657 0.773680
+v 1.471681 5.766610 0.544112
+v 1.324379 5.965657 0.367944
+v 1.749373 6.397263 0.447118
+v 1.881945 6.218120 0.605668
+v 1.886970 6.038977 0.399057
+v 1.754398 6.218120 0.240506
+v 2.253746 6.518256 0.270947
+v 2.344070 6.350080 0.421492
+v 2.321019 6.181903 0.247449
+v 2.230695 6.350080 0.096903
+v 2.767833 6.581419 0.091383
+v 2.816403 6.431002 0.233750
+v 2.765771 6.280585 0.092103
+v 2.717201 6.431002 -0.050265
+v 3.290636 6.463255 -0.079418
+v 3.225880 6.354299 0.051663
+v 3.199487 6.222178 -0.071196
+v 3.264243 6.331133 -0.202277
+v 3.638539 6.220067 0.247159
+v 3.525837 6.156766 0.327032
+v 3.533295 6.032878 0.239372
+v 3.645997 6.096179 0.159499
+v 3.964824 6.008798 0.561173
+v 3.881528 5.955002 0.631487
+v 3.900930 5.849714 0.573916
+v 3.984226 5.903510 0.503602
+v 4.328576 5.951036 0.909411
+v 4.257292 5.912837 0.951496
+v 4.286436 5.830314 0.925955
+v 4.357720 5.868513 0.883870
+v 4.479576 5.898323 1.399457
+v 4.427389 5.873000 1.417606
+v 4.452276 5.817816 1.412172
+v 4.504463 5.843139 1.394022
+v 4.628603 5.956516 1.881729
+v 4.602313 5.943697 1.889977
+v 4.616948 5.917870 1.896482
+v 4.643237 5.930689 1.888234
+v 4.606455 6.174267 2.345134
+v 4.606455 6.174267 2.345134
+v 4.606455 6.174267 2.345134
+v 4.606455 6.174267 2.345134
+v 1.807685 7.312833 0.701321
+v 1.940900 7.245513 0.672862
+v 1.880768 7.178193 0.550632
+v 1.747553 7.245513 0.579091
+v 1.890855 7.580706 0.529833
+v 2.010749 7.520118 0.504219
+v 1.956630 7.459530 0.394212
+v 1.836736 7.520118 0.419825
+v 2.000685 7.824964 0.303373
+v 2.101032 7.757078 0.293444
+v 2.046699 7.689191 0.208497
+v 1.946353 7.757078 0.218427
+v 2.131521 7.983274 0.035812
+v 2.204738 7.906878 0.046577
+v 2.165717 7.857405 -0.039114
+v 2.092499 7.933802 -0.049879
+v 2.398950 8.133719 -0.076206
+v 2.448366 8.059171 -0.058536
+v 2.431868 8.028283 -0.142711
+v 2.382452 8.102832 -0.160381
+v 2.676216 8.271239 -0.192681
+v 2.716579 8.208660 -0.177625
+v 2.702492 8.182731 -0.247634
+v 2.662129 8.245310 -0.262690
+v 2.938106 8.406287 -0.304389
+v 2.980219 8.363460 -0.295092
+v 2.982388 8.352616 -0.354856
+v 2.940274 8.395444 -0.364154
+v 3.112005 8.662230 -0.262485
+v 3.152856 8.643281 -0.255415
+v 3.161369 8.644937 -0.300167
+v 3.120517 8.663886 -0.307237
+v 3.204677 8.972840 -0.245652
+v 3.234306 8.968748 -0.240279
+v 3.239781 8.969136 -0.270169
+v 3.210151 8.973228 -0.275542
+v 3.212860 9.300582 -0.251257
+v 3.227808 9.300556 -0.248535
+v 3.230530 9.300519 -0.263484
+v 3.215581 9.300545 -0.266206
+v 3.223598 9.630102 -0.259282
+v 3.223598 9.630102 -0.259282
+v 3.223598 9.630102 -0.259282
+v 3.223598 9.630102 -0.259282
+v 1.410307 5.599770 0.314239
+v 1.120391 5.474537 0.103132
+v 0.946211 5.349304 0.416627
+v 1.236127 5.474537 0.627734
+v 1.159448 6.117548 0.369583
+v 0.898524 6.004838 0.179587
+v 0.741762 5.892128 0.461732
+v 1.002686 6.004838 0.651729
+v 0.812150 6.635890 0.446203
+v 0.605813 6.496907 0.271671
+v 0.492066 6.357924 0.516820
+v 0.698403 6.496907 0.691352
+v 0.333898 7.031605 0.551714
+v 0.186309 6.878866 0.391727
+v 0.119735 6.726127 0.598962
+v 0.267325 6.878866 0.758949
+v -0.177265 7.304986 0.665779
+v -0.334290 7.196167 0.541482
+v -0.347898 7.033782 0.700837
+v -0.190872 7.142601 0.825134
+v -0.488529 7.549577 1.060772
+v -0.653076 7.488842 0.987896
+v -0.655200 7.345329 1.112294
+v -0.490653 7.406064 1.185170
+v -0.757510 7.888221 1.394876
+v -0.897213 7.852334 1.347091
+v -0.917970 7.767537 1.471456
+v -0.778267 7.803423 1.519242
+v -0.924162 8.375962 1.594146
+v -1.034339 8.366439 1.566625
+v -1.056538 8.324195 1.670114
+v -0.946361 8.333718 1.697635
+v -0.983350 8.903073 1.799636
+v -1.057560 8.903519 1.783367
+v -1.073450 8.885119 1.855346
+v -0.999240 8.884674 1.871615
+v -1.021094 9.469335 1.891645
+v -1.058203 9.469692 1.883533
+v -1.066314 9.466308 1.920490
+v -1.029205 9.465950 1.928601
+v -1.039828 10.046574 1.930552
+v -1.039828 10.046574 1.930552
+v -1.039828 10.046574 1.930552
+v -1.039828 10.046574 1.930552
+v 1.429317 6.685497 0.344466
+v 1.318561 6.560528 0.534859
+v 1.534472 6.435558 0.578433
+v 1.645228 6.560528 0.388040
+v 1.566564 6.995203 0.649836
+v 1.466884 6.882730 0.821190
+v 1.661204 6.770257 0.860406
+v 1.760885 6.882730 0.689053
+v 1.705864 7.324919 0.959773
+v 1.611832 7.212953 1.100013
+v 1.779135 7.100987 1.122797
+v 1.873166 7.212953 0.982557
+v 1.871204 7.539141 1.321208
+v 1.791586 7.391662 1.378971
+v 1.934832 7.352199 1.475660
+v 2.014451 7.499678 1.417897
+v 1.477699 7.621879 1.475119
+v 1.444456 7.474857 1.494292
+v 1.499685 7.480813 1.635722
+v 1.532927 7.627835 1.616550
+v 1.070577 7.731249 1.643454
+v 1.039662 7.609668 1.660649
+v 1.085815 7.614593 1.778458
+v 1.116731 7.736175 1.761264
+v 0.693920 7.835646 1.806255
+v 0.638229 7.753254 1.825525
+v 0.646254 7.771077 1.924920
+v 0.701945 7.853469 1.905650
+v 0.437761 8.129720 1.645181
+v 0.372078 8.092354 1.653028
+v 0.365873 8.118207 1.724197
+v 0.431556 8.155573 1.716350
+v 0.247137 8.529601 1.537904
+v 0.199435 8.512829 1.540836
+v 0.199567 8.521188 1.590791
+v 0.247269 8.537960 1.587859
+v 0.110270 8.964600 1.531921
+v 0.085299 8.960515 1.532984
+v 0.086245 8.961311 1.558278
+v 0.111216 8.965396 1.557215
+v 0.076394 9.417916 1.541736
+v 0.076394 9.417916 1.541736
+v 0.076394 9.417916 1.541736
+v 0.076394 9.417916 1.541736
+v 1.953063 7.652110 0.597063
+v 1.912905 7.567505 0.682286
+v 1.995680 7.482901 0.637299
+v 2.035838 7.567505 0.552076
+v 2.174715 7.755487 0.806328
+v 2.138574 7.679343 0.883028
+v 2.213071 7.603199 0.842540
+v 2.249213 7.679343 0.765839
+v 2.409611 7.849170 1.028095
+v 2.367510 7.778204 1.086855
+v 2.423755 7.707239 1.041448
+v 2.465856 7.778204 0.982687
+v 2.661268 7.826357 1.265686
+v 2.607572 7.765424 1.301186
+v 2.639929 7.704490 1.245540
+v 2.693625 7.765424 1.210039
+v 2.880743 7.671767 1.485567
+v 2.812600 7.647707 1.462123
+v 2.845460 7.588950 1.426911
+v 2.913604 7.613010 1.450355
+v 2.619406 7.551706 1.655710
+v 2.584197 7.552951 1.603106
+v 2.600464 7.493016 1.590798
+v 2.635674 7.491770 1.643402
+v 2.363401 7.447348 1.816856
+v 2.335301 7.448368 1.774729
+v 2.345064 7.399269 1.767028
+v 2.373164 7.398249 1.809155
+v 2.096337 7.383096 1.985242
+v 2.081343 7.385016 1.950392
+v 2.083493 7.347209 1.947384
+v 2.098487 7.345289 1.982234
+v 1.781346 7.382764 2.050093
+v 1.775924 7.383759 2.025376
+v 1.770766 7.358966 2.025509
+v 1.776188 7.357971 2.050227
+v 1.487956 7.497610 2.110188
+v 1.487263 7.497464 2.097546
+v 1.482255 7.485841 2.097954
+v 1.482948 7.485987 2.110597
+v 1.193460 7.622901 2.066832
+v 1.193460 7.622901 2.066832
+v 1.193460 7.622901 2.066832
+v 1.193460 7.622901 2.066832
+v 0.927032 5.726316 -0.443819
+v 0.808237 5.531597 -0.747584
+v 0.566756 5.336878 -0.528329
+v 0.685552 5.531597 -0.224563
+v 0.570833 6.142032 -0.527372
+v 0.463918 5.966785 -0.800761
+v 0.246586 5.791538 -0.603431
+v 0.353501 5.966785 -0.330042
+v 0.062993 6.483123 -0.646496
+v 0.017396 6.291497 -0.877912
+v -0.126349 6.099871 -0.690911
+v -0.080752 6.291497 -0.459495
+v -0.502952 6.647663 -0.787357
+v -0.447339 6.442847 -0.947560
+v -0.590739 6.282027 -0.791736
+v -0.646353 6.486844 -0.631533
+v -0.863551 6.661548 -1.249977
+v -0.753903 6.477898 -1.328706
+v -0.899156 6.342969 -1.216258
+v -1.008804 6.526620 -1.137529
+v -1.203743 6.578241 -1.694341
+v -1.108115 6.425484 -1.754306
+v -1.226032 6.313253 -1.656454
+v -1.321661 6.466011 -1.596489
+v -1.528705 6.536723 -2.127865
+v -1.540355 6.421607 -2.226358
+v -1.571389 6.326732 -2.111799
+v -1.559739 6.441848 -2.013306
+v -1.901074 6.656070 -1.768112
+v -1.988328 6.602489 -1.818142
+v -1.980523 6.518366 -1.741659
+v -1.893270 6.571947 -1.691629
+v -2.207097 6.985665 -1.496440
+v -2.281921 6.975761 -1.505119
+v -2.282648 6.928872 -1.445345
+v -2.207824 6.938776 -1.436666
+v -2.099115 7.387449 -1.151923
+v -2.136566 7.393292 -1.149413
+v -2.136953 7.376235 -1.115473
+v -2.099502 7.370391 -1.117984
+v -2.062814 7.916117 -0.986897
+v -2.062814 7.916117 -0.986897
+v -2.062814 7.916117 -0.986897
+v -2.062814 7.916117 -0.986897
+v 0.882148 6.741593 -0.661234
+v 0.728596 6.649524 -0.840340
+v 0.574966 6.557456 -0.661301
+v 0.728518 6.649524 -0.482195
+v 0.690263 7.212148 -0.661276
+v 0.552065 7.129286 -0.822471
+v 0.413799 7.046424 -0.661335
+v 0.551996 7.129286 -0.500140
+v 0.323207 7.601523 -0.661355
+v 0.212128 7.511095 -0.804637
+v 0.100987 7.420666 -0.661403
+v 0.212066 7.511095 -0.518121
+v 0.010534 7.992572 -0.661423
+v -0.092686 7.921489 -0.786796
+v -0.195960 7.850405 -0.661467
+v -0.092740 7.921489 -0.536094
+v -0.281761 8.417666 -0.660948
+v -0.380679 8.371165 -0.766499
+v -0.452878 8.287690 -0.662061
+v -0.353961 8.334191 -0.556510
+v -0.613861 8.753545 -0.448106
+v -0.703995 8.724291 -0.532091
+v -0.750303 8.637641 -0.452210
+v -0.660168 8.666895 -0.368225
+v -0.919385 9.097373 -0.252534
+v -0.994612 9.078263 -0.317627
+v -1.040897 9.021661 -0.247519
+v -0.965670 9.040771 -0.182425
+v -1.126573 9.529469 -0.122677
+v -1.184577 9.518624 -0.170531
+v -1.227870 9.495061 -0.112716
+v -1.169866 9.505906 -0.064862
+v -1.252755 10.017161 -0.096544
+v -1.291806 10.011465 -0.128291
+v -1.322807 10.004334 -0.088877
+v -1.283756 10.010031 -0.057130
+v -1.339077 10.519033 -0.079035
+v -1.358587 10.516074 -0.094908
+v -1.374462 10.515043 -0.075204
+v -1.354953 10.518003 -0.059331
+v -1.406505 11.022470 -0.135415
+v -1.406505 11.022470 -0.135415
+v -1.406505 11.022470 -0.135415
+v -1.406505 11.022470 -0.135415
+v 0.946819 7.783953 -0.895764
+v 0.874971 7.745834 -0.798716
+v 0.978696 7.707715 -0.736897
+v 1.050544 7.745834 -0.833945
+v 0.963115 8.072925 -0.814550
+v 0.898452 8.038618 -0.727207
+v 0.991804 8.004312 -0.671570
+v 1.056467 8.038618 -0.758913
+v 1.001987 8.330740 -0.620822
+v 0.942236 8.282845 -0.554510
+v 1.022944 8.234949 -0.516381
+v 1.082695 8.282845 -0.582693
+v 1.048229 8.530135 -0.392279
+v 0.998167 8.494981 -0.328135
+v 1.064851 8.441104 -0.305619
+v 1.114912 8.476258 -0.369763
+v 1.208482 8.731099 -0.222913
+v 1.169614 8.706317 -0.162521
+v 1.217148 8.647399 -0.156106
+v 1.256016 8.672181 -0.216498
+v 1.405373 8.843890 -0.017204
+v 1.372052 8.822441 0.032172
+v 1.409448 8.771447 0.035258
+v 1.442770 8.792896 -0.014118
+v 1.576995 9.008658 0.162401
+v 1.548611 8.989715 0.199828
+v 1.583823 8.954394 0.208655
+v 1.612207 8.973338 0.171228
+v 1.671997 9.189566 0.377378
+v 1.651044 9.176027 0.406026
+v 1.681245 9.157101 0.419170
+v 1.702197 9.170639 0.390522
+v 1.725197 9.453602 0.498149
+v 1.711750 9.447270 0.518653
+v 1.733110 9.440987 0.530720
+v 1.746556 9.447318 0.510216
+v 1.723698 9.736523 0.595503
+v 1.717067 9.735612 0.606252
+v 1.727854 9.735098 0.612863
+v 1.734485 9.736009 0.602115
+v 1.727321 10.035175 0.563124
+v 1.727321 10.035175 0.563124
+v 1.727321 10.035175 0.563124
+v 1.727321 10.035175 0.563124
+v 0.029698 7.145856 -1.335827
+v 0.173249 7.017569 -1.272730
+v 0.124041 6.889281 -1.421614
+v -0.019509 7.017569 -1.484711
+v 0.358482 7.473966 -1.634795
+v 0.487677 7.358507 -1.578008
+v 0.443390 7.243048 -1.712004
+v 0.314195 7.358507 -1.768791
+v 0.790030 7.615906 -2.027210
+v 0.874791 7.501768 -1.949381
+v 0.805346 7.387630 -2.041137
+v 0.720585 7.501768 -2.118965
+v 1.215653 7.556913 -2.414236
+v 1.274499 7.457312 -2.332206
+v 1.198416 7.357710 -2.398562
+v 1.139569 7.457312 -2.480592
+v 1.637963 7.439081 -2.824273
+v 1.694598 7.346976 -2.768725
+v 1.587883 7.306709 -2.726690
+v 1.531248 7.398815 -2.782238
+v 1.143879 7.156472 -2.964077
+v 1.165209 7.059395 -2.944516
+v 1.135191 7.072125 -2.848608
+v 1.113860 7.169201 -2.868169
+v 0.623843 7.129411 -3.096046
+v 0.605196 7.050758 -3.090270
+v 0.585864 7.061071 -3.012249
+v 0.604511 7.139724 -3.018026
+v 0.141072 7.358492 -3.218096
+v 0.107268 7.307984 -3.217588
+v 0.103446 7.311150 -3.157012
+v 0.137251 7.361659 -3.157520
+v -0.281500 7.711366 -3.162776
+v -0.312181 7.684901 -3.162498
+v -0.310111 7.682925 -3.122080
+v -0.279429 7.709390 -3.122358
+v -0.583876 8.168916 -3.120630
+v -0.602268 8.160424 -3.120326
+v -0.602099 8.160783 -3.100070
+v -0.583707 8.169274 -3.100374
+v -0.755993 8.693449 -3.156226
+v -0.755993 8.693449 -3.156226
+v -0.755993 8.693449 -3.156226
+v -0.755993 8.693449 -3.156226
+v 0.094257 7.966857 -1.385411
+v 0.181835 7.917929 -1.399463
+v 0.141800 7.869000 -1.478613
+v 0.054222 7.917929 -1.464561
+v 0.203973 8.222988 -1.600493
+v 0.282793 8.178952 -1.613140
+v 0.246762 8.134916 -1.684375
+v 0.167941 8.178952 -1.671728
+v 0.319819 8.476004 -1.827593
+v 0.387587 8.432080 -1.834337
+v 0.353265 8.388157 -1.893159
+v 0.285497 8.432080 -1.886415
+v 0.454785 8.667295 -2.092062
+v 0.506842 8.619264 -2.088707
+v 0.483721 8.589992 -2.149011
+v 0.431664 8.638022 -2.152367
+v 0.719864 8.870164 -2.185085
+v 0.759488 8.824440 -2.179309
+v 0.751390 8.810035 -2.237799
+v 0.711766 8.855759 -2.243574
+v 0.977946 9.082851 -2.276656
+v 1.016552 9.050196 -2.273750
+v 1.011564 9.039907 -2.323092
+v 0.972957 9.072563 -2.325998
+v 1.162194 9.361288 -2.343512
+v 1.199976 9.346658 -2.342932
+v 1.200005 9.345127 -2.383423
+v 1.162223 9.359757 -2.384003
+v 1.225974 9.698651 -2.308956
+v 1.255983 9.693899 -2.308307
+v 1.257100 9.696826 -2.338534
+v 1.227091 9.701578 -2.339183
+v 1.278682 10.044031 -2.282729
+v 1.298890 10.045264 -2.281969
+v 1.299590 10.046249 -2.302192
+v 1.279382 10.045016 -2.302952
+v 1.193226 10.384220 -2.286871
+v 1.203143 10.386244 -2.286457
+v 1.203546 10.386343 -2.296578
+v 1.193629 10.384319 -2.296992
+v 1.148583 10.733781 -2.291321
+v 1.148583 10.733781 -2.291321
+v 1.148583 10.733781 -2.291321
+v 1.148583 10.733781 -2.291321
+v 1.689422 6.966218 -0.112815
+v 1.847219 6.912148 -0.227803
+v 1.720469 6.858077 -0.376316
+v 1.562672 6.912148 -0.261329
+v 1.715023 7.389741 -0.330098
+v 1.857041 7.341077 -0.433587
+v 1.742965 7.292414 -0.567249
+v 1.600948 7.341077 -0.463760
+v 1.734649 7.838409 -0.496665
+v 1.860702 7.791464 -0.587087
+v 1.759116 7.744520 -0.704330
+v 1.633064 7.791464 -0.613908
+v 1.764973 8.264867 -0.754035
+v 1.873975 8.204966 -0.822173
+v 1.783794 8.145064 -0.913778
+v 1.674792 8.204966 -0.845641
+v 1.804141 8.605612 -1.096833
+v 1.895765 8.569908 -1.168294
+v 1.821593 8.491507 -1.224223
+v 1.729969 8.527210 -1.152761
+v 1.550384 8.882241 -1.375201
+v 1.616406 8.871729 -1.451306
+v 1.558803 8.798558 -1.491172
+v 1.492780 8.809071 -1.415067
+v 1.337108 9.225039 -1.612843
+v 1.389184 9.217791 -1.674510
+v 1.337935 9.167332 -1.711856
+v 1.285859 9.174580 -1.650189
+v 1.148617 9.590683 -1.826086
+v 1.181483 9.596766 -1.876850
+v 1.138415 9.567541 -1.908236
+v 1.105549 9.561458 -1.857472
+v 0.926484 9.998642 -1.808439
+v 0.947114 10.005916 -1.842547
+v 0.914078 9.997292 -1.864367
+v 0.893449 9.990018 -1.830259
+v 0.890346 10.471495 -1.817919
+v 0.900807 10.474415 -1.835021
+v 0.883635 10.473310 -1.845714
+v 0.873174 10.470390 -1.828611
+v 0.804714 10.933186 -1.747385
+v 0.804714 10.933186 -1.747385
+v 0.804714 10.933186 -1.747385
+v 0.804714 10.933186 -1.747385
+v 2.047802 7.761458 -0.336647
+v 1.975832 7.749784 -0.266324
+v 2.047118 7.738110 -0.195306
+v 2.119088 7.749784 -0.265630
+v 2.047419 8.083793 -0.257494
+v 1.982646 8.073286 -0.194203
+v 2.046803 8.062779 -0.130287
+v 2.111576 8.073286 -0.193578
+v 2.047214 8.407493 -0.215221
+v 1.989635 8.402786 -0.158389
+v 2.046661 8.398080 -0.101003
+v 2.104240 8.402786 -0.157834
+v 2.047155 8.740693 -0.189114
+v 1.996760 8.736007 -0.139450
+v 2.046540 8.726703 -0.089816
+v 2.096934 8.731389 -0.139480
+v 2.078338 9.071297 -0.105906
+v 2.034596 9.061988 -0.064747
+v 2.075778 9.039640 -0.026034
+v 2.119520 9.048949 -0.067193
+v 2.147310 9.348683 0.069060
+v 2.110612 9.339578 0.102759
+v 2.144339 9.317718 0.133582
+v 2.181038 9.326823 0.099882
+v 2.194560 9.643855 0.191252
+v 2.165834 9.641214 0.219707
+v 2.194242 9.634187 0.247733
+v 2.222968 9.636827 0.219278
+v 2.195631 9.972488 0.189283
+v 2.174073 9.970064 0.210564
+v 2.195487 9.968187 0.232045
+v 2.217046 9.970612 0.210764
+v 2.185815 10.294212 0.270957
+v 2.171466 10.293852 0.285255
+v 2.185732 10.292042 0.299526
+v 2.200081 10.292402 0.285227
+v 2.228588 10.621202 0.253039
+v 2.221428 10.620213 0.260137
+v 2.228540 10.620466 0.267346
+v 2.235700 10.621456 0.260248
+v 2.129869 10.931916 0.317966
+v 2.129869 10.931916 0.317966
+v 2.129869 10.931916 0.317966
+v 2.129869 10.931916 0.317966
+v 0.529496 8.316685 0.391202
+v 0.592359 8.292812 0.355841
+v 0.550323 8.268940 0.297230
+v 0.487461 8.292812 0.332592
+v 0.560162 8.646173 0.252839
+v 0.616738 8.624688 0.221014
+v 0.578907 8.603203 0.168265
+v 0.522330 8.624688 0.200090
+v 0.601833 8.963037 0.064823
+v 0.650745 8.934495 0.042752
+v 0.615739 8.905953 0.002082
+v 0.566827 8.934495 0.024153
+v 0.665885 9.181393 -0.224174
+v 0.707440 9.151166 -0.237879
+v 0.675567 9.120939 -0.267858
+v 0.634012 9.151166 -0.254153
+v 0.730270 9.383074 -0.506154
+v 0.763189 9.373034 -0.536046
+v 0.737052 9.340174 -0.553793
+v 0.704133 9.350213 -0.523901
+v 0.441567 9.556203 -0.608087
+v 0.456325 9.560445 -0.642832
+v 0.439186 9.528443 -0.654019
+v 0.424428 9.524201 -0.619274
+v 0.159971 9.749408 -0.709650
+v 0.172390 9.752301 -0.737234
+v 0.154057 9.730477 -0.747777
+v 0.141638 9.727584 -0.720192
+v -0.038994 10.033573 -0.782975
+v -0.030844 10.037202 -0.803948
+v -0.048264 10.025434 -0.812754
+v -0.056414 10.021806 -0.791780
+v -0.220756 10.339454 -0.763543
+v -0.215386 10.342002 -0.777527
+v -0.228679 10.337609 -0.783432
+v -0.234049 10.335061 -0.769449
+v -0.274997 10.693794 -0.761475
+v -0.272054 10.693522 -0.768474
+v -0.279059 10.693478 -0.771417
+v -0.282001 10.693749 -0.764418
+v -0.218810 11.046441 -0.798456
+v -0.218810 11.046441 -0.798456
+v -0.218810 11.046441 -0.798456
+v -0.218810 11.046441 -0.798456
+v 2.302005 7.810725 0.680864
+v 2.334227 7.761965 0.729405
+v 2.346303 7.713205 0.672408
+v 2.314081 7.761965 0.623867
+v 2.597065 7.953778 0.624541
+v 2.626065 7.909894 0.668228
+v 2.636934 7.866009 0.616931
+v 2.607934 7.909894 0.573244
+v 2.900662 8.080722 0.566589
+v 2.925429 8.041254 0.605614
+v 2.934080 8.001786 0.560210
+v 2.909313 8.041254 0.521184
+v 3.202771 8.207875 0.508911
+v 3.208245 8.166563 0.541950
+v 3.232086 8.138839 0.503334
+v 3.226612 8.180151 0.470294
+v 3.432664 8.280716 0.741462
+v 3.422684 8.240501 0.760466
+v 3.454189 8.220362 0.734394
+v 3.464170 8.260576 0.715390
+v 3.664037 8.306132 0.976351
+v 3.658044 8.273344 0.994572
+v 3.685462 8.256923 0.974039
+v 3.691455 8.289711 0.955819
+v 3.871397 8.436835 1.185480
+v 3.871907 8.414977 1.206587
+v 3.899549 8.406547 1.197188
+v 3.899040 8.428405 1.176081
+v 3.925925 8.692723 1.379459
+v 3.927754 8.680120 1.398362
+v 3.950232 8.678370 1.395019
+v 3.948402 8.690973 1.376117
+v 3.973273 8.975332 1.543218
+v 3.974943 8.970798 1.557625
+v 3.990015 8.970377 1.555744
+v 3.988345 8.974911 1.541338
+v 3.974844 9.304403 1.573959
+v 3.975764 9.304647 1.581496
+v 3.983305 9.304594 1.580577
+v 3.982385 9.304350 1.573040
+v 3.983648 9.633586 1.527805
+v 3.983648 9.633586 1.527805
+v 3.983648 9.633586 1.527805
+v 3.983648 9.633586 1.527805
+v 0.659282 8.268538 -0.484583
+v 0.589586 8.241809 -0.470441
+v 0.613431 8.215080 -0.403441
+v 0.683128 8.241809 -0.417583
+v 0.601104 8.595416 -0.381626
+v 0.538377 8.571361 -0.368898
+v 0.559838 8.547305 -0.308598
+v 0.622565 8.571361 -0.321326
+v 0.485500 8.862021 -0.177043
+v 0.431328 8.835809 -0.168535
+v 0.451989 8.809596 -0.117740
+v 0.506161 8.835809 -0.126249
+v 0.386508 9.145262 -0.001860
+v 0.338843 9.123042 0.006054
+v 0.356657 9.100822 0.050967
+v 0.404322 9.123042 0.043054
+v 0.276544 9.421505 0.191593
+v 0.240607 9.393464 0.191995
+v 0.255821 9.374519 0.230564
+v 0.291758 9.402560 0.230162
+v 0.029355 9.597116 0.369884
+v 0.003494 9.569469 0.366741
+v 0.014864 9.555053 0.399996
+v 0.040725 9.582699 0.403139
+v -0.190923 9.810068 0.528775
+v -0.214202 9.790545 0.528105
+v -0.206456 9.780363 0.555671
+v -0.183178 9.799887 0.556341
+v -0.380694 10.063818 0.665707
+v -0.401078 10.053824 0.667741
+v -0.395278 10.046204 0.688424
+v -0.374894 10.056197 0.686390
+v -0.444652 10.368664 0.814281
+v -0.459326 10.365984 0.817174
+v -0.455823 10.362236 0.831476
+v -0.441149 10.364916 0.828584
+v -0.466995 10.710909 0.864362
+v -0.474407 10.710546 0.865992
+v -0.472752 10.709942 0.873383
+v -0.465340 10.710305 0.871753
+v -0.470695 11.058674 0.884086
+v -0.470695 11.058674 0.884086
+v -0.470695 11.058674 0.884086
+v -0.470695 11.058674 0.884086
+v 0.596185 8.523317 0.560098
+v 0.594314 8.503343 0.513591
+v 0.548948 8.483368 0.523994
+v 0.550818 8.503343 0.570501
+v 0.476244 8.825615 0.468427
+v 0.474561 8.807638 0.426571
+v 0.433731 8.789661 0.435934
+v 0.435414 8.807638 0.477790
+v 0.291663 9.079924 0.327352
+v 0.292980 9.059646 0.292297
+v 0.259499 9.039368 0.302770
+v 0.258183 9.059646 0.337825
+v 0.090470 9.299834 0.174807
+v 0.094585 9.275817 0.149054
+v 0.059589 9.270144 0.148752
+v 0.055473 9.294162 0.174505
+v 0.224327 9.485454 -0.068647
+v 0.226493 9.459579 -0.084438
+v 0.199047 9.464625 -0.096472
+v 0.196881 9.490499 -0.080681
+v 0.370896 9.628853 -0.336794
+v 0.373710 9.608617 -0.351758
+v 0.350642 9.612564 -0.361434
+v 0.347828 9.632800 -0.346470
+v 0.483989 9.866977 -0.544896
+v 0.488490 9.856349 -0.561547
+v 0.469081 9.857146 -0.567302
+v 0.464580 9.867774 -0.550651
+v 0.485337 10.181490 -0.664457
+v 0.489184 10.178098 -0.678760
+v 0.474485 10.177311 -0.682527
+v 0.470638 10.180703 -0.668224
+v 0.484580 10.516426 -0.703822
+v 0.487140 10.515536 -0.713582
+v 0.477340 10.515173 -0.716120
+v 0.474780 10.516063 -0.706360
+v 0.473181 10.852963 -0.734048
+v 0.474458 10.852940 -0.738949
+v 0.469557 10.852923 -0.740226
+v 0.468280 10.852947 -0.735325
+v 0.479658 11.190399 -0.713659
+v 0.479658 11.190399 -0.713659
+v 0.479658 11.190399 -0.713659
+v 0.479658 11.190399 -0.713659
+v -0.309383 8.507997 1.197018
+v -0.320630 8.486515 1.152550
+v -0.361548 8.465034 1.173277
+v -0.350301 8.486515 1.217745
+v -0.449703 8.763294 1.133155
+v -0.459825 8.743960 1.093134
+v -0.496652 8.724627 1.111788
+v -0.486530 8.743960 1.151809
+v -0.639906 8.980348 1.046590
+v -0.647598 8.961398 1.011610
+v -0.679027 8.942449 1.028786
+v -0.671335 8.961398 1.063766
+v -0.817986 9.211037 0.965543
+v -0.822107 9.191685 0.936123
+v -0.846999 9.172333 0.952339
+v -0.842877 9.191685 0.981759
+v -1.063148 9.353772 0.853112
+v -1.058425 9.331198 0.833322
+v -1.079586 9.314485 0.847336
+v -1.084310 9.337059 0.867126
+v -1.228797 9.427723 0.614403
+v -1.221423 9.407059 0.601756
+v -1.241366 9.394375 0.610853
+v -1.248739 9.415039 0.623500
+v -1.389268 9.518827 0.382983
+v -1.385029 9.503479 0.370456
+v -1.402002 9.494059 0.376254
+v -1.406241 9.509407 0.388782
+v -1.526435 9.689275 0.184265
+v -1.528674 9.682912 0.170650
+v -1.539309 9.673856 0.176631
+v -1.537070 9.680219 0.190246
+v -1.748999 9.862086 0.276701
+v -1.753703 9.861311 0.267763
+v -1.760104 9.854529 0.271720
+v -1.755399 9.855305 0.280658
+v -1.893280 10.115862 0.335334
+v -1.895284 10.114972 0.330769
+v -1.899206 10.112623 0.332948
+v -1.897202 10.113513 0.337514
+v -2.045922 10.370658 0.302226
+v -2.045922 10.370658 0.302226
+v -2.045922 10.370658 0.302226
+v -2.045922 10.370658 0.302226
+v 0.760364 8.469772 -0.722907
+v 0.800667 8.447762 -0.701540
+v 0.812064 8.425753 -0.745710
+v 0.771761 8.447762 -0.767077
+v 0.946760 8.703380 -0.805118
+v 0.983033 8.683571 -0.785887
+v 0.993291 8.663762 -0.825640
+v 0.957018 8.683571 -0.844871
+v 1.114468 8.954841 -0.879086
+v 1.145820 8.936049 -0.861599
+v 1.154048 8.917258 -0.896543
+v 1.122696 8.936049 -0.914029
+v 1.325203 9.167941 -0.971365
+v 1.343969 9.142981 -0.954577
+v 1.354892 9.130198 -0.985791
+v 1.336125 9.155159 -1.002579
+v 1.584534 9.309825 -0.865660
+v 1.589327 9.282205 -0.853927
+v 1.603063 9.273660 -0.879653
+v 1.598271 9.301280 -0.891386
+v 1.871167 9.352959 -0.747823
+v 1.871616 9.329037 -0.739526
+v 1.881966 9.321636 -0.761422
+v 1.881517 9.345558 -0.769719
+v 2.150855 9.395711 -0.634749
+v 2.149706 9.376191 -0.629447
+v 2.167442 9.372666 -0.638583
+v 2.168591 9.392186 -0.643885
+v 2.105310 9.444156 -0.339102
+v 2.104828 9.430180 -0.333159
+v 2.119864 9.430575 -0.331008
+v 2.120347 9.444551 -0.336951
+v 2.070197 9.623615 -0.092818
+v 2.069180 9.615827 -0.086422
+v 2.078715 9.617165 -0.083276
+v 2.079732 9.624953 -0.089672
+v 1.915945 9.816662 0.091619
+v 1.915205 9.813139 0.095183
+v 1.919578 9.814444 0.097381
+v 1.920318 9.817966 0.093817
+v 1.775589 10.035369 0.260129
+v 1.775589 10.035369 0.260129
+v 1.775589 10.035369 0.260129
+v 1.775589 10.035369 0.260129
+v 2.428249 8.050692 -0.247252
+v 2.446908 8.021605 -0.210222
+v 2.469964 7.992519 -0.244686
+v 2.451305 8.021605 -0.281716
+v 2.688823 8.264523 -0.231225
+v 2.705616 8.238345 -0.197898
+v 2.726366 8.212168 -0.228915
+v 2.709573 8.238345 -0.262242
+v 2.978799 8.438157 -0.213389
+v 2.993343 8.414618 -0.183789
+v 3.011405 8.391078 -0.211384
+v 2.996861 8.414618 -0.240984
+v 3.248831 8.644894 -0.196780
+v 3.259011 8.622743 -0.171037
+v 3.272268 8.600592 -0.195339
+v 3.262089 8.622743 -0.221083
+v 3.571638 8.745097 -0.177025
+v 3.594481 8.733276 -0.160838
+v 3.591310 8.706912 -0.175616
+v 3.568467 8.718733 -0.191803
+v 3.547139 8.778490 -0.507798
+v 3.571764 8.773235 -0.510510
+v 3.566148 8.748819 -0.514205
+v 3.541523 8.754074 -0.511493
+v 3.524899 8.848556 -0.833824
+v 3.544514 8.844712 -0.837127
+v 3.539631 8.826850 -0.845347
+v 3.520015 8.830693 -0.842045
+v 3.507062 9.055272 -1.097330
+v 3.521537 9.050650 -1.097410
+v 3.518380 9.040959 -1.108680
+v 3.503905 9.045582 -1.108600
+v 3.671027 9.296468 -1.266225
+v 3.680238 9.292311 -1.265514
+v 3.679100 9.288217 -1.274710
+v 3.669890 9.292374 -1.275421
+v 3.778123 9.595060 -1.376714
+v 3.783121 9.594244 -1.376790
+v 3.782887 9.593269 -1.381755
+v 3.777889 9.594086 -1.381679
+v 3.777413 9.931176 -1.400665
+v 3.777413 9.931176 -1.400665
+v 3.777413 9.931176 -1.400665
+v 3.777413 9.931176 -1.400665
+v 0.712311 8.493072 -0.525883
+v 0.668236 8.469649 -0.534491
+v 0.671942 8.446227 -0.489736
+v 0.716018 8.469649 -0.481128
+v 0.566221 8.790818 -0.395071
+v 0.526553 8.769738 -0.402818
+v 0.529889 8.748658 -0.362539
+v 0.569557 8.769738 -0.354792
+v 0.362330 9.025316 -0.212504
+v 0.328561 9.004486 -0.220726
+v 0.333018 8.983656 -0.186257
+v 0.366787 9.004486 -0.178035
+v 0.175063 9.277113 -0.044727
+v 0.146854 9.257257 -0.052909
+v 0.148211 9.242128 -0.020873
+v 0.176421 9.261985 -0.012691
+v -0.068662 9.522027 0.045824
+v -0.090819 9.502817 0.037850
+v -0.091451 9.491794 0.066162
+v -0.069294 9.511003 0.074136
+v -0.316205 9.759875 0.137763
+v -0.336056 9.745397 0.131628
+v -0.337379 9.737088 0.155514
+v -0.317528 9.751567 0.161650
+v -0.509524 10.048138 0.209925
+v -0.525928 10.037249 0.205150
+v -0.529022 10.033302 0.224780
+v -0.512618 10.044191 0.229554
+v -0.720255 10.334282 0.194644
+v -0.732770 10.326441 0.191069
+v -0.736151 10.325111 0.205823
+v -0.723636 10.332952 0.209398
+v -0.884620 10.648896 0.183413
+v -0.893502 10.644741 0.180872
+v -0.896702 10.645738 0.190432
+v -0.887821 10.649893 0.192972
+v -0.978511 10.964027 0.047634
+v -0.983148 10.962597 0.046184
+v -0.984928 10.963686 0.050799
+v -0.980291 10.965117 0.052249
+v -1.029498 11.310193 -0.023038
+v -1.029498 11.310193 -0.023038
+v -1.029498 11.310193 -0.023038
+v -1.029498 11.310193 -0.023038
+v 1.184975 2.782948 -1.117181
+v 1.420842 2.502403 -0.851126
+v 1.482200 2.221859 -1.201346
+v 1.246333 2.502403 -1.467400
+v 1.708618 3.115178 -1.265460
+v 1.910790 2.874711 -1.037413
+v 1.963382 2.634244 -1.337601
+v 1.761210 2.874711 -1.565648
+v 2.294968 3.313498 -1.431495
+v 2.469702 3.116829 -1.243228
+v 2.519787 2.920161 -1.495157
+v 2.345052 3.116829 -1.683424
+v 2.747511 3.636513 -1.559641
+v 2.935119 3.522524 -1.422569
+v 3.023008 3.408535 -1.637653
+v 2.835400 3.522524 -1.774725
+v 3.040486 4.158789 -1.642602
+v 3.196022 4.097458 -1.543997
+v 3.276767 4.036127 -1.709510
+v 3.121232 4.097458 -1.808115
+v 3.357188 4.709202 -1.732282
+v 3.461642 4.669943 -1.666762
+v 3.516236 4.630685 -1.777319
+v 3.411782 4.669943 -1.842840
+v 3.644566 5.263365 -1.813658
+v 3.700425 5.255677 -1.781926
+v 3.731354 5.247990 -1.838234
+v 3.675495 5.255677 -1.869966
+v 3.637604 5.894843 -1.811687
+v 3.637604 5.894843 -1.811687
+v 3.637604 5.894843 -1.811687
+v 3.637604 5.894843 -1.811687
+v 2.662767 3.651675 -0.575894
+v 2.543661 3.561877 -0.364402
+v 2.769465 3.472079 -0.275364
+v 2.888571 3.561877 -0.486856
+v 2.818727 4.108343 -0.136611
+v 2.729397 4.040995 0.022008
+v 2.898750 3.973646 0.088787
+v 2.988080 4.040995 -0.069832
+v 2.891797 4.670982 0.069202
+v 2.835645 4.653908 0.184529
+v 2.951949 4.636834 0.238628
+v 3.008101 4.653908 0.123302
+v 2.922423 5.291266 0.157396
+v 2.895657 5.298856 0.215810
+v 2.954220 5.295383 0.243095
+v 2.980986 5.287794 0.184681
+v 3.045599 5.906944 0.047816
+v 3.045599 5.906944 0.047816
+v 3.045599 5.906944 0.047816
+v 3.045599 5.906944 0.047816
+v 3.225182 4.749248 -0.432445
+v 3.349042 4.712869 -0.441386
+v 3.329504 4.676491 -0.564023
+v 3.205644 4.712869 -0.555081
+v 3.445533 5.290963 -0.710364
+v 3.507463 5.272774 -0.714835
+v 3.497694 5.254584 -0.776153
+v 3.435764 5.272774 -0.771682
+v 3.592556 5.883819 -0.895798
+v 3.592556 5.883819 -0.895798
+v 3.592556 5.883819 -0.895798
+v 3.592556 5.883819 -0.895798
+v 2.910038 5.304496 0.166065
+v 2.903074 5.293325 0.229412
+v 2.966606 5.282154 0.234426
+v 2.973569 5.293325 0.171079
+v 3.038156 5.915216 0.320893
+v 3.038156 5.915216 0.320893
+v 3.038156 5.915216 0.320893
+v 3.038156 5.915216 0.320893
+v -0.445736 4.886012 -1.509105
+v -0.184516 4.677549 -1.655035
+v -0.438894 4.469087 -1.812589
+v -0.700114 4.677549 -1.666659
+v -0.432942 5.145362 -2.076605
+v -0.215259 4.971643 -2.198213
+v -0.427241 4.797924 -2.329508
+v -0.644924 4.971643 -2.207900
+v -0.423100 5.502331 -2.513180
+v -0.248164 5.397474 -2.645498
+v -0.416959 5.292617 -2.785565
+v -0.591895 5.397474 -2.653247
+v -0.416029 5.985376 -2.826817
+v -0.284427 5.938011 -2.943797
+v -0.410623 5.890646 -3.066590
+v -0.542226 5.938011 -2.949609
+v -0.411823 6.544295 -3.013387
+v -0.323962 6.535885 -3.096970
+v -0.407967 6.527476 -3.184428
+v -0.495828 6.535885 -3.100845
+v -0.411605 7.150869 -3.023064
+v -0.367670 7.151961 -3.065048
+v -0.409668 7.153052 -3.108969
+v -0.453603 7.151961 -3.066986
+v -0.410601 7.768912 -3.067597
+v -0.410601 7.768912 -3.067597
+v -0.410601 7.768912 -3.067597
+v -0.410601 7.768912 -3.067597
+v 0.573046 5.714266 -2.843167
+v 0.585932 5.595132 -2.705733
+v 0.668033 5.475999 -2.816700
+v 0.655147 5.595132 -2.954134
+v 1.157891 5.852644 -2.680204
+v 1.166481 5.773222 -2.588581
+v 1.221215 5.693800 -2.662559
+v 1.212625 5.773222 -2.754182
+v 1.693610 6.102386 -2.530930
+v 1.701855 6.064631 -2.484018
+v 1.733172 6.026877 -2.519906
+v 1.724927 6.064631 -2.566818
+v 2.233703 6.362772 -2.380437
+v 2.233703 6.362772 -2.380437
+v 2.233703 6.362772 -2.380437
+v 2.233703 6.362772 -2.380437
+v 0.501580 6.762317 -3.240487
+v 0.558646 6.742043 -3.245638
+v 0.546391 6.721769 -3.301610
+v 0.489325 6.742043 -3.296459
+v 0.696062 7.286038 -3.505762
+v 0.696062 7.286038 -3.505762
+v 0.696062 7.286038 -3.505762
+v 0.696062 7.286038 -3.505762
+v 1.464608 6.718002 0.030341
+v 1.677080 6.531796 0.005191
+v 1.499726 6.345590 -0.114486
+v 1.287254 6.531796 -0.089335
+v 1.574416 6.967800 -0.422507
+v 1.756535 6.808194 -0.444065
+v 1.604517 6.648589 -0.546645
+v 1.422399 6.808194 -0.525087
+v 1.702347 7.059380 -0.950092
+v 1.851303 6.922204 -0.956471
+v 1.721812 6.785029 -1.030369
+v 1.572856 6.922204 -1.023990
+v 1.817018 7.216823 -1.422995
+v 1.940523 7.114418 -1.445995
+v 1.841270 7.012013 -1.523010
+v 1.717765 7.114418 -1.500010
+v 1.921842 7.462319 -1.855289
+v 2.018889 7.398288 -1.890760
+v 1.948868 7.334256 -1.966743
+v 1.851821 7.398288 -1.931272
+v 2.002957 7.850785 -2.189806
+v 2.069206 7.815069 -2.219852
+v 2.024077 7.779354 -2.276905
+v 1.957828 7.815069 -2.246859
+v 2.086420 8.248537 -2.534007
+v 2.119668 8.231360 -2.549541
+v 2.097228 8.214184 -2.578578
+v 2.063979 8.231360 -2.563044
+v 2.163949 8.667300 -2.853736
+v 2.163949 8.667300 -2.853736
+v 2.163949 8.667300 -2.853736
+v 2.163949 8.667300 -2.853736
+v 2.396074 6.937310 -1.315769
+v 2.510641 6.822705 -1.312716
+v 2.396104 6.708099 -1.316753
+v 2.281538 6.822705 -1.319806
+v 2.412519 6.873796 -1.847148
+v 2.498444 6.787842 -1.844858
+v 2.412542 6.701888 -1.847886
+v 2.326617 6.787842 -1.850176
+v 2.428714 6.884007 -2.370443
+v 2.486237 6.827268 -2.376681
+v 2.429209 6.770528 -2.386465
+v 2.371686 6.827268 -2.380227
+v 2.445713 6.962549 -2.887565
+v 2.473110 6.938450 -2.905186
+v 2.444462 6.910498 -2.911498
+v 2.417066 6.934597 -2.893877
+v 2.220000 7.243277 -3.272301
+v 2.220000 7.243277 -3.272301
+v 2.220000 7.243277 -3.272301
+v 2.220000 7.243277 -3.272301
+v 3.025894 7.531799 -1.727294
+v 3.098179 7.495318 -1.730677
+v 3.076536 7.458837 -1.799727
+v 3.004252 7.495318 -1.796345
+v 3.245503 7.905062 -2.041403
+v 3.281645 7.886821 -2.043094
+v 3.270824 7.868581 -2.077620
+v 3.234682 7.886821 -2.075929
+v 3.439239 8.315601 -2.318506
+v 3.439239 8.315601 -2.318506
+v 3.439239 8.315601 -2.318506
+v 3.439239 8.315601 -2.318506
+v 2.448165 6.964871 -2.902332
+v 2.464372 6.936523 -2.878341
+v 2.442011 6.908175 -2.896731
+v 2.425804 6.936523 -2.920722
+v 2.834857 6.859176 -3.254236
+v 2.834857 6.859176 -3.254236
+v 2.834857 6.859176 -3.254236
+v 2.834857 6.859176 -3.254236
+v 1.382230 8.028999 -0.371169
+v 1.477291 8.004252 -0.299563
+v 1.544719 7.979505 -0.397631
+v 1.449658 8.004252 -0.469237
+v 1.559824 8.324148 -0.400091
+v 1.639042 8.303526 -0.340419
+v 1.695232 8.282904 -0.422143
+v 1.616015 8.303526 -0.481814
+v 1.597120 8.641093 -0.406165
+v 1.662768 8.644842 -0.358798
+v 1.709994 8.648591 -0.424547
+v 1.644346 8.644842 -0.471914
+v 1.541438 8.977038 -0.397096
+v 1.590677 8.979794 -0.361572
+v 1.626100 8.982549 -0.410884
+v 1.576861 8.979794 -0.446409
+v 1.582447 9.322554 -0.403775
+v 1.615292 9.321039 -0.380095
+v 1.638926 9.319525 -0.412973
+v 1.606081 9.321039 -0.436653
+v 1.605646 9.660290 -0.407553
+v 1.621781 9.663257 -0.395666
+v 1.633312 9.666224 -0.412058
+v 1.617176 9.663257 -0.423945
+v 1.474584 9.972515 -0.386211
+v 1.474584 9.972515 -0.386211
+v 1.474584 9.972515 -0.386211
+v 1.474584 9.972515 -0.386211
+v 1.774368 8.440707 -1.278875
+v 1.793990 8.398030 -1.317447
+v 1.765925 8.355353 -1.284505
+v 1.746302 8.398030 -1.245934
+v 1.488498 8.409446 -1.469506
+v 1.501580 8.380995 -1.495220
+v 1.482869 8.352544 -1.473259
+v 1.469788 8.380995 -1.447545
+v 1.216060 8.491385 -1.651179
+v 1.220422 8.477722 -1.665489
+v 1.208888 8.464060 -1.655962
+v 1.204526 8.477722 -1.641652
+v 0.942550 8.586967 -1.833567
+v 0.942550 8.586967 -1.833567
+v 0.942550 8.586967 -1.833567
+v 0.942550 8.586967 -1.833567
+v 1.698394 8.993629 -1.611642
+v 1.714745 8.982831 -1.616790
+v 1.703532 8.972033 -1.629756
+v 1.687181 8.982831 -1.624608
+v 1.771379 9.207788 -1.868949
+v 1.771379 9.207788 -1.868949
+v 1.771379 9.207788 -1.868949
+v 1.771379 9.207788 -1.868949
+v -1.168225 3.794578 -1.433837
+v -1.290278 3.468807 -1.740820
+v -1.243181 3.143036 -1.413838
+v -1.121128 3.468807 -1.106855
+v -1.797948 3.844119 -1.265819
+v -1.902565 3.564887 -1.528948
+v -1.862196 3.285655 -1.248677
+v -1.757580 3.564887 -0.985549
+v -2.390054 3.846509 -1.107838
+v -2.519194 3.623229 -1.315917
+v -2.527513 3.399950 -1.071163
+v -2.398373 3.623229 -0.863084
+v -2.914153 4.114684 -0.968002
+v -3.052567 3.952044 -1.125100
+v -3.094324 3.789404 -0.919931
+v -2.955910 3.952044 -0.762834
+v -3.475673 4.387926 -0.818182
+v -3.590261 4.273058 -0.933130
+v -3.632357 4.158190 -0.776377
+v -3.517768 4.273058 -0.661430
+v -3.956363 4.755729 -0.689929
+v -4.054543 4.701711 -0.760747
+v -4.104394 4.647694 -0.650432
+v -4.006215 4.701711 -0.579614
+v -4.215690 5.316619 -0.620737
+v -4.272609 5.310055 -0.654057
+v -4.305364 5.303490 -0.596811
+v -4.248445 5.310055 -0.563491
+v -4.202446 5.960598 -0.624270
+v -4.202446 5.960598 -0.624270
+v -4.202446 5.960598 -0.624270
+v -4.202446 5.960598 -0.624270
+v -1.876244 4.245808 -3.114578
+v -1.796532 4.066024 -3.292381
+v -1.957679 3.886241 -3.182839
+v -2.037391 4.066024 -3.005037
+v -2.385691 4.249957 -3.541610
+v -2.325907 4.115119 -3.674962
+v -2.446767 3.980282 -3.592807
+v -2.506551 4.115119 -3.459455
+v -2.808492 4.498631 -3.896014
+v -2.795532 4.428032 -4.007460
+v -2.903002 4.357434 -3.975235
+v -2.915962 4.428032 -3.863789
+v -3.120749 4.974898 -4.156797
+v -3.120754 4.951265 -4.218721
+v -3.184263 4.933549 -4.211954
+v -3.184258 4.957182 -4.150031
+v -3.222525 5.575612 -4.373572
+v -3.222525 5.575612 -4.373572
+v -3.222525 5.575612 -4.373572
+v -3.222525 5.575612 -4.373572
+v -2.475121 5.002790 -3.779060
+v -2.538375 4.958104 -3.886645
+v -2.636963 4.913417 -3.810121
+v -2.573710 4.958104 -3.702536
+v -2.905573 5.499219 -3.861674
+v -2.937200 5.476876 -3.915467
+v -2.986494 5.454533 -3.877205
+v -2.954867 5.476876 -3.823412
+v -3.160321 6.092677 -3.910567
+v -3.160321 6.092677 -3.910567
+v -3.160321 6.092677 -3.910567
+v -3.160321 6.092677 -3.910567
+v -3.147961 4.989501 -4.153857
+v -3.106150 4.954224 -4.191279
+v -3.157050 4.918946 -4.214894
+v -3.198862 4.954224 -4.177473
+v -3.224936 5.384332 -4.670773
+v -3.224936 5.384332 -4.670773
+v -3.224936 5.384332 -4.670773
+v -3.224936 5.384332 -4.670773
+v -1.921655 5.633543 -0.212453
+v -2.123318 5.439054 -0.059728
+v -1.880928 5.244566 0.012659
+v -1.679264 5.439054 -0.140066
+v -1.825695 5.857920 0.317947
+v -1.993748 5.695846 0.445218
+v -1.791756 5.533772 0.505541
+v -1.623703 5.695846 0.378270
+v -1.741857 6.136453 0.781348
+v -1.871802 6.025455 0.908023
+v -1.705711 5.914456 0.981139
+v -1.575766 6.025455 0.854464
+v -1.674264 6.535723 1.154959
+v -1.768786 6.471326 1.266194
+v -1.641281 6.406930 1.337261
+v -1.546759 6.471326 1.226025
+v -1.619065 6.997978 1.460058
+v -1.680371 6.974212 1.543664
+v -1.593658 6.950446 1.600491
+v -1.532353 6.974212 1.516885
+v -1.600504 7.552279 1.562649
+v -1.630828 7.549822 1.606270
+v -1.587143 7.547366 1.636500
+v -1.556819 7.549822 1.592880
+v -1.592894 8.129701 1.604714
+v -1.592894 8.129701 1.604714
+v -1.592894 8.129701 1.604714
+v -1.592894 8.129701 1.604714
+v -3.237231 6.593627 -0.242536
+v -3.121005 6.513036 -0.316369
+v -3.230185 6.432445 -0.400271
+v -3.346411 6.513036 -0.326438
+v -3.213631 6.856160 -0.770855
+v -3.136147 6.802432 -0.820077
+v -3.208934 6.748704 -0.876011
+v -3.286418 6.802432 -0.826789
+v -3.199505 7.310511 -1.087107
+v -3.160341 7.298886 -1.121156
+v -3.196313 7.287261 -1.158562
+v -3.235476 7.298886 -1.124512
+v -3.195700 7.876673 -1.172270
+v -3.195700 7.876673 -1.172270
+v -3.195700 7.876673 -1.172270
+v -3.195700 7.876673 -1.172270
+v -3.639195 7.595006 -0.168512
+v -3.684244 7.568424 -0.178119
+v -3.678300 7.541842 -0.132442
+v -3.633251 7.568424 -0.122835
+v -3.960057 7.978616 0.127447
+v -3.960057 7.978616 0.127447
+v -3.960057 7.978616 0.127447
+v -3.960057 7.978616 0.127447
+v 0.580141 7.028418 -1.234203
+v 0.764090 6.879085 -1.308072
+v 0.598872 6.729751 -1.417602
+v 0.414924 6.879085 -1.343734
+v 0.625265 7.292235 -1.676012
+v 0.782935 7.164235 -1.739328
+v 0.641321 7.036234 -1.833211
+v 0.483650 7.164235 -1.769895
+v 0.671643 7.525213 -2.130098
+v 0.803520 7.421649 -2.187616
+v 0.685994 7.318084 -2.270606
+v 0.554116 7.421649 -2.213089
+v 0.713006 7.819535 -2.535080
+v 0.819555 7.744745 -2.591348
+v 0.726581 7.669954 -2.667994
+v 0.620032 7.744745 -2.611726
+v 0.751485 8.160961 -2.911833
+v 0.831843 8.109120 -2.958399
+v 0.762558 8.057280 -3.020249
+v 0.682201 8.109120 -2.973683
+v 0.787875 8.520566 -3.268128
+v 0.842026 8.493211 -3.304836
+v 0.796415 8.465856 -3.351734
+v 0.742264 8.493211 -3.315025
+v 0.811226 8.973371 -3.496754
+v 0.838559 8.964756 -3.517629
+v 0.816011 8.956141 -3.543598
+v 0.788678 8.964756 -3.522723
+v 0.828136 9.461348 -3.662321
+v 0.828136 9.461348 -3.662321
+v 0.828136 9.461348 -3.662321
+v 0.828136 9.461348 -3.662321
+v 1.531830 7.743646 -2.250914
+v 1.632867 7.644884 -2.238666
+v 1.541849 7.546122 -2.284210
+v 1.440813 7.644884 -2.296458
+v 1.681981 7.716473 -2.749892
+v 1.757758 7.642402 -2.740706
+v 1.689495 7.568330 -2.774863
+v 1.613717 7.642402 -2.784050
+v 1.819264 7.866516 -3.206111
+v 1.873455 7.821189 -3.212190
+v 1.831618 7.775862 -3.247164
+v 1.777427 7.821189 -3.241086
+v 1.949846 8.101546 -3.637728
+v 1.978631 8.085237 -3.650472
+v 1.957950 8.063464 -3.669320
+v 1.929165 8.079774 -3.656577
+v 1.849189 8.459961 -3.990544
+v 1.849189 8.459961 -3.990544
+v 1.849189 8.459961 -3.990544
+v 1.849189 8.459961 -3.990544
+v 2.061212 8.481051 -2.046879
+v 2.042529 8.449462 -1.986207
+v 2.105937 8.417872 -1.983129
+v 2.124621 8.449462 -2.043801
+v 2.285981 8.824026 -1.726501
+v 2.276639 8.808231 -1.696164
+v 2.308344 8.792437 -1.694625
+v 2.317685 8.808231 -1.724961
+v 2.454763 9.246087 -1.485923
+v 2.454763 9.246087 -1.485923
+v 2.454763 9.246087 -1.485923
+v 2.454763 9.246087 -1.485923
+v 1.954486 8.107457 -3.651166
+v 1.978222 8.082505 -3.659595
+v 1.953309 8.057553 -3.655883
+v 1.929574 8.082505 -3.647454
+v 1.829368 8.132607 -4.152524
+v 1.829368 8.132607 -4.152524
+v 1.829368 8.132607 -4.152524
+v 1.829368 8.132607 -4.152524
+v -0.524194 7.744465 -3.003163
+v -0.472067 7.673132 -3.062389
+v -0.548793 7.601799 -3.044003
+v -0.600919 7.673132 -2.984776
+v -0.701685 7.844488 -3.297831
+v -0.658246 7.785044 -3.347186
+v -0.722184 7.725600 -3.331864
+v -0.765622 7.785044 -3.282509
+v -0.874973 7.944592 -3.585521
+v -0.843893 7.900042 -3.631099
+v -0.898714 7.855492 -3.624935
+v -0.929794 7.900042 -3.579357
+v -1.023555 8.137906 -3.832193
+v -1.004273 8.109869 -3.873064
+v -1.049417 8.081832 -3.875129
+v -1.068698 8.109869 -3.834258
+v -1.150106 8.388762 -4.042292
+v -1.139316 8.374631 -4.072966
+v -1.171476 8.360499 -4.077769
+v -1.182266 8.374631 -4.047095
+v -1.236847 8.700876 -4.186297
+v -1.231948 8.695484 -4.202458
+v -1.248525 8.690092 -4.205684
+v -1.253423 8.695484 -4.189523
+v -1.319668 9.020874 -4.323794
+v -1.319668 9.020874 -4.323794
+v -1.319668 9.020874 -4.323794
+v -1.319668 9.020874 -4.323794
+v 0.122530 8.429044 -3.388614
+v 0.154087 8.395881 -3.415683
+v 0.113126 8.362718 -3.422805
+v 0.081570 8.395881 -3.395737
+v 0.034494 8.565729 -3.708693
+v 0.055532 8.543620 -3.726739
+v 0.028225 8.521511 -3.731487
+v 0.007187 8.543620 -3.713442
+v -0.047123 8.742347 -4.005433
+v -0.037161 8.732705 -4.016481
+v -0.051372 8.723063 -4.020881
+v -0.061333 8.732705 -4.009833
+v -0.113306 8.996885 -4.246061
+v -0.113306 8.996885 -4.246061
+v -0.113306 8.996885 -4.246061
+v -0.113306 8.996885 -4.246061
+v 0.320277 9.066226 -3.434238
+v 0.337082 9.063099 -3.429541
+v 0.341237 9.059972 -3.446488
+v 0.324432 9.063099 -3.451186
+v 0.407867 9.409742 -3.485430
+v 0.407867 9.409742 -3.485430
+v 0.407867 9.409742 -3.485430
+v 0.407867 9.409742 -3.485430
+v -0.438725 3.411787 2.379346
+v -0.566276 3.063119 2.049895
+v -0.367477 2.714451 2.341933
+v -0.239926 3.063119 2.671384
+v -1.081101 3.302770 2.716665
+v -1.190431 3.003911 2.434278
+v -1.020031 2.705053 2.684596
+v -0.910702 3.003911 2.966983
+v -1.709206 3.145024 3.046489
+v -1.809506 2.894995 2.815994
+v -1.676699 2.644967 3.029419
+v -1.576399 2.894995 3.259915
+v -2.321213 3.095876 3.367861
+v -2.435777 2.896765 3.201488
+v -2.363856 2.697655 3.390253
+v -2.249291 2.896765 3.556625
+v -2.941916 3.216024 3.693798
+v -3.043691 3.069967 3.577343
+v -3.005602 2.923909 3.727241
+v -2.903826 3.069967 3.843696
+v -3.567665 3.339118 4.022386
+v -3.650633 3.247625 3.952688
+v -3.640358 3.156133 4.060558
+v -3.557390 3.247625 4.130256
+v -4.110577 3.698305 4.307475
+v -4.163823 3.661280 4.278802
+v -4.170447 3.624255 4.338914
+v -4.117201 3.661280 4.367587
+v -4.553818 4.227307 4.540226
+v -4.553818 4.227307 4.540226
+v -4.553818 4.227307 4.540226
+v -4.553818 4.227307 4.540226
+v -2.268573 2.502650 3.244987
+v -2.510533 2.364435 3.192061
+v -2.384891 2.226219 2.978613
+v -2.142931 2.364435 3.031538
+v -2.082835 1.931581 3.670330
+v -2.264306 1.827919 3.630636
+v -2.170075 1.724258 3.470550
+v -1.988604 1.827919 3.510244
+v -1.901104 1.386686 4.086501
+v -2.013968 1.301175 4.078626
+v -1.943030 1.215663 3.990490
+v -1.830166 1.301175 3.998365
+v -1.632028 1.134249 4.687912
+v -1.689291 1.096134 4.670698
+v -1.650832 1.036677 4.674414
+v -1.593569 1.074792 4.691628
+v -2.189379 1.198111 5.155898
+v -2.189379 1.198111 5.155898
+v -2.189379 1.198111 5.155898
+v -2.189379 1.198111 5.155898
+v -3.528721 2.366931 2.252950
+v -3.495451 2.267692 2.157258
+v -3.500419 2.168453 2.258447
+v -3.533689 2.267692 2.354140
+v -4.206939 2.091548 2.121228
+v -4.190303 2.041929 2.073382
+v -4.192787 1.992309 2.123977
+v -4.209423 2.041929 2.171823
+v -4.919889 2.059740 1.982761
+v -4.919889 2.059740 1.982761
+v -4.919889 2.059740 1.982761
+v -4.919889 2.059740 1.982761
+v -1.649546 1.129161 4.704372
+v -1.688760 1.085463 4.664612
+v -1.633314 1.041765 4.657954
+v -1.594100 1.085463 4.697714
+v -1.852498 0.725680 5.284750
+v -1.852498 0.725680 5.284750
+v -1.852498 0.725680 5.284750
+v -1.852498 0.725680 5.284750
+v 1.437016 5.881810 0.945045
+v 1.231297 5.797047 1.173769
+v 1.474979 5.712285 1.361528
+v 1.680697 5.797047 1.132805
+v 1.468135 6.346535 1.286442
+v 1.296703 6.275900 1.477045
+v 1.499771 6.205265 1.633511
+v 1.671202 6.275900 1.442909
+v 1.480619 6.853852 1.423408
+v 1.344355 6.834030 1.585556
+v 1.507690 6.814208 1.720395
+v 1.643955 6.834030 1.558247
+v 1.487325 7.394596 1.496980
+v 1.385194 7.402137 1.619320
+v 1.507761 7.409678 1.721177
+v 1.609893 7.402137 1.598838
+v 1.480482 7.962621 1.421907
+v 1.412406 7.960189 1.503595
+v 1.494130 7.957757 1.571628
+v 1.562206 7.960189 1.489940
+v 1.497388 8.511973 1.607375
+v 1.463346 8.509785 1.648175
+v 1.504204 8.507596 1.682148
+v 1.538246 8.509785 1.641348
+v 1.493195 9.072927 1.561370
+v 1.493195 9.072927 1.561370
+v 1.493195 9.072927 1.561370
+v 1.493195 9.072927 1.561370
+v 2.647307 7.007507 1.210589
+v 2.774710 6.923299 1.256765
+v 2.768110 6.839091 1.121413
+v 2.640707 6.923299 1.075237
+v 3.069217 7.252843 0.899137
+v 3.154153 7.196704 0.929921
+v 3.149752 7.140566 0.839686
+v 3.064817 7.196704 0.808902
+v 3.347239 7.679296 0.693902
+v 3.396259 7.661576 0.704458
+v 3.400610 7.643856 0.654504
+v 3.351591 7.661576 0.643948
+v 3.537795 8.193227 0.553235
+v 3.537795 8.193227 0.553235
+v 3.537795 8.193227 0.553235
+v 3.537795 8.193227 0.553235
+v 2.844253 7.966058 0.837740
+v 2.867753 7.965289 0.790038
+v 2.820046 7.964520 0.766548
+v 2.796546 7.965289 0.814250
+v 2.828403 8.534503 0.791126
+v 2.828403 8.534503 0.791126
+v 2.828403 8.534503 0.791126
+v 2.828403 8.534503 0.791126
+v 0.425934 7.030401 0.202444
+v 0.607008 6.892642 0.103303
+v 0.437605 6.754883 -0.014677
+v 0.256532 6.892642 0.084464
+v 0.443805 7.320415 -0.130013
+v 0.599011 7.202335 -0.214991
+v 0.453809 7.084256 -0.316117
+v 0.298603 7.202335 -0.231139
+v 0.464053 7.525328 -0.506691
+v 0.594105 7.439068 -0.590783
+v 0.473817 7.352808 -0.688330
+v 0.343765 7.439068 -0.604239
+v 0.475585 7.864366 -0.721223
+v 0.580695 7.826053 -0.808379
+v 0.485534 7.787739 -0.906302
+v 0.380423 7.826053 -0.819145
+v 0.482965 8.256948 -0.858522
+v 0.562099 8.252988 -0.929483
+v 0.491028 8.249028 -1.008518
+v 0.411895 8.252988 -0.937557
+v 0.480314 8.691339 -0.809194
+v 0.533072 8.690166 -0.856557
+v 0.485695 8.688993 -0.909302
+v 0.432936 8.690166 -0.861939
+v 0.486744 9.123565 -0.928824
+v 0.513124 9.123386 -0.952511
+v 0.489436 9.123208 -0.978890
+v 0.463056 9.123386 -0.955203
+v 0.483335 9.557910 -0.865405
+v 0.483335 9.557910 -0.865405
+v 0.483335 9.557910 -0.865405
+v 0.483335 9.557910 -0.865405
+v 0.558096 7.494945 -1.089790
+v 0.643805 7.398178 -1.148121
+v 0.540498 7.301411 -1.139387
+v 0.454789 7.398178 -1.081055
+v 0.410038 7.550732 -1.507068
+v 0.474320 7.478157 -1.550817
+v 0.396840 7.405581 -1.544266
+v 0.332558 7.478157 -1.500517
+v 0.271237 7.675481 -1.898259
+v 0.311376 7.630078 -1.935076
+v 0.257008 7.584675 -1.938359
+v 0.216869 7.630078 -1.901542
+v 0.141083 7.870992 -2.262905
+v 0.160397 7.850526 -2.284473
+v 0.130781 7.835022 -2.296283
+v 0.111466 7.855487 -2.274715
+v 0.201671 8.214132 -2.528439
+v 0.201671 8.214132 -2.528439
+v 0.201671 8.214132 -2.528439
+v 0.201671 8.214132 -2.528439
+v 1.091745 8.038615 -1.418913
+v 1.151044 7.999913 -1.415183
+v 1.129262 7.961211 -1.470462
+v 1.069964 7.999913 -1.474193
+v 1.335419 8.214531 -1.753723
+v 1.365068 8.195180 -1.751857
+v 1.354177 8.175829 -1.779497
+v 1.324528 8.195180 -1.781362
+v 1.502458 8.548554 -1.983236
+v 1.502458 8.548554 -1.983236
+v 1.502458 8.548554 -1.983236
+v 1.502458 8.548554 -1.983236
+v 0.132037 7.877615 -2.276805
+v 0.150529 7.853007 -2.259212
+v 0.139826 7.828399 -2.282383
+v 0.121335 7.853007 -2.299976
+v 0.489827 7.937741 -2.533042
+v 0.489827 7.937741 -2.533042
+v 0.489827 7.937741 -2.533042
+v 0.489827 7.937741 -2.533042
+v -1.327747 8.012629 0.904154
+v -1.267407 7.945326 0.848094
+v -1.349429 7.878024 0.840609
+v -1.409769 7.945326 0.896670
+v -1.422862 8.133208 0.625400
+v -1.372579 8.077123 0.578683
+v -1.440931 8.021037 0.572446
+v -1.491214 8.077123 0.619163
+v -1.512139 8.268379 0.363755
+v -1.474570 8.228665 0.318595
+v -1.531908 8.188951 0.305819
+v -1.569478 8.228665 0.350979
+v -1.582908 8.483783 0.156353
+v -1.556713 8.459954 0.116675
+v -1.601698 8.436126 0.101286
+v -1.627893 8.459954 0.140963
+v -1.644233 8.728647 -0.023372
+v -1.627962 8.718874 -0.053317
+v -1.659144 8.709101 -0.067071
+v -1.675416 8.718874 -0.037125
+v -1.666347 9.031702 -0.088180
+v -1.658527 9.031128 -0.104079
+v -1.674434 9.030554 -0.111882
+v -1.682254 9.031128 -0.095983
+v -1.660993 9.347371 -0.072491
+v -1.660993 9.347371 -0.072491
+v -1.660993 9.347371 -0.072491
+v -1.660993 9.347371 -0.072491
+v -1.410943 8.299745 1.717854
+v -1.442892 8.265351 1.692861
+v -1.437297 8.230958 1.733036
+v -1.405347 8.265351 1.758029
+v -1.680658 8.372512 1.873241
+v -1.701958 8.349583 1.856579
+v -1.698227 8.326653 1.883363
+v -1.676928 8.349583 1.900025
+v -1.915602 8.529548 2.008595
+v -1.928234 8.519399 2.001407
+v -1.928351 8.509250 2.015941
+v -1.915719 8.519399 2.023129
+v -2.134155 8.721622 2.134507
+v -2.134155 8.721622 2.134507
+v -2.134155 8.721622 2.134507
+v -2.134155 8.721622 2.134507
+v -1.215106 8.757973 2.038816
+v -1.225812 8.749043 2.049765
+v -1.211874 8.740112 2.056109
+v -1.201168 8.749043 2.045161
+v -1.171938 8.971903 2.269866
+v -1.171938 8.971903 2.269866
+v -1.171938 8.971903 2.269866
+v -1.171938 8.971903 2.269866
+v 1.534648 5.169812 2.245611
+v 1.314924 4.944189 2.194286
+v 1.535486 4.718566 2.241882
+v 1.755210 4.944189 2.293208
+v 1.385326 5.207073 2.910216
+v 1.196991 5.013682 2.866223
+v 1.386044 4.820291 2.907020
+v 1.574379 5.013682 2.951013
+v 1.240748 5.092696 3.553707
+v 1.079338 4.932655 3.536916
+v 1.232418 4.772614 3.590783
+v 1.393828 4.932655 3.607574
+v 1.106853 5.289318 4.149652
+v 0.969988 5.170684 4.170652
+v 1.084716 5.052050 4.248179
+v 1.221581 5.170684 4.227179
+v 0.974231 5.542482 4.739928
+v 0.866221 5.468549 4.779541
+v 0.946906 5.394616 4.861549
+v 1.054915 5.468549 4.821937
+v 0.885761 6.056892 5.133695
+v 0.810446 6.026111 5.174828
+v 0.860927 5.995329 5.244224
+v 0.936242 6.026111 5.203091
+v 0.824894 6.674127 5.404601
+v 0.786790 6.663298 5.427156
+v 0.811584 6.652469 5.463843
+v 0.849688 6.663298 5.441288
+v 0.772508 7.315738 5.637762
+v 0.772508 7.315738 5.637762
+v 0.772508 7.315738 5.637762
+v 0.772508 7.315738 5.637762
+v 1.497229 5.436160 4.161867
+v 1.357597 5.322253 4.134022
+v 1.425570 5.208346 4.259130
+v 1.565202 5.322253 4.286974
+v 1.125619 5.716535 4.666256
+v 1.020896 5.631104 4.645373
+v 1.071876 5.545674 4.739204
+v 1.176599 5.631104 4.760087
+v 0.765162 6.017244 5.155509
+v 0.691743 5.963954 5.146478
+v 0.722126 5.910665 5.213923
+v 0.795545 5.963954 5.222954
+v 0.444727 6.420751 5.592375
+v 0.409487 6.392430 5.586542
+v 0.414804 6.377044 5.629120
+v 0.450043 6.405365 5.634954
+v -0.061087 6.876646 5.615006
+v -0.061087 6.876646 5.615006
+v -0.061087 6.876646 5.615006
+v -0.061087 6.876646 5.615006
+v 1.954182 6.483880 4.707542
+v 2.021975 6.459475 4.763402
+v 2.072434 6.435069 4.691499
+v 2.004642 6.459475 4.635640
+v 2.261668 7.096606 4.665825
+v 2.295564 7.084403 4.693755
+v 2.320794 7.072200 4.657804
+v 2.286898 7.084403 4.629874
+v 2.526950 7.726752 4.629835
+v 2.526950 7.726752 4.629835
+v 2.526950 7.726752 4.629835
+v 2.526950 7.726752 4.629835
+v 0.438267 6.429632 5.606050
+v 0.414175 6.398897 5.582536
+v 0.421264 6.368163 5.615446
+v 0.445356 6.398897 5.638959
+v -0.141888 6.605322 5.926658
+v -0.141888 6.605322 5.926658
+v -0.141888 6.605322 5.926658
+v -0.141888 6.605322 5.926658
+v 3.219571 6.469072 -0.078109
+v 3.230975 6.342716 0.052853
+v 3.270551 6.216360 -0.072506
+v 3.259147 6.342716 -0.203468
+v 3.733453 6.487620 -0.021628
+v 3.742956 6.382323 0.087507
+v 3.775936 6.277026 -0.016959
+v 3.766433 6.382323 -0.126094
+v 4.206037 6.624870 0.030313
+v 4.229965 6.545720 0.119416
+v 4.272674 6.466570 0.037637
+v 4.248746 6.545720 -0.051465
+v 4.662807 6.838914 0.080517
+v 4.686213 6.782190 0.147944
+v 4.723703 6.725467 0.087210
+v 4.700298 6.782190 0.019783
+v 5.117904 7.071841 0.130537
+v 5.134051 7.034326 0.175548
+v 5.159589 6.996810 0.135118
+v 5.143442 7.034326 0.090107
+v 5.574172 7.302090 0.180685
+v 5.583283 7.283955 0.203305
+v 5.597089 7.265820 0.183204
+v 5.587978 7.283955 0.160584
+v 5.999984 7.585069 0.227486
+v 5.999984 7.585069 0.227486
+v 5.999984 7.585069 0.227486
+v 5.999984 7.585069 0.227486
+v 4.334825 5.948848 0.922732
+v 4.295790 5.890675 0.981075
+v 4.280187 5.832502 0.912634
+v 4.319222 5.890675 0.854290
+v 4.770383 5.684607 1.003235
+v 4.744359 5.645825 1.042130
+v 4.733958 5.607043 0.996502
+v 4.759982 5.645825 0.957607
+v 5.222106 5.469275 1.086725
+v 5.215028 5.448030 1.107269
+v 5.215760 5.426785 1.085552
+v 5.222838 5.448030 1.065007
+v 5.722395 5.495978 1.179191
+v 5.722395 5.495978 1.179191
+v 5.722395 5.495978 1.179191
+v 5.722395 5.495978 1.179191
+v 4.622640 5.958681 1.889000
+v 4.609538 5.937193 1.906033
+v 4.622910 5.915705 1.889211
+v 4.636013 5.937193 1.872178
+v 5.027837 5.941289 2.205871
+v 5.027837 5.941289 2.205871
+v 5.027837 5.941289 2.205871
+v 5.027837 5.941289 2.205871
+v 2.150409 7.991917 0.021371
+v 2.223603 7.920340 -0.007481
+v 2.146829 7.848762 -0.024673
+v 2.073635 7.920340 0.004179
+v 2.127791 8.141006 -0.269547
+v 2.190529 8.079654 -0.294277
+v 2.124723 8.018301 -0.309014
+v 2.061985 8.079654 -0.284284
+v 2.101800 8.171410 -0.603858
+v 2.154455 8.118974 -0.619669
+v 2.099989 8.066538 -0.627152
+v 2.047335 8.118974 -0.611341
+v 2.077694 8.263039 -0.913933
+v 2.119486 8.222279 -0.930848
+v 2.075581 8.181519 -0.941101
+v 2.033789 8.222279 -0.924186
+v 2.053450 8.357422 -1.225771
+v 2.084577 8.327933 -1.241244
+v 2.051432 8.298445 -1.251721
+v 2.020305 8.327933 -1.236247
+v 2.030896 8.506101 -1.515871
+v 2.051507 8.487343 -1.527988
+v 2.029271 8.468585 -1.536774
+v 2.008659 8.487343 -1.524657
+v 2.008281 8.658614 -1.806756
+v 2.018555 8.649472 -1.813217
+v 2.007406 8.640330 -1.818012
+v 1.997131 8.649472 -1.811551
+v 1.986645 8.833367 -2.085047
+v 1.986645 8.833367 -2.085047
+v 1.986645 8.833367 -2.085047
+v 1.986645 8.833367 -2.085047
+v 2.946494 8.420134 -0.331333
+v 2.954943 8.379452 -0.286974
+v 2.974000 8.338770 -0.327913
+v 2.965551 8.379452 -0.372272
+v 3.272807 8.462414 -0.290752
+v 3.279144 8.431903 -0.257482
+v 3.293437 8.401392 -0.288186
+v 3.287100 8.431903 -0.321455
+v 3.558159 8.606430 -0.255264
+v 3.567969 8.588993 -0.232389
+v 3.583083 8.571556 -0.252164
+v 3.573273 8.588993 -0.275038
+v 3.801141 8.820479 -0.225371
+v 3.806758 8.812475 -0.213741
+v 3.818040 8.807494 -0.222618
+v 3.812422 8.815498 -0.234248
+v 3.925897 9.087750 -0.082086
+v 3.925897 9.087750 -0.082086
+v 3.925897 9.087750 -0.082086
+v 3.925897 9.087750 -0.082086
+v 3.213307 8.972035 -0.277432
+v 3.202684 8.970988 -0.248978
+v 3.231150 8.969941 -0.238389
+v 3.241773 8.970988 -0.266843
+v 3.253091 9.289930 -0.190380
+v 3.247780 9.289407 -0.176154
+v 3.262013 9.288883 -0.170859
+v 3.267324 9.289407 -0.185086
+v 3.235279 9.614585 -0.229355
+v 3.235279 9.614585 -0.229355
+v 3.235279 9.614585 -0.229355
+v 3.235279 9.614585 -0.229355
+v 3.806164 8.824103 -0.222829
+v 3.813049 8.813987 -0.213822
+v 3.813017 8.803870 -0.225159
+v 3.806132 8.813987 -0.234167
+v 4.103378 8.924999 -0.323879
+v 4.103378 8.924999 -0.323879
+v 4.103378 8.924999 -0.323879
+v 4.103378 8.924999 -0.323879
+v -0.238557 7.307096 0.603106
+v -0.416969 7.169384 0.637062
+v -0.286606 7.031672 0.763510
+v -0.108194 7.169384 0.729554
+v -0.384065 7.588102 1.088866
+v -0.532741 7.473342 1.117162
+v -0.424105 7.358582 1.222536
+v -0.275429 7.473342 1.194239
+v -0.529538 7.860610 1.574510
+v -0.649573 7.771229 1.600798
+v -0.563757 7.681849 1.688748
+v -0.443723 7.771229 1.662460
+v -0.666496 8.180132 2.031727
+v -0.757517 8.115544 2.054764
+v -0.694150 8.050957 2.124048
+v -0.603129 8.115544 2.101010
+v -0.802147 8.501809 2.484582
+v -0.864569 8.464027 2.505751
+v -0.824065 8.426246 2.557751
+v -0.761644 8.464027 2.536582
+v -0.905196 8.945080 2.828598
+v -0.937399 8.930491 2.842496
+v -0.918140 8.915903 2.871809
+v -0.885937 8.930491 2.857911
+v -0.993329 9.435052 3.122818
+v -0.993329 9.435052 3.122818
+v -0.993329 9.435052 3.122818
+v -0.993329 9.435052 3.122818
+v -0.918464 8.386487 1.632757
+v -0.989647 8.350079 1.551550
+v -1.062236 8.313670 1.631503
+v -0.991052 8.350079 1.712709
+v -1.250655 8.864816 1.629860
+v -1.298110 8.840544 1.575723
+v -1.346503 8.816272 1.629025
+v -1.299047 8.840544 1.683162
+v -1.485691 9.386496 1.627811
+v -1.511321 9.379251 1.600726
+v -1.537420 9.372007 1.627360
+v -1.511790 9.379251 1.654446
+v -1.609342 9.950221 1.626733
+v -1.609342 9.950221 1.626733
+v -1.609342 9.950221 1.626733
+v -1.609342 9.950221 1.626733
+v -1.024298 9.480569 1.892563
+v -1.059047 9.467821 1.884020
+v -1.063111 9.455073 1.919572
+v -1.028361 9.467821 1.928115
+v -1.269368 9.977707 2.063106
+v -1.269368 9.977707 2.063106
+v -1.269368 9.977707 2.063106
+v -1.269368 9.977707 2.063106
+v 1.859337 7.563104 1.402194
+v 1.913769 7.445670 1.523322
+v 1.946700 7.328237 1.394673
+v 1.892267 7.445670 1.273545
+v 2.255284 7.779741 1.368110
+v 2.301940 7.679084 1.471934
+v 2.330166 7.578427 1.361664
+v 2.283510 7.679084 1.257839
+v 2.716249 7.845561 1.328429
+v 2.747164 7.759115 1.415635
+v 2.762721 7.672670 1.324428
+v 2.731806 7.759115 1.237222
+v 3.128402 7.976531 1.292950
+v 3.171871 7.915480 1.361102
+v 3.203053 7.854429 1.286523
+v 3.159584 7.915480 1.218372
+v 3.456095 8.259929 1.264741
+v 3.502274 8.226090 1.314686
+v 3.539238 8.192252 1.257584
+v 3.493059 8.226090 1.207639
+v 3.697776 8.626657 1.243937
+v 3.734982 8.616221 1.276681
+v 3.766044 8.605786 1.238060
+v 3.728838 8.616221 1.205316
+v 3.736602 9.067736 1.240594
+v 3.755647 9.071175 1.256928
+v 3.771620 9.074614 1.237580
+v 3.752575 9.071175 1.221246
+v 3.562689 9.484170 1.255565
+v 3.562689 9.484170 1.255565
+v 3.562689 9.484170 1.255565
+v 3.562689 9.484170 1.255565
+v 0.677967 7.871062 1.843559
+v 0.602643 7.803361 1.841461
+v 0.662207 7.735661 1.887616
+v 0.737530 7.803361 1.889714
+v 0.527193 7.965059 2.265038
+v 0.470701 7.914284 2.263465
+v 0.515373 7.863508 2.298081
+v 0.571866 7.914284 2.299654
+v 0.387451 8.130353 2.655679
+v 0.347439 8.099792 2.661199
+v 0.374871 8.069232 2.690845
+v 0.414883 8.099792 2.685325
+v 0.265468 8.395876 2.993443
+v 0.244225 8.389061 3.005428
+v 0.257791 8.374807 3.021370
+v 0.279034 8.381622 3.009385
+v 0.462134 8.752385 3.187837
+v 0.462134 8.752385 3.187837
+v 0.462134 8.752385 3.187837
+v 0.462134 8.752385 3.187837
+v 0.253902 8.543679 1.568224
+v 0.227861 8.525394 1.528818
+v 0.192802 8.507110 1.560470
+v 0.218843 8.525394 1.599877
+v -0.004323 8.918598 1.535455
+v -0.017344 8.909456 1.515752
+v -0.034874 8.900314 1.531578
+v -0.021853 8.909456 1.551281
+v -0.237814 9.308322 1.505825
+v -0.237814 9.308322 1.505825
+v -0.237814 9.308322 1.505825
+v -0.237814 9.308322 1.505825
+v 0.264697 8.402979 3.006984
+v 0.259189 8.385342 2.989666
+v 0.258562 8.367704 3.007828
+v 0.264070 8.385342 3.025146
+v -0.182822 8.464095 3.068557
+v -0.182822 8.464095 3.068557
+v -0.182822 8.464095 3.068557
+v -0.182822 8.464095 3.068557
+v 2.864426 7.683589 1.463368
+v 2.810283 7.630359 1.466049
+v 2.861778 7.577128 1.449110
+v 2.915920 7.630359 1.446429
+v 2.921777 7.609552 1.772164
+v 2.876658 7.565194 1.774397
+v 2.919570 7.520835 1.760281
+v 2.964689 7.565194 1.758048
+v 2.979353 7.579463 2.082166
+v 2.944119 7.543648 2.088588
+v 2.979309 7.507834 2.081931
+v 3.014543 7.543648 2.075509
+v 3.036716 7.588958 2.391022
+v 3.011604 7.563054 2.402913
+v 3.039311 7.537149 2.404994
+v 3.064422 7.563054 2.393103
+v 3.088670 7.725881 2.670754
+v 3.072684 7.710330 2.682752
+v 3.091912 7.694778 2.688211
+v 3.107897 7.710330 2.676213
+v 3.139023 7.889030 2.941871
+v 3.131225 7.881968 2.948918
+v 3.141034 7.874906 2.952695
+v 3.148832 7.881968 2.945648
+v 3.182565 8.104200 3.176312
+v 3.182565 8.104200 3.176312
+v 3.182565 8.104200 3.176312
+v 3.182565 8.104200 3.176312
+v 2.091865 7.391906 1.967708
+v 2.074286 7.365153 1.988159
+v 2.087965 7.338399 1.964918
+v 2.105544 7.365153 1.944467
+v 2.344481 7.301280 2.148437
+v 2.332762 7.283445 2.162071
+v 2.341881 7.265609 2.146577
+v 2.353601 7.283445 2.132943
+v 2.603046 7.317315 2.333421
+v 2.599017 7.308480 2.341548
+v 2.605408 7.299645 2.335112
+v 2.609437 7.308480 2.326984
+v 2.858050 7.387529 2.515859
+v 2.858050 7.387529 2.515859
+v 2.858050 7.387529 2.515859
+v 2.858050 7.387529 2.515859
+v 1.484517 7.500579 2.102874
+v 1.477071 7.491725 2.108022
+v 1.485695 7.482872 2.105269
+v 1.493141 7.491725 2.100121
+v 1.625574 7.539714 2.389758
+v 1.625574 7.539714 2.389758
+v 1.625574 7.539714 2.389758
+v 1.625574 7.539714 2.389758
+v -0.536332 6.641325 -0.725530
+v -0.361305 6.464845 -0.820019
+v -0.557359 6.288365 -0.853563
+v -0.732386 6.464845 -0.759075
+v -0.619729 6.849983 -1.233323
+v -0.469706 6.698714 -1.314313
+v -0.637752 6.547446 -1.343065
+v -0.787775 6.698714 -1.262075
+v -0.706528 6.969654 -1.761830
+v -0.583157 6.847816 -1.839355
+v -0.724843 6.725977 -1.873349
+v -0.848214 6.847816 -1.795823
+v -0.780107 7.248173 -2.209843
+v -0.684272 7.161039 -2.289287
+v -0.800482 7.073905 -2.333906
+v -0.896318 7.161039 -2.254462
+v -0.852424 7.553954 -2.650172
+v -0.782478 7.499134 -2.721512
+v -0.871567 7.444314 -2.766734
+v -0.941513 7.499134 -2.695394
+v -0.903589 7.990397 -2.961710
+v -0.858291 7.965486 -3.017384
+v -0.919016 7.940575 -3.055645
+v -0.964314 7.965486 -2.999971
+v -0.941250 8.491078 -3.191021
+v -0.918797 8.481274 -3.220051
+v -0.949355 8.471469 -3.240375
+v -0.971808 8.481274 -3.211345
+v -0.977179 9.002198 -3.409791
+v -0.977179 9.002198 -3.409791
+v -0.977179 9.002198 -3.409791
+v -0.977179 9.002198 -3.409791
+v -1.556515 6.538976 -2.119774
+v -1.551018 6.431727 -2.227271
+v -1.543578 6.324479 -2.119890
+v -1.549075 6.431727 -2.012393
+v -2.085602 6.343698 -2.114989
+v -2.081479 6.263261 -2.195612
+v -2.075899 6.182825 -2.115077
+v -2.080022 6.263261 -2.034453
+v -2.615505 6.418998 -2.110197
+v -2.628341 6.366715 -2.163805
+v -2.640204 6.314433 -2.109973
+v -2.627369 6.366715 -2.056365
+v -3.154730 6.544433 -2.105561
+v -3.168355 6.520375 -2.131611
+v -3.172111 6.493604 -2.104923
+v -3.158486 6.517662 -2.078873
+v -3.642843 6.716395 -1.902148
+v -3.642843 6.716395 -1.902148
+v -3.642843 6.716395 -1.902148
+v -3.642843 6.716395 -1.902148
+v -2.208732 6.993960 -1.486175
+v -2.265796 6.957268 -1.520372
+v -2.281014 6.920577 -1.455610
+v -2.223949 6.957268 -1.421413
+v -2.624077 7.327752 -1.310540
+v -2.652609 7.309406 -1.327638
+v -2.660218 7.291060 -1.295257
+v -2.631686 7.309406 -1.278159
+v -2.939116 7.763378 -1.177320
+v -2.939116 7.763378 -1.177320
+v -2.939116 7.763378 -1.177320
+v -2.939116 7.763378 -1.177320
+v -3.163399 6.545879 -2.105281
+v -3.186952 6.519019 -2.118196
+v -3.163442 6.492158 -2.105203
+v -3.139890 6.519019 -2.092288
+v -3.431953 6.519944 -1.617451
+v -3.431953 6.519944 -1.617451
+v -3.431953 6.519944 -1.617451
+v -3.431953 6.519944 -1.617451
+v -0.276667 8.391029 -0.618431
+v -0.321209 8.352678 -0.758550
+v -0.457973 8.314327 -0.704578
+v -0.413430 8.352678 -0.564459
+v -0.504112 8.838584 -0.726501
+v -0.541231 8.806624 -0.843266
+v -0.655201 8.774665 -0.798289
+v -0.618082 8.806624 -0.681523
+v -0.631499 9.316195 -0.787027
+v -0.664111 9.301667 -0.881826
+v -0.758204 9.287139 -0.847230
+v -0.725592 9.301667 -0.752431
+v -0.718264 9.808708 -0.828253
+v -0.743695 9.806639 -0.899814
+v -0.815238 9.804569 -0.874329
+v -0.789806 9.806639 -0.802768
+v -0.697920 10.313466 -0.818586
+v -0.714801 10.316239 -0.866259
+v -0.762423 10.319013 -0.849235
+v -0.745541 10.316239 -0.801562
+v -0.679102 10.824779 -0.809645
+v -0.687554 10.825981 -0.833487
+v -0.711377 10.827184 -0.824981
+v -0.702925 10.825981 -0.801139
+v -0.668154 11.336308 -0.804443
+v -0.668154 11.336308 -0.804443
+v -0.668154 11.336308 -0.804443
+v -0.668154 11.336308 -0.804443
+v -1.129636 9.536407 -0.123929
+v -1.184198 9.512265 -0.170963
+v -1.224807 9.488124 -0.111464
+v -1.170245 9.512265 -0.064430
+v -1.479326 9.913040 -0.078130
+v -1.515701 9.896946 -0.109486
+v -1.542774 9.880852 -0.069820
+v -1.506399 9.896946 -0.038464
+v -1.600557 10.397405 -0.062253
+v -1.620620 10.396580 -0.077685
+v -1.636031 10.395755 -0.057607
+v -1.615969 10.396580 -0.042174
+v -1.557074 10.904044 -0.067947
+v -1.557074 10.904044 -0.067947
+v -1.557074 10.904044 -0.067947
+v -1.557074 10.904044 -0.067947
+v -1.339763 10.521996 -0.074502
+v -1.354045 10.517038 -0.094818
+v -1.373777 10.512080 -0.079737
+v -1.359494 10.517038 -0.059421
+v -1.496660 11.008261 -0.098652
+v -1.496660 11.008261 -0.098652
+v -1.496660 11.008261 -0.098652
+v -1.496660 11.008261 -0.098652
+v 1.028403 8.520985 -0.392375
+v 1.003940 8.485620 -0.314869
+v 1.084676 8.450254 -0.305523
+v 1.109140 8.485620 -0.383029
+v 1.128492 8.761071 -0.237898
+v 1.107523 8.730759 -0.171464
+v 1.176726 8.700446 -0.163453
+v 1.197694 8.730759 -0.229887
+v 1.218838 8.998705 -0.098455
+v 1.204335 8.984408 -0.038508
+v 1.264975 8.970112 -0.027247
+v 1.279478 8.984408 -0.087194
+v 1.234830 9.286645 -0.073774
+v 1.224240 9.285719 -0.024253
+v 1.273765 9.284793 -0.013680
+v 1.284355 9.285719 -0.063202
+v 1.235822 9.589663 -0.072242
+v 1.227851 9.587805 -0.035147
+v 1.264964 9.585947 -0.027264
+v 1.272936 9.587805 -0.064359
+v 1.267198 9.885398 -0.023816
+v 1.261901 9.886009 0.000941
+v 1.286662 9.886621 0.006223
+v 1.291958 9.886009 -0.018534
+v 1.234563 10.179069 -0.074185
+v 1.231879 10.180190 -0.061862
+v 1.244223 10.181312 -0.059275
+v 1.246907 10.180190 -0.071599
+v 1.235983 10.482296 -0.071993
+v 1.235983 10.482296 -0.071993
+v 1.235983 10.482296 -0.071993
+v 1.235983 10.482296 -0.071993
+v 1.590415 9.015040 0.177823
+v 1.558559 8.981526 0.157151
+v 1.570403 8.948012 0.193233
+v 1.602259 8.981526 0.213905
+v 1.359983 9.099146 0.355255
+v 1.336091 9.074010 0.339750
+v 1.344974 9.048874 0.366812
+v 1.368866 9.074010 0.382316
+v 1.140382 9.209558 0.524346
+v 1.121945 9.194366 0.515942
+v 1.125358 9.179174 0.535914
+v 1.143795 9.194366 0.544319
+v 0.956050 9.396169 0.666041
+v 0.944586 9.391234 0.663908
+v 0.945364 9.384738 0.674749
+v 0.956829 9.389672 0.676882
+v 0.885045 9.645629 0.818319
+v 0.885045 9.645629 0.818319
+v 0.885045 9.645629 0.818319
+v 0.885045 9.645629 0.818319
+v 1.718159 9.460472 0.509322
+v 1.721603 9.447294 0.530672
+v 1.740148 9.434116 0.519547
+v 1.736704 9.447294 0.498197
+v 1.942944 9.635054 0.613847
+v 1.944666 9.628465 0.624523
+v 1.953938 9.621876 0.618960
+v 1.952216 9.628465 0.608285
+v 2.130365 9.854418 0.700999
+v 2.130365 9.854418 0.700999
+v 2.130365 9.854418 0.700999
+v 2.130365 9.854418 0.700999
+v 0.956250 9.397477 0.670053
+v 0.950155 9.390453 0.661458
+v 0.945165 9.383430 0.670737
+v 0.951259 9.390453 0.679331
+v 0.714125 9.577865 0.685009
+v 0.714125 9.577865 0.685009
+v 0.714125 9.577865 0.685009
+v 0.714125 9.577865 0.685009
+v 1.613177 7.458849 -2.775551
+v 1.635639 7.372895 -2.692583
+v 1.612669 7.286941 -2.775412
+v 1.590206 7.372895 -2.858380
+v 2.148275 7.429885 -2.922183
+v 2.166993 7.358256 -2.853042
+v 2.147851 7.286628 -2.922066
+v 2.129132 7.358256 -2.991207
+v 2.678503 7.426578 -3.067481
+v 2.698423 7.369489 -3.013524
+v 2.688055 7.312400 -3.070098
+v 2.668135 7.369489 -3.124055
+v 3.199457 7.494817 -3.210237
+v 3.223725 7.453978 -3.172325
+v 3.225277 7.413138 -3.217312
+v 3.201009 7.453978 -3.255224
+v 3.671907 7.734602 -3.339701
+v 3.694605 7.710624 -3.316213
+v 3.702158 7.686646 -3.347991
+v 3.679461 7.710624 -3.371479
+v 4.095342 8.069823 -3.455735
+v 4.107818 8.058686 -3.444300
+v 4.112722 8.047549 -3.460497
+v 4.100246 8.058686 -3.471932
+v 4.519386 8.408856 -3.571935
+v 4.519386 8.408856 -3.571935
+v 4.519386 8.408856 -3.571935
+v 4.519386 8.408856 -3.571935
+v 0.137700 7.374602 -3.192664
+v 0.108756 7.334821 -3.228355
+v 0.106818 7.295040 -3.182444
+v 0.135763 7.334821 -3.146753
+v -0.353659 7.575346 -3.030046
+v -0.372955 7.548825 -3.053840
+v -0.374247 7.522304 -3.023233
+v -0.354951 7.548825 -2.999439
+v -0.845697 7.766853 -2.867203
+v -0.857733 7.754927 -2.878310
+v -0.860767 7.743001 -2.862216
+v -0.848731 7.754927 -2.851110
+v -1.222645 8.150756 -2.742451
+v -1.222645 8.150756 -2.742451
+v -1.222645 8.150756 -2.742451
+v -1.222645 8.150756 -2.742451
+v -0.582378 8.172772 -3.115818
+v -0.599550 8.164849 -3.123084
+v -0.603597 8.156926 -3.104883
+v -0.586425 8.164849 -3.097616
+v -0.865879 8.627284 -2.969716
+v -0.865879 8.627284 -2.969716
+v -0.865879 8.627284 -2.969716
+v -0.865879 8.627284 -2.969716
+v 0.469981 8.664436 -2.085432
+v 0.519382 8.628643 -2.121576
+v 0.468525 8.592850 -2.155642
+v 0.419123 8.628643 -2.119497
+v 0.464938 8.918494 -2.328645
+v 0.507282 8.887815 -2.359625
+v 0.463690 8.857135 -2.388824
+v 0.421346 8.887815 -2.357843
+v 0.459454 9.141663 -2.593099
+v 0.494654 9.121043 -2.623118
+v 0.458240 9.100424 -2.651653
+v 0.423040 9.121043 -2.621634
+v 0.456717 9.454196 -2.725099
+v 0.484783 9.447922 -2.753643
+v 0.455558 9.441648 -2.780999
+v 0.427492 9.447922 -2.752455
+v 0.456137 9.799319 -2.753071
+v 0.477175 9.799304 -2.775000
+v 0.455246 9.799289 -2.796039
+v 0.434207 9.799304 -2.774109
+v 0.456420 10.152936 -2.739405
+v 0.470450 10.150717 -2.753852
+v 0.455833 10.148498 -2.767705
+v 0.441804 10.150717 -2.753258
+v 0.453626 10.480701 -2.874160
+v 0.460644 10.478839 -2.881223
+v 0.453339 10.476976 -2.887990
+v 0.446321 10.478839 -2.880926
+v 0.452353 10.826634 -2.935567
+v 0.452353 10.826634 -2.935567
+v 0.452353 10.826634 -2.935567
+v 0.452353 10.826634 -2.935567
+v 1.157924 9.370016 -2.364596
+v 1.179706 9.353208 -2.334850
+v 1.204275 9.336399 -2.362339
+v 1.182493 9.353208 -2.392085
+v 1.388200 9.636777 -2.353385
+v 1.404537 9.624170 -2.331076
+v 1.422964 9.611564 -2.351693
+v 1.406627 9.624170 -2.374002
+v 1.579643 9.927840 -2.344065
+v 1.592087 9.922172 -2.329116
+v 1.605925 9.916503 -2.342785
+v 1.593480 9.922172 -2.357734
+v 1.673528 10.264538 -2.339423
+v 1.680401 10.263749 -2.332023
+v 1.687541 10.261608 -2.338883
+v 1.680668 10.262397 -2.346283
+v 1.737723 10.604068 -2.405368
+v 1.737723 10.604068 -2.405368
+v 1.737723 10.604068 -2.405368
+v 1.737723 10.604068 -2.405368
+v 1.275365 10.046433 -2.288728
+v 1.292883 10.045140 -2.278633
+v 1.302907 10.043847 -2.296192
+v 1.285389 10.045140 -2.306288
+v 1.337908 10.393072 -2.305678
+v 1.346666 10.392426 -2.300631
+v 1.351678 10.391779 -2.309410
+v 1.342919 10.392426 -2.314457
+v 1.350312 10.744419 -2.309040
+v 1.350312 10.744419 -2.309040
+v 1.350312 10.744419 -2.309040
+v 1.350312 10.744419 -2.309040
+v 1.678013 10.266879 -2.333633
+v 1.687050 10.263073 -2.336177
+v 1.683056 10.259267 -2.344673
+v 1.674019 10.263073 -2.342129
+v 1.758244 10.561313 -2.509291
+v 1.758244 10.561313 -2.509291
+v 1.758244 10.561313 -2.509291
+v 1.758244 10.561313 -2.509291
+v 1.755687 8.579333 -1.104210
+v 1.873183 8.548559 -1.099288
+v 1.870047 8.517785 -1.216845
+v 1.752551 8.548559 -1.221767
+v 1.933835 8.986765 -1.279671
+v 2.031748 8.961120 -1.275569
+v 2.029135 8.935474 -1.373533
+v 1.931222 8.961120 -1.377635
+v 2.011819 9.423923 -1.356479
+v 2.092825 9.426148 -1.355833
+v 2.093410 9.428374 -1.436839
+v 2.012404 9.426148 -1.437485
+v 1.925505 9.877906 -1.271466
+v 1.986141 9.882025 -1.270866
+v 1.986462 9.886144 -1.331504
+v 1.925826 9.882025 -1.332105
+v 1.968462 10.355076 -1.313776
+v 2.008979 10.355404 -1.313467
+v 2.009286 10.355732 -1.353984
+v 1.968769 10.355404 -1.354293
+v 1.938100 10.828727 -1.283871
+v 1.958328 10.827603 -1.283686
+v 1.958450 10.826480 -1.303915
+v 1.938223 10.827603 -1.304100
+v 2.040976 11.285085 -1.385196
+v 2.040976 11.285085 -1.385196
+v 2.040976 11.285085 -1.385196
+v 2.040976 11.285085 -1.385196
+v 1.140953 9.611976 -1.839585
+v 1.186309 9.579112 -1.863185
+v 1.146078 9.546248 -1.894737
+v 1.100723 9.579112 -1.871137
+v 1.175986 9.900609 -2.216606
+v 1.206223 9.878699 -2.232339
+v 1.179403 9.856790 -2.253374
+v 1.149166 9.878699 -2.237641
+v 1.209866 10.202110 -2.581217
+v 1.225069 10.191995 -2.589992
+v 1.211743 10.181879 -2.601417
+v 1.196540 10.191995 -2.592642
+v 1.239699 10.550719 -2.902284
+v 1.239699 10.550719 -2.902284
+v 1.239699 10.550719 -2.902284
+v 1.239699 10.550719 -2.902284
+v 0.876808 10.473673 -1.841813
+v 0.876954 10.472403 -1.821594
+v 0.897173 10.471132 -1.821819
+v 0.897027 10.472403 -1.842039
+v 0.917075 10.946156 -1.802280
+v 0.917075 10.946156 -1.802280
+v 0.917075 10.946156 -1.802280
+v 0.917075 10.946156 -1.802280
+v 2.090300 8.740697 -0.115445
+v 2.071105 8.733698 -0.183347
+v 2.003395 8.726699 -0.163485
+v 2.022590 8.733698 -0.095583
+v 2.027442 9.064752 -0.150191
+v 2.010990 9.058752 -0.208393
+v 1.952953 9.052752 -0.191368
+v 1.969406 9.058752 -0.133167
+v 1.997164 9.385284 -0.166929
+v 1.983318 9.389032 -0.215505
+v 1.934819 9.392780 -0.201392
+v 1.948665 9.389032 -0.152816
+v 2.073888 9.698226 -0.124517
+v 2.063696 9.706322 -0.162889
+v 2.025781 9.714417 -0.151110
+v 2.035973 9.706322 -0.112738
+v 2.148447 10.021261 -0.083301
+v 2.140305 10.024879 -0.112356
+v 2.111371 10.028498 -0.103797
+v 2.119513 10.024879 -0.074742
+v 2.159279 10.358089 -0.077314
+v 2.153840 10.355746 -0.096689
+v 2.134541 10.353403 -0.090988
+v 2.139979 10.355746 -0.071613
+v 2.043264 10.665133 -0.141445
+v 2.040850 10.662648 -0.150964
+v 2.031505 10.660164 -0.147946
+v 2.033919 10.662648 -0.138427
+v 1.945840 10.977146 -0.195300
+v 1.945840 10.977146 -0.195300
+v 1.945840 10.977146 -0.195300
+v 1.945840 10.977146 -0.195300
+v 2.177366 9.653992 0.201983
+v 2.173865 9.639021 0.239473
+v 2.211436 9.624050 0.237002
+v 2.214937 9.639021 0.199513
+v 2.329728 9.904696 0.358586
+v 2.327103 9.893467 0.386703
+v 2.355281 9.882238 0.384850
+v 2.357907 9.893467 0.356733
+v 2.423821 10.202410 0.455297
+v 2.423105 10.198214 0.475105
+v 2.442924 10.194017 0.474932
+v 2.443640 10.198214 0.455125
+v 2.472154 10.524634 0.505026
+v 2.472070 10.524086 0.515141
+v 2.482101 10.522679 0.515149
+v 2.482186 10.523228 0.505034
+v 2.524934 10.851511 0.501335
+v 2.524934 10.851511 0.501335
+v 2.524934 10.851511 0.501335
+v 2.524934 10.851511 0.501335
+v 2.182521 10.296464 0.271694
+v 2.171844 10.293127 0.288586
+v 2.189026 10.289790 0.298788
+v 2.199703 10.293127 0.281897
+v 2.207651 10.610572 0.376359
+v 2.202312 10.608904 0.384805
+v 2.210903 10.607236 0.389906
+v 2.216242 10.608904 0.381460
+v 2.221721 10.936026 0.434964
+v 2.221721 10.936026 0.434964
+v 2.221721 10.936026 0.434964
+v 2.221721 10.936026 0.434964
+v 2.479354 10.526678 0.503987
+v 2.470399 10.523657 0.507632
+v 2.474901 10.520636 0.516189
+v 2.483857 10.523657 0.512543
+v 2.429203 10.824163 0.641425
+v 2.429203 10.824163 0.641425
+v 2.429203 10.824163 0.641425
+v 2.429203 10.824163 0.641425
+v 0.737849 9.372725 -0.500004
+v 0.765584 9.361624 -0.534434
+v 0.729473 9.350523 -0.559943
+v 0.701738 9.361624 -0.525513
+v 0.710483 9.673780 -0.695844
+v 0.733595 9.664530 -0.724537
+v 0.703503 9.655279 -0.745794
+v 0.680390 9.664530 -0.717102
+v 0.703194 10.018810 -0.748005
+v 0.721508 10.020190 -0.772217
+v 0.697259 10.021570 -0.790481
+v 0.678944 10.020190 -0.766269
+v 0.715414 10.362825 -0.660557
+v 0.729208 10.366649 -0.678294
+v 0.711080 10.370472 -0.691569
+v 0.697286 10.366649 -0.673833
+v 0.725262 10.715909 -0.590081
+v 0.734432 10.717477 -0.602095
+v 0.722320 10.719045 -0.611135
+v 0.713150 10.717477 -0.599121
+v 0.728458 11.074984 -0.567209
+v 0.733037 11.075360 -0.573260
+v 0.726975 11.075737 -0.577824
+v 0.722396 11.075360 -0.571773
+v 0.730765 11.433690 -0.550699
+v 0.730765 11.433690 -0.550699
+v 0.730765 11.433690 -0.550699
+v 0.730765 11.433690 -0.550699
+v -0.030898 10.039152 -0.800005
+v -0.046301 10.029504 -0.813757
+v -0.056359 10.019855 -0.795723
+v -0.040956 10.029504 -0.781971
+v -0.271077 10.303603 -0.759616
+v -0.281346 10.297171 -0.768785
+v -0.288052 10.290738 -0.756762
+v -0.277783 10.297171 -0.747594
+v -0.461234 10.604988 -0.727640
+v -0.466785 10.602432 -0.732154
+v -0.470554 10.599876 -0.726072
+v -0.465004 10.602432 -0.721558
+v -0.615828 10.927654 -0.701643
+v -0.615828 10.927654 -0.701643
+v -0.615828 10.927654 -0.701643
+v -0.615828 10.927654 -0.701643
+v -0.274640 10.694409 -0.771196
+v -0.281828 10.693636 -0.768859
+v -0.279415 10.692863 -0.761696
+v -0.272228 10.693636 -0.764033
+v -0.300229 11.048905 -0.720289
+v -0.300229 11.048905 -0.720289
+v -0.300229 11.048905 -0.720289
+v -0.300229 11.048905 -0.720289
+v 3.219303 8.207003 0.522815
+v 3.254799 8.173357 0.501926
+v 3.215554 8.139711 0.489430
+v 3.180058 8.173357 0.510319
+v 3.186977 8.370264 0.234963
+v 3.217402 8.341425 0.217058
+v 3.183764 8.312586 0.206347
+v 3.153339 8.341425 0.224252
+v 3.152473 8.493961 -0.072288
+v 3.177806 8.470022 -0.087392
+v 3.149754 8.446083 -0.096501
+v 3.124420 8.470022 -0.081397
+v 3.120945 8.658522 -0.353035
+v 3.140702 8.642492 -0.369655
+v 3.117751 8.626463 -0.381480
+v 3.097993 8.642492 -0.364859
+v 3.098258 8.912888 -0.555061
+v 3.112655 8.905855 -0.571270
+v 3.095021 8.898823 -0.583883
+v 3.080623 8.905855 -0.567673
+v 3.088814 9.229940 -0.639147
+v 3.098301 9.228717 -0.650954
+v 3.086432 9.227493 -0.660363
+v 3.076946 9.228717 -0.648556
+v 3.088849 9.561880 -0.638838
+v 3.093590 9.561485 -0.644762
+v 3.087653 9.561090 -0.649487
+v 3.082913 9.561485 -0.643563
+v 3.082192 9.889842 -0.698120
+v 3.082192 9.889842 -0.698120
+v 3.082192 9.889842 -0.698120
+v 3.082192 9.889842 -0.698120
+v 3.890648 8.439417 1.180344
+v 3.866032 8.421691 1.182180
+v 3.880298 8.403965 1.202325
+v 3.904914 8.421691 1.200488
+v 3.758495 8.563079 1.461001
+v 3.740032 8.549785 1.462378
+v 3.750732 8.536490 1.477487
+v 3.769194 8.549785 1.476110
+v 3.659902 8.797234 1.670385
+v 3.646780 8.790044 1.673031
+v 3.653100 8.782854 1.684831
+v 3.666221 8.790044 1.682185
+v 3.566753 9.047389 1.868145
+v 3.559954 9.044630 1.870115
+v 3.563139 9.040944 1.875945
+v 3.569938 9.043703 1.873975
+v 3.555562 9.315310 2.064813
+v 3.555562 9.315310 2.064813
+v 3.555562 9.315310 2.064813
+v 3.555562 9.315310 2.064813
+v 3.983678 8.978368 1.540486
+v 3.971164 8.972855 1.547112
+v 3.979610 8.967341 1.558477
+v 3.992124 8.972855 1.551851
+v 3.945160 9.261699 1.710855
+v 3.938903 9.258943 1.714168
+v 3.943126 9.256186 1.719851
+v 3.949383 9.258943 1.716538
+v 3.906332 9.544190 1.882596
+v 3.906332 9.544190 1.882596
+v 3.906332 9.544190 1.882596
+v 3.906332 9.544190 1.882596
+v 3.568958 9.047722 1.872397
+v 3.565416 9.044167 1.866693
+v 3.560935 9.040611 1.871693
+v 3.564477 9.044167 1.877396
+v 3.345511 9.293653 1.852792
+v 3.345511 9.293653 1.852792
+v 3.345511 9.293653 1.852792
+v 3.345511 9.293653 1.852792
+v 0.293090 9.412202 0.200420
+v 0.254312 9.398012 0.181111
+v 0.239275 9.383822 0.221736
+v 0.278053 9.398012 0.241046
+v 0.120206 9.707664 0.268901
+v 0.087891 9.695839 0.252810
+v 0.075360 9.684013 0.286665
+v 0.107675 9.695839 0.302756
+v 0.001538 10.025928 0.315906
+v -0.025909 10.021418 0.303665
+v -0.037529 10.016908 0.331381
+v -0.010081 10.021418 0.343622
+v -0.021702 10.368191 0.325112
+v -0.042577 10.369421 0.316046
+v -0.051582 10.370651 0.336947
+v -0.030707 10.369421 0.346013
+v 0.041007 10.709604 0.300272
+v 0.027083 10.710316 0.294231
+v 0.021072 10.711027 0.308168
+v 0.034996 10.710316 0.314209
+v 0.010837 11.057919 0.312223
+v 0.003865 11.057842 0.309206
+v 0.000849 11.057766 0.316179
+v 0.007821 11.057842 0.319195
+v 0.021892 11.405996 0.307844
+v 0.021892 11.405996 0.307844
+v 0.021892 11.405996 0.307844
+v 0.021892 11.405996 0.307844
+v -0.379023 10.068360 0.678163
+v -0.386026 10.055011 0.661068
+v -0.396949 10.041661 0.675968
+v -0.389945 10.055011 0.693062
+v -0.694990 10.212516 0.639462
+v -0.699659 10.203616 0.628065
+v -0.706940 10.194716 0.637998
+v -0.702271 10.203616 0.649395
+v -0.949863 10.443878 0.608243
+v -0.953699 10.440978 0.602361
+v -0.958840 10.438078 0.607144
+v -0.955005 10.440978 0.613026
+v -1.062781 10.772000 0.594413
+v -1.062781 10.772000 0.594413
+v -1.062781 10.772000 0.594413
+v -1.062781 10.772000 0.594413
+v -0.465646 10.711315 0.865679
+v -0.473112 10.710425 0.864586
+v -0.474100 10.709536 0.872066
+v -0.466635 10.710425 0.873159
+v -0.515959 11.054188 0.903694
+v -0.515959 11.054188 0.903694
+v -0.515959 11.054188 0.903694
+v -0.515959 11.054188 0.903694
+v 0.082164 9.300700 0.179967
+v 0.098368 9.284989 0.152624
+v 0.067895 9.269279 0.143592
+v 0.051691 9.284989 0.170935
+v 0.000092 9.553864 -0.029254
+v 0.013981 9.540398 -0.052691
+v -0.012139 9.526932 -0.060433
+v -0.026028 9.540398 -0.036996
+v -0.074059 9.820910 -0.218280
+v -0.063058 9.811987 -0.239273
+v -0.085398 9.803064 -0.247188
+v -0.096399 9.811987 -0.226194
+v -0.123184 10.125957 -0.343513
+v -0.114975 10.123110 -0.361815
+v -0.133439 10.120262 -0.369653
+v -0.141648 10.123110 -0.351351
+v -0.123997 10.463672 -0.345585
+v -0.117836 10.461480 -0.359301
+v -0.131680 10.459289 -0.365169
+v -0.137841 10.461480 -0.351454
+v -0.175156 10.773583 -0.475991
+v -0.170952 10.771182 -0.484889
+v -0.180084 10.768781 -0.488556
+v -0.184288 10.771182 -0.479658
+v -0.209210 11.098294 -0.562797
+v -0.207140 11.097377 -0.567328
+v -0.211738 11.096459 -0.569243
+v -0.213808 11.097377 -0.564712
+v -0.240960 11.425291 -0.643731
+v -0.240960 11.425291 -0.643731
+v -0.240960 11.425291 -0.643731
+v -0.240960 11.425291 -0.643731
+v 0.469610 9.873804 -0.551696
+v 0.484222 9.862062 -0.544010
+v 0.483460 9.850319 -0.560503
+v 0.468848 9.862062 -0.568188
+v 0.737637 9.992987 -0.722120
+v 0.748595 9.984179 -0.716355
+v 0.748024 9.975372 -0.728724
+v 0.737065 9.984179 -0.734489
+v 0.926130 10.242570 -0.841972
+v 0.934975 10.238548 -0.839108
+v 0.936134 10.234527 -0.848333
+v 0.927289 10.238548 -0.851197
+v 1.058098 10.540694 -0.925881
+v 1.062963 10.539882 -0.924733
+v 1.063980 10.539054 -0.929625
+v 1.059115 10.539866 -0.930774
+v 1.057361 10.878226 -0.927126
+v 1.057361 10.878226 -0.927126
+v 1.057361 10.878226 -0.927126
+v 1.057361 10.878226 -0.927126
+v 0.475785 10.516756 -0.705112
+v 0.485863 10.515800 -0.704749
+v 0.486135 10.514843 -0.714830
+v 0.476057 10.515800 -0.715193
+v 0.530722 10.846943 -0.756691
+v 0.535761 10.846465 -0.756510
+v 0.535898 10.845987 -0.761550
+v 0.530859 10.846465 -0.761732
+v 0.546614 11.184345 -0.771611
+v 0.546614 11.184345 -0.771611
+v 0.546614 11.184345 -0.771611
+v 0.546614 11.184345 -0.771611
+v 1.060134 10.542244 -0.925225
+v 1.064411 10.539874 -0.926546
+v 1.061944 10.537504 -0.930281
+v 1.057667 10.539874 -0.928960
+v 1.136512 10.793577 -1.138549
+v 1.136512 10.793577 -1.138549
+v 1.136512 10.793577 -1.138549
+v 1.136512 10.793577 -1.138549
+v -1.060618 9.349521 0.839770
+v -1.086349 9.334128 0.834819
+v -1.082117 9.318736 0.860678
+v -1.056386 9.334128 0.865629
+v -1.225165 9.540940 0.999788
+v -1.246608 9.528113 0.995662
+v -1.243081 9.515286 1.017211
+v -1.221639 9.528113 1.021338
+v -1.369816 9.759637 1.140458
+v -1.387392 9.749984 1.137567
+v -1.384993 9.740331 1.155217
+v -1.367417 9.749984 1.158108
+v -1.516620 9.976130 1.283221
+v -1.530111 9.969394 1.281353
+v -1.528621 9.962657 1.294891
+v -1.515130 9.969394 1.296759
+v -1.640628 10.217302 1.403816
+v -1.650239 10.214167 1.403170
+v -1.649862 10.211031 1.412795
+v -1.640252 10.214167 1.413440
+v -1.705305 10.500752 1.466712
+v -1.710269 10.499761 1.466543
+v -1.710239 10.498769 1.471510
+v -1.705275 10.499761 1.471678
+v -1.763811 10.787963 1.523607
+v -1.763811 10.787963 1.523607
+v -1.763811 10.787963 1.523607
+v -1.763811 10.787963 1.523607
+v -1.535122 9.691476 0.183936
+v -1.523843 9.681565 0.186273
+v -1.530622 9.671655 0.176960
+v -1.541901 9.681565 0.174623
+v -1.374451 9.734500 -0.065118
+v -1.366932 9.727893 -0.063560
+v -1.371451 9.721286 -0.069768
+v -1.378970 9.727893 -0.071326
+v -1.244273 9.908098 -0.266905
+v -1.239858 9.905628 -0.267142
+v -1.241461 9.903158 -0.271263
+v -1.245877 9.905628 -0.271025
+v -1.152973 10.153969 -0.408428
+v -1.152973 10.153969 -0.408428
+v -1.152973 10.153969 -0.408428
+v -1.152973 10.153969 -0.408428
+v -1.895065 10.116889 0.332035
+v -1.899369 10.114243 0.332393
+v -1.897421 10.111596 0.336247
+v -1.893117 10.114243 0.335889
+v -2.003948 10.315444 0.526725
+v -2.003948 10.315444 0.526725
+v -2.003948 10.315444 0.526725
+v -2.003948 10.315444 0.526725
+v 1.330240 9.169027 -0.967000
+v 1.359177 9.149070 -0.962375
+v 1.349854 9.129112 -0.990156
+v 1.320917 9.149070 -0.994782
+v 1.479111 9.375711 -1.142759
+v 1.503914 9.358605 -1.138794
+v 1.495923 9.341499 -1.162606
+v 1.471120 9.358605 -1.166571
+v 1.649871 9.535957 -1.344359
+v 1.671115 9.522425 -1.341734
+v 1.665030 9.508892 -1.362257
+v 1.643786 9.522425 -1.364882
+v 1.778362 9.766452 -1.496058
+v 1.797347 9.759385 -1.496307
+v 1.794470 9.752318 -1.515075
+v 1.775484 9.759385 -1.514825
+v 1.844759 10.053540 -1.574447
+v 1.859853 10.052261 -1.575643
+v 1.858549 10.050982 -1.590728
+v 1.843456 10.052261 -1.589532
+v 1.828390 10.360598 -1.555121
+v 1.838485 10.360699 -1.555957
+v 1.837648 10.360800 -1.566052
+v 1.827553 10.360699 -1.565216
+v 1.843722 10.669982 -1.573222
+v 1.848767 10.669826 -1.573638
+v 1.848347 10.669669 -1.578683
+v 1.843302 10.669826 -1.578267
+v 1.850514 10.979530 -1.581241
+v 1.850514 10.979530 -1.581241
+v 1.850514 10.979530 -1.581241
+v 1.850514 10.979530 -1.581241
+v 2.159394 9.398507 -0.636294
+v 2.147189 9.384189 -0.628779
+v 2.158903 9.369870 -0.637038
+v 2.171107 9.384189 -0.644554
+v 2.328664 9.357823 -0.379648
+v 2.319511 9.347084 -0.374012
+v 2.328296 9.336345 -0.380206
+v 2.337449 9.347084 -0.385843
+v 2.498522 9.372134 -0.122111
+v 2.492775 9.364984 -0.117815
+v 2.498987 9.357833 -0.121406
+v 2.504734 9.364984 -0.125702
+v 2.668625 9.387053 0.135442
+v 2.665456 9.383324 0.136745
+v 2.669386 9.380179 0.137306
+v 2.672556 9.383909 0.136003
+v 2.540383 9.508130 0.389193
+v 2.540383 9.508130 0.389193
+v 2.540383 9.508130 0.389193
+v 2.540383 9.508130 0.389193
+v 2.072506 9.625596 -0.092564
+v 2.067879 9.620390 -0.085209
+v 2.076406 9.615184 -0.083530
+v 2.081033 9.620390 -0.090885
+v 2.171505 9.809452 0.136827
+v 2.169191 9.806849 0.140505
+v 2.173454 9.804247 0.141344
+v 2.175768 9.806849 0.137667
+v 2.251782 10.043303 0.322841
+v 2.251782 10.043303 0.322841
+v 2.251782 10.043303 0.322841
+v 2.251782 10.043303 0.322841
+v 2.670309 9.386873 0.137098
+v 2.667266 9.383616 0.139504
+v 2.667703 9.380360 0.135650
+v 2.670745 9.383616 0.133243
+v 2.915206 9.254670 0.273207
+v 2.915206 9.254670 0.273207
+v 2.915206 9.254670 0.273207
+v 2.915206 9.254670 0.273207
+v 3.572619 8.744750 -0.181974
+v 3.569911 8.726005 -0.158208
+v 3.590329 8.707259 -0.170667
+v 3.593037 8.726005 -0.194433
+v 3.843965 8.849008 -0.008740
+v 3.841708 8.833386 0.011065
+v 3.858723 8.817765 0.000682
+v 3.860980 8.833386 -0.019122
+v 4.059721 9.058984 0.129004
+v 4.061701 9.050436 0.147265
+v 4.079100 9.041888 0.141376
+v 4.077119 9.050436 0.123115
+v 4.173482 9.364929 0.201632
+v 4.176025 9.360699 0.216003
+v 4.190131 9.356468 0.212261
+v 4.187588 9.360699 0.197890
+v 4.287796 9.673479 0.274613
+v 4.289691 9.671296 0.284321
+v 4.299296 9.669113 0.281955
+v 4.297400 9.671296 0.272246
+v 4.351613 10.001936 0.315355
+v 4.352631 10.001153 0.320254
+v 4.357503 10.000370 0.319116
+v 4.356485 10.001153 0.314217
+v 4.418037 10.330354 0.357762
+v 4.418037 10.330354 0.357762
+v 4.418037 10.330354 0.357762
+v 4.418037 10.330354 0.357762
+v 3.511603 9.058545 -1.100678
+v 3.522406 9.048116 -1.098352
+v 3.513839 9.037686 -1.105332
+v 3.503036 9.048116 -1.107658
+v 3.655736 9.117075 -1.400675
+v 3.662938 9.110122 -1.399124
+v 3.657227 9.103168 -1.403777
+v 3.650025 9.110122 -1.405328
+v 3.795455 9.213279 -1.691481
+v 3.799401 9.210104 -1.691424
+v 3.796890 9.206929 -1.694470
+v 3.792944 9.210104 -1.694527
+v 3.911547 9.417629 -1.933115
+v 3.911547 9.417629 -1.933115
+v 3.911547 9.417629 -1.933115
+v 3.911547 9.417629 -1.933115
+v 3.781848 9.595761 -1.376323
+v 3.783757 9.594165 -1.380735
+v 3.779162 9.592568 -1.382146
+v 3.777253 9.594165 -1.377735
+v 3.717467 9.896475 -1.515909
+v 3.717467 9.896475 -1.515909
+v 3.717467 9.896475 -1.515909
+v 3.717467 9.896475 -1.515909
+v 0.171890 9.272048 -0.052008
+v 0.139521 9.259621 -0.044606
+v 0.151384 9.247193 -0.013592
+v 0.183754 9.259621 -0.020994
+v 0.085876 9.578842 0.109129
+v 0.058131 9.568191 0.115474
+v 0.068299 9.557539 0.142057
+v 0.096045 9.568191 0.135712
+v 0.002444 9.888045 0.265429
+v -0.020819 9.879718 0.270982
+v -0.012487 9.871390 0.293400
+v 0.010776 9.879718 0.287847
+v -0.072920 10.205236 0.406615
+v -0.091852 10.200076 0.411659
+v -0.085507 10.194916 0.430194
+v -0.066576 10.200076 0.425151
+v -0.120626 10.544279 0.495985
+v -0.135137 10.543186 0.500355
+v -0.130692 10.542093 0.514844
+v -0.116180 10.543186 0.510474
+v -0.109526 10.899957 0.475191
+v -0.119197 10.899158 0.478097
+v -0.116230 10.898358 0.487750
+v -0.106559 10.899158 0.484843
+v -0.160846 11.240652 0.571333
+v -0.165681 11.240242 0.572786
+v -0.164197 11.239832 0.577611
+v -0.159362 11.240242 0.576159
+v -0.150684 11.596360 0.552297
+v -0.150684 11.596360 0.552297
+v -0.150684 11.596360 0.552297
+v -0.150684 11.596360 0.552297
+v -0.506285 10.046764 0.217396
+v -0.519225 10.040720 0.203027
+v -0.532261 10.034676 0.217308
+v -0.519321 10.040720 0.231678
+v -0.734744 10.322257 0.216624
+v -0.744449 10.317724 0.205847
+v -0.754226 10.313191 0.216558
+v -0.744521 10.317724 0.227335
+v -0.804315 10.669603 0.216389
+v -0.811353 10.668406 0.209202
+v -0.818439 10.667208 0.216341
+v -0.811401 10.668406 0.223528
+v -0.860264 11.021862 0.216196
+v -0.863831 11.021633 0.212607
+v -0.867397 11.021210 0.216179
+v -0.863830 11.021439 0.219768
+v -0.876373 11.377794 0.235558
+v -0.876373 11.377794 0.235558
+v -0.876373 11.377794 0.235558
+v -0.876373 11.377794 0.235558
+v -0.886387 10.652804 0.185212
+v -0.893323 10.647317 0.180272
+v -0.894935 10.641829 0.188633
+v -0.888000 10.647317 0.193572
+v -1.156268 10.860498 0.293219
+v -1.159735 10.857755 0.290749
+v -1.160542 10.855011 0.294929
+v -1.157074 10.857755 0.297399
+v -1.397348 11.105169 0.389700
+v -1.397348 11.105169 0.389700
+v -1.397348 11.105169 0.389700
+v -1.397348 11.105169 0.389700
+v -0.860960 11.023273 0.217439
+v -0.862399 11.021536 0.212905
+v -0.866701 11.019798 0.214936
+v -0.865262 11.021536 0.219470
+v -1.022594 11.333711 0.146952
+v -1.022594 11.333711 0.146952
+v -1.022594 11.333711 0.146952
+v -1.022594 11.333711 0.146952
+vn -0.715323 0.144322 -0.683706
+vn -0.747398 0.209876 -0.630299
+vn 0.696432 0.145238 -0.702719
+vn -0.641804 0.006592 0.766808
+vn -0.680715 0.077944 0.728355
+vn 0.763054 0.017151 0.646077
+vn 0.721091 -0.054994 0.690603
+vn 0.647603 0.086001 -0.757073
+vn -0.708365 0.288339 -0.644246
+vn 0.668355 0.005982 -0.743797
+vn -0.640828 0.148106 0.753227
+vn 0.739341 -0.135105 0.659597
+vn -0.711783 0.224311 -0.665578
+vn 0.695791 0.036348 -0.717277
+vn -0.621815 0.110111 0.775353
+vn 0.756157 -0.068087 0.650807
+vn -0.744316 0.089022 -0.661824
+vn -0.643727 0.078951 0.761132
+vn 0.745262 0.067629 0.663320
+vn 0.681600 0.077364 -0.727592
+vn -0.749168 0.047731 -0.660604
+vn -0.669362 0.091494 0.737236
+vn 0.739769 0.110324 0.663717
+vn 0.656087 0.066286 -0.751732
+vn -0.775170 0.061434 -0.628742
+vn -0.648091 0.226386 0.727103
+vn 0.711966 0.112552 0.693106
+vn 0.669881 -0.069338 -0.739189
+vn -0.710379 0.041536 -0.702567
+vn 0.658467 -0.121036 -0.742790
+vn -0.649190 0.274636 0.709281
+vn 0.778069 0.097598 0.620502
+vn -0.991424 0.122562 0.044984
+vn -0.050050 -0.034455 -0.998138
+vn 0.062777 0.144810 0.987457
+vn 0.997925 -0.012391 -0.063082
+vn -0.094668 0.233436 0.967742
+vn -0.043580 0.265297 0.963164
+vn -0.985046 0.131474 -0.111148
+vn 0.998505 0.018097 0.051241
+vn 0.994385 0.077090 0.072329
+vn 0.047121 -0.074648 -0.996094
+vn 0.097018 -0.110752 -0.989074
+vn -0.994049 0.083407 -0.069918
+vn -0.069399 0.355174 0.932188
+vn -0.998596 0.014618 -0.050386
+vn 0.986633 0.152287 0.057466
+vn 0.073794 -0.202338 -0.976501
+vn -0.058687 0.388592 0.919523
+vn -0.995392 -0.063875 -0.071261
+vn 0.978912 0.204230 -0.003296
+vn 0.088809 -0.233955 -0.968169
+vn -0.079379 0.406140 0.910337
+vn 0.955077 0.296243 -0.002106
+vn 0.077212 -0.255287 -0.963775
+vn -0.990539 -0.136876 -0.008667
+vn -0.107364 0.455184 0.883877
+vn -0.983062 -0.182440 -0.016968
+vn 0.944762 0.325297 -0.039277
+vn 0.074160 -0.313913 -0.946532
+vn -0.163884 0.511307 0.843593
+vn -0.996124 -0.074099 -0.047304
+vn 0.970031 0.241035 0.029939
+vn 0.039125 -0.388958 -0.920408
+vn 0.621418 0.447798 0.642842
+vn -0.780847 0.373943 0.500412
+vn 0.779260 -0.280740 -0.560259
+vn -0.632221 -0.347301 -0.692557
+vn 0.172826 0.190680 -0.966308
+vn 0.173833 0.158238 -0.971954
+vn 0.982604 0.080294 0.167272
+vn -0.979675 0.080294 -0.183691
+vn -0.984985 0.077364 -0.154210
+vn -0.175939 -0.034059 0.983795
+vn -0.176061 -0.001038 0.984375
+vn 0.977355 0.077395 0.196783
+vn 0.173772 0.156590 -0.972228
+vn 0.982879 0.079653 0.166082
+vn -0.979492 0.080020 -0.184881
+vn -0.176122 0.000519 0.984344
+vn 0.172521 0.196631 -0.965148
+vn -0.982635 0.078127 -0.168279
+vn -0.175817 -0.039796 0.983612
+vn 0.979888 0.079073 0.183020
+vn 0.169836 0.268563 -0.948149
+vn 0.983734 0.083285 0.159093
+vn -0.977874 0.084048 -0.191473
+vn -0.174749 -0.113559 0.978027
+vn 0.189703 0.378002 -0.906125
+vn -0.981780 -0.000610 -0.189856
+vn -0.133580 -0.221229 0.966002
+vn 0.965941 0.161260 0.202307
+vn 0.137516 0.391003 -0.910031
+vn 0.940825 0.229408 0.249306
+vn -0.978271 -0.088137 -0.187536
+vn -0.181005 -0.245216 0.952391
+vn -0.577532 0.157964 -0.800928
+vn 0.785974 0.369030 -0.495987
+vn -0.808405 -0.263833 0.526139
+vn 0.552660 -0.053468 0.831660
+vn -0.917234 0.334391 -0.216468
+vn -0.848109 0.386273 -0.362560
+vn 0.306040 0.074587 -0.949065
+vn -0.199469 0.238197 0.950499
+vn -0.322153 0.092776 0.942106
+vn 0.912839 -0.151982 0.378948
+vn 0.944945 -0.240211 0.222083
+vn 0.314371 -0.109195 -0.942991
+vn -0.836299 0.483779 -0.257942
+vn -0.361675 -0.106693 0.926145
+vn 0.892148 -0.341990 0.295083
+vn 0.387005 0.256813 -0.885556
+vn -0.857418 0.474960 -0.197943
+vn -0.289621 -0.006653 0.957091
+vn 0.873287 -0.339335 0.349559
+vn 0.381359 0.135563 -0.914396
+vn -0.865963 0.411115 -0.284646
+vn 0.322123 0.009156 -0.946623
+vn -0.244026 0.127689 0.961303
+vn 0.920499 -0.264718 0.287301
+vn -0.876797 0.388409 -0.283425
+vn -0.262001 0.131626 0.956023
+vn 0.926511 -0.238899 0.290628
+vn 0.306375 0.019776 -0.951689
+vn -0.819910 0.320231 0.474502
+vn -0.418104 0.239357 -0.876278
+vn 0.453780 -0.133610 0.881008
+vn 0.855922 -0.214576 -0.470443
+vn -0.910123 0.411664 -0.046266
+vn -0.914823 0.389813 -0.105289
+vn 0.114170 0.069124 -0.991028
+vn -0.043733 0.140538 0.989105
+vn -0.045412 0.073733 0.996216
+vn 0.959777 -0.259346 0.107364
+vn 0.969390 -0.240425 0.049562
+vn 0.075503 0.015107 -0.997009
+vn -0.930784 0.358501 -0.071291
+vn -0.073946 0.013153 0.997162
+vn 0.974425 -0.207404 0.086428
+vn 0.126072 0.135289 -0.982727
+vn -0.899197 0.431837 -0.070376
+vn -0.116550 0.011200 0.993103
+vn 0.956389 -0.283517 0.070132
+vn 0.095462 0.165441 -0.981567
+vn -0.873287 0.479659 -0.085269
+vn 0.192999 0.237068 -0.952116
+vn -0.093631 -0.113285 0.989135
+vn 0.944853 -0.324625 0.042848
+vn -0.764000 0.121647 0.633595
+vn -0.508530 0.484634 -0.711661
+vn 0.552873 -0.385235 0.738853
+vn 0.798059 -0.020508 -0.602191
+vn -0.696951 0.346385 0.627888
+vn -0.712058 0.285745 0.641285
+vn -0.633198 0.070925 -0.770714
+vn 0.658437 0.085086 0.747795
+vn 0.700888 0.070650 0.709738
+vn 0.728690 -0.194891 -0.656484
+vn 0.736534 -0.131993 -0.663381
+vn -0.675253 0.085086 -0.732627
+vn -0.710166 0.197058 0.675832
+vn 0.684622 0.136326 0.715995
+vn 0.756005 -0.036866 -0.653493
+vn -0.661458 0.018220 -0.749718
+vn -0.745689 0.242470 0.620594
+vn -0.688833 0.035920 -0.724021
+vn 0.652242 0.131413 0.746483
+vn 0.710807 -0.090060 -0.697562
+vn -0.716514 0.233467 0.657308
+vn -0.622211 0.094272 -0.777123
+vn 0.705039 0.048494 0.707480
+vn 0.745659 -0.078036 -0.661733
+vn -0.047792 0.091098 0.994690
+vn -0.992981 0.103427 -0.057161
+vn 0.998840 0.007477 0.047182
+vn 0.061892 0.019776 -0.997864
+vn -0.157384 0.417341 0.894986
+vn -0.160741 0.368572 0.915586
+vn -0.973388 0.067812 -0.218787
+vn 0.981506 0.083743 0.172002
+vn 0.989593 0.068606 0.126286
+vn 0.166784 -0.269478 -0.948424
+vn 0.169164 -0.217566 -0.961241
+vn -0.981292 0.083743 -0.173162
+vn -0.168371 0.221992 0.960387
+vn -0.971129 0.072207 -0.227302
+vn 0.990417 0.071169 0.118076
+vn 0.173040 -0.065889 -0.982696
+vn -0.196600 0.169836 0.965636
+vn 0.980224 0.014771 0.197272
+vn 0.148350 -0.008667 -0.988891
+vn -0.975372 0.146397 -0.164830
+vn 0.573687 0.058504 0.816950
+vn -0.797082 0.251228 0.549089
+vn 0.814112 -0.142094 -0.563005
+vn -0.563402 0.052828 -0.824458
+vn -0.737480 0.401532 0.543016
+vn -0.722312 0.441389 0.532365
+vn -0.552660 0.066958 -0.830683
+vn 0.629170 0.066958 0.774346
+vn 0.599353 0.081851 0.796258
+vn 0.779107 -0.252663 -0.573687
+vn 0.769677 -0.294137 -0.566576
+vn -0.582659 0.080538 -0.808679
+vn -0.741447 0.451491 0.496323
+vn -0.516190 0.160588 -0.841273
+vn 0.600604 -0.029267 0.798975
+vn 0.745628 -0.297189 -0.596362
+vn -0.734581 0.389935 0.555223
+vn 0.556749 -0.115604 0.822565
+vn 0.797510 -0.245705 -0.550981
+vn -0.485946 0.256142 -0.835597
+vn -0.154973 0.139775 0.977966
+vn -0.900052 0.388958 -0.196448
+vn 0.938994 -0.284341 0.193396
+vn 0.195990 -0.035859 -0.979919
+vn -0.896298 0.217322 -0.386517
+vn -0.912442 0.112125 -0.393475
+vn 0.442274 0.077029 -0.893551
+vn -0.435255 0.085910 0.896176
+vn -0.346263 0.077029 0.934965
+vn 0.916471 -0.062075 0.395215
+vn 0.917325 0.044740 0.395581
+vn 0.352977 0.085879 -0.931669
+vn -0.917722 0.033601 -0.395764
+vn -0.413526 0.078005 0.907102
+vn 0.911161 0.123783 0.392926
+vn 0.375835 0.078005 -0.923368
+vn -0.928831 0.051515 0.366832
+vn -0.370708 0.051515 -0.927305
+vn 0.367321 0.060121 0.928129
+vn 0.927091 0.060121 -0.369884
+vn -0.791131 0.597888 -0.128727
+vn -0.836238 0.531144 -0.136143
+vn 0.228919 0.052431 -0.972015
+vn -0.154241 0.089480 0.983947
+vn -0.090976 0.052370 0.994446
+vn 0.873836 -0.464919 0.142186
+vn 0.908109 -0.391705 0.147801
+vn 0.165685 0.089480 -0.982086
+vn -0.893399 0.433271 -0.118748
+vn -0.097079 0.122196 0.987732
+vn 0.943358 -0.283242 0.172613
+vn 0.176214 0.016449 -0.984191
+vn -0.716514 0.366192 0.593677
+vn -0.557848 0.209235 -0.803095
+vn 0.594440 -0.104038 0.797357
+vn 0.759087 -0.262764 -0.595538
+vn 0.717551 0.120640 -0.685934
+vn 0.727287 0.107456 -0.677847
+vn 0.688070 0.064760 0.722709
+vn -0.681265 0.093356 -0.726035
+vn -0.690542 0.079348 -0.718894
+vn -0.730796 0.037080 0.681539
+vn -0.721763 0.050233 0.690268
+vn 0.678396 0.078005 0.730522
+vn 0.729545 0.135289 -0.670400
+vn 0.688894 0.135289 0.712088
+vn -0.673299 0.024201 -0.738945
+vn -0.715720 0.024171 0.697928
+vn 0.024842 0.055971 -0.998108
+vn 0.980071 0.196417 0.028871
+vn -0.995849 -0.086032 -0.029328
+vn -0.033906 0.055574 0.997864
+vn -0.319102 0.303842 -0.897671
+vn -0.344371 0.203711 -0.916440
+vn 0.922422 0.108524 -0.370556
+vn -0.949614 0.069735 0.305490
+vn -0.915983 0.071596 0.394757
+vn 0.347240 -0.150761 0.925565
+vn 0.334361 -0.047609 0.941221
+vn 0.955382 0.072848 -0.286142
+vn -0.904996 0.080142 -0.417798
+vn 0.422163 0.052126 -0.904996
+vn -0.413251 0.058901 0.908689
+vn 0.903348 0.031343 0.427717
+vn 0.492050 0.284707 -0.822687
+vn 0.489914 0.298196 -0.819147
+vn 0.849818 0.078341 0.521195
+vn -0.867641 0.075594 -0.491348
+vn -0.861202 0.078341 -0.502152
+vn -0.508896 -0.130436 0.850856
+vn -0.507889 -0.144414 0.849208
+vn 0.843349 0.075594 0.531999
+vn -0.259987 0.221534 -0.939848
+vn 0.951018 0.221534 -0.215522
+vn -0.964904 -0.112796 0.237098
+vn 0.247505 -0.112796 0.962279
+vn -0.618824 0.049043 0.783959
+vn -0.612262 0.153386 0.775628
+vn -0.748527 0.080355 -0.658162
+vn 0.813990 0.080355 0.575243
+vn 0.755120 0.082369 0.650349
+vn 0.615986 0.107669 -0.780328
+vn 0.619587 0.003479 -0.784906
+vn -0.807917 0.082369 -0.583483
+vn 0.123692 0.187567 0.974425
+vn -0.976501 0.187567 0.105899
+vn 0.990509 -0.076998 -0.113804
+vn -0.119266 -0.076998 -0.989837
+vn -0.833949 0.551530 0.017335
+vn -0.796472 0.590411 -0.130314
+vn 0.086764 0.075014 -0.993378
+vn 0.082125 0.197882 0.976775
+vn -0.053041 0.088656 0.994629
+vn 0.911283 -0.389447 0.133610
+vn 0.889492 -0.456587 -0.017273
+vn 0.048341 -0.093387 -0.994446
+vn -0.659169 0.356578 0.662038
+vn -0.419263 0.551408 -0.721183
+vn 0.486770 -0.465773 0.738945
+vn 0.712943 -0.257759 -0.652089
+vn 0.427168 0.084902 0.900174
+vn 0.425123 0.129032 0.895871
+vn -0.910550 0.078707 0.405774
+vn 0.890164 0.078707 -0.448744
+vn 0.907559 0.079806 -0.412244
+vn -0.427564 0.072634 -0.901028
+vn -0.428541 0.028413 -0.903073
+vn -0.893277 0.079806 0.442305
+vn 0.935881 0.124943 0.329325
+vn -0.336741 0.124943 0.933256
+vn 0.335459 -0.013581 -0.941923
+vn -0.941801 -0.013581 -0.335795
+vn 0.628193 0.598926 0.496567
+vn 0.882717 0.424177 -0.202155
+vn 0.007080 0.424177 0.905545
+vn 0.585131 0.066683 -0.808161
+vn -0.053865 -0.329722 -0.942534
+vn -0.694266 -0.465560 -0.548814
+vn -0.929502 -0.329722 0.165166
+vn -0.651204 0.066683 0.755913
+vn -0.818506 0.572008 0.052889
+vn -0.534135 0.405103 0.741966
+vn -0.625202 0.405103 -0.667043
+vn 0.104068 0.068026 0.992218
+vn 0.681570 -0.308725 0.663411
+vn 0.898099 -0.435926 -0.058016
+vn 0.590503 -0.308725 -0.745628
+vn -0.024476 0.068026 -0.997375
+vn -0.443831 0.331767 -0.832392
+vn -0.937315 0.234962 -0.257332
+vn 0.308603 0.234962 -0.921690
+vn -0.870113 0.076205 0.486862
+vn -0.295144 -0.126988 0.946959
+vn 0.462874 -0.179296 0.868068
+vn 0.950774 -0.126988 0.282601
+vn 0.889157 0.076205 -0.451186
+vn -0.803735 0.569414 0.172460
+vn -0.421064 0.403241 0.812433
+vn -0.717338 0.403241 -0.568133
+vn 0.247932 0.068148 0.966369
+vn 0.772271 -0.306681 0.556322
+vn 0.881283 -0.433058 -0.189093
+vn 0.475997 -0.306681 -0.824213
+vn -0.170385 0.068148 -0.983001
+vn 0.238350 0.296518 -0.924772
+vn -0.514817 0.209998 -0.831141
+vn 0.852443 0.209998 -0.478713
+vn -0.969665 0.076907 -0.231971
+vn -0.858608 -0.101016 0.502548
+vn -0.247017 -0.142644 0.958434
+vn 0.508682 -0.101016 0.854976
+vn 0.960997 0.076907 0.265633
+vn -0.715812 0.448897 -0.534837
+vn -0.929533 0.317911 0.186773
+vn -0.084384 0.317911 -0.944334
+vn -0.572832 0.073031 0.816370
+vn 0.118107 -0.214454 0.969543
+vn 0.763451 -0.302805 0.570421
+vn 0.963256 -0.214454 -0.161565
+vn 0.620502 0.073031 -0.780786
+vn -0.183416 0.961821 0.203040
+vn -0.185369 0.960906 0.205512
+vn -0.695120 0.022828 -0.718528
+vn 0.784509 0.026246 0.619526
+vn 0.785485 0.023072 0.618397
+vn 0.273080 -0.913236 -0.302286
+vn 0.275369 -0.911771 -0.304666
+vn -0.695822 0.026246 -0.717704
+vn -0.184729 0.957335 0.222083
+vn -0.676901 0.015290 -0.735893
+vn 0.815821 0.037568 0.577044
+vn 0.313089 -0.884548 -0.345683
+vn -0.471511 0.874477 0.113712
+vn -0.282540 0.230873 -0.931028
+vn 0.498276 -0.355846 0.790613
+vn 0.419477 -0.706809 -0.569597
+vn -0.552171 0.738090 0.387616
+vn -0.097629 -0.511246 0.853847
+vn 0.651814 -0.663839 -0.366619
+vn 0.149937 0.585101 -0.796960
+vn -0.640492 0.645650 0.415754
+vn 0.163121 0.484664 -0.859340
+vn 0.049532 -0.500839 0.864101
+vn 0.739341 -0.623463 -0.254250
+vn -0.778649 0.508469 0.367565
+vn 0.213538 -0.205481 0.955077
+vn 0.883206 -0.436567 -0.171209
+vn -0.102695 0.307138 -0.946104
+vn -0.826838 0.497147 0.262947
+vn -0.234718 0.133427 -0.962828
+vn 0.290933 -0.005890 0.956694
+vn 0.888241 -0.370922 -0.270943
+vn -0.828669 0.459578 0.319468
+vn 0.361003 0.106632 0.926420
+vn 0.918729 -0.322001 -0.228492
+vn -0.264962 0.004578 -0.964232
+vn -0.879452 0.394910 0.265603
+vn -0.336009 -0.111087 -0.935270
+vn 0.378124 0.239845 0.894131
+vn 0.913938 -0.264290 -0.307932
+vn -0.371685 0.396435 0.839442
+vn -0.875820 0.153020 -0.457686
+vn 0.900998 -0.059542 0.429701
+vn 0.396741 -0.302683 -0.866573
+vn 0.226783 0.843593 0.486709
+vn 0.173284 0.911222 0.373669
+vn -0.944090 -0.019318 0.329081
+vn 0.859249 -0.019318 -0.511185
+vn 0.890133 0.090365 -0.446638
+vn -0.273476 -0.761986 -0.586963
+vn -0.223945 -0.847591 -0.481063
+vn -0.914701 0.091891 0.393506
+vn 0.128330 0.951781 0.278542
+vn -0.933866 0.008301 0.357494
+vn 0.874050 0.007263 -0.485733
+vn -0.182287 -0.902097 -0.391095
+vn 0.157659 0.932524 0.324839
+vn 0.855983 0.035035 -0.515763
+vn -0.217170 -0.854213 -0.472335
+vn -0.938597 0.021210 0.344279
+vn -0.025300 0.900754 0.433515
+vn -0.964293 0.253151 -0.077548
+vn 0.959990 -0.262368 -0.097690
+vn -0.388775 -0.729759 -0.562334
+vn 0.197028 0.795007 0.573687
+vn 0.796838 -0.469253 0.380535
+vn -0.126011 -0.758965 -0.638813
+vn -0.747032 0.490036 -0.449141
+vn 0.144780 0.726768 0.671407
+vn -0.786218 0.432722 -0.441084
+vn 0.857845 -0.436354 0.271401
+vn -0.003906 -0.681204 -0.732047
+vn 0.123020 0.545885 0.828761
+vn 0.987487 -0.141850 0.068697
+vn 0.167821 -0.475112 -0.863735
+vn -0.948759 0.200018 -0.244575
+vn -0.059603 0.420118 0.905484
+vn -0.997711 -0.033570 -0.058473
+vn 0.988922 0.145573 -0.028474
+vn 0.038697 -0.293222 -0.955229
+vn -0.043764 0.279031 0.959258
+vn -0.996338 -0.015717 -0.083956
+vn 0.990509 0.130894 -0.041536
+vn 0.029389 -0.143773 -0.989166
+vn 0.681143 0.167730 0.712638
+vn -0.728874 0.071780 0.680837
+vn 0.717002 0.024628 -0.696616
+vn -0.682333 -0.070528 -0.727592
+vn -0.757561 0.589190 0.280923
+vn -0.732231 0.624561 0.271523
+vn -0.302103 0.032868 -0.952696
+vn 0.392041 0.032868 0.919340
+vn 0.362194 0.056215 0.930387
+vn 0.812403 -0.499222 -0.301248
+vn 0.793237 -0.533128 -0.294137
+vn -0.331950 0.056215 -0.941588
+vn -0.606403 0.761803 0.227821
+vn 0.339610 0.088321 0.936399
+vn 0.680563 -0.686148 -0.256905
+vn -0.348094 0.084475 -0.933622
+vn -0.330912 0.925169 0.185705
+vn 0.563372 0.228675 0.793908
+vn 0.552110 -0.833247 -0.029115
+vn -0.536424 -0.066042 -0.841334
+vn -0.266976 0.961913 -0.058382
+vn -0.737510 -0.221931 -0.637806
+vn 0.777062 0.295297 0.555803
+vn 0.338786 -0.940703 -0.016511
+vn -0.273873 0.958678 -0.076937
+vn -0.719321 -0.275185 -0.637806
+vn 0.800165 0.238929 0.550096
+vn 0.326579 -0.944945 -0.020112
+vn -0.413160 0.910398 -0.020814
+vn -0.584765 -0.219031 -0.781060
+vn 0.690451 0.181158 0.700278
+vn 0.381207 -0.907224 -0.177770
+vn -0.570666 0.791681 0.218085
+vn 0.581988 0.055116 0.811304
+vn 0.624439 -0.726371 -0.287118
+vn -0.400403 -0.133152 -0.906583
+vn -0.707938 0.545640 0.448378
+vn 0.610370 0.207099 0.764519
+vn 0.818903 -0.430128 -0.379894
+vn -0.478133 -0.179601 -0.859706
+vn -0.851009 0.278390 0.445235
+vn -0.510849 -0.189215 -0.838557
+vn 0.613819 0.260109 0.745323
+vn 0.799463 -0.203711 -0.565081
+vn -0.196265 0.195318 0.960875
+vn -0.976226 0.041780 -0.212592
+vn 0.981689 0.031098 0.187841
+vn 0.199469 -0.121433 -0.972320
+vn -0.597674 0.709311 0.373669
+vn -0.507065 0.801660 0.316538
+vn -0.460646 -0.017060 -0.887387
+vn 0.596057 -0.017060 0.802728
+vn 0.521012 0.076052 0.850124
+vn 0.645344 -0.648579 -0.403485
+vn 0.560503 -0.750450 -0.350169
+vn -0.535997 0.076968 -0.840663
+vn -0.430891 0.861385 0.268899
+vn -0.492325 0.007050 -0.870357
+vn 0.567827 0.006897 0.823084
+vn 0.488723 -0.817286 -0.305185
+vn -0.493210 0.813105 0.309153
+vn -0.484085 0.010163 -0.874935
+vn 0.569597 0.009186 0.821863
+vn 0.551286 -0.758507 -0.347392
+vn -0.371502 0.859279 0.351512
+vn 0.713614 0.234474 0.660115
+vn 0.610828 -0.761376 -0.217109
+vn -0.719504 -0.107273 -0.686148
+vn -0.433851 0.883419 0.176916
+vn -0.828700 -0.316233 -0.461715
+vn 0.854579 0.342112 0.390667
+vn 0.457045 -0.853603 -0.249886
+vn -0.442061 0.875881 0.193335
+vn -0.822840 -0.315378 -0.472671
+vn 0.855739 0.335398 0.393902
+vn 0.463027 -0.843715 -0.271493
+vn -0.482131 0.731742 0.481704
+vn -0.761315 -0.421003 -0.493057
+vn 0.913938 0.284066 0.289804
+vn 0.538469 -0.659230 -0.524766
+vn -0.552293 0.406842 0.727592
+vn 0.867061 0.355358 0.349071
+vn 0.481735 -0.361095 -0.798425
+vn -0.832636 -0.316446 -0.454482
+vn -0.573077 0.344096 0.743706
+vn 0.852138 0.155522 0.499619
+vn 0.450850 -0.281137 -0.847133
+vn -0.854244 -0.071352 -0.514908
+vn 0.233802 0.226081 0.945616
+vn -0.944304 0.292611 0.150517
+vn 0.955901 -0.238563 -0.171087
+vn -0.228065 -0.168554 -0.958922
+vn 0.282693 0.917081 0.281106
+vn 0.287545 0.914090 0.285867
+vn -0.749168 0.030549 0.661641
+vn 0.659566 0.036439 -0.750755
+vn 0.656362 0.030519 -0.753807
+vn -0.372631 -0.850765 -0.370525
+vn -0.378216 -0.845363 -0.377178
+vn -0.747032 0.036439 0.663747
+vn 0.219520 0.951537 0.215247
+vn 0.663045 0.078829 -0.744377
+vn -0.315867 -0.894528 -0.316263
+vn -0.736930 0.075045 0.671743
+vn 0.093875 0.979430 0.178472
+vn -0.852718 0.073855 0.517106
+vn 0.773461 -0.044069 -0.632252
+vn -0.308267 -0.931578 -0.192663
+vn 0.195654 0.967345 0.161077
+vn 0.873562 -0.106967 -0.474776
+vn -0.245216 -0.927244 -0.282937
+vn -0.929044 0.119785 0.349986
+vn 0.206030 0.960234 0.188299
+vn 0.874355 -0.090243 -0.476791
+vn -0.258156 -0.913419 -0.314615
+vn -0.926908 0.136448 0.349528
+vn 0.309976 0.922849 0.228492
+vn 0.781671 -0.052767 -0.621448
+vn -0.247047 -0.868709 -0.429273
+vn -0.876827 0.033753 0.479598
+vn 0.387494 0.769463 0.507675
+vn -0.818537 -0.067995 0.570360
+vn 0.655690 0.024812 -0.754570
+vn -0.475692 -0.666860 -0.573565
+vn 0.600757 0.418470 0.681143
+vn 0.657613 0.089999 -0.747917
+vn -0.624439 -0.285897 -0.726829
+vn -0.814447 -0.025452 0.579638
+vn 0.607288 0.007538 0.794427
+vn 0.682882 0.038820 -0.729453
+vn -0.686605 0.141697 -0.713065
+vn -0.796655 0.119663 0.592425
+vn 0.959685 -0.274758 0.058718
+vn -0.067263 -0.025361 0.997406
+vn 0.075747 0.128819 -0.988769
+vn -0.928190 0.368053 -0.054720
+vn 0.465987 0.874783 -0.132603
+vn 0.502853 0.852412 -0.143101
+vn 0.232521 0.054048 0.971068
+vn -0.313669 0.054048 -0.947966
+vn -0.335368 0.020539 -0.941832
+vn -0.570635 -0.804956 0.162389
+vn -0.604480 -0.777795 0.172033
+vn 0.210852 0.020539 0.977294
+vn 0.506088 0.850368 -0.144017
+vn 0.233528 0.053804 0.970855
+vn -0.312693 0.053804 -0.948302
+vn -0.607593 -0.775170 0.172918
+vn 0.424116 0.897305 -0.122227
+vn -0.319956 0.054720 -0.945830
+vn -0.535051 -0.830866 0.152715
+vn 0.228339 0.051088 0.972228
+vn 0.418195 0.907254 -0.044557
+vn -0.179388 -0.072390 -0.981079
+vn -0.510147 -0.831141 0.221168
+vn 0.053285 0.108463 0.992645
+vn 0.526078 0.837001 -0.150517
+vn -0.115482 0.179083 0.977020
+vn -0.043703 -0.182531 -0.982208
+vn -0.631794 -0.766991 0.111881
+vn 0.646840 0.752861 -0.121494
+vn -0.069277 0.192602 0.978820
+vn -0.051302 -0.131596 -0.989959
+vn -0.739769 -0.665731 0.097446
+vn 0.745811 0.641224 -0.180456
+vn 0.018555 0.054781 0.998321
+vn -0.176092 -0.009400 -0.984313
+vn -0.839259 -0.542436 0.036775
+vn 0.887417 0.449873 -0.100375
+vn -0.249245 0.126713 -0.960082
+vn -0.931639 -0.333048 0.145299
+vn 0.099429 -0.051271 0.993713
+vn 0.970122 0.202582 -0.133427
+vn 0.088229 0.022309 0.995819
+vn -0.229591 0.088473 -0.969237
+vn -0.982910 -0.075442 0.167852
+vn 0.588488 0.042360 -0.807367
+vn 0.807917 0.039918 0.587909
+vn -0.813807 0.051424 -0.578814
+vn -0.593585 0.048585 0.803278
+vn -0.907010 0.370861 0.199408
+vn -0.824915 0.535295 0.181371
+vn -0.112247 0.015259 -0.993561
+vn 0.314859 0.015259 0.949004
+vn 0.165166 0.084292 0.982635
+vn 0.937346 -0.280892 -0.206091
+vn 0.870632 -0.453108 -0.191412
+vn -0.262246 0.084292 -0.961303
+vn -0.655690 0.741050 0.144505
+vn -0.205512 0.059999 -0.976806
+vn 0.220923 0.059450 0.973449
+vn 0.718772 -0.676778 -0.159093
+vn -0.579272 0.787011 0.212165
+vn 0.396680 0.164006 0.903165
+vn 0.713553 -0.696982 -0.070833
+vn -0.308451 -0.125004 -0.942961
+vn -0.556383 0.826716 0.083224
+vn -0.532151 -0.226691 -0.815699
+vn 0.522416 0.367504 0.769402
+vn 0.638203 -0.762200 -0.108005
+vn -0.493759 0.869533 -0.007721
+vn -0.513688 -0.303781 -0.802362
+vn 0.597888 0.337230 0.727165
+vn 0.563738 -0.823237 -0.066622
+vn -0.602466 0.782159 -0.158727
+vn -0.140843 -0.042055 -0.989135
+vn 0.276925 0.029237 0.960418
+vn 0.605579 -0.744407 -0.281228
+vn -0.813501 0.567553 0.126682
+vn 0.013001 -0.267251 0.963530
+vn 0.849330 -0.527299 -0.023225
+vn 0.185217 0.222205 -0.957213
+vn -0.956969 0.284585 0.056490
+vn 0.054262 -0.053163 0.997101
+vn 0.979858 -0.197638 0.028230
+vn 0.081027 0.119480 -0.989502
+vn -0.998901 -0.046632 -0.002258
+vn 0.093326 0.056764 -0.993988
+vn 0.085543 0.057588 0.994659
+vn 0.989807 0.142125 0.004456
+vn -0.690146 -0.183416 0.700034
+vn -0.684378 -0.187536 -0.704550
+vn 0.670370 0.254189 0.697104
+vn 0.676168 0.250191 -0.692923
+vn -0.069643 0.741722 0.667043
+vn -0.054872 0.852504 0.519791
+vn -0.980651 -0.041078 -0.191229
+vn 0.999023 -0.041078 0.015442
+vn 0.988586 0.088717 0.121555
+vn 0.074770 -0.693899 -0.716147
+vn 0.060335 -0.815699 -0.575274
+vn -0.992218 0.090091 -0.085726
+vn -0.031831 0.954344 0.296945
+vn -0.991272 0.035188 -0.126835
+vn 0.996216 0.034394 0.079409
+vn 0.037843 -0.932340 -0.359508
+vn -0.024842 0.966247 0.256294
+vn -0.989166 0.001495 -0.146641
+vn 0.998321 0.004669 0.057222
+vn 0.035035 -0.940977 -0.336558
+vn -0.231269 0.926450 0.296945
+vn -0.852992 0.125095 -0.506668
+vn 0.895413 -0.208930 0.393139
+vn -0.050172 -0.847835 -0.527818
+vn -0.231056 0.712973 0.662008
+vn 0.720298 -0.367077 0.588549
+vn 0.325999 -0.707266 -0.627247
+vn -0.631550 0.264748 -0.728690
+vn -0.398297 0.579913 0.710654
+vn 0.761345 -0.224677 0.608142
+vn 0.436872 -0.527024 -0.728935
+vn -0.721641 0.273721 -0.635792
+vn -0.476394 0.496078 0.725883
+vn -0.677877 0.294412 -0.673635
+vn 0.759056 -0.278695 0.588336
+vn 0.479781 -0.423719 -0.768273
+vn -0.518021 0.247230 0.818812
+vn 0.797632 -0.190558 0.572222
+vn 0.633442 -0.206610 -0.745659
+vn -0.697043 0.226630 -0.680227
+vn -0.598346 0.028382 0.800714
+vn -0.757347 0.053896 -0.650777
+vn 0.807611 0.015992 0.589465
+vn 0.638722 0.040040 -0.768364
+vn 0.116123 -0.016144 0.993072
+vn -0.990936 -0.069918 0.114597
+vn 0.986419 0.118961 -0.113163
+vn -0.115543 0.065859 -0.991089
+vn 0.043886 0.968383 -0.245460
+vn 0.037324 0.977355 -0.208167
+vn 0.970794 0.035737 0.237159
+vn -0.994385 0.002228 -0.105655
+vn -0.992553 0.036225 -0.116245
+vn -0.066652 -0.925504 0.372753
+vn -0.059755 -0.937956 0.341533
+vn 0.969359 0.002228 0.245582
+vn 0.009522 0.999512 -0.028962
+vn 0.967528 0.075716 0.241096
+vn -0.992889 0.068422 -0.097293
+vn -0.033876 -0.985748 0.164739
+vn 0.064302 0.958281 0.278390
+vn -0.847011 0.010590 -0.531419
+vn 0.196966 -0.974853 0.104190
+vn 0.743004 0.006714 0.669240
+vn -0.293527 0.925596 0.238838
+vn 0.322611 -0.053652 0.944975
+vn -0.461531 0.158483 -0.872829
+vn 0.160527 -0.964751 -0.208472
+vn -0.387219 0.878353 0.280190
+vn 0.354900 -0.159398 0.921201
+vn -0.458449 0.056825 -0.886868
+vn 0.278085 -0.932371 -0.230873
+vn -0.355235 0.822596 0.443953
+vn -0.044740 0.243721 -0.968780
+vn 0.169683 -0.984558 -0.042634
+vn -0.125034 -0.294351 0.947478
+vn -0.305307 0.926481 0.219977
+vn 0.479019 0.351878 -0.804163
+vn 0.211219 -0.934721 -0.285745
+vn -0.566637 -0.361187 0.740532
+vn -0.312326 0.871517 0.377972
+vn -0.782647 -0.374798 0.496933
+vn 0.712851 0.273537 -0.645741
+vn 0.015442 -0.944731 -0.327403
+vn -0.014496 0.804987 0.593066
+vn 0.905271 0.146336 -0.398755
+vn -0.079073 -0.736869 -0.671346
+vn -0.958251 -0.224952 0.176305
+vn 0.736106 0.575030 0.356945
+vn -0.609912 0.363933 0.703909
+vn 0.569292 -0.299783 -0.765496
+vn -0.754509 -0.505112 -0.418989
+vn -0.519578 0.812220 -0.265114
+vn -0.502365 0.825739 -0.256355
+vn 0.505570 0.032685 -0.862148
+vn -0.401440 0.032685 0.915281
+vn -0.413251 0.049135 0.909268
+vn 0.610187 -0.728477 0.311350
+vn 0.594897 -0.744224 0.303568
+vn 0.493759 0.049135 -0.868191
+vn -0.520615 0.811396 -0.265664
+vn 0.512101 0.023988 -0.858577
+vn -0.394696 0.023988 0.918485
+vn 0.611682 -0.726920 0.312113
+vn -0.593188 0.746361 -0.301645
+vn -0.397687 0.033235 0.916898
+vn 0.678426 -0.648946 0.344310
+vn 0.512833 0.033845 -0.857784
+vn -0.580706 0.781793 -0.226936
+vn -0.306253 0.198889 0.930906
+vn 0.618824 -0.671255 0.407941
+vn 0.348216 -0.043397 -0.936399
+vn -0.493362 0.813562 -0.307718
+vn 0.242225 -0.219275 -0.945097
+vn -0.126713 0.274606 0.953154
+vn 0.599536 -0.740989 0.302408
+vn -0.620472 0.710044 -0.332835
+vn 0.320444 -0.200720 -0.925748
+vn -0.126408 0.210120 0.969451
+vn 0.731590 -0.616962 0.289956
+vn -0.886258 0.433302 -0.163610
+vn -0.023469 0.364299 0.930967
+vn 0.916501 -0.249519 0.312632
+vn 0.281594 -0.322184 -0.903806
+vn -0.956420 0.082766 -0.280007
+vn 0.155034 -0.289193 -0.944609
+vn -0.105991 0.401013 0.909909
+vn 0.997589 -0.034913 0.059816
+vn -0.982391 0.068667 -0.173681
+vn -0.143010 0.165899 0.975707
+vn 0.989196 0.058138 0.134526
+vn 0.161077 -0.036744 -0.986236
+vn -0.806330 0.087832 0.584857
+vn -0.588580 -0.012482 -0.808313
+vn 0.590960 0.105411 0.799768
+vn 0.805750 0.005127 -0.592212
+vn -0.675405 0.316813 0.665914
+vn -0.630970 0.464492 0.621357
+vn -0.631489 0.032624 -0.774651
+vn 0.765648 0.032624 0.642384
+vn 0.667623 0.081027 0.740043
+vn 0.696280 -0.209418 -0.686514
+vn 0.663381 -0.360179 -0.655873
+vn -0.729362 0.083285 -0.679006
+vn -0.480087 0.736717 0.476150
+vn -0.709708 0.095492 -0.697958
+vn 0.684744 0.101138 0.721671
+vn 0.532212 -0.657796 -0.532914
+vn -0.256264 0.896054 0.362438
+vn 0.850337 0.237800 0.469405
+vn 0.539720 -0.784417 -0.305551
+vn -0.825404 -0.134404 -0.548296
+vn -0.355907 0.915922 0.185461
+vn -0.925748 -0.294626 -0.236976
+vn 0.916623 0.371960 0.146336
+vn 0.383984 -0.876034 -0.291665
+vn -0.404157 0.873501 0.271371
+vn -0.882839 -0.354503 -0.308023
+vn 0.951537 0.275216 0.137120
+vn 0.365703 -0.840541 -0.399640
+vn -0.538896 0.761437 0.360240
+vn -0.791620 -0.058962 -0.608142
+vn 0.844264 0.111606 0.524125
+vn 0.316935 -0.719657 -0.617725
+vn -0.423017 0.750511 0.507675
+vn 0.661489 -0.136876 0.737327
+vn 0.490402 -0.681753 -0.542833
+vn -0.587573 0.187353 -0.787133
+vn -0.472060 0.591540 0.653584
+vn 0.787011 -0.008850 0.616871
+vn 0.645222 -0.499405 -0.578112
+vn -0.639454 0.007630 -0.768761
+vn -0.677664 0.268593 0.684530
+vn -0.702445 -0.061159 -0.709067
+vn 0.804621 0.137974 0.577502
+vn 0.634266 -0.167150 -0.754784
+vn 0.061220 0.096133 0.993469
+vn -0.996460 0.060427 0.058260
+vn 0.996918 0.018372 -0.076266
+vn -0.055086 -0.017579 -0.998321
+vn 0.756279 0.641896 0.126286
+vn 0.660909 0.742271 0.110355
+vn -0.148350 0.072970 0.986236
+vn 0.086642 -0.010987 -0.996155
+vn 0.180120 0.072970 -0.980926
+vn -0.803369 -0.580126 -0.134129
+vn -0.716697 -0.687033 -0.119663
+vn -0.241707 -0.010987 0.970275
+vn 0.428907 0.900479 0.071596
+vn 0.159490 0.073794 -0.984405
+vn -0.496231 -0.864223 -0.082858
+vn -0.168981 0.073794 0.982849
+vn 0.213507 0.976318 0.034242
+vn 0.131321 0.050356 -0.990051
+vn -0.287576 -0.956633 -0.046358
+vn -0.201697 0.048280 0.978240
+vn -0.102451 0.980865 -0.165410
+vn -0.626545 0.159886 -0.762780
+vn -0.416089 -0.867550 -0.272408
+vn 0.469680 -0.178137 0.864650
+vn 0.333048 0.930509 -0.152318
+vn -0.972991 0.189734 -0.131382
+vn -0.278268 -0.944548 0.174230
+vn 0.916074 -0.366131 0.163549
+vn 0.345164 0.837153 -0.424268
+vn 0.917112 -0.263222 0.299264
+vn -0.957183 0.222877 -0.184637
+vn -0.324107 -0.803461 0.499344
+vn 0.220679 0.744346 -0.630207
+vn 0.911252 -0.379467 0.160039
+vn -0.936216 0.350536 -0.023774
+vn -0.401196 -0.620075 0.674184
+vn 0.326304 0.460463 -0.825526
+vn -0.911069 0.407392 0.062777
+vn -0.173070 -0.459609 0.871059
+vn 0.900784 -0.420118 0.109745
+vn 0.247810 0.335215 -0.908933
+vn 0.974090 -0.161779 0.157903
+vn -0.964476 0.231910 -0.126408
+vn -0.149724 -0.280862 0.947966
+vn -0.551225 0.311502 -0.773980
+vn 0.836146 0.167425 -0.522294
+vn -0.831538 -0.115848 0.543199
+vn 0.556597 -0.258248 0.789605
+vn -0.042512 0.990509 -0.130558
+vn -0.040407 0.991455 -0.124027
+vn 0.964171 0.011078 -0.264931
+vn -0.935301 0.005310 0.353740
+vn -0.935636 0.011444 0.352733
+vn 0.071108 -0.973235 0.218421
+vn 0.069948 -0.974425 0.213385
+vn 0.964293 0.005310 -0.264687
+vn -0.004273 0.999939 -0.009003
+vn 0.962523 0.053224 -0.265816
+vn -0.933195 0.055971 0.354961
+vn 0.034730 -0.994079 0.102786
+vn 0.083987 0.995331 0.046968
+vn -0.981872 -0.026917 0.187506
+vn 0.083560 -0.996307 0.018494
+vn 0.994964 -0.015076 -0.098880
+vn -0.005402 0.999847 0.016541
+vn 0.996368 0.006623 0.084841
+vn -0.999908 -0.004975 0.010010
+vn 0.002319 -0.996704 0.080905
+vn 0.004181 0.977691 -0.209876
+vn -0.994720 -0.093783 0.041566
+vn -0.006714 -0.950377 0.310953
+vn 0.990081 -0.080905 0.114689
+vn -0.186224 0.781518 -0.595386
+vn 0.976287 -0.199774 -0.083254
+vn -0.949767 0.097476 0.297342
+vn -0.046571 -0.691580 0.720786
+vn -0.114261 0.484573 -0.867214
+vn -0.867458 0.304636 0.393292
+vn 0.213599 -0.431806 0.876278
+vn 0.921781 -0.281655 -0.266335
+vn -0.187292 0.217383 -0.957915
+vn -0.918912 0.143132 0.367504
+vn 0.307657 -0.138676 0.941313
+vn 0.976897 -0.080782 -0.197699
+vn -0.294259 0.086428 -0.951781
+vn 0.956481 -0.005310 -0.291635
+vn -0.962127 0.099979 0.253517
+vn 0.244209 0.009644 0.969665
+vn -0.858028 0.177038 -0.482070
+vn 0.489334 0.010132 -0.872005
+vn -0.484725 0.056368 0.872829
+vn 0.866726 -0.111423 0.486129
+vn -0.428846 0.890866 0.149785
+vn -0.322459 0.939909 0.112186
+vn -0.266274 -0.032716 -0.963317
+vn 0.391400 -0.032716 0.919614
+vn 0.344493 0.067660 0.936308
+vn 0.496963 -0.850215 -0.173589
+vn 0.393902 -0.908780 -0.137608
+vn -0.312662 0.068392 -0.947386
+vn -0.159276 0.985687 0.054964
+vn -0.296121 0.031434 -0.954619
+vn 0.364635 0.030580 0.930631
+vn 0.237098 -0.967986 -0.082095
+vn 0.053255 0.998413 -0.017701
+vn 0.386120 0.071932 0.919614
+vn 0.052339 -0.998505 -0.014466
+vn -0.277108 0.074282 -0.957945
+vn 0.399976 0.892483 -0.208441
+vn 0.190588 -0.044465 -0.980651
+vn -0.065371 0.201544 0.977264
+vn -0.278085 -0.937101 -0.210883
+vn 0.519181 0.852718 0.057222
+vn 0.581011 -0.301706 -0.755882
+vn -0.539079 0.257576 0.801874
+vn -0.462233 -0.886654 -0.011322
+vn 0.419935 0.905393 -0.062014
+vn -0.588977 0.221442 0.777184
+vn -0.331095 -0.939543 0.087039
+vn 0.601306 -0.368297 -0.709037
+vn 0.423719 0.893551 -0.148228
+vn 0.806696 -0.316904 -0.498764
+vn -0.739189 0.380139 0.555925
+vn -0.215278 -0.971129 0.102664
+vn 0.346934 0.931272 -0.110935
+vn 0.893338 -0.386944 -0.228431
+vn -0.896664 0.304819 0.321024
+vn -0.290597 -0.939543 0.181036
+vn 0.370434 0.877773 -0.303690
+vn -0.957640 0.269082 0.102451
+vn -0.181494 -0.908719 0.375835
+vn 0.945158 -0.326456 0.008820
+vn -0.499435 0.774651 -0.387860
+vn 0.875057 0.452773 -0.170934
+vn -0.870540 -0.435682 0.228614
+vn 0.501297 -0.746117 0.438124
+vn -0.355541 0.579730 0.733116
+vn -0.331400 0.650472 0.683401
+vn -0.874844 0.003204 -0.484359
+vn 0.922025 0.003204 0.387097
+vn 0.893765 0.051302 0.445540
+vn 0.371197 -0.525651 -0.765404
+vn 0.349834 -0.598865 -0.720359
+vn -0.903562 0.050966 -0.425336
+vn -0.253945 0.810266 0.528123
+vn 0.893490 0.075869 0.442579
+vn 0.281014 -0.764275 -0.580401
+vn -0.901425 0.071993 -0.426832
+vn -0.311380 0.870083 0.382031
+vn -0.723716 0.173345 -0.667959
+vn 0.775750 -0.188147 0.602283
+vn 0.144383 -0.789819 -0.596057
+vn -0.234474 0.831660 0.503311
+vn 0.531022 -0.316263 0.786096
+vn 0.275704 -0.802332 -0.529313
+vn -0.492019 0.358592 -0.793268
+vn -0.213630 0.838130 0.501846
+vn -0.477096 0.351756 -0.805353
+vn 0.535936 -0.327952 0.777917
+vn 0.273141 -0.808191 -0.521683
+vn -0.502029 0.662313 0.556108
+vn -0.364269 0.299600 -0.881771
+vn 0.562212 -0.441023 0.699545
+vn 0.523942 -0.598315 -0.606189
+vn -0.721152 0.280282 0.633534
+vn 0.545701 -0.302561 0.781426
+vn 0.802240 -0.256386 -0.539079
+vn -0.449080 0.337474 -0.827265
+vn -0.782952 0.114231 0.611469
+vn -0.521836 0.134281 -0.842372
+vn 0.595752 -0.077120 0.799432
+vn 0.844508 -0.059999 -0.532151
+vn -0.821589 0.035249 0.568957
+vn -0.570574 0.032014 -0.820582
+vn 0.566881 0.032838 0.823115
+vn 0.822260 0.029603 -0.568316
+vn -0.178991 0.029756 0.983367
+vn -0.983428 0.027680 -0.179113
+vn 0.983642 0.018403 0.179052
+vn 0.179113 0.016297 -0.983673
+vn 0.874752 0.444441 -0.192969
+vn 0.842647 0.505295 -0.185888
+vn 0.221503 0.055788 0.973540
+vn -0.263833 0.028596 -0.964110
+vn -0.208655 0.055788 -0.976379
+vn -0.911069 -0.359844 0.200995
+vn -0.885098 -0.422437 0.195257
+vn 0.166295 0.028596 0.985656
+vn 0.718650 0.677023 -0.158544
+vn 0.234840 0.078280 0.968871
+vn -0.194586 0.078280 -0.977722
+vn -0.778191 -0.604083 0.171667
+vn 0.531846 0.838954 -0.115085
+vn -0.230171 0.063173 -0.971068
+vn -0.609943 -0.781121 0.133274
+vn 0.198431 0.068392 0.977722
+vn 0.427381 0.880398 -0.205420
+vn 0.390576 -0.157353 0.907010
+vn -0.481887 0.172552 -0.859035
+vn -0.614215 -0.788995 0.014405
+vn 0.607593 0.780297 -0.148015
+vn -0.651662 0.296884 -0.697958
+vn -0.629383 -0.742271 0.229896
+vn 0.555773 -0.317179 0.768426
+vn 0.748497 0.591601 -0.299570
+vn -0.634999 0.215094 -0.741935
+vn -0.744346 -0.534440 0.400342
+vn 0.475356 -0.236518 0.847377
+vn 0.799341 0.369823 -0.473525
+vn 0.502304 -0.173803 0.847011
+vn -0.583667 0.230934 -0.778436
+vn -0.837977 -0.278298 0.469375
+vn 0.854579 0.207221 -0.476119
+vn -0.573290 0.216346 -0.790246
+vn -0.821497 -0.129215 0.555315
+vn 0.513718 -0.137120 0.846919
+vn 0.847835 0.102390 -0.520249
+vn 0.523972 -0.025178 0.851344
+vn -0.554765 0.115207 -0.823969
+vn -0.833979 -0.012238 0.551622
+vn 0.213630 0.072573 -0.974181
+vn 0.976257 0.017121 0.215827
+vn -0.976501 0.048189 -0.209906
+vn -0.213599 -0.007172 0.976867
+vn -0.278359 0.734062 -0.619373
+vn -0.282052 0.725883 -0.627277
+vn 0.921018 0.032044 -0.388165
+vn -0.901730 0.032014 0.431043
+vn -0.898434 0.024415 0.438368
+vn 0.301126 -0.678487 0.670003
+vn 0.305368 -0.668264 0.678304
+vn 0.924619 0.024445 -0.380047
+vn -0.244331 0.805109 -0.540452
+vn 0.909055 0.075198 -0.409742
+vn -0.908292 0.081301 0.410321
+vn 0.271493 -0.753105 0.599231
+vn 0.065371 0.869991 -0.488693
+vn -0.851466 -0.523911 0.021607
+vn 0.463607 -0.585955 0.664602
+vn 0.890957 0.402539 0.210089
+vn -0.140690 0.657125 -0.740501
+vn 0.385357 0.711936 0.587024
+vn -0.436476 -0.705191 -0.558702
+vn 0.069948 -0.648122 0.758293
+vn -0.126041 0.662496 -0.738365
+vn -0.467086 -0.697226 -0.543748
+vn 0.044557 -0.642415 0.765038
+vn 0.390606 0.717368 0.576861
+vn 0.285409 0.479476 -0.829798
+vn -0.536790 -0.753197 -0.380108
+vn -0.362133 -0.434309 0.824732
+vn 0.329447 0.618549 0.713309
+vn 0.614093 0.092257 -0.783776
+vn 0.526109 0.613849 0.588488
+vn -0.574816 -0.565477 -0.591388
+vn -0.717215 -0.119816 0.686453
+vn 0.612781 0.133580 -0.778863
+vn -0.669057 -0.314951 -0.673147
+vn -0.714652 -0.101169 0.692099
+vn 0.665670 0.391186 0.635456
+vn 0.629963 0.125034 -0.766472
+vn -0.747185 -0.102084 -0.656697
+vn -0.705954 -0.059877 0.705710
+vn 0.694906 0.173742 0.697775
+vn -0.045473 0.018220 -0.998779
+vn 0.996368 0.075289 -0.039613
+vn -0.999054 -0.020173 0.037996
+vn 0.036439 0.036958 0.998627
+vn -0.233528 0.947020 -0.220466
+vn -0.218696 0.953734 -0.206183
+vn 0.703726 0.017975 -0.710196
+vn -0.664693 0.000244 0.747093
+vn -0.669118 0.018494 0.742912
+vn 0.271432 -0.927702 0.256233
+vn 0.258492 -0.934843 0.243324
+vn 0.707663 0.000244 -0.706534
+vn -0.080325 0.993896 -0.075350
+vn 0.696524 0.081423 -0.712851
+vn -0.670888 0.082217 0.736961
+vn 0.122318 -0.985778 0.114994
+vn 0.191778 0.965819 0.174200
+vn -0.648213 0.071261 0.758110
+vn -0.151097 -0.979736 -0.131413
+vn 0.722953 0.082583 -0.685903
+vn 0.570360 0.640645 0.514023
+vn -0.854488 0.445387 0.267312
+vn 0.048402 -0.856533 -0.513749
+vn 0.959563 -0.276162 -0.054476
+vn 0.196509 0.641713 0.741325
+vn 0.556810 -0.690939 0.461013
+vn -0.593616 0.671010 -0.444227
+vn -0.230903 -0.664235 -0.710929
+vn 0.244453 0.648396 0.720969
+vn -0.556871 0.678060 -0.479690
+vn -0.267037 -0.691946 -0.670705
+vn 0.501206 -0.719199 0.481124
+vn 0.238990 0.601733 0.762078
+vn -0.339671 0.758660 -0.555895
+vn -0.235847 -0.734703 -0.636036
+vn 0.301309 -0.724021 0.620441
+vn 0.267678 0.620441 0.737114
+vn -0.053621 0.683035 -0.728385
+vn -0.319041 -0.697836 -0.641224
+vn -0.031617 -0.747398 0.663594
+vn 0.280648 0.632038 0.722312
+vn -0.251320 -0.602649 0.757347
+vn 0.229347 0.683645 -0.692831
+vn -0.358837 -0.683462 -0.635670
+vn 0.395276 0.917966 -0.032228
+vn -0.110691 0.082461 0.990417
+vn 0.075228 -0.067354 -0.994873
+vn -0.431471 -0.901456 0.033998
+vn 0.730827 0.660665 0.171422
+vn 0.639485 0.753990 0.149998
+vn -0.221137 0.077059 0.972167
+vn 0.147618 -0.004028 -0.989013
+vn 0.234199 0.077059 -0.969115
+vn -0.788842 -0.586047 -0.185034
+vn -0.708182 -0.686178 -0.166112
+vn -0.307566 -0.004028 0.951506
+vn 0.397839 0.912900 0.091189
+vn 0.204688 0.089755 -0.974670
+vn -0.491470 -0.863186 -0.115482
+vn -0.244514 0.084323 0.965941
+vn 0.121281 0.986816 0.106906
+vn 0.493728 -0.047487 -0.868313
+vn -0.361400 -0.926572 0.104038
+vn -0.554277 0.151128 0.818476
+vn 0.082034 0.987915 -0.131443
+vn 0.769860 -0.114597 -0.627796
+vn -0.141057 -0.987152 0.074740
+vn -0.807306 0.186865 0.559740
+vn 0.053194 0.982116 -0.180425
+vn -0.827937 0.133122 0.544755
+vn 0.760643 -0.172460 -0.625813
+vn -0.107517 -0.989074 0.100528
+vn 0.124516 0.889706 -0.439161
+vn 0.039735 -0.106204 -0.993530
+vn -0.225227 -0.940855 -0.252968
+vn -0.245430 0.030000 0.968932
+vn 0.493088 0.860073 -0.130650
+vn -0.646809 0.114048 -0.754051
+vn -0.492813 -0.849300 0.189093
+vn 0.533616 -0.260353 0.804621
+vn 0.574877 0.619556 -0.534440
+vn 0.561174 -0.375683 0.737510
+vn -0.765465 0.319681 -0.558397
+vn -0.779107 -0.455824 0.430311
+vn 0.771294 0.213538 -0.599536
+vn -0.713370 0.461226 -0.527543
+vn -0.639729 -0.200934 0.741844
+vn 0.670797 -0.394513 0.627979
+vn -0.017273 0.298990 -0.954070
+vn 0.997833 -0.062288 -0.019929
+vn -0.990966 0.123936 0.050996
+vn 0.028413 -0.235267 0.971496
+vn 0.925962 0.377575 0.000183
+vn 0.842311 0.538957 0.000153
+vn 0.054476 0.071322 0.995941
+vn -0.096133 0.001679 -0.995361
+vn 0.054903 0.071322 -0.995911
+vn -0.949736 -0.313028 -0.000183
+vn -0.875576 -0.483047 -0.000183
+vn -0.096561 0.001679 0.995300
+vn 0.753075 0.657888 0.000153
+vn -0.037324 0.014557 -0.999176
+vn -0.796411 -0.604724 -0.000153
+vn -0.037751 0.014557 0.999176
+vn 0.802118 0.597156 0.000427
+vn -0.034303 0.021088 0.999176
+vn -0.033296 0.020112 -0.999237
+vn -0.842769 -0.538224 0.000000
+vn 0.761986 0.643239 -0.074801
+vn 0.136906 -0.113376 0.984069
+vn -0.117893 0.215155 -0.969420
+vn -0.826472 -0.554399 -0.097720
+vn 0.741447 0.669668 0.042238
+vn -0.273568 0.336375 -0.901089
+vn -0.780328 -0.625324 -0.004334
+vn 0.215247 -0.303873 0.928068
+vn 0.835383 0.549577 0.007965
+vn -0.272347 0.257820 -0.927000
+vn -0.858150 -0.508377 0.071169
+vn 0.136937 -0.263924 0.954741
+vn 0.936369 0.348613 -0.040620
+vn 0.085269 -0.101474 0.991150
+vn -0.195135 0.135990 -0.971282
+vn -0.945738 -0.294290 0.137516
+vn 0.971282 0.214118 -0.103519
+vn 0.087497 0.010743 0.996094
+vn -0.136967 0.050935 -0.989257
+vn -0.983123 -0.145665 0.110477
+vn 0.985961 0.148198 -0.076479
+vn -0.117832 -0.019196 -0.992828
+vn -0.987793 -0.075259 0.136143
+vn 0.086276 0.086123 0.992523
+vn 0.631306 -0.002289 -0.775506
+vn 0.762688 0.171972 0.623463
+vn -0.769616 -0.122929 -0.626514
+vn -0.634938 0.051363 0.770806
+vn -0.189093 0.275521 -0.942473
+vn -0.176244 0.448744 -0.876095
+vn 0.963897 0.061586 -0.258980
+vn -0.957335 0.006226 0.288797
+vn -0.989135 0.062716 0.132756
+vn 0.191931 -0.219153 0.956603
+vn 0.180670 -0.396954 0.899869
+vn 0.994659 0.006226 -0.102847
+vn -0.142155 0.689352 -0.710288
+vn -0.981780 0.052919 0.182379
+vn 0.150212 -0.644215 0.749931
+vn 0.976318 0.055330 -0.209113
+vn -0.211524 0.740532 -0.637806
+vn 0.944304 -0.145207 -0.295236
+vn -0.920316 0.153844 0.359569
+vn 0.057955 -0.675619 0.734947
+vn -0.085391 0.801752 -0.591510
+vn 0.814142 -0.243049 -0.527329
+vn -0.790521 0.384869 0.476302
+vn 0.074801 -0.750084 0.657063
+vn -0.011719 0.817286 -0.576067
+vn -0.767876 0.308023 0.561632
+vn 0.075961 -0.800317 0.594684
+vn 0.808466 -0.349925 -0.473190
+vn -0.023682 0.759606 -0.649922
+vn 0.899960 -0.209784 -0.382153
+vn -0.873012 0.249428 0.419050
+vn 0.165563 -0.752220 0.637745
+vn -0.144780 0.627064 -0.765374
+vn -0.921842 0.061769 0.382580
+vn 0.191626 -0.584918 0.788079
+vn 0.970946 -0.135258 -0.197302
+vn -0.181616 0.379864 -0.907010
+vn 0.979797 0.017090 -0.199225
+vn -0.961150 0.014924 0.275491
+vn 0.256020 -0.325938 0.910031
+vn -0.261849 0.111698 -0.958586
+vn 0.990234 0.044801 -0.131901
+vn -0.947356 -0.000092 0.320170
+vn 0.209571 -0.053224 0.976318
+vn -0.848323 -0.046876 -0.527360
+vn 0.516617 -0.098453 -0.850520
+vn -0.512619 0.139500 0.847194
+vn 0.844264 0.089084 0.528428
+vn -0.439436 0.804468 0.399579
+vn -0.314432 0.905271 0.285562
+vn -0.611408 -0.059053 -0.789087
+vn 0.727592 -0.059053 0.683432
+vn 0.657063 0.090945 0.748314
+vn 0.468978 -0.773400 -0.426435
+vn 0.347728 -0.882595 -0.316324
+vn -0.682150 0.091494 -0.725455
+vn -0.051119 0.997620 0.045595
+vn -0.657521 0.078799 -0.749290
+vn 0.683950 0.078097 0.725303
+vn 0.087039 -0.993042 -0.079043
+vn 0.114963 0.988708 -0.095981
+vn -0.642842 0.003693 -0.765984
+vn 0.701407 0.018067 0.712485
+vn -0.062288 -0.996979 0.045808
+vn 0.504379 0.658895 -0.558061
+vn 0.979247 -0.201086 -0.025056
+vn 0.189459 -0.849391 0.492538
+vn -0.741844 0.554491 -0.377087
+vn 0.093936 0.511673 -0.853999
+vn -0.357646 0.717429 0.597797
+vn 0.350261 -0.793603 -0.497452
+vn -0.043794 -0.635975 0.770440
+vn 0.303720 0.525834 -0.794488
+vn -0.058016 0.734550 0.676046
+vn -0.034730 -0.804498 -0.592883
+vn -0.351848 -0.649220 0.674306
+vn 0.383892 0.506699 -0.771905
+vn 0.332072 0.647359 0.686026
+vn -0.362774 -0.605457 -0.708365
+vn -0.488968 -0.591815 0.640797
+vn 0.454787 0.495743 -0.739830
+vn -0.609302 -0.431623 -0.665120
+vn -0.536851 -0.494583 0.683493
+vn 0.526811 0.420240 0.738792
+vn 0.609210 0.301248 -0.733543
+vn -0.696463 -0.303140 -0.650380
+vn -0.658132 -0.267861 0.703635
+vn 0.592944 0.313089 0.741844
+vn 0.012848 -0.063478 -0.997894
+vn 0.950316 0.310923 -0.013398
+vn -0.960967 -0.276254 0.012879
+vn -0.028230 0.096713 0.994903
+vn -0.330638 0.685934 0.648183
+vn -0.325510 0.697775 0.638050
+vn -0.881802 0.009949 -0.471480
+vn 0.899350 0.009949 0.437086
+vn 0.894559 0.019990 0.446455
+vn 0.343028 -0.655782 -0.672475
+vn 0.338389 -0.667684 -0.663045
+vn -0.886685 0.019990 -0.461867
+vn -0.283151 0.780480 0.557329
+vn 0.883969 0.052339 0.464583
+vn 0.299783 -0.750542 -0.588885
+vn -0.895108 0.050264 -0.442915
+vn -0.378155 0.802210 0.461959
+vn -0.728294 0.169012 -0.664052
+vn 0.777795 -0.215522 0.590381
+vn 0.205420 -0.730796 -0.650929
+vn -0.350993 0.709098 0.611499
+vn 0.570757 -0.357982 0.738945
+vn 0.381634 -0.689718 -0.615284
+vn -0.539506 0.369732 -0.756432
+vn -0.433393 0.605121 0.667776
+vn -0.564043 0.290323 -0.773003
+vn 0.646962 -0.330271 0.687277
+vn 0.498764 -0.593402 -0.631703
+vn -0.640858 0.298532 0.707205
+vn -0.574175 0.214331 -0.790155
+vn 0.731925 -0.239479 0.637867
+vn 0.673391 -0.268654 -0.688711
+vn -0.714469 0.060854 0.696982
+vn 0.676962 -0.158879 0.718619
+vn 0.733787 -0.024140 -0.678915
+vn -0.667318 0.199011 -0.717673
+vn -0.673421 -0.054903 0.737175
+vn 0.712638 0.031007 0.700797
+vn 0.773705 0.097049 -0.626057
+vn -0.638325 0.017823 -0.769524
+vn -0.735649 -0.131077 0.664510
+vn -0.681753 -0.117710 -0.722007
+vn 0.645131 0.151341 0.748894
+vn 0.703726 0.165777 -0.690817
+vn -0.043184 0.007172 0.999023
+vn -0.991028 -0.127079 -0.040651
+vn 0.986969 0.155492 0.040773
+vn 0.037446 0.021027 -0.999054
+vn -0.103946 0.458937 0.882351
+vn -0.106967 0.405957 0.907590
+vn -0.988067 0.017792 -0.152898
+vn 0.990814 0.039308 0.129246
+vn 0.996551 0.017853 0.080721
+vn 0.106998 -0.404736 -0.908139
+vn 0.109684 -0.349895 -0.930326
+vn -0.993713 0.039308 -0.104556
+vn -0.105289 0.435621 0.893918
+vn 0.988708 0.045198 0.142735
+vn 0.108585 -0.379925 -0.918607
+vn -0.994873 0.044923 -0.090457
+vn -0.091311 0.619037 0.780023
+vn 0.987976 0.057405 0.143406
+vn 0.095706 -0.571306 -0.815088
+vn -0.994140 0.057466 -0.091281
+vn 0.035981 0.714469 0.698691
+vn 0.959166 0.257393 -0.116947
+vn 0.227912 -0.600482 -0.766442
+vn -0.970367 -0.236763 0.047884
+vn -0.097934 0.593310 0.798975
+vn -0.874783 -0.435499 0.212226
+vn 0.849055 0.436689 -0.297189
+vn 0.024567 -0.574053 -0.818415
+vn -0.031922 0.522904 0.851772
+vn 0.887600 0.392773 -0.240455
+vn -0.016572 -0.484695 -0.874508
+vn -0.913755 -0.361827 0.184576
+vn 0.136509 0.313883 0.939573
+vn -0.904965 -0.411664 0.107273
+vn 0.852870 0.405560 -0.328806
+vn -0.108127 -0.235633 -0.965789
+vn 0.117710 0.027131 0.992676
+vn 0.924558 0.309763 -0.221809
+vn -0.311167 -0.020325 -0.950133
+vn -0.945311 -0.250923 0.208289
+vn 0.262246 -0.028565 0.964568
+vn 0.953032 0.170537 -0.250160
+vn -0.208319 0.095798 -0.973327
+vn -0.974944 -0.108310 0.194220
+vn 0.844783 0.075747 0.529649
+vn -0.505173 -0.221137 0.834193
+vn 0.497848 0.262185 -0.826655
+vn -0.850032 -0.033479 -0.525651
+vn 0.004700 0.238472 -0.971129
+vn 0.004730 0.184790 -0.982757
+vn 0.999512 0.026704 -0.015687
+vn -0.999298 0.026704 -0.025361
+vn -0.999573 0.017243 0.023316
+vn -0.004730 -0.196356 0.980499
+vn -0.004822 -0.142308 0.989807
+vn 0.999298 0.017121 0.032929
+vn 0.004730 0.104038 -0.994537
+vn 0.999603 0.020783 0.018372
+vn -0.999725 0.020447 0.008515
+vn -0.004761 -0.060823 0.998108
+vn -0.012665 0.161168 -0.986816
+vn 0.999207 -0.018159 -0.035371
+vn -0.996826 0.072237 -0.032991
+vn -0.026795 -0.115543 0.992920
+vn 0.007111 0.390210 -0.920682
+vn 0.990661 -0.104190 -0.087588
+vn -0.980407 0.195227 -0.025880
+vn -0.057588 -0.341533 0.938078
+vn 0.061434 0.449232 -0.891263
+vn -0.979919 0.180670 0.084078
+vn -0.023133 -0.416547 0.908811
+vn 0.984558 -0.174932 0.002380
+vn 0.045595 0.189123 -0.980865
+vn -0.991211 0.083041 0.102664
+vn 0.024567 -0.151311 0.988159
+vn 0.994476 -0.069735 0.078127
+vn 0.009735 0.119816 -0.992737
+vn 0.998016 0.039125 -0.049226
+vn -0.998108 0.014069 -0.059725
+vn 0.004303 -0.077944 0.996918
+vn -0.035340 0.101016 -0.994232
+vn -0.995514 0.066713 0.066836
+vn -0.034181 -0.053713 0.997955
+vn 0.996826 -0.033235 0.072085
+vn 0.090030 0.078921 -0.992798
+vn 0.993255 0.108310 -0.041200
+vn -0.995544 -0.059755 -0.072878
+vn 0.099246 -0.019501 0.994842
+vn -0.697104 -0.072420 -0.713279
+vn 0.661000 0.348827 -0.664327
+vn -0.668569 -0.320841 0.670827
+vn 0.692953 0.103580 0.713462
+vn -0.198767 0.395093 0.896847
+vn -0.192541 0.457656 0.868007
+vn -0.968078 0.001648 -0.250618
+vn 0.983306 0.001648 0.181860
+vn 0.971221 0.027558 0.236488
+vn 0.201239 -0.367504 -0.907956
+vn 0.195654 -0.429853 -0.881436
+vn -0.980285 0.027619 -0.195502
+vn -0.160222 0.674032 0.721061
+vn 0.960418 0.069094 0.269814
+vn 0.164708 -0.651631 -0.740410
+vn -0.984497 0.069979 -0.160741
+vn -0.127415 0.812860 0.568316
+vn -0.974181 0.014618 -0.225227
+vn 0.978484 0.012329 0.205908
+vn 0.132694 -0.794488 -0.592547
+vn 0.143406 0.748619 0.647267
+vn 0.916562 0.313944 -0.247658
+vn 0.283914 -0.569811 -0.771142
+vn -0.897671 -0.436445 0.060335
+vn 0.026124 0.516526 0.855861
+vn -0.604755 -0.670705 0.429365
+vn 0.582080 0.677206 -0.450026
+vn -0.060549 -0.515061 -0.855007
+vn 0.077303 0.411206 0.908231
+vn -0.730522 -0.584094 0.353710
+vn 0.695944 0.561693 -0.447340
+vn -0.189123 -0.463576 -0.865627
+vn 0.284738 0.269143 0.920011
+vn 0.766442 0.474044 -0.433332
+vn -0.290201 -0.237800 -0.926939
+vn -0.817316 -0.479629 0.319224
+vn 0.287179 0.071688 0.955168
+vn -0.879971 -0.311899 0.358226
+vn 0.853420 0.335643 -0.398663
+vn -0.442274 -0.097995 -0.891476
+vn 0.308817 0.045839 0.949980
+vn 0.924284 -0.005158 -0.381634
+vn -0.444533 -0.013092 -0.895657
+vn -0.926725 0.034577 0.374065
+vn 0.915281 -0.105045 0.388806
+vn -0.383374 0.156529 0.910215
+vn 0.384472 -0.135563 -0.913114
+vn -0.912748 0.126011 -0.388562
+vn -0.422315 0.902829 0.080599
+vn -0.398022 0.914212 0.075961
+vn -0.167730 -0.004151 -0.985809
+vn 0.207160 -0.004151 0.978271
+vn 0.196753 0.017975 0.980285
+vn 0.450697 -0.888485 -0.086032
+vn 0.426801 -0.900662 -0.081454
+vn -0.178137 0.017975 -0.983825
+vn -0.372173 0.925504 0.069796
+vn -0.170446 0.008179 -0.985321
+vn 0.206244 0.005982 0.978454
+vn 0.406354 -0.910520 -0.076022
+vn -0.319254 0.939879 -0.121189
+vn 0.253090 0.185827 -0.949400
+vn -0.227363 -0.177587 0.957457
+vn 0.444258 -0.856563 -0.262459
+vn -0.316324 0.941771 0.113804
+vn 0.643880 0.341960 -0.684408
+vn -0.642109 -0.280557 0.713401
+vn 0.351939 -0.930143 -0.104465
+vn -0.402783 0.912107 0.075961
+vn -0.581286 -0.363231 0.728111
+vn 0.395947 -0.918119 -0.016602
+vn 0.662160 0.239265 -0.710105
+vn -0.622272 0.727378 -0.289254
+vn -0.527390 -0.397534 0.750847
+vn 0.676687 -0.688101 0.261849
+vn 0.714988 0.229835 -0.660268
+vn -0.762810 0.452864 -0.461501
+vn -0.621357 -0.333201 0.709128
+vn 0.745567 -0.437666 0.502518
+vn 0.660207 0.339854 -0.669759
+vn -0.815699 0.234962 -0.528550
+vn 0.693533 0.185766 -0.696036
+vn -0.560076 -0.194037 0.805383
+vn 0.748436 -0.225532 0.623615
+vn -0.814905 0.000000 -0.579577
+vn -0.594775 0.043397 0.802698
+vn 0.760613 0.034516 0.648274
+vn 0.639729 -0.010285 -0.768517
+vn -0.991852 0.043306 0.119724
+vn -0.120823 -0.134648 -0.983490
+vn 0.120579 0.157079 0.980163
+vn 0.992492 -0.020356 -0.120548
+vn 0.462600 0.340190 -0.818659
+vn 0.423231 0.509110 -0.749413
+vn 0.899747 0.054689 0.432936
+vn -0.910489 -0.014130 -0.413221
+vn -0.834925 0.055147 -0.547533
+vn -0.467452 -0.311563 0.827265
+vn -0.430403 -0.483535 0.762169
+vn 0.823756 -0.014130 0.566759
+vn 0.385052 0.621754 -0.681997
+vn -0.883999 -0.002747 -0.467422
+vn -0.393963 -0.598407 0.697623
+vn 0.856288 -0.003021 0.516434
+vn 0.392621 0.603351 -0.694113
+vn 0.871212 0.020936 0.490432
+vn -0.869900 0.020508 -0.492752
+vn -0.401898 -0.577654 0.710440
+vn 0.373577 0.747276 -0.549486
+vn -0.774132 -0.070620 -0.629017
+vn -0.253365 -0.700674 0.666921
+vn 0.804224 0.195166 0.561327
+vn 0.252907 0.789026 -0.559862
+vn -0.710532 -0.261910 -0.653066
+vn -0.285836 -0.777154 0.560625
+vn 0.674490 0.230384 0.701376
+vn 0.343486 0.699759 -0.626331
+vn 0.699179 0.203955 0.685171
+vn -0.742759 -0.230140 -0.628742
+vn -0.377758 -0.682882 0.625233
+vn 0.380444 0.552568 -0.741508
+vn 0.779229 0.056520 0.624165
+vn -0.836970 -0.086032 -0.540391
+vn -0.511765 -0.537950 0.669820
+vn 0.529191 0.313730 -0.788354
+vn -0.883663 0.041963 -0.466201
+vn -0.512223 -0.286355 0.809687
+vn 0.804865 -0.056734 0.590716
+vn 0.535661 0.105533 -0.837794
+vn 0.830531 -0.009247 0.556841
+vn -0.856502 0.035554 -0.514878
+vn -0.535813 -0.075076 0.840968
+vn -0.216956 0.052950 -0.974731
+vn 0.975951 0.022645 -0.216681
+vn -0.975829 -0.000946 0.218421
+vn 0.216132 -0.031220 0.975860
+vn 0.710807 0.446760 0.543260
+vn 0.655080 0.565691 0.500778
+vn -0.569506 0.043458 0.820826
+vn 0.556566 -0.018464 -0.830561
+vn 0.642506 0.043275 -0.765038
+vn -0.718070 -0.427900 -0.548814
+vn -0.664266 -0.548509 -0.507767
+vn -0.655324 -0.018464 0.755089
+vn 0.553819 0.717795 0.421918
+vn -0.601611 0.027192 0.798303
+vn 0.612842 0.029328 -0.789636
+vn -0.570208 -0.697043 -0.434675
+vn 0.401013 0.672903 0.621570
+vn -0.822016 0.329356 0.464522
+vn 0.685903 -0.435163 -0.583209
+vn -0.752098 -0.506485 -0.421644
+vn 0.572497 0.506546 0.644673
+vn 0.703818 -0.705985 -0.078555
+vn -0.605914 -0.459517 -0.649342
+vn -0.676199 0.730674 0.093936
+vn 0.618885 0.413495 0.667806
+vn 0.703665 -0.686728 -0.182165
+vn -0.516312 -0.488784 -0.703177
+vn -0.744438 0.659261 0.105625
+vn 0.610187 0.306253 0.730644
+vn 0.824580 -0.398480 -0.401563
+vn -0.431257 -0.373333 -0.821345
+vn -0.847530 0.397839 0.351268
+vn 0.531816 0.201453 0.822504
+vn -0.886624 0.122227 0.445998
+vn 0.839412 -0.119907 -0.530045
+vn -0.481002 -0.187964 -0.856319
+vn 0.513138 0.097690 0.852718
+vn 0.861721 -0.026460 -0.506638
+vn -0.497452 -0.077395 -0.864009
+vn -0.863796 0.047090 0.501572
+vn 0.512040 0.016633 0.858791
+vn -0.879910 0.011536 0.474960
+vn 0.844386 0.009186 -0.535600
+vn -0.500351 0.004486 -0.865780
+vn 0.967071 -0.033784 0.252174
+vn -0.251625 -0.053529 0.966308
+vn 0.251350 0.068453 -0.965453
+vn -0.966460 0.048769 -0.252083
+vn 0.779107 0.516923 0.354595
+vn 0.722160 0.608600 0.328654
+vn -0.383465 0.039491 0.922697
+vn 0.367687 -0.015748 -0.929807
+vn 0.443861 0.039491 -0.895199
+vn -0.790094 -0.496384 -0.359569
+vn -0.734916 -0.589892 -0.334483
+vn -0.459578 -0.015748 0.887967
+vn 0.675283 0.670431 0.307321
+vn 0.396924 -0.000671 -0.917814
+vn -0.689749 -0.652425 -0.313913
+vn -0.431349 -0.000671 0.902158
+vn 0.569842 0.779839 0.259072
+vn -0.372845 0.074740 0.924863
+vn 0.452406 0.075350 -0.888607
+vn -0.589343 -0.762108 -0.268014
+vn 0.305979 0.927671 0.213874
+vn 0.610187 -0.090152 -0.787072
+vn -0.462447 -0.885617 -0.042268
+vn -0.597217 0.168004 0.784265
+vn 0.347301 0.933561 0.088382
+vn 0.751640 -0.232917 -0.617054
+vn -0.354076 -0.928739 -0.109684
+vn -0.773370 0.212897 0.597125
+vn 0.450453 0.866634 0.214484
+vn -0.774468 0.154149 0.613483
+vn 0.703940 -0.256752 -0.662191
+vn -0.439131 -0.862209 -0.252388
+vn 0.665365 0.736290 0.122868
+vn 0.364666 0.109592 -0.924650
+vn -0.510788 -0.665426 -0.544267
+vn -0.438643 -0.157750 0.884671
+vn 0.758538 0.509384 0.406323
+vn 0.051363 0.386486 -0.920835
+vn -0.786767 -0.539354 -0.300088
+vn -0.174169 -0.443525 0.879147
+vn 0.803644 0.448927 0.390576
+vn -0.252022 -0.182531 0.950316
+vn 0.286843 0.228492 -0.930296
+vn -0.849208 -0.454207 -0.269326
+vn 0.797266 0.421461 -0.432081
+vn 0.315836 0.305918 0.898129
+vn -0.325022 -0.291879 -0.899503
+vn -0.804956 -0.406171 0.432478
+vn -0.689566 0.657247 0.304117
+vn -0.715018 0.623920 0.315348
+vn -0.382611 -0.002869 -0.923887
+vn 0.396283 0.021821 0.917844
+vn 0.424238 -0.002869 0.905515
+vn 0.703269 -0.639668 -0.310160
+vn 0.728202 -0.605396 -0.321177
+vn -0.410565 0.021821 -0.911557
+vn -0.684103 0.664357 0.301004
+vn 0.380749 0.037263 0.923887
+vn 0.698569 -0.646199 -0.307199
+vn -0.426405 0.038270 -0.903714
+vn -0.599780 0.787866 0.139470
+vn -0.157903 0.260506 -0.952452
+vn 0.154393 -0.217750 0.963683
+vn 0.569353 -0.697562 -0.434950
+vn -0.415021 0.858455 0.301218
+vn -0.226661 -0.381420 0.896146
+vn 0.449507 -0.820276 -0.353587
+vn 0.189795 0.499191 -0.845424
+vn -0.290078 0.875790 0.385754
+vn 0.288675 0.461684 -0.838710
+vn -0.263771 -0.459426 0.848109
+vn 0.313883 -0.872463 -0.374523
+vn -0.353130 0.935514 -0.007324
+vn -0.492599 -0.733757 0.467849
+vn 0.692343 -0.689322 -0.213141
+vn 0.728507 0.459487 -0.508042
+vn -0.737907 0.576495 -0.350902
+vn 0.773461 0.619068 -0.135929
+vn -0.680471 -0.702628 0.207923
+vn 0.627094 -0.670675 0.396069
+vn -0.557756 0.491714 -0.668661
+vn -0.681997 -0.668722 0.296060
+vn 0.621570 -0.416761 0.663228
+vn 0.778710 0.605335 -0.164739
+vn -0.528520 0.302225 -0.793268
+vn 0.713248 0.678518 -0.175573
+vn -0.714103 -0.669362 0.204749
+vn 0.486099 -0.316416 0.814570
+vn -0.875942 -0.239570 -0.418653
+vn 0.166326 0.666585 -0.726615
+vn -0.174078 -0.655080 0.735221
+vn 0.868313 0.250618 0.427992
+vn -0.632435 0.773614 -0.038881
+vn -0.574023 0.818049 -0.035279
+vn 0.091128 -0.019135 -0.995636
+vn -0.031556 -0.019135 0.999298
+vn -0.072085 0.033143 0.996826
+vn 0.648640 -0.760033 0.039888
+vn 0.591205 -0.805689 0.036348
+vn 0.050600 0.033143 -0.998138
+vn -0.559679 0.827967 -0.034394
+vn 0.085116 -0.014924 -0.996246
+vn -0.037599 -0.014924 0.999176
+vn 0.577837 -0.815363 0.035524
+vn -0.456832 0.889126 -0.026917
+vn -0.086245 0.077303 0.993255
+vn 0.480483 -0.876522 0.027802
+vn 0.037049 0.074709 -0.996490
+vn -0.198462 0.951933 0.233253
+vn 0.630451 0.297494 0.716941
+vn 0.621906 -0.747337 0.233772
+vn -0.519761 -0.471236 -0.712546
+vn -0.544084 0.821986 0.168096
+vn -0.834773 -0.549089 -0.040345
+vn 0.855251 0.518021 0.013733
+vn 0.519974 -0.832942 -0.189093
+vn -0.567309 0.730430 0.380261
+vn -0.812738 -0.542802 -0.211615
+vn 0.897946 0.422254 0.123905
+vn 0.471297 -0.776269 -0.418592
+vn -0.629749 0.636341 0.445479
+vn 0.812922 0.257912 0.522080
+vn 0.407849 -0.684591 -0.604114
+vn -0.824671 -0.220710 -0.520737
+vn -0.559008 0.584490 0.588061
+vn 0.762230 -0.034791 0.646352
+vn 0.567614 -0.568407 -0.595569
+vn -0.679312 -0.025758 -0.733390
+vn -0.652394 0.261452 0.711325
+vn 0.790918 0.008789 0.611835
+vn 0.674490 -0.240486 -0.697989
+vn -0.661153 -0.035707 -0.749352
+vn 0.026826 0.071108 0.997101
+vn -0.998871 0.001221 0.046999
+vn 0.998657 0.013367 -0.049837
+vn -0.024415 -0.056246 -0.998108
+vn 0.622150 0.550005 -0.557085
+vn 0.559038 0.660878 -0.500687
+vn 0.696371 0.048524 0.715995
+vn -0.710105 -0.026551 -0.703543
+vn -0.634999 0.048677 -0.770959
+vn -0.630177 -0.533311 0.564257
+vn -0.568560 -0.646046 0.509232
+vn 0.621143 -0.026551 0.783197
+vn 0.505997 0.733787 -0.453291
+vn -0.681204 -0.005982 -0.732047
+vn -0.516617 -0.720359 0.462752
+vn 0.652486 -0.006165 0.757744
+vn 0.564013 0.709372 -0.422620
+vn -0.596820 -0.087283 -0.797571
+vn -0.505020 -0.683432 0.527085
+vn 0.583270 0.100314 0.806024
+vn 0.524003 0.710501 -0.469649
+vn 0.496506 0.200568 0.844539
+vn -0.505051 -0.180212 -0.844020
+vn -0.536363 -0.696310 0.476882
+vn 0.577563 0.641621 -0.504685
+vn -0.549883 -0.193884 -0.812403
+vn -0.603046 -0.631123 0.487838
+vn 0.482253 0.149266 0.863186
+vn 0.698752 0.538560 -0.470779
+vn -0.485641 -0.245003 -0.839106
+vn -0.661489 -0.496658 0.561907
+vn 0.446028 0.240120 0.862178
+vn 0.725181 0.429182 -0.538408
+vn 0.397961 0.299203 0.867214
+vn -0.450148 -0.306101 -0.838832
+vn -0.752739 -0.424146 0.503433
+vn 0.859920 0.249794 -0.445082
+vn -0.468398 -0.366894 -0.803705
+vn -0.828639 -0.196112 0.524247
+vn 0.332133 0.351756 0.875149
+vn 0.871364 0.038423 -0.489059
+vn 0.389935 0.361248 0.847011
+vn -0.406690 -0.343181 -0.846644
+vn -0.917203 -0.056520 0.394330
+vn 0.334849 -0.140873 -0.931669
+vn 0.929075 0.200323 0.310923
+vn -0.930601 -0.186743 -0.314737
+vn -0.337962 0.154332 0.928404
+vn -0.501328 0.853511 0.141942
+vn -0.405957 0.906613 0.114933
+vn -0.183142 -0.006104 -0.983062
+vn 0.359416 -0.006104 0.933134
+vn 0.307108 0.079867 0.948302
+vn 0.612110 -0.771508 -0.173315
+vn 0.525742 -0.837489 -0.148869
+vn -0.235664 0.079867 -0.968535
+vn -0.424909 0.897183 0.120304
+vn -0.179052 -0.020936 -0.983612
+vn 0.363201 -0.020936 0.931455
+vn 0.545000 -0.824061 -0.154332
+vn -0.699271 0.686850 0.198004
+vn -0.155889 -0.005768 -0.987732
+vn 0.385113 -0.005768 0.922849
+vn 0.786401 -0.576128 -0.222663
+vn -0.828181 0.509018 0.234504
+vn 0.300699 0.064516 0.951506
+vn 0.888760 -0.383068 -0.251656
+vn -0.242805 0.064516 -0.967895
+vn -0.837001 0.493149 0.237007
+vn -0.232887 0.059603 -0.970672
+vn 0.310587 0.059603 0.948668
+vn 0.895962 -0.364483 -0.253700
+vn -0.931944 0.248604 0.263894
+vn -0.151952 0.052522 -0.986969
+vn 0.388073 0.052522 0.920103
+vn 0.956786 -0.105441 -0.270913
+vn -0.494766 -0.008148 0.868984
+vn -0.876919 -0.008148 -0.480544
+vn 0.877499 0.107974 0.467238
+vn 0.502243 0.107974 -0.857936
+vn -0.234107 0.714316 -0.659474
+vn -0.278024 0.556749 -0.782739
+vn 0.923124 0.124790 -0.363628
+vn -0.945769 0.124790 0.299875
+vn -0.896207 0.015015 0.443342
+vn 0.265023 -0.610279 0.746513
+vn 0.300729 -0.435347 0.848537
+vn 0.974914 0.013855 -0.222083
+vn -0.323069 0.259957 -0.909940
+vn 0.959624 0.061281 -0.274422
+vn -0.917905 0.058443 0.392407
+vn 0.331339 -0.122013 0.935575
+vn -0.394116 0.037843 -0.918241
+vn 0.956542 -0.043428 -0.288308
+vn -0.905057 0.189154 0.380840
+vn 0.306101 0.116306 0.944853
+vn -0.898953 0.104129 -0.425428
+vn 0.398633 -0.237403 -0.885830
+vn -0.382031 0.332408 0.862270
+vn 0.908963 -0.002686 0.416852
+vn -0.519761 0.547746 0.655568
+vn -0.550157 0.464553 0.693899
+vn -0.737541 0.047304 -0.673605
+vn 0.774865 0.086550 0.626148
+vn 0.824061 0.047273 0.564501
+vn 0.562639 -0.424085 -0.709616
+vn 0.585498 -0.334422 -0.738456
+vn -0.786340 0.086550 -0.611682
+vn 0.145848 0.262185 0.953917
+vn -0.962035 0.262185 0.075472
+vn 0.980041 -0.167943 -0.106296
+vn -0.119968 -0.167943 -0.978454
+vn -0.605579 0.312571 -0.731803
+vn -0.972808 0.221290 -0.067904
+vn 0.115329 0.221290 -0.968352
+vn -0.757378 0.069002 0.649281
+vn -0.099643 -0.123569 0.987304
+vn 0.627705 -0.174535 0.758599
+vn 0.988495 -0.123569 0.086856
+vn 0.779534 0.069002 -0.622517
+vn -0.009339 0.909543 0.415448
+vn -0.012604 0.850551 0.525712
+vn -0.993469 -0.005982 -0.113895
+vn 0.995788 0.091281 -0.006897
+vn 0.997681 -0.007355 -0.067537
+vn 0.012085 -0.843776 -0.536485
+vn 0.014008 -0.769127 -0.638905
+vn -0.994446 0.091281 -0.051790
+vn -0.018220 0.669851 0.742241
+vn 0.997101 0.013001 -0.074679
+vn 0.017701 -0.560015 -0.828272
+vn -0.992828 0.012513 -0.118778
+vn -0.021241 0.436659 0.899350
+vn 0.997436 0.043764 -0.056307
+vn 0.020600 -0.308054 -0.951140
+vn -0.993957 0.042817 -0.100803
+vn -0.022828 0.172552 0.984710
+vn 0.996643 0.062838 -0.052278
+vn 0.022034 -0.034669 -0.999146
+vn -0.993378 0.061495 -0.096896
+vn -0.022462 0.043153 0.998810
+vn 0.996918 0.069063 0.036836
+vn 0.022095 0.094852 -0.995239
+vn -0.997589 0.068545 -0.008484
+vn 0.689291 0.050935 0.722648
+vn -0.721152 0.050935 0.690848
+vn 0.722526 0.047426 -0.689688
+vn -0.690695 0.047426 -0.721549
+vn -0.214057 0.974975 -0.059633
+vn -0.302805 0.949278 -0.084353
+vn 0.317606 0.067598 -0.945799
+vn -0.217231 0.067598 0.973754
+vn -0.189428 -0.014710 0.981780
+vn 0.341594 -0.934996 0.095187
+vn 0.426191 -0.896786 0.118748
+vn 0.345561 -0.014710 -0.938261
+vn -0.400159 0.909635 -0.111484
+vn -0.207648 0.030732 0.977691
+vn 0.517716 -0.843287 0.144230
+vn 0.327830 0.030732 -0.944212
+vn -0.476791 0.641957 0.600421
+vn -0.097568 0.641957 -0.760491
+vn 0.180792 -0.594684 0.783349
+vn 0.559832 -0.594653 -0.576983
+vn -0.500687 0.531846 0.682943
+vn 0.215094 0.376507 0.901059
+vn -0.924039 0.376537 0.065920
+vn 0.823908 0.061251 0.563372
+vn 0.951476 -0.289773 -0.103336
+vn 0.539445 -0.409284 -0.735801
+vn -0.187658 -0.289773 -0.938505
+vn -0.785150 0.061251 -0.616260
+vn -0.111332 0.881344 0.459151
+vn -0.077212 0.945280 0.316904
+vn -0.946532 -0.041414 -0.319834
+vn 0.987915 -0.041414 0.149205
+vn 0.972930 0.087741 0.213660
+vn 0.132694 -0.826380 -0.547227
+vn 0.100009 -0.905789 -0.411695
+vn -0.962584 0.088473 -0.256050
+vn -0.055788 0.971831 0.228828
+vn -0.955779 -0.017182 -0.293497
+vn 0.984313 -0.017487 0.175512
+vn 0.079653 -0.941649 -0.326945
+vn -0.092593 0.918088 0.385357
+vn -0.953490 -0.014679 -0.301004
+vn 0.985412 -0.014252 0.169408
+vn 0.116550 -0.869716 -0.479568
+vn -0.145817 0.782983 0.604694
+vn -0.946074 -0.020325 -0.323252
+vn 0.988800 -0.020844 0.147771
+vn 0.165410 -0.711692 -0.682699
+vn -0.176031 0.664174 0.726524
+vn 0.978210 0.042146 0.203192
+vn 0.191351 -0.581225 -0.790918
+vn -0.962676 0.041292 -0.267403
+vn -0.180578 0.642232 0.744896
+vn -0.960112 0.034700 -0.277383
+vn 0.980529 0.034639 0.193213
+vn 0.195807 -0.556291 -0.807550
+vn 0.556047 0.436872 0.707053
+vn -0.818140 0.436872 0.373821
+vn 0.827509 -0.375347 -0.417463
+vn -0.544389 -0.375347 -0.750145
+vn 0.003662 0.992920 -0.118564
+vn 0.001495 0.998657 -0.051241
+vn -0.995911 -0.031037 -0.084811
+vn 0.999207 0.030457 -0.024873
+vn 0.999237 -0.031037 -0.022706
+vn -0.000336 -0.999908 0.011658
+vn 0.001648 -0.998413 -0.056032
+vn -0.995758 0.030457 -0.086612
+vn -0.003143 0.996490 0.083468
+vn 0.999359 -0.022187 -0.027314
+vn 0.006134 -0.981567 -0.190985
+vn -0.995849 -0.021485 -0.088382
+vn 0.131901 0.932707 0.335582
+vn 0.961486 0.008515 -0.274667
+vn 0.059023 -0.877041 -0.476760
+vn -0.984558 -0.149144 0.091617
+vn 0.695425 0.710074 0.110111
+vn -0.587237 0.449934 0.672811
+vn 0.557390 -0.407971 -0.723075
+vn -0.712729 -0.677541 -0.181494
+vn -0.399762 0.716392 0.571795
+vn -0.421125 0.678060 0.602344
+vn -0.787591 0.025666 -0.615619
+vn 0.827631 0.057619 0.558275
+vn 0.848628 0.025666 0.528336
+vn 0.441420 -0.637532 -0.631397
+vn 0.460341 -0.595386 -0.658437
+vn -0.808496 0.057619 -0.585620
+vn 0.266732 0.449507 0.852473
+vn -0.892239 0.449507 0.042146
+vn 0.917325 -0.389599 -0.081668
+vn -0.238258 -0.389599 -0.889615
+vn 0.146519 0.980163 -0.133335
+vn 0.579272 0.693564 0.428205
+vn -0.371868 0.693564 -0.616962
+vn 0.711386 -0.007782 0.702750
+vn 0.427503 -0.704611 0.566332
+vn -0.067934 -0.995758 0.061800
+vn -0.523637 -0.704611 -0.478835
+vn -0.632771 -0.007782 -0.774285
+vn -0.842738 0.520524 0.137242
+vn -0.931242 0.331248 0.151646
+vn -0.058107 0.011322 -0.998230
+vn 0.089572 0.087008 0.992157
+vn 0.261605 0.011322 0.965087
+vn 0.881863 -0.449080 -0.143590
+vn 0.954680 -0.253731 -0.155461
+vn -0.229835 0.087008 -0.969329
+vn -0.986755 -0.021088 0.160680
+vn 0.220496 0.045808 0.974303
+vn 0.981658 0.103732 -0.159856
+vn -0.100009 0.045808 -0.993927
+vn -0.986663 -0.025208 0.160680
+vn 0.094089 0.037477 0.994842
+vn 0.981170 0.108249 -0.159764
+vn -0.226417 0.037477 -0.973296
+vn -0.982604 0.094150 0.160009
+vn -0.146641 0.040559 -0.988342
+vn 0.174505 0.040559 0.983795
+vn 0.986908 -0.011872 -0.160710
+vn -0.974212 -0.160344 0.158635
+vn -0.067202 0.063326 -0.995697
+vn 0.252174 0.063326 0.965575
+vn 0.957213 0.243721 -0.155858
+vn -0.535661 -0.279305 0.796869
+vn -0.760826 -0.279336 -0.585711
+vn 0.741081 0.334941 0.581896
+vn 0.518143 0.334910 -0.786950
+vn -0.075381 0.995880 -0.050264
+vn 0.061251 0.997284 0.040803
+vn -0.594531 -0.069826 0.801019
+vn 0.514481 0.079012 -0.853816
+vn 0.511124 -0.069735 -0.856655
+vn 0.006867 -0.999939 0.004578
+vn -0.129765 -0.987762 -0.086428
+vn -0.590472 0.079012 0.803156
+vn 0.216803 0.965453 0.144475
+vn 0.519059 0.004364 -0.854701
+vn -0.282723 -0.940519 -0.188269
+vn -0.589343 0.003998 0.807855
+vn 0.556505 0.679037 -0.478683
+vn -0.227973 0.679037 0.697745
+vn 0.180883 -0.660726 -0.728477
+vn -0.602985 -0.660726 0.447005
+vn -0.170537 0.780572 0.601306
+vn 0.559282 0.552202 0.618244
+vn -0.800623 0.552202 0.232490
+vn 0.969787 0.027467 0.242317
+vn 0.812769 -0.513321 -0.275399
+vn 0.187750 -0.725639 -0.661946
+vn -0.547136 -0.513321 -0.661153
+vn -0.952605 0.027467 -0.302957
+vn 0.073214 0.997101 -0.019532
+vn 0.042299 0.999054 -0.009919
+vn 0.187750 0.023041 0.981933
+vn -0.327525 -0.003845 -0.944823
+vn -0.324809 0.021180 -0.945524
+vn -0.209937 -0.976104 0.056001
+vn -0.184545 -0.981597 0.048891
+vn 0.186651 -0.003845 0.982391
+vn 0.215705 0.974883 -0.055208
+vn -0.352489 -0.072451 -0.932981
+vn -0.351695 -0.931425 0.093417
+vn 0.161016 -0.070681 0.984405
+vn 0.419935 0.900601 -0.112033
+vn 0.200446 0.036287 0.979003
+vn -0.313883 0.036287 -0.948759
+vn -0.533952 -0.833399 0.142460
+vn 0.493301 0.859828 -0.131596
+vn -0.339152 0.005585 -0.940703
+vn -0.609638 -0.775780 0.162633
+vn 0.174505 0.005585 0.984619
+vn 0.742943 0.639271 -0.198218
+vn -0.379864 -0.003632 -0.925016
+vn -0.823145 -0.523606 0.219611
+vn 0.131382 -0.003632 0.991302
+vn 0.942595 0.219581 -0.251473
+vn 0.146031 0.055239 0.987732
+vn -0.365398 0.055239 -0.929197
+vn -0.963134 -0.079226 0.256966
+vn 0.506424 -0.015137 -0.862117
+vn 0.868587 -0.015137 0.495254
+vn -0.867794 0.115696 -0.483261
+vn -0.511704 0.115696 0.851314
+vn 0.004761 0.999969 0.003998
+vn 0.157994 0.978393 0.133213
+vn -0.711234 -0.069796 0.699454
+vn 0.588855 0.112217 -0.800378
+vn 0.565844 -0.070467 -0.821467
+vn -0.111698 -0.989288 -0.093631
+vn -0.263436 -0.939146 -0.220374
+vn -0.685232 0.112217 0.719596
+vn 0.455428 0.803613 0.383068
+vn 0.547014 -0.026643 -0.836665
+vn -0.539232 -0.711295 -0.450819
+vn -0.727287 -0.027924 0.685720
+vn 0.624683 0.511887 0.589648
+vn 0.594501 -0.032350 -0.803400
+vn -0.716361 -0.379986 -0.585131
+vn -0.744682 0.090091 0.661275
+vn 0.987518 0.147008 -0.056185
+vn 0.005280 0.340220 0.940306
+vn -0.034608 -0.245888 -0.968657
+vn -0.998291 -0.054231 0.020783
+vn 0.736167 0.661855 0.141270
+vn 0.825098 0.542283 0.158330
+vn -0.168676 0.104404 0.980102
+vn 0.206122 0.104404 -0.972930
+vn 0.093661 0.029359 -0.995148
+vn -0.820490 -0.549516 -0.157445
+vn -0.892392 -0.417463 -0.171270
+vn -0.281381 0.029359 0.959136
+vn 0.770470 0.283700 -0.570818
+vn 0.504410 0.283700 0.815516
+vn -0.546190 -0.191412 -0.815455
+vn -0.809290 -0.191412 0.555315
+vn 0.088778 0.797876 0.596210
+vn 0.761345 0.564898 0.318094
+vn -0.635609 0.564898 0.526139
+vn 0.978607 0.047090 -0.200171
+vn 0.624378 -0.498184 -0.601581
+vn -0.104648 -0.703665 -0.702750
+vn -0.772576 -0.498184 -0.393536
+vn -0.994476 0.047090 0.093631
+vn -0.068392 0.923185 -0.378155
+vn -0.078951 0.894620 -0.439711
+vn 0.988769 0.061007 -0.136204
+vn -0.973846 0.061007 0.218848
+vn -0.968627 0.004517 0.248360
+vn 0.088992 -0.865993 0.492019
+vn 0.099734 -0.828852 0.550462
+vn 0.994354 0.005493 -0.105808
+vn -0.109806 0.784143 -0.610767
+vn -0.963897 -0.000946 0.266152
+vn 0.127537 -0.696890 0.705710
+vn 0.995849 -0.002258 -0.090915
+vn -0.138554 0.626240 -0.767205
+vn 0.993469 0.032197 -0.109317
+vn -0.969085 0.029725 0.244911
+vn 0.151555 -0.520005 0.840571
+vn -0.163427 0.383587 -0.908902
+vn -0.958983 0.033784 0.281381
+vn 0.171697 -0.260598 0.950041
+vn 0.996704 0.032319 -0.074007
+vn -0.176427 0.131260 -0.975494
+vn 0.986877 0.062838 -0.148595
+vn -0.976348 0.061800 0.207068
+vn 0.177526 -0.003510 0.984100
+vn -0.821314 0.052187 -0.568041
+vn 0.570238 0.052187 -0.819788
+vn -0.567095 0.039277 0.822687
+vn 0.819391 0.039277 0.571825
+vn -0.019837 0.895688 0.444197
+vn -0.029054 0.762596 0.646199
+vn -0.985046 -0.034883 -0.168676
+vn 0.988464 0.142216 0.051973
+vn 0.996185 -0.035524 -0.079501
+vn 0.024659 -0.833003 -0.552660
+vn 0.032746 -0.673940 -0.738029
+vn -0.989166 0.142216 -0.036317
+vn -0.041810 0.376415 0.925474
+vn 0.996857 0.030122 -0.073000
+vn 0.042665 -0.255104 -0.965941
+vn -0.986511 0.028321 -0.161046
+vn 0.670125 0.105991 0.734611
+vn -0.732963 0.105991 0.671926
+vn 0.723289 -0.016785 -0.690329
+vn -0.658834 -0.016785 -0.752068
+vn 0.485214 0.751152 -0.447554
+vn -0.135441 0.531693 -0.836024
+vn 0.822382 0.531693 0.202399
+vn -0.710196 0.045747 -0.702475
+vn -0.869961 -0.466903 -0.158483
+vn -0.552446 -0.659597 0.509568
+vn 0.087832 -0.466903 0.879910
+vn 0.642933 0.045747 0.764519
+vn -0.051881 0.859737 0.508072
+vn -0.049013 0.875210 0.481216
+vn -0.988556 0.014008 -0.150029
+vn 0.998474 0.014008 0.052889
+vn 0.996979 0.037721 0.067721
+vn 0.060091 -0.806269 -0.588427
+vn 0.057527 -0.824091 -0.563494
+vn -0.990112 0.037507 -0.135075
+vn -0.052828 0.853725 0.517960
+vn -0.986938 -0.001099 -0.160985
+vn 0.999084 -0.001343 0.042543
+vn 0.060915 -0.799188 -0.597949
+vn -0.063967 0.778222 0.624683
+vn 0.998657 0.014283 0.049440
+vn 0.070833 -0.714011 -0.696524
+vn -0.988067 0.013947 -0.153233
+vn -0.069857 0.724479 0.685720
+vn 0.997864 0.027009 0.058992
+vn 0.076724 -0.653951 -0.752586
+vn -0.989257 0.026307 -0.143651
+vn -0.081698 0.588824 0.804071
+vn -0.982482 0.002747 -0.186224
+vn 0.999847 0.002380 0.017029
+vn 0.087405 -0.507523 -0.857173
+vn -0.093570 0.390088 0.915983
+vn 0.997864 0.034577 0.055208
+vn 0.096713 -0.299692 -0.949095
+vn -0.988433 0.034028 -0.147649
+vn 0.635334 0.228278 0.737693
+vn -0.771355 0.228278 0.594012
+vn 0.771111 -0.163121 -0.615406
+vn -0.630787 -0.163121 -0.758599
+vn 0.014985 0.998627 -0.049867
+vn -0.035127 0.992523 0.116703
+vn -0.935667 -0.070467 -0.345744
+vn 0.966826 0.087130 0.240059
+vn 0.970946 -0.070376 0.228675
+vn 0.012452 -0.999054 -0.041444
+vn 0.062075 -0.976318 -0.207129
+vn -0.938749 0.087130 -0.333323
+vn -0.110050 0.924619 0.364635
+vn 0.973266 -0.015198 0.229041
+vn 0.134770 -0.883602 -0.448347
+vn -0.938383 -0.015442 -0.345225
+vn -0.058473 0.799554 0.597736
+vn 0.995544 0.083468 0.043458
+vn 0.241523 -0.718772 -0.651906
+vn -0.964812 -0.143376 -0.220313
+vn 0.583728 0.646901 0.490616
+vn -0.794946 0.297281 0.528794
+vn 0.782189 -0.248329 -0.571368
+vn -0.582751 -0.602039 -0.545793
+vn -0.378521 0.752068 -0.539537
+vn -0.426984 0.668752 -0.608600
+vn 0.812616 0.076144 -0.577746
+vn -0.819819 0.076144 0.567522
+vn -0.774560 0.003143 0.632466
+vn 0.418256 -0.685232 0.596179
+vn 0.462050 -0.593890 0.658589
+vn 0.858303 0.003143 -0.513108
+vn -0.911771 0.404584 -0.070101
+vn 0.244331 0.404584 -0.881222
+vn -0.218055 -0.348918 0.911405
+vn 0.931211 -0.348888 0.105075
+vn 0.011750 0.998810 0.047151
+vn 0.693960 0.706687 -0.137730
+vn -0.677328 0.706687 0.204474
+vn 0.957396 0.004669 -0.288614
+vn 0.660787 -0.700034 -0.270699
+vn -0.035127 -0.989410 -0.140751
+vn -0.710501 -0.700034 0.071505
+vn -0.980773 0.004669 0.195044
+vn 0.144047 0.960204 0.239143
+vn 0.146153 0.959136 0.242164
+vn -0.873623 0.009125 0.486496
+vn 0.839259 0.012970 -0.543535
+vn 0.838374 0.009552 -0.544969
+vn -0.178350 -0.938322 -0.296091
+vn -0.180700 -0.936705 -0.299814
+vn -0.872860 0.012970 0.487747
+vn 0.219337 0.905362 0.363506
+vn -0.886349 -0.043550 0.460952
+vn 0.822382 -0.043397 -0.567217
+vn -0.251686 -0.873165 -0.417341
+vn 0.329264 0.769646 0.546983
+vn 0.825770 -0.011231 -0.563860
+vn -0.356456 -0.723350 -0.591296
+vn -0.884457 -0.011505 0.466445
+vn 0.414869 0.594165 0.689077
+vn 0.817469 -0.006348 -0.575884
+vn -0.435469 -0.536576 -0.722770
+vn -0.891171 -0.006531 0.453536
+vn 0.457717 0.461592 0.759850
+vn 0.845241 0.028687 -0.533586
+vn -0.473251 -0.398724 -0.785485
+vn -0.866909 0.028443 0.497604
+vn 0.931791 0.317057 0.176641
+vn -0.279489 0.317057 0.906278
+vn 0.268349 -0.272195 -0.924039
+vn -0.942289 -0.272195 -0.194800
+vn 0.100955 0.924680 0.367077
+vn 0.116550 0.898312 0.423566
+vn -0.975036 -0.009491 0.221778
+vn 0.958068 0.042787 -0.283212
+vn 0.951292 -0.009369 -0.308115
+vn -0.117832 -0.895840 -0.428419
+vn -0.132878 -0.865352 -0.483169
+vn -0.968169 0.042787 0.246559
+vn 0.161870 0.792413 0.588061
+vn -0.979339 -0.024812 0.200568
+vn 0.944243 -0.024842 -0.328227
+vn -0.176061 -0.747795 -0.640126
+vn 0.814264 0.496323 0.301035
+vn -0.545762 0.496292 0.675100
+vn 0.533036 -0.462203 -0.708670
+vn -0.820460 -0.462203 -0.336406
+vn -0.827998 0.283212 0.483902
+vn -0.228980 0.200323 0.952574
+vn -0.942351 0.200323 -0.267983
+vn 0.511795 0.033876 0.858425
+vn 0.953001 -0.152379 0.261757
+vn 0.843074 -0.215461 -0.492721
+vn 0.239631 -0.152379 -0.958800
+vn -0.496750 0.033876 -0.867214
+vn -0.131535 0.988891 0.069063
+vn -0.160680 0.983367 0.084567
+vn 0.401929 0.007538 0.915616
+vn -0.522691 -0.022401 -0.852199
+vn -0.525254 0.007416 -0.850887
+vn 0.011261 -0.999908 -0.005921
+vn 0.040437 -0.998932 -0.021210
+vn 0.404797 -0.022401 0.914121
+vn -0.128452 0.989349 0.068331
+vn -0.521378 -0.038881 -0.852412
+vn 0.007355 -0.999939 -0.003571
+vn 0.404828 -0.038484 0.913541
+vn 0.041505 0.998901 -0.020936
+vn -0.529557 -0.044862 -0.847072
+vn -0.161138 -0.983276 0.084628
+vn 0.398877 -0.044527 0.915891
+vn 0.151616 0.985229 -0.079196
+vn 0.404187 0.015473 0.914518
+vn -0.522233 0.014252 -0.852657
+vn -0.268990 -0.952788 0.140660
+vn 0.300882 0.940580 -0.157231
+vn -0.547105 -0.044465 -0.835841
+vn -0.412244 -0.884976 0.216407
+vn 0.378643 -0.044313 0.924467
+vn 0.547655 0.785577 -0.287912
+vn 0.380596 -0.001617 0.924711
+vn -0.544755 -0.001709 -0.838557
+vn -0.636311 -0.695273 0.334147
+vn 0.126988 0.486679 -0.864284
+vn 0.783593 0.486679 0.386120
+vn -0.839167 -0.416883 -0.349254
+vn -0.188879 -0.416883 0.889096
+vn 0.310526 0.630696 0.711173
+vn 0.309305 0.636433 0.706565
+vn 0.934294 -0.046571 -0.353404
+vn -0.894253 -0.046571 0.445082
+vn -0.896664 -0.052797 0.439528
+vn -0.273324 -0.730399 -0.625935
+vn -0.270608 -0.737053 -0.619251
+vn 0.932340 -0.052950 -0.357646
+vn 0.234626 0.809107 0.538743
+vn -0.908475 -0.130345 0.397076
+vn -0.187414 -0.882199 -0.431959
+vn 0.908322 -0.131901 -0.396863
+vn 0.439772 0.856227 0.271004
+vn -0.984527 0.132939 -0.113926
+vn 0.052950 -0.998566 -0.007202
+vn 0.934507 -0.248848 0.254402
+vn -0.354869 0.771569 -0.527909
+vn 0.607776 0.434675 0.664541
+vn -0.663289 -0.465651 -0.585772
+vn 0.312296 -0.738884 0.597064
+vn -0.363445 0.928922 -0.070589
+vn -0.211554 0.976501 -0.041078
+vn -0.245064 -0.084353 0.965819
+vn 0.100558 0.059389 -0.993133
+vn 0.134251 -0.084353 -0.987335
+vn 0.237831 -0.970183 0.046175
+vn 0.079928 -0.996673 0.015503
+vn -0.278481 0.059389 0.958586
+vn 0.104007 0.708213 -0.698264
+vn -0.164892 0.708213 0.686453
+vn 0.069094 -0.713920 -0.696768
+vn -0.196722 -0.713920 0.671987
+vn -0.181097 0.836024 0.517869
+vn -0.794885 0.591845 0.133488
+vn 0.538469 0.591845 0.599750
+vn -0.961364 -0.033418 -0.273202
+vn -0.566240 -0.639180 -0.520341
+vn 0.141850 -0.902890 -0.405713
+vn 0.767113 -0.639180 -0.054079
+vn 0.922117 -0.033418 0.385388
+vn -0.073031 0.593616 -0.801416
+vn -0.081515 0.440535 -0.894009
+vn 0.985473 0.105625 -0.132908
+vn -0.993255 0.105625 0.047426
+vn -0.980987 0.029633 0.191687
+vn 0.079379 -0.484573 0.871120
+vn 0.085238 -0.321421 0.943083
+vn 0.999542 0.028169 0.009796
+vn -0.088565 0.200018 -0.975768
+vn 0.996643 0.062227 -0.052614
+vn -0.989837 0.058992 0.129368
+vn 0.089602 -0.071596 0.993378
+vn -0.090243 0.004913 -0.995880
+vn -0.986816 0.070833 0.145421
+vn 0.090487 0.128666 0.987518
+vn 0.996918 0.070040 -0.035279
+vn -0.090670 0.091189 -0.991668
+vn 0.979247 0.069277 -0.190374
+vn -0.997497 0.069613 -0.011109
+vn 0.091403 0.041139 0.994934
+vn -0.090121 0.128971 -0.987518
+vn -0.980865 0.059969 0.185186
+vn 0.090823 0.000977 0.995849
+vn 0.998169 0.059999 0.004944
+vn -0.764977 -0.058321 -0.641377
+vn 0.636402 -0.058321 -0.769127
+vn -0.627216 0.151006 0.764061
+vn 0.754997 0.151006 0.638050
+vn -0.340892 0.905759 0.251656
+vn -0.490738 0.792383 0.362255
+vn -0.496597 -0.032167 -0.867367
+vn 0.590808 0.131596 0.795984
+vn 0.682607 -0.032167 0.730033
+vn 0.431532 -0.843959 -0.318552
+vn 0.569018 -0.706931 -0.420026
+vn -0.586627 0.131596 -0.799066
+vn -0.681570 0.531266 0.503128
+vn 0.656331 0.031648 0.753777
+vn 0.731651 -0.415845 -0.540086
+vn -0.527024 0.031648 -0.849239
+vn -0.097507 0.296213 0.950102
+vn -0.936674 0.296213 -0.186651
+vn 0.964324 -0.211493 0.159001
+vn 0.132054 -0.211493 -0.968383
+vn 0.320719 0.086276 0.943205
+vn 0.895749 0.061068 0.440291
+vn -0.441694 0.061068 0.895077
+vn 0.944243 0.065889 -0.322489
+vn 0.441054 0.032197 -0.896878
+vn -0.321574 0.045473 -0.945769
+vn -0.896359 0.032197 -0.442091
+vn -0.945128 0.065889 0.319926
+vn -0.035249 0.754021 0.655873
+vn -0.029878 0.818720 0.573382
+vn -0.991546 0.002472 -0.129704
+vn 0.999725 0.002472 -0.022675
+vn 0.996551 0.073885 0.037507
+vn 0.039552 -0.675649 -0.736137
+vn 0.035218 -0.746086 -0.664876
+vn -0.994964 0.072024 -0.069460
+vn -0.034669 0.734397 0.677786
+vn -0.984100 -0.035340 -0.173956
+vn 0.997345 -0.035127 -0.063692
+vn 0.039308 -0.651875 -0.757256
+vn -0.047365 0.437544 0.897916
+vn 0.999298 0.033052 -0.016511
+vn 0.049379 -0.335582 -0.940703
+vn -0.991821 0.028901 -0.124058
+vn -0.052004 0.116581 0.991791
+vn -0.986389 0.052126 -0.155736
+vn 0.997559 0.050569 -0.047884
+vn 0.053621 -0.002594 -0.998535
+vn -0.053407 0.074374 0.995788
+vn 0.988739 0.058077 0.137761
+vn 0.053438 0.037080 -0.997864
+vn -0.997833 0.057985 0.030702
+vn -0.053468 0.068392 0.996216
+vn -0.987610 0.055605 -0.146580
+vn 0.997650 0.055574 -0.039766
+vn 0.053591 0.043672 -0.997589
+vn 0.664174 -0.102878 0.740440
+vn -0.739738 -0.102878 0.664968
+vn 0.730979 0.181951 -0.657643
+vn -0.656270 0.181951 -0.732231
+vn 0.041780 0.992126 0.117801
+vn 0.068484 0.978698 0.193396
+vn -0.961821 -0.021485 0.272774
+vn 0.924039 0.050722 -0.378826
+vn 0.918821 -0.021638 -0.393994
+vn -0.078799 -0.971831 -0.222053
+vn -0.105106 -0.949370 -0.295969
+vn -0.956175 0.050722 0.288278
+vn 0.123630 0.929197 0.348247
+vn 0.917081 -0.011658 -0.398450
+vn -0.158238 -0.881252 -0.445357
+vn -0.962889 -0.012452 0.269570
+vn 0.107944 0.766533 0.633045
+vn -0.993744 0.064760 0.090884
+vn 0.936521 -0.144353 -0.319437
+vn -0.273537 -0.673849 -0.686331
+vn 0.826350 0.246040 0.506516
+vn -0.544115 0.571429 0.614307
+vn 0.535691 -0.511551 -0.671804
+vn -0.813013 -0.185827 -0.551744
+vn -0.230079 0.920377 0.316111
+vn -0.345408 0.809564 0.474593
+vn -0.738548 -0.044435 -0.672689
+vn 0.801447 0.128574 0.584063
+vn 0.867183 -0.044404 0.495956
+vn 0.288095 -0.871944 -0.395856
+vn 0.396344 -0.739097 -0.544603
+vn -0.802179 0.128574 -0.583056
+vn 0.247597 0.461501 0.851863
+vn -0.886715 0.461501 0.026276
+vn 0.911466 -0.404218 -0.076113
+vn -0.207770 -0.404218 -0.890713
+vn -0.110050 0.990783 0.078799
+vn 0.333476 0.701132 0.630177
+vn -0.489242 0.701132 -0.518632
+vn 0.626362 0.010773 0.779443
+vn 0.552995 -0.685873 0.472976
+vn 0.200110 -0.969207 -0.143315
+vn -0.269723 -0.685873 -0.675832
+vn -0.536271 0.010773 -0.843959
+vn 0.122349 0.925443 0.358562
+vn 0.132511 0.912381 0.387280
+vn -0.959258 0.003601 0.282479
+vn 0.936186 0.031465 -0.350047
+vn 0.931761 0.004181 -0.363018
+vn -0.145482 -0.892727 -0.426435
+vn -0.155370 -0.876736 -0.455123
+vn -0.954894 0.031465 0.295175
+vn 0.186377 0.817713 0.544603
+vn -0.967589 -0.032411 0.250343
+vn 0.919340 -0.032411 -0.392102
+vn -0.206519 -0.769463 -0.604327
+vn 0.241462 0.665029 0.706687
+vn 0.929411 0.011505 -0.368847
+vn -0.257698 -0.604144 -0.754021
+vn -0.960997 0.010254 0.276254
+vn 0.292062 0.430036 0.854244
+vn -0.975127 -0.001129 0.221564
+vn 0.907559 -0.001495 -0.419874
+vn -0.301828 -0.357067 -0.883938
+vn 0.321696 0.087405 0.942778
+vn 0.923399 0.036470 -0.382061
+vn -0.323130 -0.009491 -0.946287
+vn -0.964415 0.035890 0.261818
+vn 0.896176 -0.037141 0.442122
+vn -0.439009 -0.037141 0.897702
+vn 0.435774 0.092807 -0.895230
+vn -0.892117 0.092807 -0.442122
+vn 0.197241 0.973724 -0.113620
+vn 0.316904 0.930692 -0.182562
+vn 0.481002 0.078921 0.873135
+vn -0.514084 0.078921 -0.854091
+vn -0.552110 -0.044679 -0.832545
+vn -0.262398 -0.953032 0.151158
+vn -0.379192 -0.899136 0.218451
+vn 0.443281 -0.044679 0.895230
+vn 0.479690 0.832759 -0.276345
+vn 0.456679 -0.000122 0.889615
+vn -0.540513 -0.000122 -0.841304
+vn -0.534562 -0.786981 0.307962
+vn 0.018311 0.562609 -0.826472
+vn 0.724174 0.562639 0.398724
+vn -0.761498 -0.528489 -0.375164
+vn -0.057375 -0.528489 0.846980
+vn -0.123600 0.739525 -0.661641
+vn -0.782250 0.523118 -0.338206
+vn 0.607349 0.523118 -0.597858
+vn -0.977050 0.027650 0.211127
+vn -0.600055 -0.483963 0.636921
+vn 0.133915 -0.684194 0.716880
+vn 0.789544 -0.483963 0.377300
+vn 0.987365 0.027650 -0.155889
+vn 0.011963 0.998505 -0.053285
+vn -0.011383 0.998474 0.053713
+vn 0.962584 0.049654 0.266305
+vn -0.984619 -0.048280 -0.167791
+vn -0.983917 0.048616 -0.171850
+vn -0.032350 -0.989044 0.143986
+vn -0.009552 -0.999115 0.040742
+vn 0.961760 -0.048280 0.269478
+vn 0.015625 0.997894 -0.062899
+vn -0.982086 -0.100284 -0.159429
+vn -0.035798 -0.987335 0.154363
+vn 0.956603 -0.098148 0.274300
+vn 0.076968 0.938108 -0.337626
+vn 0.963012 0.000000 0.269417
+vn -0.985534 -0.002930 -0.169378
+vn -0.095767 -0.902036 0.420881
+vn 0.133274 0.798364 -0.587176
+vn -0.992279 -0.055116 -0.110965
+vn -0.148686 -0.737419 0.658834
+vn 0.945158 -0.054750 0.321940
+vn 0.187323 0.520066 -0.833308
+vn 0.957762 0.014832 0.287118
+vn -0.988586 0.013550 -0.149968
+vn -0.197516 -0.439589 0.876186
+vn 0.202704 0.380474 -0.902280
+vn 0.967925 0.039247 0.248054
+vn -0.981048 0.038881 -0.189795
+vn -0.209754 -0.292306 0.933012
+vn -0.544603 0.246803 -0.801538
+vn 0.835139 0.246803 -0.491531
+vn -0.838710 -0.183813 0.512558
+vn 0.538865 -0.183813 0.822077
+vn 0.242286 0.912748 -0.328867
+vn 0.252663 0.904782 -0.342784
+vn 0.781823 0.029725 0.622761
+vn -0.826472 0.029725 -0.562151
+vn -0.831233 0.014130 -0.555681
+vn -0.292032 -0.870357 0.396405
+vn -0.301950 -0.860683 0.409894
+vn 0.776971 0.014283 0.629353
+vn 0.308847 0.853511 -0.419599
+vn -0.840175 -0.006592 -0.542253
+vn -0.355144 -0.800531 0.482650
+vn 0.766778 -0.007202 0.641835
+vn 0.521439 0.736229 -0.431318
+vn -0.697165 -0.212531 -0.684652
+vn -0.408399 -0.614551 0.674886
+vn 0.578509 0.194403 0.792138
+vn 0.065767 0.122135 -0.990326
+vn 0.663015 0.726676 0.179785
+vn -0.712729 -0.683370 -0.157933
+vn -0.105716 -0.072695 0.991729
+vn -0.883999 0.451796 0.119907
+vn -0.898221 0.422285 0.121830
+vn -0.102756 0.037751 -0.993957
+vn 0.138676 0.049501 0.989074
+vn 0.165746 0.037751 0.985412
+vn 0.922117 -0.366070 -0.125095
+vn 0.933531 -0.335307 -0.126621
+vn -0.129856 0.049501 -0.990265
+vn -0.549852 0.276498 0.788141
+vn -0.739982 0.276498 -0.613147
+vn 0.763756 -0.214515 0.608783
+vn 0.573931 -0.214515 -0.790277
+vn 0.224219 0.966613 -0.123905
+vn -0.183172 0.683859 -0.706198
+vn 0.500473 0.683859 0.530869
+vn -0.522355 0.014161 -0.852596
+vn -0.555956 -0.663808 -0.500198
+vn -0.302683 -0.938261 0.167272
+vn 0.127659 -0.663808 0.736869
+vn 0.443892 0.014161 0.895932
+vn -0.035615 0.999329 -0.003906
+vn -0.154363 0.987854 -0.016968
+vn 0.145726 0.062258 -0.987335
+vn -0.072176 0.062258 0.995422
+vn -0.057863 -0.045656 0.997253
+vn 0.117740 -0.992950 0.012940
+vn 0.234901 -0.971648 0.025819
+vn 0.160100 -0.045656 -0.986023
+vn -0.347636 0.936827 -0.038209
+vn -0.057619 -0.015656 0.998199
+vn 0.423566 -0.904630 0.046541
+vn 0.160527 -0.015656 -0.986877
+vn -0.435041 0.899106 -0.047792
+vn -0.068941 0.012970 0.997528
+vn 0.508011 -0.859493 0.055818
+vn 0.149327 0.012970 -0.988678
+vn -0.448347 0.892483 -0.049257
+vn -0.073519 0.021455 0.997040
+vn 0.520798 -0.851741 0.057222
+vn 0.144749 0.021455 -0.989227
+vn -0.496658 0.866207 -0.054567
+vn 0.158422 -0.000122 -0.987365
+vn -0.059786 -0.000122 0.998199
+vn 0.566820 -0.821436 0.062288
+vn -0.464675 0.590014 0.660237
+vn -0.310190 0.590045 -0.745384
+vn 0.358959 -0.556902 0.748985
+vn 0.513047 -0.556902 -0.653127
+vn 0.503769 0.858760 0.093112
+vn 0.461989 0.882748 0.085360
+vn 0.229011 0.001495 -0.973418
+vn -0.134037 0.001495 0.990966
+vn -0.153600 -0.038697 0.987365
+vn -0.431654 -0.898465 -0.079775
+vn -0.386944 -0.919309 -0.071505
+vn 0.209418 -0.038697 -0.977050
+vn 0.192083 0.980712 0.035493
+vn -0.156194 -0.113620 0.981140
+vn -0.111789 -0.993500 -0.020661
+vn 0.204779 -0.113620 -0.972167
+vn -0.163976 0.713431 0.681234
+vn 0.090335 0.713431 -0.694845
+vn -0.031404 -0.714988 0.698386
+vn 0.220283 -0.714988 -0.663472
+vn 0.026612 0.999420 0.020814
+vn -0.416547 0.706992 0.571490
+vn 0.454207 0.706992 -0.542039
+vn -0.582568 0.000305 0.812738
+vn -0.407697 -0.706534 0.578417
+vn 0.039155 -0.998749 0.030610
+vn 0.463088 -0.706534 -0.535081
+vn 0.648366 0.000305 -0.761315
+vn 0.035249 0.890469 0.453597
+vn 0.021393 0.960143 0.278603
+vn -0.997864 -0.064852 0.004456
+vn 0.986572 -0.064852 -0.149785
+vn 0.992492 0.091372 -0.081057
+vn -0.039583 -0.859584 -0.509445
+vn -0.026093 -0.940489 -0.338755
+vn -0.993072 0.091922 0.073061
+vn 0.013977 0.982696 0.184637
+vn -0.998657 -0.036378 0.036714
+vn 0.992309 -0.036866 -0.118046
+vn -0.019013 -0.969054 -0.246071
+vn 0.022248 0.958281 0.284921
+vn 0.993988 0.008850 -0.108860
+vn -0.027070 -0.937712 -0.346294
+vn -0.998871 0.008484 0.046327
+vn 0.028962 0.928098 0.371197
+vn -0.999207 -0.023560 0.031343
+vn 0.992096 -0.023530 -0.123142
+vn -0.033540 -0.901822 -0.430738
+vn 0.035585 0.888394 0.457686
+vn 0.994171 0.014039 -0.106845
+vn -0.040040 -0.856685 -0.514206
+vn -0.998718 0.013886 0.048158
+vn 0.038514 0.867824 0.495346
+vn -0.999146 0.002228 0.040620
+vn 0.993439 0.002228 -0.114231
+vn -0.042787 -0.833613 -0.550645
+vn 0.734031 0.599322 0.319285
+vn -0.675863 0.599322 0.428907
+vn 0.671987 -0.574358 -0.467452
+vn -0.736137 -0.574358 -0.357952
+vn -0.126530 0.991821 -0.015717
+vn -0.286935 0.957274 -0.035676
+vn 0.177404 -0.060884 -0.982238
+vn -0.103793 0.084475 0.990997
+vn -0.068575 -0.060884 0.995758
+vn 0.189489 -0.981597 0.023560
+vn 0.347545 -0.936644 0.043214
+vn 0.142064 0.084475 -0.986236
+vn -0.551561 0.831294 -0.068422
+vn -0.063448 -0.026917 0.997620
+vn 0.604541 -0.792993 0.075167
+vn 0.182714 -0.027192 -0.982757
+vn -0.735252 0.642598 -0.215461
+vn 0.331980 0.122745 -0.935240
+vn -0.173223 -0.165868 0.970794
+vn 0.821345 -0.567400 0.058260
+vn -0.854915 0.129765 0.502243
+vn -0.342936 0.563128 -0.751823
+vn 0.370006 -0.526292 0.765557
+vn 0.870235 -0.092288 -0.483840
+vn -0.397992 0.288278 -0.870876
+vn -0.414197 0.083987 -0.906278
+vn 0.867000 0.057497 -0.494949
+vn -0.941649 0.057497 0.331614
+vn -0.864986 0.027772 0.500992
+vn 0.404828 -0.226722 0.885830
+vn 0.415571 -0.019501 0.909330
+vn 0.944884 0.027772 -0.326151
+vn -0.931608 -0.093265 -0.351238
+vn 0.344096 -0.093265 -0.934263
+vn -0.340739 0.139012 0.929807
+vn 0.926054 0.139012 0.350841
+vn -0.289682 0.952025 0.098483
+vn 0.022645 0.673360 0.738945
+vn -0.432447 0.673360 -0.599628
+vn 0.350749 0.010956 0.936369
+vn 0.473525 -0.657826 0.585650
+vn 0.347789 -0.930082 -0.118229
+vn 0.018433 -0.657826 -0.752922
+vn -0.292673 0.010956 -0.956145
+vn 0.139073 0.874660 -0.464309
+vn 0.137577 0.877621 -0.459120
+vn 0.945921 0.026521 0.323222
+vn -0.968657 0.021760 -0.247353
+vn -0.967834 0.026399 -0.250130
+vn -0.161687 -0.826044 0.539842
+vn -0.160253 -0.829432 0.535081
+vn 0.945128 0.021760 0.325877
+vn 0.147740 0.857326 -0.493057
+vn -0.971221 0.007691 -0.237953
+vn -0.169866 -0.805994 0.567003
+vn 0.942228 0.007599 0.334849
+vn 0.160741 0.828669 -0.536119
+vn 0.945799 0.026429 0.323588
+vn -0.967895 0.025941 -0.249886
+vn -0.182104 -0.773064 0.607593
+vn 0.193976 0.737846 -0.646443
+vn -0.977599 -0.012787 -0.209998
+vn -0.212592 -0.672018 0.709311
+vn 0.932310 -0.012909 0.361339
+vn 0.233222 0.582415 -0.778680
+vn 0.942778 0.024079 0.332530
+vn -0.970336 0.023621 -0.240577
+vn -0.247810 -0.505112 0.826685
+vn -0.505387 0.375561 -0.776849
+vn 0.849239 0.375561 -0.371044
+vn -0.857082 -0.319498 0.404096
+vn 0.493759 -0.319498 0.808740
+vn 0.821284 0.570421 0.007141
+vn 0.869259 0.494247 0.007569
+vn 0.004425 0.062899 0.997986
+vn 0.021821 0.062899 -0.997772
+vn -0.049165 0.022553 -0.998505
+vn -0.870357 -0.492294 -0.007569
+vn -0.911222 -0.411817 -0.007935
+vn -0.066591 0.022553 0.997497
+vn 0.948576 0.316416 0.008240
+vn -0.066073 0.031983 0.997284
+vn -0.048677 0.031983 -0.998291
+vn -0.973754 -0.227302 -0.008484
+vn 0.697378 0.151616 -0.700461
+vn 0.685049 0.151616 0.712516
+vn -0.699454 -0.087771 -0.709250
+vn -0.711692 -0.087771 0.696951
+vn 0.703635 0.514847 -0.489669
+vn 0.094119 0.364238 -0.926511
+vn 0.901486 0.364238 0.233619
+vn -0.588610 0.040773 -0.807367
+vn -0.927030 -0.306558 -0.215857
+vn -0.739738 -0.433302 0.514786
+vn -0.119663 -0.306558 0.944273
+vn 0.552538 0.040773 0.832453
+vn -0.476852 0.878018 0.041047
+vn -0.315012 0.948668 0.027100
+vn -0.007416 -0.054720 -0.998444
+vn 0.163305 -0.054720 0.985046
+vn 0.093783 0.089389 0.991546
+vn 0.542985 -0.838404 -0.046724
+vn 0.387402 -0.921293 -0.033326
+vn -0.077029 0.089389 -0.992981
+vn -0.221686 0.974914 0.019074
+vn -0.038911 -0.027589 -0.998840
+vn 0.132359 -0.027589 0.990814
+vn 0.294626 -0.955260 -0.025361
+vn -0.481643 0.875362 0.041444
+vn -0.004944 -0.055605 -0.998413
+vn 0.165716 -0.055605 0.984588
+vn 0.550249 -0.833644 -0.047365
+vn -0.746971 0.661702 0.064302
+vn 0.158361 -0.008789 0.987335
+vn 0.796167 -0.601123 -0.068514
+vn -0.012665 -0.008789 -0.999878
+vn -0.938719 0.335002 0.080782
+vn 0.031343 0.006073 -0.999481
+vn 0.201697 0.006073 0.979400
+vn 0.962523 -0.258187 -0.082827
+vn -0.985076 -0.149571 0.084780
+vn 0.183142 0.058992 0.981292
+vn 0.970550 0.225806 -0.083529
+vn 0.012726 0.058992 -0.998169
+vn -0.596454 -0.276162 0.753594
+vn -0.716483 -0.276193 -0.640584
+vn 0.698813 0.328593 0.635304
+vn 0.579943 0.328593 -0.745415
+vn 0.069216 0.978637 -0.193487
+vn 0.096744 0.957762 -0.270791
+vn 0.930601 0.049776 0.362590
+vn -0.949431 0.049776 -0.309915
+vn -0.956938 -0.023804 -0.289224
+vn -0.094760 -0.959563 0.264962
+vn -0.121921 -0.932188 0.340770
+vn 0.923368 -0.023988 0.383129
+vn 0.163244 0.874844 -0.456008
+vn 0.917356 -0.028169 0.397015
+vn -0.960875 -0.028779 -0.275460
+vn -0.186407 -0.833094 0.520737
+vn 0.053621 0.648976 -0.758873
+vn 0.932859 -0.257332 0.252022
+vn -0.984252 0.176092 -0.013642
+vn -0.322214 -0.533036 0.782281
+vn -0.528275 0.612201 -0.588275
+vn 0.741234 -0.043672 -0.669790
+vn -0.719626 0.085696 0.689016
+vn 0.535264 -0.566057 0.626911
+vn 0.814875 0.570299 0.103397
+vn 0.832148 0.544359 0.105594
+vn -0.134007 0.041261 0.990112
+vn 0.117527 0.041292 -0.992187
+vn 0.093661 0.026460 -0.995239
+vn -0.856777 -0.504074 -0.108707
+vn -0.871975 -0.476852 -0.110630
+vn -0.157872 0.026460 0.987091
+vn 0.689474 0.365551 -0.625233
+vn 0.511460 0.365551 0.777642
+vn -0.538957 -0.317301 -0.780267
+vn -0.716758 -0.317301 0.620899
+vn 0.132817 0.990966 -0.018250
+vn -0.002380 0.700980 -0.713157
+vn 0.190283 0.700980 0.687277
+vn -0.174505 0.006775 -0.984619
+vn -0.244514 -0.691366 -0.679830
+vn -0.209479 -0.977386 0.028809
+vn -0.051820 -0.691366 0.720603
+vn 0.097842 0.006775 0.995148
+vn 0.041871 0.973296 0.225562
+vn 0.029786 0.986541 0.160649
+vn 0.988433 0.025880 -0.149266
+vn -0.976135 0.025880 0.215583
+vn -0.978027 -0.034181 0.205512
+vn -0.031953 -0.984527 -0.172155
+vn -0.019807 -0.994110 -0.106540
+vn 0.986572 -0.034150 -0.159551
+vn 0.006134 0.999451 0.032075
+vn 0.987548 -0.028504 -0.154637
+vn -0.977294 -0.028871 0.209784
+vn 0.004151 -0.999695 0.023377
+vn -0.042329 0.972045 -0.230811
+vn -0.969085 -0.082308 0.232582
+vn 0.052400 -0.957457 0.283700
+vn 0.987915 -0.081729 -0.131535
+vn -0.085849 0.882015 -0.463271
+vn 0.988739 -0.003204 -0.149449
+vn -0.976501 -0.003723 0.215430
+vn 0.094455 -0.854915 0.510025
+vn -0.107944 0.806269 -0.581591
+vn -0.972747 -0.018250 0.231086
+vn 0.116031 -0.772149 0.624744
+vn 0.990844 -0.018250 -0.133702
+vn -0.780908 0.525620 -0.337382
+vn 0.607685 0.525651 -0.595294
+vn -0.600330 -0.499985 0.624165
+vn 0.784417 -0.499954 0.366985
+vn 0.227790 0.959960 0.162969
+vn 0.096622 0.992889 0.069094
+vn 0.617939 0.069521 -0.783135
+vn -0.541642 0.069521 0.837703
+vn -0.562975 -0.077029 0.822840
+vn -0.184637 -0.973876 -0.132115
+vn -0.051973 -0.997955 -0.037111
+vn 0.596912 -0.076968 -0.798578
+vn -0.108768 0.990997 -0.077853
+vn 0.608509 -0.033204 -0.792840
+vn -0.554033 -0.033357 0.831813
+vn 0.153050 -0.982086 0.109622
+vn -0.536851 0.690573 0.484603
+vn 0.285287 0.690573 -0.664571
+vn -0.253059 -0.682546 0.685598
+vn 0.567156 -0.682546 -0.460860
+vn -0.053591 0.992584 -0.109012
+vn -0.672323 0.701987 0.234809
+vn 0.596484 0.701987 -0.389050
+vn -0.884884 0.004120 0.465712
+vn -0.579333 -0.696127 0.423933
+vn 0.077853 -0.984283 0.158361
+vn 0.689474 -0.696127 -0.199896
+vn 0.909146 0.004120 -0.416395
+vn 0.060884 0.926695 0.370769
+vn 0.048952 0.953856 0.296152
+vn -0.994629 -0.015442 0.102329
+vn 0.975097 -0.015442 -0.221137
+vn 0.979553 0.051393 -0.194464
+vn -0.075014 -0.886380 -0.456801
+vn -0.063631 -0.920042 -0.386578
+vn -0.990295 0.050783 0.129276
+vn 0.060945 0.928037 0.367412
+vn -0.995086 -0.046327 0.087374
+vn 0.971129 -0.045747 -0.234016
+vn -0.075106 -0.887845 -0.453902
+vn 0.088656 0.838893 0.536973
+vn 0.977996 0.018830 -0.207709
+vn -0.101413 -0.783074 -0.613575
+vn -0.993011 0.017060 0.116520
+vn 0.113315 0.718253 0.686453
+vn -0.997162 -0.016297 0.073092
+vn 0.968535 -0.016602 -0.248268
+vn -0.123783 -0.647389 -0.752007
+vn 0.139561 0.507675 0.850154
+vn 0.974914 0.022645 -0.221381
+vn -0.147191 -0.423322 -0.893918
+vn -0.994507 0.021821 0.102084
+vn 0.147801 0.409711 0.900143
+vn 0.981903 0.042787 -0.184454
+vn -0.153630 -0.320231 -0.934782
+vn -0.989319 0.042512 0.139256
+vn 0.802698 0.281442 0.525773
+vn -0.592364 0.281442 0.754875
+vn 0.587970 -0.217811 -0.778985
+vn -0.806238 -0.217811 -0.550005
+vn -0.346202 0.938139 0.003113
+vn -0.112796 0.993591 0.001007
+vn -0.032167 -0.112613 0.993103
+vn -0.091311 0.101382 -0.990631
+vn -0.050111 -0.112613 -0.992370
+vn 0.257118 -0.966369 -0.002319
+vn 0.018097 -0.999817 -0.000153
+vn -0.073397 0.101382 0.992126
+vn 0.182714 0.983154 -0.001465
+vn -0.040834 -0.009247 0.999115
+vn -0.058870 -0.009522 -0.998199
+vn -0.272591 -0.962096 0.002350
+vn 0.260262 0.961699 -0.085665
+vn 0.125675 -0.058748 0.990326
+vn -0.231330 0.044557 -0.971831
+vn -0.380688 -0.922910 -0.057070
+vn -0.019745 0.739616 -0.672719
+vn 0.478866 0.585162 0.654378
+vn -0.536637 -0.556780 -0.634022
+vn -0.044465 -0.722190 0.690237
+vn 0.547960 0.803766 -0.231697
+vn 0.639851 0.719260 -0.270547
+vn 0.391888 0.080935 0.916410
+vn -0.384472 0.080935 -0.919553
+vn -0.459059 -0.005982 -0.888363
+vn -0.616077 -0.743339 0.260506
+vn -0.700430 -0.649342 0.296182
+vn 0.317545 -0.005982 0.948210
+vn 0.238289 0.437483 -0.867061
+vn 0.788049 0.437483 0.433027
+vn -0.825892 -0.384777 -0.412061
+vn -0.279672 -0.384777 0.879574
+vn -0.022431 0.998901 0.040742
+vn -0.634938 0.706748 -0.311960
+vn 0.603198 0.706748 0.369640
+vn -0.898221 0.000061 -0.439467
+vn -0.636067 -0.706626 -0.309915
+vn -0.024018 -0.998749 0.043641
+vn 0.602069 -0.706626 0.371685
+vn 0.851772 0.000061 0.523881
+vn 0.787164 0.490341 0.374004
+vn 0.831324 0.390973 0.394971
+vn -0.399670 0.055727 0.914945
+vn 0.456862 0.055727 -0.887783
+vn 0.374310 0.014557 -0.927152
+vn -0.816065 -0.428571 -0.387738
+vn -0.853908 -0.325846 -0.405713
+vn -0.482345 0.014557 0.875820
+vn 0.877194 0.238319 0.416791
+vn -0.454299 0.029725 0.890316
+vn 0.403272 0.029725 -0.914579
+vn -0.890042 -0.170080 -0.422895
+vn 0.900662 0.075289 0.427931
+vn 0.379345 0.032868 -0.924650
+vn -0.903195 -0.005463 -0.429151
+vn -0.477248 0.032868 0.878140
+vn 0.902402 -0.042665 0.428755
+vn -0.425825 0.034486 0.904111
+vn 0.431959 0.034486 -0.901212
+vn -0.897549 0.111728 -0.426466
+vn 0.902737 -0.032319 0.428907
+vn -0.423292 0.034669 0.905301
+vn 0.434462 0.034669 -0.899991
+vn -0.898495 0.102176 -0.426893
+vn 0.942106 -0.016755 -0.334849
+vn 0.335459 -0.016755 0.941893
+vn -0.332560 0.066164 -0.940733
+vn -0.939390 0.066164 0.336375
+vn 0.723746 0.683493 -0.094760
+vn 0.867977 0.483383 -0.113651
+vn 0.197333 0.106632 0.974487
+vn -0.060274 0.106632 -0.992462
+vn -0.244057 -0.019471 -0.969543
+vn -0.767998 -0.632466 0.100558
+vn -0.898984 -0.421827 0.117740
+vn 0.013825 -0.019471 0.999695
+vn 0.988067 0.083224 -0.129398
+vn 0.053529 0.030732 0.998077
+vn -0.205267 0.030732 -0.978210
+vn -0.991394 -0.014893 0.129826
+vn 0.610126 -0.061220 -0.789911
+vn 0.792962 -0.061220 0.606128
+vn -0.790582 0.110538 -0.602252
+vn -0.608814 0.110538 0.785546
+vn 0.939543 0.310312 0.144597
+vn 0.772088 0.219489 -0.596362
+vn 0.557024 0.219489 0.800928
+vn 0.142430 0.033631 -0.989227
+vn -0.570574 -0.171911 -0.803034
+vn -0.958708 -0.243049 -0.147557
+vn -0.785638 -0.171911 0.594256
+vn -0.161596 0.033631 0.986267
+vn -0.431501 0.608417 -0.666005
+vn -0.438429 0.590075 -0.677877
+vn 0.843043 0.030885 -0.536943
+vn -0.834559 0.030885 0.550005
+vn -0.824274 0.018494 0.565844
+vn 0.450331 -0.560381 0.695059
+vn 0.457686 -0.539079 0.707022
+vn 0.852992 0.019471 -0.521500
+vn -0.507920 0.351390 -0.786431
+vn -0.770501 -0.007233 0.637379
+vn 0.518906 -0.294656 0.802393
+vn 0.895627 -0.007477 -0.444685
+vn -0.542619 0.055177 -0.838160
+vn 0.851039 0.028443 -0.524308
+vn -0.825800 0.027741 0.563219
+vn 0.543260 0.001648 0.839534
+vn -0.541063 0.097720 -0.835261
+vn 0.816523 0.032716 -0.576342
+vn -0.859645 0.032655 0.509781
+vn 0.543321 -0.038057 0.838618
+vn -0.543535 -0.001740 -0.839381
+vn -0.788324 0.032716 0.614338
+vn 0.542589 0.061037 0.837733
+vn 0.882687 0.032624 -0.468795
+vn -0.541093 -0.097446 -0.835261
+vn 0.810480 0.023255 -0.585284
+vn -0.865291 0.023225 0.500687
+vn 0.537004 0.155644 0.829066
+vn -0.976959 0.006104 -0.213324
+vn 0.204505 0.006104 -0.978820
+vn -0.208014 0.035585 0.977447
+vn 0.977142 0.035585 0.209571
+vn 0.220099 0.960631 -0.169469
+vn 0.256691 0.946074 -0.197516
+vn 0.592944 0.031159 0.804621
+vn -0.626331 0.031159 -0.778893
+vn -0.637867 -0.010315 -0.770074
+vn -0.264718 -0.942503 0.203833
+vn -0.300760 -0.925138 0.231574
+vn 0.581378 -0.010132 0.813532
+vn 0.397870 0.864834 -0.306070
+vn -0.656514 -0.040681 -0.753197
+vn -0.437941 -0.833338 0.337199
+vn 0.560564 -0.040529 0.827113
+vn 0.535417 0.666890 -0.518204
+vn 0.617084 -0.117130 0.778100
+vn -0.735588 0.063021 -0.674459
+vn -0.643452 -0.611835 0.459944
+vn -0.058687 0.507889 -0.859401
+vn 0.969878 0.233253 0.070101
+vn -0.978698 -0.199225 -0.049104
+vn 0.040590 -0.474502 0.879299
+vn -0.522080 0.817591 -0.242775
+vn -0.593036 0.756432 -0.275765
+vn 0.468581 -0.013306 -0.883297
+vn -0.425398 0.055849 0.903256
+vn -0.373455 -0.013306 0.927549
+vn 0.564867 -0.782250 0.262642
+vn 0.632527 -0.716483 0.294137
+vn 0.416547 0.055849 -0.907376
+vn -0.765007 0.485519 0.423078
+vn -0.169469 0.485519 -0.857631
+vn 0.196936 -0.455672 0.868068
+vn 0.790704 -0.455672 -0.408795
+vn 0.595569 0.802454 -0.036775
+vn 0.377606 0.567522 -0.731620
+vn 0.464797 0.567522 0.679586
+vn -0.084811 0.018342 -0.996216
+vn -0.497604 -0.541551 -0.677541
+vn -0.641926 -0.765709 0.039644
+vn -0.410413 -0.541551 0.733634
+vn 0.038423 0.018342 0.999084
+vn 0.050264 0.998627 -0.013764
+vn 0.028199 0.999542 -0.007660
+vn -0.239326 -0.010559 -0.970855
+vn 0.289315 0.010224 0.957152
+vn 0.289102 -0.010498 0.957213
+vn -0.000519 -0.999969 0.000122
+vn 0.021638 -0.999725 -0.005921
+vn -0.239021 0.010224 -0.970946
+vn -0.057222 0.998230 0.015900
+vn -0.236579 -0.027528 -0.971191
+vn 0.291574 -0.027284 0.956145
+vn 0.107395 -0.993774 -0.029450
+vn -0.274514 0.958586 0.075442
+vn -0.217689 -0.061861 -0.974029
+vn 0.309000 -0.061647 0.949034
+vn 0.321879 -0.942656 -0.088260
+vn -0.506027 0.851283 0.138646
+vn 0.308054 -0.022950 0.951079
+vn 0.547502 -0.823206 -0.150029
+vn -0.219794 -0.022950 -0.975249
+vn -0.587024 0.793390 0.160863
+vn 0.284188 0.015351 0.958617
+vn 0.625721 -0.760949 -0.171453
+vn -0.244179 0.015351 -0.969604
+vn -0.229621 0.560015 0.795984
+vn -0.603320 0.560015 -0.567736
+vn 0.630665 -0.537034 0.560198
+vn 0.256966 -0.537034 -0.803430
+vn 0.343272 0.932310 -0.113590
+vn 0.336253 0.935148 -0.111270
+vn 0.292428 0.013092 0.956175
+vn -0.337992 0.006623 -0.941099
+vn -0.335734 0.013092 -0.941862
+vn -0.388470 -0.912412 0.128574
+vn -0.382061 -0.915433 0.126438
+vn 0.290170 0.006623 0.956938
+vn 0.503616 0.847652 -0.166662
+vn -0.381603 -0.062624 -0.922178
+vn -0.544145 -0.819391 0.180090
+vn 0.243873 -0.062624 0.967772
+vn 0.250130 0.512528 -0.821406
+vn 0.690756 0.512528 0.509995
+vn -0.716117 -0.489364 -0.497635
+vn -0.277840 -0.489364 0.826594
+vn 0.727622 0.574389 -0.374981
+vn 0.190710 0.406201 -0.893613
+vn 0.838466 0.406201 0.363231
+vn -0.470595 0.021485 -0.882046
+vn -0.856410 -0.375805 -0.353984
+vn -0.752983 -0.531388 0.388043
+vn -0.208655 -0.375805 0.902860
+vn 0.445235 0.021485 0.895138
+vn 0.014954 0.691580 0.722098
+vn 0.014527 0.728172 0.685202
+vn -0.999939 -0.001251 -0.010681
+vn 0.998627 -0.001251 -0.052126
+vn 0.999298 0.031556 -0.019257
+vn -0.015534 -0.661672 -0.749596
+vn -0.015076 -0.698691 -0.715232
+vn -0.999268 0.030976 0.021943
+vn 0.017243 0.594531 0.803858
+vn -0.996094 -0.043123 -0.076662
+vn 0.992187 -0.042817 -0.116977
+vn -0.017579 -0.560686 -0.827815
+vn 0.020234 0.239753 0.970611
+vn 0.995483 0.003784 -0.094607
+vn -0.020600 -0.201361 -0.979278
+vn -0.998535 0.003418 -0.053621
+vn 0.020692 0.021638 0.999542
+vn 0.998627 0.020447 -0.047945
+vn -0.020753 0.018952 -0.999603
+vn -0.999756 0.020173 -0.006500
+vn 0.020264 0.173009 0.984680
+vn 0.996857 0.035035 0.070925
+vn -0.020295 -0.132664 -0.990936
+vn -0.993011 0.035127 0.112552
+vn 0.019776 0.280343 0.959685
+vn -0.999481 0.006897 -0.031098
+vn 0.997314 0.006836 -0.072665
+vn -0.020051 -0.241523 -0.970183
+vn 0.720054 0.123844 0.682760
+vn -0.691122 0.123844 0.712027
+vn 0.689444 -0.095737 -0.717948
+vn -0.718619 -0.095737 -0.688742
+vn -0.755669 0.653859 -0.036775
+vn -0.796411 0.603473 -0.038759
+vn 0.084323 -0.000793 -0.996429
+vn -0.059023 0.035096 0.997620
+vn -0.012818 -0.000793 0.999908
+vn 0.781579 -0.622639 0.038026
+vn 0.820276 -0.570544 0.039918
+vn 0.038118 0.035096 -0.998627
+vn -0.908353 0.415845 -0.044252
+vn 0.120121 -0.008637 -0.992706
+vn 0.023225 -0.008637 0.999664
+vn 0.924558 -0.378307 0.045045
+vn -0.973418 0.228858 0.006165
+vn 0.004608 0.109256 0.993988
+vn 0.980346 -0.180731 0.078860
+vn 0.044710 -0.078036 -0.995941
+vn -0.693106 0.261483 0.671712
+vn -0.694143 -0.008545 -0.719748
+vn 0.698050 0.036531 0.715079
+vn 0.699850 -0.233589 -0.674978
+vn -0.948729 0.183721 0.257118
+vn -0.959197 0.111148 0.259926
+vn -0.227546 0.017212 -0.973601
+vn 0.231727 0.025697 0.972411
+vn 0.295175 0.017212 0.955260
+vn 0.955138 -0.143712 -0.258827
+vn 0.962767 -0.070681 -0.260903
+vn -0.290963 0.025697 -0.956359
+vn -0.497696 0.025849 0.866939
+vn -0.867336 0.025849 -0.497024
+vn 0.868526 0.002838 0.495590
+vn 0.499435 0.002838 -0.866329
+vn -0.347392 0.548418 0.760582
+vn 0.397443 0.387829 0.831629
+vn -0.888791 0.387829 0.244118
+vn 0.913907 0.017212 0.405530
+vn 0.895138 -0.363445 -0.258034
+vn 0.356365 -0.513962 -0.780267
+vn -0.391095 -0.363445 -0.845515
+vn -0.904904 0.017212 -0.425214
+vn -0.607196 0.523057 0.598041
+vn -0.656056 0.388806 0.646809
+vn -0.645924 0.003204 -0.763359
+vn 0.664785 0.062532 0.744377
+vn 0.753349 0.004059 0.657582
+vn 0.628285 -0.471450 -0.618824
+vn 0.672079 -0.331797 -0.661946
+vn -0.734184 0.062532 -0.676015
+vn -0.711844 -0.004486 0.702292
+vn -0.618152 0.034791 -0.785241
+vn 0.775353 0.034120 0.630573
+vn 0.710929 0.065096 -0.700217
+vn -0.710654 -0.069002 0.700125
+vn 0.635395 0.021180 0.771874
+vn 0.706595 0.127995 -0.695914
+vn -0.762047 0.021546 -0.647114
+vn -0.712302 0.019501 0.701559
+vn -0.666066 0.030274 -0.745232
+vn 0.735038 0.030274 0.677328
+vn 0.711875 0.039766 -0.701132
+vn -0.708457 0.105502 0.697775
+vn 0.637257 0.036836 0.769738
+vn 0.711692 -0.045900 -0.700949
+vn -0.759972 0.036836 -0.648885
+vn 0.003052 0.216071 0.976348
+vn -0.976196 0.216071 -0.017914
+vn 0.984527 -0.174383 0.015625
+vn -0.000671 -0.174383 -0.984649
+vn -0.056063 0.795282 0.603626
+vn -0.057405 0.783898 0.618183
+vn -0.992584 0.012909 -0.120823
+vn 0.996857 0.025849 0.074740
+vn 0.997833 0.012940 0.064089
+vn 0.060396 -0.757347 -0.650166
+vn 0.061708 -0.745109 -0.664052
+vn -0.993561 0.025849 -0.110172
+vn -0.063387 0.727775 0.682852
+vn -0.990814 -0.000153 -0.135105
+vn 0.998749 -0.000183 0.049806
+vn 0.067385 -0.685171 -0.725242
+vn 0.655751 0.480300 0.582446
+vn -0.751854 0.480300 0.451643
+vn 0.753105 -0.449171 -0.480667
+vn -0.651631 -0.449171 -0.611194
+vn -0.708518 0.118564 -0.695608
+vn -0.996368 0.083865 0.012452
+vn -0.005829 0.083865 -0.996429
+vn -0.698325 0.029969 0.715110
+vn 0.008545 -0.041444 0.999084
+vn 0.712333 -0.058596 0.699362
+vn 0.999084 -0.041444 -0.009796
+vn 0.702170 0.029969 -0.711356
+vn 0.854427 0.216376 0.472304
+vn 0.863521 0.162664 0.477340
+vn -0.464583 0.026307 0.885098
+vn 0.502396 0.026307 -0.864223
+vn 0.458876 0.018616 -0.888302
+vn -0.861812 -0.174047 -0.476394
+vn -0.869045 -0.118168 -0.480392
+vn -0.508133 0.018616 0.861049
+vn 0.872280 -0.081362 0.482162
+vn 0.410596 0.030213 -0.911283
+vn -0.868404 0.124149 -0.480026
+vn -0.553301 0.030213 0.832423
+vn 0.844478 -0.262551 0.466811
+vn -0.476058 0.019044 0.879177
+vn 0.491287 0.019044 -0.870754
+vn -0.834254 0.302164 -0.461165
+vn 0.865535 -0.147954 0.478439
+vn -0.436995 0.013123 0.899350
+vn 0.529160 0.013123 -0.848415
+vn -0.859066 0.191015 -0.474868
+vn 0.860469 0.182531 0.475631
+vn -0.398419 0.037751 0.916410
+vn 0.564104 0.037751 -0.824824
+vn -0.866604 -0.139561 -0.479049
+vn 0.814020 0.367229 0.449965
+vn 0.464858 0.015107 -0.885250
+vn -0.827113 -0.326731 -0.457228
+vn -0.502365 0.015076 0.864498
+vn 0.924955 0.237587 -0.296609
+vn 0.240791 0.237587 0.941038
+vn -0.249886 -0.208777 -0.945494
+vn -0.933561 -0.208777 0.291269
+vn -0.525681 0.657002 -0.540330
+vn -0.586047 0.541917 -0.602344
+vn 0.687979 0.060274 -0.723167
+vn -0.741783 0.060274 0.667898
+vn -0.668325 -0.015748 0.743675
+vn 0.544786 -0.624165 0.559954
+vn 0.601703 -0.505356 0.618488
+vn 0.761681 -0.015809 -0.647755
+vn -0.661946 0.314402 -0.680380
+vn 0.752098 0.006531 -0.658986
+vn -0.679342 0.006348 0.733787
+vn 0.670675 -0.273446 0.689474
+vn -0.710990 0.160009 -0.684713
+vn 0.726310 -0.041200 -0.686117
+vn -0.686819 0.077395 0.722648
+vn 0.677999 -0.113956 0.726157
+vn -0.987213 0.159398 0.000336
+vn -0.000763 -0.011139 -0.999908
+vn 0.004975 0.041292 0.999115
+vn 0.991607 -0.129093 0.001312
+vn -0.220832 0.324168 -0.919828
+vn -0.225745 0.254524 -0.940336
+vn 0.965453 0.030976 -0.258614
+vn -0.977630 0.030976 0.207892
+vn -0.962920 0.013276 0.269417
+vn 0.223884 -0.283090 0.932554
+vn 0.228095 -0.212561 0.950133
+vn 0.980285 0.013276 -0.197089
+vn -0.849513 0.128819 -0.511551
+vn 0.524644 0.128819 -0.841487
+vn -0.522172 -0.098880 0.847072
+vn 0.849818 -0.098880 0.517655
+vn 0.307596 0.441298 -0.842952
+vn -0.446638 0.312082 -0.838496
+vn 0.881710 0.312082 -0.353771
+vn -0.942289 0.019593 -0.334147
+vn -0.886135 -0.284371 0.365886
+vn -0.313852 -0.402112 0.860103
+vn 0.442213 -0.284371 0.850612
+vn 0.936064 0.019593 0.351238
+vn 0.115665 0.548967 0.827754
+vn 0.129093 0.359661 0.924100
+vn -0.998871 -0.019013 0.043428
+vn 0.995880 0.066469 -0.061647
+vn 0.972533 -0.019166 -0.231910
+vn -0.117832 -0.524308 -0.843318
+vn -0.130589 -0.331919 -0.934202
+vn -0.974609 0.066469 0.213691
+vn 0.138279 -0.048219 0.989196
+vn 0.973998 0.020386 -0.225532
+vn -0.138127 0.077273 -0.987365
+vn -0.998535 0.020295 0.049867
+vn 0.135014 -0.223090 0.965392
+vn 0.992248 0.011536 -0.123692
+vn -0.134068 0.251564 -0.958495
+vn -0.988189 0.011505 0.152776
+vn 0.137150 -0.131565 0.981750
+vn 0.994232 0.010346 -0.106449
+vn -0.136540 0.161199 -0.977416
+vn -0.985351 0.010376 0.170171
+vn 0.138157 -0.055330 0.988861
+vn -0.989563 0.014618 0.143345
+vn 0.990936 0.014618 -0.133396
+vn -0.137883 0.085147 -0.986755
+vn 0.797967 -0.032807 0.601794
+vn -0.602435 -0.032807 0.797479
+vn 0.602710 0.053926 -0.796106
+vn -0.797845 0.053926 -0.600391
+vn 0.725364 0.677419 -0.121952
+vn 0.780633 0.611011 -0.131260
+vn 0.185553 0.038087 0.981872
+vn -0.145756 0.038087 -0.988556
+vn -0.205603 -0.011567 -0.978545
+vn -0.744957 -0.655202 0.125248
+vn -0.798303 -0.587085 0.134220
+vn 0.125736 -0.011567 0.991974
+vn 0.860103 0.489151 -0.144627
+vn 0.135899 0.000580 0.990692
+vn -0.195563 0.000580 -0.980682
+vn -0.874111 -0.462905 0.146977
+vn 0.510269 0.309122 -0.802484
+vn 0.744682 0.309122 0.591449
+vn -0.753960 -0.290231 -0.589251
+vn -0.519761 -0.290231 0.803461
+vn 0.443403 0.158666 -0.882138
+vn -0.318186 0.112186 -0.941343
+vn 0.945311 0.112186 -0.306253
+vn -0.894345 0.014801 -0.447096
+vn -0.946654 -0.091250 0.308969
+vn -0.445326 -0.129063 0.885983
+vn 0.316813 -0.091250 0.944060
+vn 0.892392 0.014801 0.451003
+vn 0.054781 0.871151 0.487930
+vn 0.048280 0.901578 0.429884
+vn -0.996429 -0.018281 0.082308
+vn 0.989868 -0.018281 -0.140721
+vn 0.993042 0.033906 -0.112644
+vn -0.057894 -0.854885 -0.515549
+vn -0.051485 -0.887143 -0.458571
+vn -0.993286 0.033876 0.110416
+vn 0.049043 0.898801 0.435560
+vn -0.996368 -0.022309 0.082034
+vn 0.989746 -0.022095 -0.140965
+vn -0.052217 -0.883969 -0.464583
+vn 0.072939 0.757744 0.648427
+vn -0.997711 -0.050539 0.044374
+vn 0.982757 -0.050508 -0.177709
+vn -0.075625 -0.735923 -0.672781
+vn 0.099460 0.452101 0.886380
+vn 0.979339 -0.025788 -0.200476
+vn -0.101169 -0.423353 -0.900266
+vn -0.999420 -0.025819 0.021729
+vn 0.110660 0.130680 0.985198
+vn 0.985168 0.009186 -0.171178
+vn -0.111118 -0.099063 -0.988830
+vn -0.998627 0.009033 0.051424
+vn 0.111148 0.088778 0.989807
+vn 0.997192 0.019013 -0.072390
+vn -0.111423 -0.056703 -0.992126
+vn -0.988403 0.019013 0.150548
+vn 0.778527 0.126896 0.614612
+vn -0.622822 0.126896 0.771966
+vn 0.623554 -0.104251 -0.774773
+vn -0.779870 -0.104251 -0.617176
+vn 0.157750 0.928892 -0.335002
+vn 0.234748 0.834529 -0.498398
+vn 0.909848 0.094913 0.403882
+vn -0.890957 0.094913 -0.444044
+vn -0.928495 -0.066805 -0.365184
+vn -0.170171 -0.916745 0.361400
+vn -0.245888 -0.816675 0.522050
+vn 0.873104 -0.066775 0.482925
+vn 0.311991 0.681112 -0.662343
+vn 0.895535 0.002564 0.444929
+vn -0.913511 0.002319 -0.406781
+vn -0.321085 -0.657460 0.681600
+vn 0.284677 0.616596 -0.733970
+vn 0.916532 -0.089846 0.389691
+vn -0.939451 0.083621 -0.332255
+vn -0.383160 -0.582385 0.716910
+vn -0.426252 0.523637 -0.737602
+vn 0.906217 0.274087 -0.321848
+vn -0.907224 -0.255196 0.334330
+vn 0.423109 -0.505783 0.751732
+vn 0.187689 0.524766 -0.830256
+vn 0.187414 0.526841 -0.829005
+vn 0.973632 0.014405 0.227638
+vn -0.977264 0.013276 -0.211463
+vn -0.976867 0.014405 -0.213324
+vn -0.191321 -0.497024 0.846370
+vn -0.191076 -0.499130 0.845180
+vn 0.973205 0.013276 0.229499
+vn -0.557268 0.374065 -0.741264
+vn 0.821955 0.374065 -0.429426
+vn -0.824580 -0.354472 0.440870
+vn 0.554704 -0.354472 0.752739
+vn 0.736015 0.673849 0.064577
+vn 0.582263 0.476516 -0.658650
+vn 0.458693 0.476547 0.749992
+vn 0.076754 0.012085 -0.996948
+vn -0.473739 -0.459426 -0.751305
+vn -0.757286 -0.649678 -0.066408
+vn -0.597339 -0.459426 0.657338
+vn -0.097995 0.012085 0.995086
+vn 0.786828 0.532640 -0.311655
+vn 0.827937 0.454878 -0.327952
+vn 0.393689 0.034883 0.918546
+vn -0.342082 0.034883 -0.938994
+vn -0.408216 -0.003845 -0.912839
+vn -0.801660 -0.506424 0.317545
+vn -0.840754 -0.426832 0.333018
+vn 0.327586 -0.003845 0.944792
+vn 0.905667 0.225898 -0.358745
+vn -0.433027 0.000549 -0.901364
+vn -0.911679 -0.195868 0.361126
+vn 0.301645 0.000549 0.953398
+vn 0.928037 -0.060030 -0.367595
+vn 0.312845 0.019807 0.949583
+vn -0.422224 0.019807 -0.906247
+vn -0.925901 0.090487 0.366741
+vn 0.928434 -0.051943 -0.367748
+vn 0.428327 0.011017 0.903531
+vn -0.306558 0.011017 -0.951781
+vn -0.926542 0.082492 0.366985
+vn 0.929289 0.029969 -0.368084
+vn -0.394879 0.014985 -0.918577
+vn -0.929716 0.000793 0.368267
+vn 0.341227 0.014985 0.939848
+vn 0.397137 -0.024140 -0.917417
+vn 0.917661 -0.024140 0.396619
+vn -0.917020 0.045930 -0.396100
+vn -0.397046 0.045930 0.916623
+vn 0.409436 0.910916 0.050142
+vn 0.542558 0.837367 0.066439
+vn -0.104709 0.071352 0.991913
+vn 0.137761 0.071352 -0.987884
+vn 0.070162 -0.048647 -0.996338
+vn -0.436781 -0.897946 -0.053499
+vn -0.567797 -0.820215 -0.069521
+vn -0.172369 -0.048647 0.983825
+vn 0.826075 0.554369 0.101169
+vn -0.222694 -0.047304 0.973724
+vn 0.018891 -0.047304 -0.998688
+vn -0.842769 -0.528275 -0.103214
+vn 0.757164 0.234870 -0.609485
+vn 0.587664 0.234870 0.774224
+vn -0.597186 -0.215339 -0.772637
+vn -0.766015 -0.215339 0.605640
+vn 0.784692 0.180853 -0.592883
+vn 0.128636 0.127903 -0.983398
+vn 0.981140 0.127903 0.144841
+vn -0.604755 0.015198 -0.796228
+vn -0.984008 -0.106388 -0.142674
+vn -0.788751 -0.150487 0.595965
+vn -0.131535 -0.106418 0.985565
+vn 0.600757 0.015198 0.799280
+vn 0.273080 0.663869 0.696158
+vn 0.282113 0.635090 0.719047
+vn -0.938047 -0.002472 0.346416
+vn 0.933012 0.019440 -0.359294
+vn 0.923399 -0.002411 -0.383740
+vn -0.278146 -0.647908 -0.709098
+vn -0.286966 -0.618458 -0.731498
+vn -0.928434 0.019440 0.370891
+vn 0.314646 0.508133 0.801721
+vn -0.948271 -0.016968 0.316965
+vn 0.910947 -0.016846 -0.412152
+vn -0.318522 -0.489395 -0.811792
+vn 0.357128 0.210273 0.910062
+vn -0.960418 -0.007599 0.278420
+vn 0.893643 -0.007599 -0.448683
+vn -0.358623 -0.189276 -0.914060
+vn 0.356731 0.213141 0.909543
+vn 0.959410 0.029237 -0.280435
+vn -0.358257 -0.192785 -0.913480
+vn -0.894162 0.029298 0.446760
+vn 0.342631 0.345317 0.873684
+vn -0.942869 -0.001099 0.333079
+vn 0.917814 -0.001160 -0.396954
+vn -0.345195 -0.325724 -0.880184
+vn 0.351970 0.266518 0.897244
+vn 0.928281 0.009064 -0.371685
+vn -0.353954 -0.246101 -0.902280
+vn -0.933439 0.009033 0.358592
+vn 0.907804 0.181677 0.377941
+vn -0.408673 0.181677 0.894375
+vn 0.407239 -0.167180 -0.897855
+vn -0.909116 -0.167180 -0.381481
+vn -0.296457 0.936247 0.188482
+vn -0.475478 0.826106 0.302316
+vn -0.474471 -0.081973 -0.876400
+vn 0.507248 0.108341 0.854915
+vn 0.592364 -0.081973 0.801447
+vn 0.312632 -0.928831 -0.198767
+vn 0.489639 -0.814417 -0.311319
+vn -0.559008 0.108341 -0.822016
+vn -0.692862 0.570788 0.440565
+vn 0.579577 -0.022370 0.814600
+vn 0.702963 -0.553148 -0.446974
+vn -0.491806 -0.022370 -0.870388
+vn -0.818262 0.240303 0.522141
+vn 0.624287 -0.012299 0.781060
+vn 0.823420 -0.219916 -0.523026
+vn -0.443770 -0.016419 -0.895962
+vn -0.229255 0.003082 0.973327
+vn -0.979156 -0.002869 -0.202979
+vn 0.979492 0.017609 0.200568
+vn 0.231605 0.011658 -0.972716
+vn -0.710746 0.222480 0.667287
+vn -0.721397 0.144322 0.677267
+vn -0.656972 0.005676 -0.753868
+vn 0.659505 0.018097 0.751457
+vn 0.710959 0.005676 0.703177
+vn 0.714011 -0.201880 -0.670370
+vn 0.723472 -0.123386 -0.679220
+vn -0.708426 0.018097 -0.705527
+vn -0.031648 0.045625 0.998444
+vn -0.998444 0.045625 -0.031312
+vn 0.999054 -0.030732 0.029908
+vn 0.033082 -0.030732 -0.998962
+vn -0.250343 0.669576 0.699240
+vn 0.488662 0.473464 0.732810
+vn -0.842738 0.473464 0.256111
+vn 0.943754 0.007904 0.330454
+vn 0.846065 -0.462233 -0.265419
+vn 0.255074 -0.653706 -0.712424
+vn -0.485336 -0.462233 -0.742119
+vn -0.939055 0.007935 -0.343638
+vn 0.459151 0.767968 -0.446516
+vn 0.493881 0.724815 -0.480270
+vn 0.704215 0.030549 0.709311
+vn -0.689383 0.030549 -0.723716
+vn -0.717643 -0.012665 -0.696280
+vn -0.472182 -0.752403 0.459181
+vn -0.506180 -0.708152 0.492203
+vn 0.675985 -0.012635 0.736778
+vn 0.523911 0.682607 -0.509445
+vn 0.692770 0.010712 0.721030
+vn -0.701437 0.010651 -0.712607
+vn -0.535478 -0.664907 0.520707
+vn 0.552843 0.636647 -0.537553
+vn -0.719260 -0.009735 -0.694662
+vn -0.563707 -0.617847 0.548143
+vn 0.674337 -0.009674 0.738304
+vn 0.640492 0.449324 -0.622761
+vn -0.744469 -0.019959 -0.667318
+vn -0.648000 -0.427747 0.630146
+vn 0.646352 -0.019898 0.762749
+vn 0.686422 0.288461 -0.667501
+vn 0.689840 0.009400 0.723869
+vn -0.704367 0.009461 -0.709738
+vn -0.691122 -0.265633 0.672109
+vn -0.005341 0.193243 -0.981109
+vn 0.980590 0.193243 0.032716
+vn -0.983764 -0.176916 -0.029450
+vn 0.001953 -0.176916 0.984191
+vn -0.077853 0.989624 0.120701
+vn -0.202826 0.927335 0.314432
+vn -0.806970 -0.094333 -0.582965
+vn 0.831843 0.112918 0.543382
+vn 0.863765 -0.094333 0.494919
+vn 0.090335 -0.985992 -0.140049
+vn 0.214637 -0.918241 -0.332743
+vn -0.837977 0.112888 -0.533860
+vn -0.387707 0.698843 0.601032
+vn 0.872463 -0.044527 0.486618
+vn 0.396558 -0.681722 -0.614795
+vn -0.803003 -0.044649 -0.594256
+vn 0.272042 0.402142 0.874203
+vn -0.908597 0.402142 0.112522
+vn 0.913083 -0.388958 -0.122166
+vn -0.265084 -0.388958 -0.882260
+vn 0.324534 0.746940 -0.580279
+vn -0.387616 0.528184 -0.755455
+vn 0.846614 0.528184 -0.065188
+vn -0.877041 0.008057 -0.480331
+vn -0.852718 -0.516739 0.076113
+vn -0.333171 -0.730796 0.595752
+vn 0.381512 -0.516739 0.766411
+vn 0.868374 0.008057 0.495804
+vn -0.431654 0.744255 0.509598
+vn -0.385327 0.802759 0.455000
+vn -0.738151 -0.023591 -0.674184
+vn 0.786431 -0.023591 0.617176
+vn 0.752007 0.040315 0.657888
+vn 0.442610 -0.728690 -0.522538
+vn 0.397320 -0.788629 -0.469161
+vn -0.772637 0.040193 -0.633534
+vn -0.417066 0.763878 0.492447
+vn -0.725608 -0.045442 -0.686575
+vn 0.796533 -0.045412 0.602832
+vn 0.428510 -0.748558 -0.505966
+vn -0.558184 0.504257 0.658834
+vn 0.810419 -0.030519 0.585009
+vn 0.565539 -0.484085 -0.667684
+vn -0.710471 -0.030457 -0.703055
+vn -0.640706 0.131504 0.756401
+vn 0.821345 0.000061 0.570421
+vn 0.642445 -0.108860 -0.758538
+vn -0.697745 0.000031 -0.716300
+vn -0.646260 -0.003082 0.763085
+vn 0.739372 0.010865 0.673177
+vn 0.646046 0.025819 -0.762841
+vn -0.785546 0.010865 -0.618671
+vn -0.645314 0.055330 0.761864
+vn -0.756432 0.011109 -0.653951
+vn 0.769494 0.011109 0.638539
+vn 0.645985 -0.032258 -0.762658
+vn 0.082766 0.023988 0.996277
+vn -0.996307 0.023988 0.082247
+vn 0.996521 -0.007630 -0.082766
+vn -0.082278 -0.007630 -0.996551
+vn 0.072207 0.991333 0.109500
+vn 0.023713 0.999054 0.035951
+vn 0.843013 0.039155 -0.536424
+vn -0.825007 0.039155 0.563738
+vn -0.828394 -0.040315 0.558672
+vn -0.059633 -0.994110 -0.090426
+vn -0.011048 -0.999786 -0.016724
+vn 0.839686 -0.040284 -0.541520
+vn -0.026124 0.998871 -0.039369
+vn 0.841151 0.000000 -0.540757
+vn -0.828272 0.000275 0.560259
+vn 0.038942 -0.997497 0.058840
+vn 0.139286 0.954344 -0.264168
+vn -0.964721 -0.213355 0.154241
+vn 0.285714 -0.925718 0.247688
+vn 0.997131 0.012116 -0.074648
+vn -0.717521 0.413984 -0.560137
+vn 0.628346 0.776116 -0.052767
+vn -0.629200 -0.773980 0.070894
+vn 0.713004 -0.406171 0.571490
+vn -0.234840 0.805414 -0.544176
+vn -0.268624 0.735069 -0.622486
+vn 0.908322 0.047792 -0.415509
+vn -0.925413 0.047792 0.375866
+vn -0.899991 -0.028382 0.434919
+vn 0.242134 -0.791589 0.561022
+vn 0.275277 -0.719230 0.637898
+vn 0.933836 -0.028382 -0.356487
+vn -0.859859 0.464156 -0.212439
+vn 0.435255 0.464156 -0.771386
+vn -0.429975 -0.452315 0.781335
+vn 0.863491 -0.452315 0.223121
+vn 0.372997 0.904355 0.207282
+vn -0.079745 0.639454 0.764641
+vn 0.607227 0.639454 -0.471480
+vn -0.476547 -0.004761 0.879116
+vn -0.594256 -0.646260 0.478683
+vn -0.354595 -0.913999 -0.197089
+vn 0.092746 -0.646260 -0.757408
+vn 0.494949 -0.004761 -0.868892
+vn -0.259682 0.951353 -0.165777
+vn -0.403394 0.878018 -0.257546
+vn 0.521287 0.085452 -0.849086
+vn -0.550798 0.085452 0.830226
+vn -0.493789 -0.067721 0.866909
+vn 0.276315 -0.944700 0.176397
+vn 0.419202 -0.867519 0.267617
+vn 0.578570 -0.067721 -0.812799
+vn -0.670736 0.605579 -0.428205
+vn -0.459700 -0.053957 0.886410
+vn 0.680868 -0.589435 0.434675
+vn 0.610614 -0.053957 -0.790063
+vn -0.771233 0.403424 -0.492355
+vn -0.534104 0.009522 0.845332
+vn 0.778252 -0.383953 0.496841
+vn 0.542039 0.009522 -0.840297
+vn -0.799860 0.315317 -0.510636
+vn 0.574114 -0.002686 -0.818751
+vn -0.501053 -0.002686 0.865383
+vn 0.805322 -0.295083 0.514115
+vn -0.820429 0.228980 -0.523820
+vn -0.537797 0.010773 0.842982
+vn 0.824335 -0.208289 0.526322
+vn 0.538408 0.010773 -0.842586
+vn -0.960051 0.165014 0.225867
+vn -0.199103 0.164983 -0.965972
+vn 0.201880 -0.150365 0.967772
+vn 0.962859 -0.150365 -0.224097
+vn -0.074984 0.984863 0.156102
+vn -0.099399 0.973266 0.206977
+vn -0.893796 -0.022767 -0.447829
+vn 0.903378 0.028016 0.427869
+vn 0.908170 -0.022706 0.417920
+vn 0.083987 -0.980987 -0.174871
+vn 0.108371 -0.968169 -0.225562
+vn -0.898587 0.028047 -0.437880
+vn -0.195959 0.891690 0.407971
+vn -0.878048 -0.066744 -0.473830
+vn 0.918638 -0.066652 0.389416
+vn 0.204138 -0.881893 -0.424909
+vn 0.445692 0.566424 0.693167
+vn -0.819697 0.566393 0.085177
+vn 0.823908 -0.558306 -0.097079
+vn -0.439039 -0.558336 -0.703879
+vn 0.372906 0.455153 0.808527
+vn 0.905759 0.321848 0.275582
+vn -0.378368 0.321848 0.867885
+vn 0.906003 0.009461 -0.423109
+vn 0.375561 -0.308420 -0.873959
+vn -0.376873 -0.436140 -0.817133
+vn -0.908567 -0.308420 -0.281655
+vn -0.910001 0.009461 0.414472
+vn 0.404614 0.511551 -0.757988
+vn 0.406598 0.504410 -0.761711
+vn 0.881283 0.010559 0.472396
+vn -0.882931 0.010559 -0.469314
+vn -0.885983 0.006836 -0.463607
+vn -0.409345 -0.494217 0.766900
+vn -0.411267 -0.486953 0.770501
+vn 0.878231 0.006836 0.478133
+vn 0.414655 0.474013 -0.776727
+vn -0.889248 0.003327 -0.457350
+vn -0.419050 -0.456191 0.784997
+vn 0.874874 0.003357 0.484298
+vn 0.437513 0.370067 -0.819483
+vn -0.900662 -0.004883 -0.434462
+vn -0.440931 -0.351115 0.825983
+vn 0.862239 -0.004822 0.506424
+vn 0.467971 0.112583 -0.876522
+vn -0.917142 0.001953 -0.398480
+vn -0.468886 -0.092502 0.878384
+vn 0.841548 0.001953 0.540147
+vn 0.467452 0.120640 -0.875729
+vn 0.917814 0.019318 0.396496
+vn -0.840205 0.019318 -0.541917
+vn -0.468490 -0.100833 0.877682
+vn 0.467177 0.125095 -0.875240
+vn -0.918363 0.000458 -0.395672
+vn -0.468276 -0.105319 0.877255
+vn 0.839808 0.000458 0.542833
+vn -0.284036 -0.043123 -0.957823
+vn 0.953887 -0.043123 -0.297037
+vn -0.952849 0.057253 0.297922
+vn 0.282723 0.057253 0.957457
+vn 0.769738 0.638325 0.002594
+vn 0.901914 0.431867 0.003021
+vn 0.079653 0.080325 0.993561
+vn 0.086367 0.080325 -0.993011
+vn -0.100528 -0.037355 -0.994201
+vn -0.782006 -0.623218 -0.002625
+vn -0.910306 -0.413923 -0.003052
+vn -0.107242 -0.037355 0.993500
+vn 0.984222 0.176733 0.003296
+vn -0.014069 0.007904 0.999847
+vn -0.007324 0.007904 -0.999939
+vn -0.987426 -0.157842 -0.003327
+vn 0.994751 0.101749 -0.010132
+vn -0.026399 -0.019227 0.999451
+vn -0.025727 0.034608 -0.999054
+vn -0.996582 -0.081088 -0.013855
+vn 0.705191 0.070284 -0.705466
+vn 0.708029 -0.006348 0.706107
+vn -0.708731 0.020478 -0.705161
+vn -0.706290 -0.056124 0.705649
+vn 0.539720 0.813654 -0.215979
+vn 0.589312 0.772698 -0.235847
+vn 0.380779 0.030915 0.924131
+vn -0.361919 0.030915 -0.931669
+vn -0.396649 -0.016846 -0.917814
+vn -0.554735 -0.801843 0.221992
+vn -0.603565 -0.759819 0.241554
+vn 0.346049 -0.016846 0.938047
+vn 0.188055 0.515061 -0.836238
+vn 0.713065 0.515061 0.475600
+vn -0.722678 -0.505570 -0.471236
+vn -0.198035 -0.505570 0.839717
+vn 0.797021 0.493881 0.347575
+vn 0.846217 0.349223 -0.402356
+vn 0.280923 0.349223 0.893918
+vn 0.395245 0.008759 -0.918516
+vn -0.287240 -0.336833 -0.896664
+vn -0.805933 -0.476333 -0.351451
+vn -0.852535 -0.336833 0.399579
+vn -0.404157 0.008759 0.914609
+s 1
+f 1//1 5//2 4//3
+f 2//4 6//5 5//2
+f 3//6 7//7 2//4
+f 4//3 8//8 7//7
+f 5//2 9//9 12//10
+f 6//5 10//11 9//9
+f 7//7 11//12 10//11
+f 8//8 12//10 11//12
+f 9//9 13//13 16//14
+f 10//11 14//15 9//9
+f 11//12 15//16 14//15
+f 12//10 16//14 11//12
+f 13//13 17//17 16//14
+f 14//15 18//18 13//13
+f 15//16 19//19 14//15
+f 16//14 20//20 15//16
+f 17//17 21//21 20//20
+f 18//18 22//22 21//21
+f 19//19 23//23 18//18
+f 20//20 24//24 23//23
+f 21//21 25//25 24//24
+f 22//22 26//26 21//21
+f 23//23 27//27 22//22
+f 24//24 28//28 23//23
+f 25//25 29//29 32//30
+f 26//26 30//31 29//29
+f 27//27 31//32 30//31
+f 28//28 32//30 31//32
+f 29//29 33//33 36//34
+f 30//31 34//35 33//33
+f 31//32 35//36 34//35
+f 32//30 36//34 35//36
+f 37//37 41//38 40//39
+f 38//40 42//41 41//38
+f 39//42 43//43 38//40
+f 40//39 44//44 43//43
+f 41//38 45//45 48//46
+f 42//41 46//47 41//38
+f 43//43 47//48 46//47
+f 44//44 48//46 43//43
+f 45//45 49//49 52//50
+f 46//47 50//51 49//49
+f 47//48 51//52 50//51
+f 48//46 52//50 51//52
+f 49//49 53//53 52//50
+f 50//51 54//54 49//49
+f 51//52 55//55 50//51
+f 52//50 56//56 51//52
+f 53//53 57//57 60//58
+f 54//54 58//59 57//57
+f 55//55 59//60 58//59
+f 56//56 60//58 59//60
+f 57//57 61//61 64//62
+f 58//59 62//63 57//57
+f 59//60 63//64 62//63
+f 60//58 64//62 59//60
+f 61//61 65//65 68//66
+f 62//63 66//67 65//65
+f 63//64 67//68 66//67
+f 64//62 68//66 67//68
+f 69//69 73//70 72//71
+f 70//72 74//73 69//69
+f 71//74 75//75 70//72
+f 72//71 76//76 71//74
+f 73//70 77//77 80//78
+f 74//73 78//79 77//77
+f 75//75 79//80 78//79
+f 76//76 80//78 79//80
+f 77//77 81//81 80//78
+f 78//79 82//82 77//77
+f 79//80 83//83 78//79
+f 80//78 84//84 79//80
+f 81//81 85//85 88//86
+f 82//82 86//87 85//85
+f 83//83 87//88 86//87
+f 84//84 88//86 87//88
+f 85//85 89//89 88//86
+f 86//87 90//90 89//89
+f 87//88 91//91 86//87
+f 88//86 92//92 91//91
+f 89//89 93//93 96//94
+f 90//90 94//95 89//89
+f 91//91 95//96 94//95
+f 92//92 96//94 91//91
+f 93//93 97//97 100//98
+f 94//95 98//99 97//97
+f 95//96 99//100 98//99
+f 96//94 100//98 99//100
+f 101//101 105//102 108//103
+f 102//104 106//105 105//102
+f 103//106 107//107 106//105
+f 104//108 108//103 107//107
+f 105//102 109//109 108//103
+f 106//105 110//110 105//102
+f 107//107 111//111 106//105
+f 108//103 112//112 107//107
+f 109//109 113//113 112//112
+f 110//110 114//114 109//109
+f 111//111 115//115 110//110
+f 112//112 116//116 111//111
+f 113//113 117//117 120//118
+f 114//114 118//119 117//117
+f 115//115 119//120 118//119
+f 116//116 120//118 119//120
+f 117//117 121//121 120//118
+f 118//119 122//122 121//121
+f 119//120 123//123 118//119
+f 120//118 124//124 123//123
+f 121//121 125//125 128//126
+f 122//122 126//127 125//125
+f 123//123 127//128 126//127
+f 124//124 128//126 127//128
+f 129//129 133//130 136//131
+f 130//132 134//133 133//130
+f 131//134 135//135 134//133
+f 132//136 136//131 135//135
+f 133//130 137//137 136//131
+f 134//133 138//138 133//130
+f 135//135 139//139 134//133
+f 136//131 140//140 135//135
+f 137//137 141//141 140//140
+f 138//138 142//142 141//141
+f 139//139 143//143 138//138
+f 140//140 144//144 143//143
+f 141//141 145//145 148//146
+f 142//142 146//147 141//141
+f 143//143 147//148 146//147
+f 144//144 148//146 143//143
+f 145//145 149//149 152//150
+f 146//147 150//151 149//149
+f 147//148 151//152 150//151
+f 148//146 152//150 151//152
+f 153//153 157//154 160//155
+f 154//156 158//157 153//153
+f 155//158 159//159 158//157
+f 156//160 160//155 155//158
+f 157//154 161//161 160//155
+f 158//157 162//162 161//161
+f 159//159 163//163 158//157
+f 160//155 164//164 163//163
+f 161//161 165//165 168//166
+f 162//162 166//167 165//165
+f 163//163 167//168 166//167
+f 164//164 168//166 167//168
+f 165//165 169//169 172//170
+f 166//167 170//171 165//165
+f 167//168 171//172 170//171
+f 168//166 172//170 167//168
+f 169//169 173//173 176//174
+f 170//171 174//175 173//173
+f 171//172 175//176 174//175
+f 172//170 176//174 175//176
+f 177//177 181//178 184//179
+f 178//180 182//181 181//178
+f 179//182 183//183 182//181
+f 180//184 184//179 183//183
+f 181//178 185//185 188//186
+f 182//181 186//187 185//185
+f 183//183 187//188 186//187
+f 184//179 188//186 187//188
+f 185//185 189//189 188//186
+f 186//187 190//190 185//185
+f 187//188 191//191 186//187
+f 188//186 192//192 187//188
+f 189//189 193//193 196//194
+f 190//190 194//195 193//193
+f 191//191 195//196 194//195
+f 192//192 196//194 195//196
+f 197//197 201//198 200//199
+f 198//200 202//201 201//198
+f 199//202 203//203 198//200
+f 200//199 204//204 203//203
+f 201//198 205//205 208//206
+f 202//201 206//207 201//198
+f 203//203 207//208 206//207
+f 204//204 208//206 203//203
+f 205//205 209//209 208//206
+f 206//207 210//210 205//205
+f 207//208 211//211 206//207
+f 208//206 212//212 207//208
+f 209//209 213//213 216//214
+f 210//210 214//215 213//213
+f 211//211 215//216 214//215
+f 212//212 216//214 215//216
+f 217//217 221//218 224//219
+f 218//220 222//221 217//217
+f 219//222 223//223 222//221
+f 220//224 224//219 219//222
+f 221//218 225//225 224//219
+f 222//221 226//226 225//225
+f 223//223 227//227 222//221
+f 224//219 228//228 227//227
+f 225//225 229//229 232//230
+f 226//226 230//231 229//229
+f 227//227 231//232 230//231
+f 228//228 232//230 231//232
+f 233//233 237//234 240//235
+f 234//236 238//237 233//233
+f 235//238 239//239 238//237
+f 236//240 240//235 235//238
+f 237//234 241//241 240//235
+f 238//237 242//242 241//241
+f 239//239 243//243 238//237
+f 240//235 244//244 243//243
+f 241//241 245//245 248//246
+f 242//242 246//247 245//245
+f 243//243 247//248 246//247
+f 244//244 248//246 247//248
+f 249//249 253//250 252//251
+f 250//252 254//253 249//249
+f 251//254 255//255 250//252
+f 252//251 256//256 251//254
+f 253//250 257//257 260//258
+f 254//253 258//259 253//250
+f 255//255 259//260 258//259
+f 256//256 260//258 255//255
+f 257//257 261//261 264//262
+f 258//259 262//263 261//261
+f 259//260 263//264 262//263
+f 260//258 264//262 263//264
+f 265//265 269//266 268//267
+f 266//268 270//269 265//265
+f 267//270 271//271 266//268
+f 268//267 272//272 267//270
+f 269//266 273//273 276//274
+f 270//269 274//275 273//273
+f 271//271 275//276 274//275
+f 272//272 276//274 275//276
+f 277//277 281//278 284//279
+f 278//280 282//281 281//278
+f 279//282 283//283 282//281
+f 280//284 284//279 283//283
+f 281//278 285//285 288//286
+f 282//281 286//287 285//285
+f 283//283 287//288 286//287
+f 284//279 288//286 287//288
+f 289//289 293//290 292//291
+f 290//292 294//293 289//289
+f 291//294 295//295 290//292
+f 292//291 296//296 291//294
+f 293//290 297//297 300//298
+f 294//293 298//299 297//297
+f 295//295 299//300 298//299
+f 296//296 300//298 299//300
+f 301//301 305//302 308//303
+f 302//304 306//305 305//302
+f 303//306 307//307 306//305
+f 304//308 308//303 307//307
+f 305//302 309//309 312//310
+f 306//305 310//311 309//309
+f 307//307 311//312 310//311
+f 308//303 312//310 311//312
+f 313//313 317//314 316//315
+f 314//316 318//317 313//313
+f 315//318 319//319 314//316
+f 316//315 320//320 315//318
+f 317//314 321//321 324//322
+f 318//317 322//323 321//321
+f 319//319 323//324 322//323
+f 320//320 324//322 323//324
+f 325//325 329//326 332//327
+f 326//328 330//329 329//326
+f 327//330 331//331 330//329
+f 328//332 332//327 331//331
+f 333//333 337//334 340//335
+f 334//336 338//337 337//334
+f 335//338 339//339 338//337
+f 336//340 340//335 339//339
+f 341//341 345//342 348//343
+f 342//344 346//345 345//342
+f 343//346 347//347 346//345
+f 344//348 348//343 347//347
+f 349//349 353//350 356//351
+f 350//352 354//353 353//350
+f 351//354 355//355 354//353
+f 352//356 356//351 355//355
+f 357//357 361//358 364//359
+f 358//360 362//361 361//358
+f 359//362 363//363 362//361
+f 360//364 364//359 363//363
+f 365//365 369//366 372//367
+f 366//368 370//369 369//366
+f 367//370 371//371 370//369
+f 368//372 372//367 371//371
+f 373//373 377//374 380//375
+f 374//376 378//377 377//374
+f 375//378 379//379 378//377
+f 376//380 380//375 379//379
+f 377//374 381//381 384//382
+f 378//377 382//383 381//381
+f 379//379 383//384 382//383
+f 380//375 384//382 383//384
+f 381//381 385//385 388//386
+f 382//383 386//387 381//381
+f 383//384 387//388 386//387
+f 384//382 388//386 383//384
+f 385//385 389//389 388//386
+f 386//387 390//390 385//385
+f 387//388 391//391 386//387
+f 388//386 392//392 387//388
+f 389//389 393//393 396//394
+f 390//390 394//395 389//389
+f 391//391 395//396 394//395
+f 392//392 396//394 391//391
+f 393//393 397//397 396//394
+f 394//395 398//398 397//397
+f 395//396 399//399 394//395
+f 396//394 400//400 399//399
+f 397//397 401//401 404//402
+f 398//398 402//403 401//401
+f 399//399 403//404 402//403
+f 400//400 404//402 403//404
+f 401//401 405//405 404//402
+f 402//403 406//406 401//401
+f 403//404 407//407 402//403
+f 404//402 408//408 403//404
+f 405//405 409//409 412//410
+f 406//406 410//411 409//409
+f 407//407 411//412 410//411
+f 408//408 412//410 411//412
+f 409//409 413//413 416//414
+f 410//411 414//415 413//413
+f 411//412 415//416 414//415
+f 412//410 416//414 415//416
+f 417//417 421//418 420//419
+f 418//420 422//421 417//417
+f 419//422 423//423 418//420
+f 420//419 424//424 419//422
+f 421//418 425//425 428//426
+f 422//421 426//427 425//425
+f 423//423 427//428 426//427
+f 424//424 428//426 427//428
+f 425//425 429//429 428//426
+f 426//427 430//430 425//425
+f 427//428 431//431 426//427
+f 428//426 432//432 427//428
+f 429//429 433//433 436//434
+f 430//430 434//435 429//429
+f 431//431 435//436 434//435
+f 432//432 436//434 431//431
+f 433//433 437//437 436//434
+f 434//435 438//438 437//437
+f 435//436 439//439 434//435
+f 436//434 440//440 439//439
+f 437//437 441//441 444//442
+f 438//438 442//443 441//441
+f 439//439 443//444 442//443
+f 440//440 444//442 443//444
+f 441//441 445//445 444//442
+f 442//443 446//446 445//445
+f 443//444 447//447 442//443
+f 444//442 448//448 447//447
+f 445//445 449//449 452//450
+f 446//446 450//451 445//445
+f 447//447 451//452 450//451
+f 448//448 452//450 447//447
+f 449//449 453//453 456//454
+f 450//451 454//455 453//453
+f 451//452 455//456 454//455
+f 452//450 456//454 455//456
+f 453//453 457//457 460//458
+f 454//455 458//459 457//457
+f 455//456 459//460 458//459
+f 456//454 460//458 459//460
+f 461//461 465//462 464//463
+f 462//464 466//465 465//462
+f 463//466 467//467 462//464
+f 464//463 468//468 467//467
+f 465//462 469//469 468//468
+f 466//465 470//470 469//469
+f 467//467 471//471 466//465
+f 468//468 472//472 471//471
+f 469//469 473//473 472//472
+f 470//470 474//474 469//469
+f 471//471 475//475 470//470
+f 472//472 476//476 471//471
+f 473//473 477//477 480//478
+f 474//474 478//479 473//473
+f 475//475 479//480 478//479
+f 476//476 480//478 475//475
+f 477//477 481//481 484//482
+f 478//479 482//483 481//481
+f 479//480 483//484 482//483
+f 480//478 484//482 483//484
+f 481//481 485//485 488//486
+f 482//483 486//487 481//481
+f 483//484 487//488 486//487
+f 484//482 488//486 483//484
+f 485//485 489//489 488//486
+f 486//487 490//490 489//489
+f 487//488 491//491 486//487
+f 488//486 492//492 491//491
+f 489//489 493//493 492//492
+f 490//490 494//494 489//489
+f 491//491 495//495 490//490
+f 492//492 496//496 491//491
+f 493//493 497//497 500//498
+f 494//494 498//499 497//497
+f 495//495 499//500 498//499
+f 496//496 500//498 499//500
+f 497//497 501//501 504//502
+f 498//499 502//503 501//501
+f 499//500 503//504 502//503
+f 500//498 504//502 503//504
+f 505//505 509//506 508//507
+f 506//508 510//509 509//506
+f 507//510 511//511 506//508
+f 508//507 512//512 511//511
+f 509//506 513//513 516//514
+f 510//509 514//515 513//513
+f 511//511 515//516 514//515
+f 512//512 516//514 515//516
+f 513//513 517//517 520//518
+f 514//515 518//519 517//517
+f 515//516 519//520 518//519
+f 516//514 520//518 519//520
+f 517//517 521//521 520//518
+f 518//519 522//522 521//521
+f 519//520 523//523 518//519
+f 520//518 524//524 519//520
+f 521//521 525//525 528//526
+f 522//522 526//527 521//521
+f 523//523 527//528 526//527
+f 524//524 528//526 523//523
+f 525//525 529//529 532//530
+f 526//527 530//531 529//529
+f 527//528 531//532 530//531
+f 528//526 532//530 531//532
+f 529//529 533//533 536//534
+f 530//531 534//535 533//533
+f 531//532 535//536 534//535
+f 532//530 536//534 535//536
+f 533//533 537//537 536//534
+f 534//535 538//538 533//533
+f 535//536 539//539 534//535
+f 536//534 540//540 535//536
+f 537//537 541//541 540//540
+f 538//538 542//542 537//537
+f 539//539 543//543 538//538
+f 540//540 544//544 539//539
+f 541//541 545//545 548//546
+f 542//542 546//547 545//545
+f 543//543 547//548 546//547
+f 544//544 548//546 547//548
+f 549//549 553//550 556//551
+f 550//552 554//553 553//550
+f 551//554 555//555 554//553
+f 552//556 556//551 555//555
+f 553//550 557//557 556//551
+f 554//553 558//558 553//550
+f 555//555 559//559 554//553
+f 556//551 560//560 555//555
+f 557//557 561//561 564//562
+f 558//558 562//563 557//557
+f 559//559 563//564 562//563
+f 560//560 564//562 559//559
+f 561//561 565//565 564//562
+f 562//563 566//566 565//565
+f 563//564 567//567 562//563
+f 564//562 568//568 567//567
+f 565//565 569//569 568//568
+f 566//566 570//570 565//565
+f 567//567 571//571 566//566
+f 568//568 572//572 567//567
+f 569//569 573//573 572//572
+f 570//570 574//574 573//573
+f 571//571 575//575 570//570
+f 572//572 576//576 575//575
+f 573//573 577//577 580//578
+f 574//574 578//579 573//573
+f 575//575 579//580 578//579
+f 576//576 580//578 575//575
+f 577//577 581//581 580//578
+f 578//579 582//582 577//577
+f 579//580 583//583 578//579
+f 580//578 584//584 579//580
+f 581//581 585//585 584//584
+f 582//582 586//586 581//581
+f 583//583 587//587 582//582
+f 584//584 588//588 583//583
+f 585//585 589//589 592//590
+f 586//586 590//591 589//589
+f 587//587 591//592 590//591
+f 588//588 592//590 591//592
+f 593//593 597//594 596//595
+f 594//596 598//597 597//594
+f 595//598 599//599 594//596
+f 596//595 600//600 599//599
+f 597//594 601//601 604//602
+f 598//597 602//603 597//594
+f 599//599 603//604 602//603
+f 600//600 604//602 599//599
+f 601//601 605//605 604//602
+f 602//603 606//606 605//605
+f 603//604 607//607 602//603
+f 604//602 608//608 607//607
+f 605//605 609//609 608//608
+f 606//606 610//610 605//605
+f 607//607 611//611 606//606
+f 608//608 612//612 607//607
+f 609//609 613//613 616//614
+f 610//610 614//615 613//613
+f 611//611 615//616 614//615
+f 612//612 616//614 615//616
+f 613//613 617//617 620//618
+f 614//615 618//619 613//613
+f 615//616 619//620 618//619
+f 616//614 620//618 615//616
+f 617//617 621//621 624//622
+f 618//619 622//623 621//621
+f 619//620 623//624 622//623
+f 620//618 624//622 623//624
+f 621//621 625//625 624//622
+f 622//623 626//626 621//621
+f 623//624 627//627 622//623
+f 624//622 628//628 623//624
+f 625//625 629//629 632//630
+f 626//626 630//631 625//625
+f 627//627 631//632 630//631
+f 628//628 632//630 627//627
+f 629//629 633//633 636//634
+f 630//631 634//635 633//633
+f 631//632 635//636 634//635
+f 632//630 636//634 635//636
+f 637//637 641//638 640//639
+f 638//640 642//641 641//638
+f 639//642 643//643 638//640
+f 640//639 644//644 643//643
+f 641//638 645//645 648//646
+f 642//641 646//647 641//638
+f 643//643 647//648 646//647
+f 644//644 648//646 643//643
+f 645//645 649//649 648//646
+f 646//647 650//650 645//645
+f 647//648 651//651 646//647
+f 648//646 652//652 647//648
+f 649//649 653//653 656//654
+f 650//650 654//655 653//653
+f 651//651 655//656 654//655
+f 652//652 656//654 655//656
+f 653//653 657//657 660//658
+f 654//655 658//659 657//657
+f 655//656 659//660 658//659
+f 656//654 660//658 659//660
+f 657//657 661//661 664//662
+f 658//659 662//663 657//657
+f 659//660 663//664 662//663
+f 660//658 664//662 663//664
+f 661//661 665//665 664//662
+f 662//663 666//666 661//661
+f 663//664 667//667 662//663
+f 664//662 668//668 663//664
+f 665//665 669//669 668//668
+f 666//666 670//670 669//669
+f 667//667 671//671 666//666
+f 668//668 672//672 671//671
+f 669//669 673//673 676//674
+f 670//670 674//675 673//673
+f 671//671 675//676 674//675
+f 672//672 676//674 675//676
+f 673//673 677//677 680//678
+f 674//675 678//679 677//677
+f 675//676 679//680 678//679
+f 676//674 680//678 679//680
+f 681//681 685//682 684//683
+f 682//684 686//685 681//681
+f 683//686 687//687 682//684
+f 684//683 688//688 683//686
+f 685//682 689//689 692//690
+f 686//685 690//691 689//689
+f 687//687 691//692 690//691
+f 688//688 692//690 691//692
+f 689//689 693//693 696//694
+f 690//691 694//695 693//693
+f 691//692 695//696 694//695
+f 692//690 696//694 695//696
+f 693//693 697//697 700//698
+f 694//695 698//699 693//693
+f 695//696 699//700 698//699
+f 696//694 700//698 695//696
+f 697//697 701//701 700//698
+f 698//699 702//702 701//701
+f 699//700 703//703 698//699
+f 700//698 704//704 703//703
+f 701//701 705//705 704//704
+f 702//702 706//706 701//701
+f 703//703 707//707 702//702
+f 704//704 708//708 703//703
+f 705//705 709//709 712//710
+f 706//706 710//711 709//709
+f 707//707 711//712 710//711
+f 708//708 712//710 711//712
+f 709//709 713//713 712//710
+f 710//711 714//714 713//713
+f 711//712 715//715 710//711
+f 712//710 716//716 715//715
+f 713//713 717//717 720//718
+f 714//714 718//719 713//713
+f 715//715 719//720 718//719
+f 716//716 720//718 715//715
+f 717//717 721//721 724//722
+f 718//719 722//723 721//721
+f 719//720 723//724 722//723
+f 720//718 724//722 723//724
+f 725//725 729//726 732//727
+f 726//728 730//729 729//726
+f 727//730 731//731 730//729
+f 728//732 732//727 731//731
+f 729//726 733//733 736//734
+f 730//729 734//735 733//733
+f 731//731 735//736 734//735
+f 732//727 736//734 735//736
+f 733//733 737//737 736//734
+f 734//735 738//738 737//737
+f 735//736 739//739 734//735
+f 736//734 740//740 739//739
+f 737//737 741//741 744//742
+f 738//738 742//743 737//737
+f 739//739 743//744 742//743
+f 740//740 744//742 739//739
+f 741//741 745//745 748//746
+f 742//743 746//747 741//741
+f 743//744 747//748 742//743
+f 744//742 748//746 743//744
+f 745//745 749//749 748//746
+f 746//747 750//750 749//749
+f 747//748 751//751 746//747
+f 748//746 752//752 751//751
+f 749//749 753//753 752//752
+f 750//750 754//754 753//753
+f 751//751 755//755 750//750
+f 752//752 756//756 755//755
+f 753//753 757//757 760//758
+f 754//754 758//759 753//753
+f 755//755 759//760 758//759
+f 756//756 760//758 755//755
+f 757//757 761//761 760//758
+f 758//759 762//762 761//761
+f 759//760 763//763 758//759
+f 760//758 764//764 763//763
+f 761//761 765//765 768//766
+f 762//762 766//767 765//765
+f 763//763 767//768 766//767
+f 764//764 768//766 767//768
+f 769//769 773//770 772//771
+f 770//772 774//773 773//770
+f 771//774 775//775 770//772
+f 772//771 776//776 775//775
+f 773//770 777//777 780//778
+f 774//773 778//779 773//770
+f 775//775 779//780 778//779
+f 776//776 780//778 775//775
+f 777//777 781//781 780//778
+f 778//779 782//782 781//781
+f 779//780 783//783 778//779
+f 780//778 784//784 783//783
+f 781//781 785//785 784//784
+f 782//782 786//786 781//781
+f 783//783 787//787 782//782
+f 784//784 788//788 783//783
+f 785//785 789//789 792//790
+f 786//786 790//791 789//789
+f 787//787 791//792 790//791
+f 788//788 792//790 791//792
+f 789//789 793//793 796//794
+f 790//791 794//795 789//789
+f 791//792 795//796 794//795
+f 792//790 796//794 791//792
+f 793//793 797//797 796//794
+f 794//795 798//798 793//793
+f 795//796 799//799 794//795
+f 796//794 800//800 795//796
+f 797//797 801//801 804//802
+f 798//798 802//803 801//801
+f 799//799 803//804 802//803
+f 800//800 804//802 803//804
+f 801//801 805//805 804//802
+f 802//803 806//806 801//801
+f 803//804 807//807 802//803
+f 804//802 808//808 803//804
+f 805//805 809//809 812//810
+f 806//806 810//811 809//809
+f 807//807 811//812 810//811
+f 808//808 812//810 811//812
+f 813//813 817//814 816//815
+f 814//816 818//817 813//813
+f 815//818 819//819 814//816
+f 816//815 820//820 819//819
+f 817//814 821//821 824//822
+f 818//817 822//823 821//821
+f 819//819 823//824 822//823
+f 820//820 824//822 823//824
+f 821//821 825//825 824//822
+f 822//823 826//826 825//825
+f 823//824 827//827 822//823
+f 824//822 828//828 827//827
+f 825//825 829//829 832//830
+f 826//826 830//831 825//825
+f 827//827 831//832 830//831
+f 828//828 832//830 827//827
+f 829//829 833//833 836//834
+f 830//831 834//835 833//833
+f 831//832 835//836 834//835
+f 832//830 836//834 835//836
+f 833//833 837//837 840//838
+f 834//835 838//839 833//833
+f 835//836 839//840 838//839
+f 836//834 840//838 835//836
+f 837//837 841//841 840//838
+f 838//839 842//842 841//841
+f 839//840 843//843 838//839
+f 840//838 844//844 843//843
+f 841//841 845//845 844//844
+f 842//842 846//846 845//845
+f 843//843 847//847 842//842
+f 844//844 848//848 847//847
+f 845//845 849//849 852//850
+f 846//846 850//851 845//845
+f 847//847 851//852 850//851
+f 848//848 852//850 847//847
+f 849//849 853//853 856//854
+f 850//851 854//855 853//853
+f 851//852 855//856 854//855
+f 852//850 856//854 855//856
+f 857//857 861//858 864//859
+f 858//860 862//861 857//857
+f 859//862 863//863 862//861
+f 860//864 864//859 859//862
+f 861//858 865//865 864//859
+f 862//861 866//866 865//865
+f 863//863 867//867 862//861
+f 864//859 868//868 867//867
+f 865//865 869//869 868//868
+f 866//866 870//870 869//869
+f 867//867 871//871 866//866
+f 868//868 872//872 871//871
+f 869//869 873//873 872//872
+f 870//870 874//874 873//873
+f 871//871 875//875 870//870
+f 872//872 876//876 875//875
+f 873//873 877//877 876//876
+f 874//874 878//878 877//877
+f 875//875 879//879 874//874
+f 876//876 880//880 879//879
+f 877//877 881//881 884//882
+f 878//878 882//883 881//881
+f 879//879 883//884 882//883
+f 880//880 884//882 883//884
+f 881//881 885//885 888//886
+f 882//883 886//887 881//881
+f 883//884 887//888 886//887
+f 884//882 888//886 883//884
+f 885//885 889//889 888//886
+f 886//887 890//890 889//889
+f 887//888 891//891 886//887
+f 888//886 892//892 891//891
+f 889//889 893//893 896//894
+f 890//890 894//895 893//893
+f 891//891 895//896 894//895
+f 892//892 896//894 895//896
+f 893//893 897//897 900//898
+f 894//895 898//899 897//897
+f 895//896 899//900 898//899
+f 896//894 900//898 899//900
+f 901//901 905//902 908//903
+f 902//904 906//905 905//902
+f 903//906 907//907 906//905
+f 904//908 908//903 907//907
+f 905//902 909//909 912//910
+f 906//905 910//911 909//909
+f 907//907 911//912 910//911
+f 908//903 912//910 911//912
+f 909//909 913//913 912//910
+f 910//911 914//914 909//909
+f 911//912 915//915 910//911
+f 912//910 916//916 911//912
+f 913//913 917//917 920//918
+f 914//914 918//919 913//913
+f 915//915 919//920 918//919
+f 916//916 920//918 915//915
+f 917//917 921//921 920//918
+f 918//919 922//922 917//917
+f 919//920 923//923 918//919
+f 920//918 924//924 919//920
+f 921//921 925//925 928//926
+f 922//922 926//927 921//921
+f 923//923 927//928 926//927
+f 924//924 928//926 923//923
+f 925//925 929//929 928//926
+f 926//927 930//930 929//929
+f 927//928 931//931 926//927
+f 928//926 932//932 931//931
+f 929//929 933//933 932//932
+f 930//930 934//934 933//933
+f 931//931 935//935 930//930
+f 932//932 936//936 935//935
+f 933//933 937//937 940//938
+f 934//934 938//939 937//937
+f 935//935 939//940 938//939
+f 936//936 940//938 939//940
+f 937//937 941//941 944//942
+f 938//939 942//943 941//941
+f 939//940 943//944 942//943
+f 940//938 944//942 943//944
+f 945//945 949//946 948//947
+f 946//948 950//949 949//946
+f 947//950 951//951 946//948
+f 948//947 952//952 951//951
+f 949//946 953//953 956//954
+f 950//949 954//955 953//953
+f 951//951 955//956 954//955
+f 952//952 956//954 955//956
+f 953//953 957//957 956//954
+f 954//955 958//958 953//953
+f 955//956 959//959 954//955
+f 956//954 960//960 955//956
+f 957//957 961//961 964//962
+f 958//958 962//963 957//957
+f 959//959 963//964 962//963
+f 960//960 964//962 959//959
+f 961//961 965//965 968//966
+f 962//963 966//967 961//961
+f 963//964 967//968 966//967
+f 964//962 968//966 963//964
+f 965//965 969//969 968//966
+f 966//967 970//970 965//965
+f 967//968 971//971 966//967
+f 968//966 972//972 967//968
+f 969//969 973//973 976//974
+f 970//970 974//975 973//973
+f 971//971 975//976 974//975
+f 972//972 976//974 975//976
+f 973//973 977//977 980//978
+f 974//975 978//979 973//973
+f 975//976 979//980 978//979
+f 976//974 980//978 975//976
+f 977//977 981//981 980//978
+f 978//979 982//982 981//981
+f 979//980 983//983 978//979
+f 980//978 984//984 983//983
+f 981//981 985//985 988//986
+f 982//982 986//987 985//985
+f 983//983 987//988 986//987
+f 984//984 988//986 987//988
+f 989//989 993//990 992//991
+f 990//992 994//993 989//989
+f 991//994 995//995 990//992
+f 992//991 996//996 991//994
+f 993//990 997//997 996//996
+f 994//993 998//998 993//990
+f 995//995 999//999 994//993
+f 996//996 1000//1000 995//995
+f 997//997 1001//1001 1004//1002
+f 998//998 1002//1003 997//997
+f 999//999 1003//1004 1002//1003
+f 1000//1000 1004//1002 999//999
+f 1001//1001 1005//1005 1004//1002
+f 1002//1003 1006//1006 1005//1005
+f 1003//1004 1007//1007 1002//1003
+f 1004//1002 1008//1008 1007//1007
+f 1005//1005 1009//1009 1012//1010
+f 1006//1006 1010//1011 1009//1009
+f 1007//1007 1011//1012 1010//1011
+f 1008//1008 1012//1010 1011//1012
+f 1009//1009 1013//1013 1016//1014
+f 1010//1011 1014//1015 1013//1013
+f 1011//1012 1015//1016 1014//1015
+f 1012//1010 1016//1014 1015//1016
+f 1013//1013 1017//1017 1016//1014
+f 1014//1015 1018//1018 1017//1017
+f 1015//1016 1019//1019 1014//1015
+f 1016//1014 1020//1020 1019//1019
+f 1017//1017 1021//1021 1024//1022
+f 1018//1018 1022//1023 1021//1021
+f 1019//1019 1023//1024 1022//1023
+f 1020//1020 1024//1022 1023//1024
+f 1021//1021 1025//1025 1028//1026
+f 1022//1023 1026//1027 1025//1025
+f 1023//1024 1027//1028 1026//1027
+f 1024//1022 1028//1026 1027//1028
+f 1025//1025 1029//1029 1032//1030
+f 1026//1027 1030//1031 1029//1029
+f 1027//1028 1031//1032 1030//1031
+f 1028//1026 1032//1030 1031//1032
+f 1033//1033 1037//1034 1040//1035
+f 1034//1036 1038//1037 1033//1033
+f 1035//1038 1039//1039 1038//1037
+f 1036//1040 1040//1035 1035//1038
+f 1037//1034 1041//1041 1044//1042
+f 1038//1037 1042//1043 1037//1034
+f 1039//1039 1043//1044 1042//1043
+f 1040//1035 1044//1042 1039//1039
+f 1041//1041 1045//1045 1044//1042
+f 1042//1043 1046//1046 1045//1045
+f 1043//1044 1047//1047 1042//1043
+f 1044//1042 1048//1048 1047//1047
+f 1045//1045 1049//1049 1052//1050
+f 1046//1046 1050//1051 1049//1049
+f 1047//1047 1051//1052 1050//1051
+f 1048//1048 1052//1050 1051//1052
+f 1049//1049 1053//1053 1052//1050
+f 1050//1051 1054//1054 1053//1053
+f 1051//1052 1055//1055 1050//1051
+f 1052//1050 1056//1056 1055//1055
+f 1053//1053 1057//1057 1056//1056
+f 1054//1054 1058//1058 1057//1057
+f 1055//1055 1059//1059 1054//1054
+f 1056//1056 1060//1060 1059//1059
+f 1057//1057 1061//1061 1064//1062
+f 1058//1058 1062//1063 1057//1057
+f 1059//1059 1063//1064 1062//1063
+f 1060//1060 1064//1062 1059//1059
+f 1061//1061 1065//1065 1064//1062
+f 1062//1063 1066//1066 1061//1061
+f 1063//1064 1067//1067 1062//1063
+f 1064//1062 1068//1068 1063//1064
+f 1065//1065 1069//1069 1072//1070
+f 1066//1066 1070//1071 1069//1069
+f 1067//1067 1071//1072 1070//1071
+f 1068//1068 1072//1070 1071//1072
+f 1069//1069 1073//1073 1076//1074
+f 1070//1071 1074//1075 1073//1073
+f 1071//1072 1075//1076 1074//1075
+f 1072//1070 1076//1074 1075//1076
+f 1077//1077 1081//1078 1080//1079
+f 1078//1080 1082//1081 1077//1077
+f 1079//1082 1083//1083 1078//1080
+f 1080//1079 1084//1084 1079//1082
+f 1081//1078 1085//1085 1088//1086
+f 1082//1081 1086//1087 1085//1085
+f 1083//1083 1087//1088 1086//1087
+f 1084//1084 1088//1086 1087//1088
+f 1085//1085 1089//1089 1088//1086
+f 1086//1087 1090//1090 1089//1089
+f 1087//1088 1091//1091 1086//1087
+f 1088//1086 1092//1092 1091//1091
+f 1089//1089 1093//1093 1096//1094
+f 1090//1090 1094//1095 1089//1089
+f 1091//1091 1095//1096 1094//1095
+f 1092//1092 1096//1094 1091//1091
+f 1093//1093 1097//1097 1096//1094
+f 1094//1095 1098//1098 1097//1097
+f 1095//1096 1099//1099 1094//1095
+f 1096//1094 1100//1100 1099//1099
+f 1097//1097 1101//1101 1100//1100
+f 1098//1098 1102//1102 1097//1097
+f 1099//1099 1103//1103 1098//1098
+f 1100//1100 1104//1104 1099//1099
+f 1101//1101 1105//1105 1108//1106
+f 1102//1102 1106//1107 1101//1101
+f 1103//1103 1107//1108 1106//1107
+f 1104//1104 1108//1106 1103//1103
+f 1105//1105 1109//1109 1108//1106
+f 1106//1107 1110//1110 1105//1105
+f 1107//1108 1111//1111 1106//1107
+f 1108//1106 1112//1112 1107//1108
+f 1109//1109 1113//1113 1112//1112
+f 1110//1110 1114//1114 1113//1113
+f 1111//1111 1115//1115 1110//1110
+f 1112//1112 1116//1116 1115//1115
+f 1113//1113 1117//1117 1120//1118
+f 1114//1114 1118//1119 1117//1117
+f 1115//1115 1119//1120 1118//1119
+f 1116//1116 1120//1118 1119//1120
+f 1121//1121 1125//1122 1128//1123
+f 1122//1124 1126//1125 1125//1122
+f 1123//1126 1127//1127 1126//1125
+f 1124//1128 1128//1123 1127//1127
+f 1125//1122 1129//1129 1132//1130
+f 1126//1125 1130//1131 1129//1129
+f 1127//1127 1131//1132 1130//1131
+f 1128//1123 1132//1130 1131//1132
+f 1129//1129 1133//1133 1132//1130
+f 1130//1131 1134//1134 1129//1129
+f 1131//1132 1135//1135 1130//1131
+f 1132//1130 1136//1136 1131//1132
+f 1133//1133 1137//1137 1136//1136
+f 1134//1134 1138//1138 1137//1137
+f 1135//1135 1139//1139 1134//1134
+f 1136//1136 1140//1140 1139//1139
+f 1137//1137 1141//1141 1144//1142
+f 1138//1138 1142//1143 1137//1137
+f 1139//1139 1143//1144 1142//1143
+f 1140//1140 1144//1142 1139//1139
+f 1141//1141 1145//1145 1144//1142
+f 1142//1143 1146//1146 1145//1145
+f 1143//1144 1147//1147 1142//1143
+f 1144//1142 1148//1148 1147//1147
+f 1145//1145 1149//1149 1148//1148
+f 1146//1146 1150//1150 1149//1149
+f 1147//1147 1151//1151 1146//1146
+f 1148//1148 1152//1152 1151//1151
+f 1149//1149 1153//1153 1152//1152
+f 1150//1150 1154//1154 1153//1153
+f 1151//1151 1155//1155 1150//1150
+f 1152//1152 1156//1156 1155//1155
+f 1153//1153 1157//1157 1160//1158
+f 1154//1154 1158//1159 1153//1153
+f 1155//1155 1159//1160 1158//1159
+f 1156//1156 1160//1158 1155//1155
+f 1157//1157 1161//1161 1164//1162
+f 1158//1159 1162//1163 1161//1161
+f 1159//1160 1163//1164 1162//1163
+f 1160//1158 1164//1162 1163//1164
+f 1165//1165 1169//1166 1172//1167
+f 1166//1168 1170//1169 1165//1165
+f 1167//1170 1171//1171 1170//1169
+f 1168//1172 1172//1167 1167//1170
+f 1169//1166 1173//1173 1172//1167
+f 1170//1169 1174//1174 1173//1173
+f 1171//1171 1175//1175 1170//1169
+f 1172//1167 1176//1176 1175//1175
+f 1173//1173 1177//1177 1176//1176
+f 1174//1174 1178//1178 1173//1173
+f 1175//1175 1179//1179 1174//1174
+f 1176//1176 1180//1180 1175//1175
+f 1177//1177 1181//1181 1180//1180
+f 1178//1178 1182//1182 1181//1181
+f 1179//1179 1183//1183 1178//1178
+f 1180//1180 1184//1184 1183//1183
+f 1181//1181 1185//1185 1188//1186
+f 1182//1182 1186//1187 1185//1185
+f 1183//1183 1187//1188 1186//1187
+f 1184//1184 1188//1186 1187//1188
+f 1185//1185 1189//1189 1188//1186
+f 1186//1187 1190//1190 1189//1189
+f 1187//1188 1191//1191 1186//1187
+f 1188//1186 1192//1192 1191//1191
+f 1189//1189 1193//1193 1192//1192
+f 1190//1190 1194//1194 1193//1193
+f 1191//1191 1195//1195 1190//1190
+f 1192//1192 1196//1196 1195//1195
+f 1193//1193 1197//1197 1200//1198
+f 1194//1194 1198//1199 1197//1197
+f 1195//1195 1199//1200 1198//1199
+f 1196//1196 1200//1198 1199//1200
+f 1197//1197 1201//1201 1200//1198
+f 1198//1199 1202//1202 1197//1197
+f 1199//1200 1203//1203 1198//1199
+f 1200//1198 1204//1204 1199//1200
+f 1201//1201 1205//1205 1208//1206
+f 1202//1202 1206//1207 1205//1205
+f 1203//1203 1207//1208 1206//1207
+f 1204//1204 1208//1206 1207//1208
+f 1209//1209 1213//1210 1216//1211
+f 1210//1212 1214//1213 1209//1209
+f 1211//1214 1215//1215 1214//1213
+f 1212//1216 1216//1211 1211//1214
+f 1213//1210 1217//1217 1216//1211
+f 1214//1213 1218//1218 1217//1217
+f 1215//1215 1219//1219 1214//1213
+f 1216//1211 1220//1220 1219//1219
+f 1217//1217 1221//1221 1224//1222
+f 1218//1218 1222//1223 1217//1217
+f 1219//1219 1223//1224 1222//1223
+f 1220//1220 1224//1222 1219//1219
+f 1221//1221 1225//1225 1228//1226
+f 1222//1223 1226//1227 1225//1225
+f 1223//1224 1227//1228 1226//1227
+f 1224//1222 1228//1226 1227//1228
+f 1225//1225 1229//1229 1228//1226
+f 1226//1227 1230//1230 1225//1225
+f 1227//1228 1231//1231 1226//1227
+f 1228//1226 1232//1232 1227//1228
+f 1229//1229 1233//1233 1232//1232
+f 1230//1230 1234//1234 1233//1233
+f 1231//1231 1235//1235 1230//1230
+f 1232//1232 1236//1236 1235//1235
+f 1233//1233 1237//1237 1240//1238
+f 1234//1234 1238//1239 1233//1233
+f 1235//1235 1239//1240 1238//1239
+f 1236//1236 1240//1238 1235//1235
+f 1237//1237 1241//1241 1244//1242
+f 1238//1239 1242//1243 1241//1241
+f 1239//1240 1243//1244 1242//1243
+f 1240//1238 1244//1242 1243//1244
+f 1241//1241 1245//1245 1244//1242
+f 1242//1243 1246//1246 1241//1241
+f 1243//1244 1247//1247 1242//1243
+f 1244//1242 1248//1248 1243//1244
+f 1245//1245 1249//1249 1252//1250
+f 1246//1246 1250//1251 1249//1249
+f 1247//1247 1251//1252 1250//1251
+f 1248//1248 1252//1250 1251//1252
+f 1253//1253 1257//1254 1260//1255
+f 1254//1256 1258//1257 1257//1254
+f 1255//1258 1259//1259 1258//1257
+f 1256//1260 1260//1255 1259//1259
+f 1257//1254 1261//1261 1260//1255
+f 1258//1257 1262//1262 1257//1254
+f 1259//1259 1263//1263 1258//1257
+f 1260//1255 1264//1264 1259//1259
+f 1261//1261 1265//1265 1268//1266
+f 1262//1262 1266//1267 1261//1261
+f 1263//1263 1267//1268 1266//1267
+f 1264//1264 1268//1266 1263//1263
+f 1265//1265 1269//1269 1272//1270
+f 1266//1267 1270//1271 1269//1269
+f 1267//1268 1271//1272 1270//1271
+f 1268//1266 1272//1270 1271//1272
+f 1269//1269 1273//1273 1272//1270
+f 1270//1271 1274//1274 1269//1269
+f 1271//1272 1275//1275 1270//1271
+f 1272//1270 1276//1276 1271//1272
+f 1273//1273 1277//1277 1280//1278
+f 1274//1274 1278//1279 1277//1277
+f 1275//1275 1279//1280 1278//1279
+f 1276//1276 1280//1278 1279//1280
+f 1277//1277 1281//1281 1280//1278
+f 1278//1279 1282//1282 1277//1277
+f 1279//1280 1283//1283 1278//1279
+f 1280//1278 1284//1284 1279//1280
+f 1281//1281 1285//1285 1288//1286
+f 1282//1282 1286//1287 1285//1285
+f 1283//1283 1287//1288 1286//1287
+f 1284//1284 1288//1286 1287//1288
+f 1285//1285 1289//1289 1292//1290
+f 1286//1287 1290//1291 1285//1285
+f 1287//1288 1291//1292 1290//1291
+f 1288//1286 1292//1290 1287//1288
+f 1289//1289 1293//1293 1296//1294
+f 1290//1291 1294//1295 1293//1293
+f 1291//1292 1295//1296 1294//1295
+f 1292//1290 1296//1294 1295//1296
+f 1297//1297 1301//1298 1300//1299
+f 1298//1300 1302//1301 1297//1297
+f 1299//1302 1303//1303 1298//1300
+f 1300//1299 1304//1304 1299//1302
+f 1301//1298 1305//1305 1308//1306
+f 1302//1301 1306//1307 1305//1305
+f 1303//1303 1307//1308 1306//1307
+f 1304//1304 1308//1306 1307//1308
+f 1305//1305 1309//1309 1312//1310
+f 1306//1307 1310//1311 1309//1309
+f 1307//1308 1311//1312 1310//1311
+f 1308//1306 1312//1310 1311//1312
+f 1309//1309 1313//1313 1312//1310
+f 1310//1311 1314//1314 1313//1313
+f 1311//1312 1315//1315 1310//1311
+f 1312//1310 1316//1316 1315//1315
+f 1313//1313 1317//1317 1320//1318
+f 1314//1314 1318//1319 1317//1317
+f 1315//1315 1319//1320 1318//1319
+f 1316//1316 1320//1318 1319//1320
+f 1317//1317 1321//1321 1324//1322
+f 1318//1319 1322//1323 1317//1317
+f 1319//1320 1323//1324 1318//1319
+f 1320//1318 1324//1322 1319//1320
+f 1321//1321 1325//1325 1328//1326
+f 1322//1323 1326//1327 1321//1321
+f 1323//1324 1327//1328 1326//1327
+f 1324//1322 1328//1326 1323//1324
+f 1325//1325 1329//1329 1328//1326
+f 1326//1327 1330//1330 1329//1329
+f 1327//1328 1331//1331 1326//1327
+f 1328//1326 1332//1332 1331//1331
+f 1329//1329 1333//1333 1332//1332
+f 1330//1330 1334//1334 1333//1333
+f 1331//1331 1335//1335 1330//1330
+f 1332//1332 1336//1336 1335//1335
+f 1333//1333 1337//1337 1340//1338
+f 1334//1334 1338//1339 1337//1337
+f 1335//1335 1339//1340 1338//1339
+f 1336//1336 1340//1338 1339//1340
+f 1341//1341 1345//1342 1344//1343
+f 1342//1344 1346//1345 1341//1341
+f 1343//1346 1347//1347 1342//1344
+f 1344//1343 1348//1348 1343//1346
+f 1345//1342 1349//1349 1348//1348
+f 1346//1345 1350//1350 1345//1342
+f 1347//1347 1351//1351 1346//1345
+f 1348//1348 1352//1352 1347//1347
+f 1349//1349 1353//1353 1356//1354
+f 1350//1350 1354//1355 1349//1349
+f 1351//1351 1355//1356 1354//1355
+f 1352//1352 1356//1354 1351//1351
+f 1353//1353 1357//1357 1356//1354
+f 1354//1355 1358//1358 1357//1357
+f 1355//1356 1359//1359 1354//1355
+f 1356//1354 1360//1360 1359//1359
+f 1357//1357 1361//1361 1364//1362
+f 1358//1358 1362//1363 1361//1361
+f 1359//1359 1363//1364 1362//1363
+f 1360//1360 1364//1362 1363//1364
+f 1361//1361 1365//1365 1368//1366
+f 1362//1363 1366//1367 1365//1365
+f 1363//1364 1367//1368 1366//1367
+f 1364//1362 1368//1366 1367//1368
+f 1365//1365 1369//1369 1368//1366
+f 1366//1367 1370//1370 1369//1369
+f 1367//1368 1371//1371 1366//1367
+f 1368//1366 1372//1372 1371//1371
+f 1369//1369 1373//1373 1372//1372
+f 1370//1370 1374//1374 1369//1369
+f 1371//1371 1375//1375 1370//1370
+f 1372//1372 1376//1376 1371//1371
+f 1373//1373 1377//1377 1380//1378
+f 1374//1374 1378//1379 1377//1377
+f 1375//1375 1379//1380 1378//1379
+f 1376//1376 1380//1378 1379//1380
+f 1377//1377 1381//1381 1384//1382
+f 1378//1379 1382//1383 1381//1381
+f 1379//1380 1383//1384 1382//1383
+f 1380//1378 1384//1382 1383//1384
+f 1385//1385 1389//1386 1392//1387
+f 1386//1388 1390//1389 1389//1386
+f 1387//1390 1391//1391 1390//1389
+f 1388//1392 1392//1387 1391//1391
+f 1389//1386 1393//1393 1392//1387
+f 1390//1389 1394//1394 1389//1386
+f 1391//1391 1395//1395 1390//1389
+f 1392//1387 1396//1396 1391//1391
+f 1393//1393 1397//1397 1396//1396
+f 1394//1394 1398//1398 1393//1393
+f 1395//1395 1399//1399 1394//1394
+f 1396//1396 1400//1400 1395//1395
+f 1397//1397 1401//1401 1400//1400
+f 1398//1398 1402//1402 1401//1401
+f 1399//1399 1403//1403 1398//1398
+f 1400//1400 1404//1404 1403//1403
+f 1401//1401 1405//1405 1408//1406
+f 1402//1402 1406//1407 1401//1401
+f 1403//1403 1407//1408 1406//1407
+f 1404//1404 1408//1406 1403//1403
+f 1405//1405 1409//1409 1408//1406
+f 1406//1407 1410//1410 1405//1405
+f 1407//1408 1411//1411 1406//1407
+f 1408//1406 1412//1412 1407//1408
+f 1409//1409 1413//1413 1416//1414
+f 1410//1410 1414//1415 1413//1413
+f 1411//1411 1415//1416 1414//1415
+f 1412//1412 1416//1414 1415//1416
+f 1413//1413 1417//1417 1416//1414
+f 1414//1415 1418//1418 1413//1413
+f 1415//1416 1419//1419 1414//1415
+f 1416//1414 1420//1420 1415//1416
+f 1417//1417 1421//1421 1420//1420
+f 1418//1418 1422//1422 1421//1421
+f 1419//1419 1423//1423 1418//1418
+f 1420//1420 1424//1424 1423//1423
+f 1421//1421 1425//1425 1428//1426
+f 1422//1422 1426//1427 1425//1425
+f 1423//1423 1427//1428 1426//1427
+f 1424//1424 1428//1426 1427//1428
+f 1429//1429 1433//1430 1432//1431
+f 1430//1432 1434//1433 1429//1429
+f 1431//1434 1435//1435 1430//1432
+f 1432//1431 1436//1436 1431//1434
+f 1433//1430 1437//1437 1440//1438
+f 1434//1433 1438//1439 1437//1437
+f 1435//1435 1439//1440 1438//1439
+f 1436//1436 1440//1438 1439//1440
+f 1437//1437 1441//1441 1444//1442
+f 1438//1439 1442//1443 1441//1441
+f 1439//1440 1443//1444 1442//1443
+f 1440//1438 1444//1442 1443//1444
+f 1441//1441 1445//1445 1448//1446
+f 1442//1443 1446//1447 1445//1445
+f 1443//1444 1447//1448 1446//1447
+f 1444//1442 1448//1446 1447//1448
+f 1445//1445 1449//1449 1448//1446
+f 1446//1447 1450//1450 1445//1445
+f 1447//1448 1451//1451 1446//1447
+f 1448//1446 1452//1452 1447//1448
+f 1449//1449 1453//1453 1452//1452
+f 1450//1450 1454//1454 1449//1449
+f 1451//1451 1455//1455 1450//1450
+f 1452//1452 1456//1456 1451//1451
+f 1453//1453 1457//1457 1460//1458
+f 1454//1454 1458//1459 1457//1457
+f 1455//1455 1459//1460 1458//1459
+f 1456//1456 1460//1458 1459//1460
+f 1457//1457 1461//1461 1460//1458
+f 1458//1459 1462//1462 1457//1457
+f 1459//1460 1463//1463 1458//1459
+f 1460//1458 1464//1464 1459//1460
+f 1461//1461 1465//1465 1468//1466
+f 1462//1462 1466//1467 1465//1465
+f 1463//1463 1467//1468 1466//1467
+f 1464//1464 1468//1466 1467//1468
+f 1465//1465 1469//1469 1472//1470
+f 1466//1467 1470//1471 1469//1469
+f 1467//1468 1471//1472 1470//1471
+f 1468//1466 1472//1470 1471//1472
+f 1473//1473 1477//1474 1476//1475
+f 1474//1476 1478//1477 1473//1473
+f 1475//1478 1479//1479 1474//1476
+f 1476//1475 1480//1480 1475//1478
+f 1477//1474 1481//1481 1480//1480
+f 1478//1477 1482//1482 1477//1474
+f 1479//1479 1483//1483 1478//1477
+f 1480//1480 1484//1484 1479//1479
+f 1481//1481 1485//1485 1488//1486
+f 1482//1482 1486//1487 1485//1485
+f 1483//1483 1487//1488 1486//1487
+f 1484//1484 1488//1486 1487//1488
+f 1485//1485 1489//1489 1488//1486
+f 1486//1487 1490//1490 1489//1489
+f 1487//1488 1491//1491 1486//1487
+f 1488//1486 1492//1492 1491//1491
+f 1489//1489 1493//1493 1496//1494
+f 1490//1490 1494//1495 1489//1489
+f 1491//1491 1495//1496 1494//1495
+f 1492//1492 1496//1494 1491//1491
+f 1493//1493 1497//1497 1500//1498
+f 1494//1495 1498//1499 1493//1493
+f 1495//1496 1499//1500 1498//1499
+f 1496//1494 1500//1498 1495//1496
+f 1497//1497 1501//1501 1500//1498
+f 1498//1499 1502//1502 1501//1501
+f 1499//1500 1503//1503 1498//1499
+f 1500//1498 1504//1504 1503//1503
+f 1501//1501 1505//1505 1508//1506
+f 1502//1502 1506//1507 1501//1501
+f 1503//1503 1507//1508 1506//1507
+f 1504//1504 1508//1506 1503//1503
+f 1505//1505 1509//1509 1508//1506
+f 1506//1507 1510//1510 1509//1509
+f 1507//1508 1511//1511 1506//1507
+f 1508//1506 1512//1512 1511//1511
+f 1509//1509 1513//1513 1516//1514
+f 1510//1510 1514//1515 1513//1513
+f 1511//1511 1515//1516 1514//1515
+f 1512//1512 1516//1514 1515//1516
+f 1517//1517 1521//1518 1520//1519
+f 1518//1520 1522//1521 1521//1518
+f 1519//1522 1523//1523 1518//1520
+f 1520//1519 1524//1524 1523//1523
+f 1521//1518 1525//1525 1528//1526
+f 1522//1521 1526//1527 1521//1518
+f 1523//1523 1527//1528 1526//1527
+f 1524//1524 1528//1526 1523//1523
+f 1525//1525 1529//1529 1532//1530
+f 1526//1527 1530//1531 1529//1529
+f 1527//1528 1531//1532 1530//1531
+f 1528//1526 1532//1530 1531//1532
+f 1529//1529 1533//1533 1536//1534
+f 1530//1531 1534//1535 1529//1529
+f 1531//1532 1535//1536 1534//1535
+f 1532//1530 1536//1534 1531//1532
+f 1533//1533 1537//1537 1536//1534
+f 1534//1535 1538//1538 1533//1533
+f 1535//1536 1539//1539 1534//1535
+f 1536//1534 1540//1540 1535//1536
+f 1537//1537 1541//1541 1540//1540
+f 1538//1538 1542//1542 1541//1541
+f 1539//1539 1543//1543 1538//1538
+f 1540//1540 1544//1544 1543//1543
+f 1541//1541 1545//1545 1544//1544
+f 1542//1542 1546//1546 1545//1545
+f 1543//1543 1547//1547 1542//1542
+f 1544//1544 1548//1548 1547//1547
+f 1545//1545 1549//1549 1552//1550
+f 1546//1546 1550//1551 1545//1545
+f 1547//1547 1551//1552 1550//1551
+f 1548//1548 1552//1550 1547//1547
+f 1549//1549 1553//1553 1552//1550
+f 1550//1551 1554//1554 1553//1553
+f 1551//1552 1555//1555 1550//1551
+f 1552//1550 1556//1556 1555//1555
+f 1553//1553 1557//1557 1560//1558
+f 1554//1554 1558//1559 1557//1557
+f 1555//1555 1559//1560 1558//1559
+f 1556//1556 1560//1558 1559//1560
+f 1561//1561 1565//1562 1568//1563
+f 1562//1564 1566//1565 1565//1562
+f 1563//1566 1567//1567 1566//1565
+f 1564//1568 1568//1563 1567//1567
+f 1565//1562 1569//1569 1568//1563
+f 1566//1565 1570//1570 1565//1562
+f 1567//1567 1571//1571 1566//1565
+f 1568//1563 1572//1572 1567//1567
+f 1569//1569 1573//1573 1576//1574
+f 1570//1570 1574//1575 1573//1573
+f 1571//1571 1575//1576 1574//1575
+f 1572//1572 1576//1574 1575//1576
+f 1573//1573 1577//1577 1576//1574
+f 1574//1575 1578//1578 1577//1577
+f 1575//1576 1579//1579 1574//1575
+f 1576//1574 1580//1580 1579//1579
+f 1577//1577 1581//1581 1580//1580
+f 1578//1578 1582//1582 1577//1577
+f 1579//1579 1583//1583 1578//1578
+f 1580//1580 1584//1584 1579//1579
+f 1581//1581 1585//1585 1588//1586
+f 1582//1582 1586//1587 1585//1585
+f 1583//1583 1587//1588 1586//1587
+f 1584//1584 1588//1586 1587//1588
+f 1585//1585 1589//1589 1592//1590
+f 1586//1587 1590//1591 1585//1585
+f 1587//1588 1591//1592 1590//1591
+f 1588//1586 1592//1590 1587//1588
+f 1589//1589 1593//1593 1592//1590
+f 1590//1591 1594//1594 1593//1593
+f 1591//1592 1595//1595 1590//1591
+f 1592//1590 1596//1596 1595//1595
+f 1593//1593 1597//1597 1600//1598
+f 1594//1594 1598//1599 1597//1597
+f 1595//1595 1599//1600 1598//1599
+f 1596//1596 1600//1598 1599//1600
+f 1597//1597 1601//1601 1604//1602
+f 1598//1599 1602//1603 1601//1601
+f 1599//1600 1603//1604 1602//1603
+f 1600//1598 1604//1602 1603//1604
+f 1605//1605 1609//1606 1612//1607
+f 1606//1608 1610//1609 1605//1605
+f 1607//1610 1611//1611 1610//1609
+f 1608//1612 1612//1607 1607//1610
+f 1609//1606 1613//1613 1616//1614
+f 1610//1609 1614//1615 1613//1613
+f 1611//1611 1615//1616 1614//1615
+f 1612//1607 1616//1614 1615//1616
+f 1613//1613 1617//1617 1620//1618
+f 1614//1615 1618//1619 1613//1613
+f 1615//1616 1619//1620 1618//1619
+f 1616//1614 1620//1618 1615//1616
+f 1617//1617 1621//1621 1620//1618
+f 1618//1619 1622//1622 1621//1621
+f 1619//1620 1623//1623 1618//1619
+f 1620//1618 1624//1624 1623//1623
+f 1621//1621 1625//1625 1624//1624
+f 1622//1622 1626//1626 1625//1625
+f 1623//1623 1627//1627 1622//1622
+f 1624//1624 1628//1628 1627//1627
+f 1625//1625 1629//1629 1628//1628
+f 1626//1626 1630//1630 1625//1625
+f 1627//1627 1631//1631 1626//1626
+f 1628//1628 1632//1632 1627//1627
+f 1629//1629 1633//1633 1636//1634
+f 1630//1630 1634//1635 1629//1629
+f 1631//1631 1635//1636 1634//1635
+f 1632//1632 1636//1634 1631//1631
+f 1633//1633 1637//1637 1636//1634
+f 1634//1635 1638//1638 1633//1633
+f 1635//1636 1639//1639 1634//1635
+f 1636//1634 1640//1640 1635//1636
+f 1637//1637 1641//1641 1644//1642
+f 1638//1638 1642//1643 1641//1641
+f 1639//1639 1643//1644 1642//1643
+f 1640//1640 1644//1642 1643//1644
+f 1641//1641 1645//1645 1648//1646
+f 1642//1643 1646//1647 1645//1645
+f 1643//1644 1647//1648 1646//1647
+f 1644//1642 1648//1646 1647//1648
+f 1649//1649 1653//1650 1656//1651
+f 1650//1652 1654//1653 1649//1649
+f 1651//1654 1655//1655 1654//1653
+f 1652//1656 1656//1651 1651//1654
+f 1653//1650 1657//1657 1656//1651
+f 1654//1653 1658//1658 1657//1657
+f 1655//1655 1659//1659 1654//1653
+f 1656//1651 1660//1660 1659//1659
+f 1657//1657 1661//1661 1664//1662
+f 1658//1658 1662//1663 1657//1657
+f 1659//1659 1663//1664 1662//1663
+f 1660//1660 1664//1662 1659//1659
+f 1661//1661 1665//1665 1664//1662
+f 1662//1663 1666//1666 1661//1661
+f 1663//1664 1667//1667 1662//1663
+f 1664//1662 1668//1668 1663//1664
+f 1665//1665 1669//1669 1668//1668
+f 1666//1666 1670//1670 1669//1669
+f 1667//1667 1671//1671 1666//1666
+f 1668//1668 1672//1672 1671//1671
+f 1669//1669 1673//1673 1676//1674
+f 1670//1670 1674//1675 1673//1673
+f 1671//1671 1675//1676 1674//1675
+f 1672//1672 1676//1674 1675//1676
+f 1673//1673 1677//1677 1676//1674
+f 1674//1675 1678//1678 1677//1677
+f 1675//1676 1679//1679 1674//1675
+f 1676//1674 1680//1680 1679//1679
+f 1677//1677 1681//1681 1680//1680
+f 1678//1678 1682//1682 1677//1677
+f 1679//1679 1683//1683 1678//1678
+f 1680//1680 1684//1684 1679//1679
+f 1681//1681 1685//1685 1688//1686
+f 1682//1682 1686//1687 1681//1681
+f 1683//1683 1687//1688 1686//1687
+f 1684//1684 1688//1686 1683//1683
+f 1685//1685 1689//1689 1692//1690
+f 1686//1687 1690//1691 1689//1689
+f 1687//1688 1691//1692 1690//1691
+f 1688//1686 1692//1690 1691//1692
+f 1693//1693 1697//1694 1700//1695
+f 1694//1696 1698//1697 1693//1693
+f 1695//1698 1699//1699 1698//1697
+f 1696//1700 1700//1695 1695//1698
+f 1697//1694 1701//1701 1700//1695
+f 1698//1697 1702//1702 1701//1701
+f 1699//1699 1703//1703 1698//1697
+f 1700//1695 1704//1704 1703//1703
+f 1701//1701 1705//1705 1708//1706
+f 1702//1702 1706//1707 1705//1705
+f 1703//1703 1707//1708 1706//1707
+f 1704//1704 1708//1706 1707//1708
+f 1705//1705 1709//1709 1708//1706
+f 1706//1707 1710//1710 1705//1705
+f 1707//1708 1711//1711 1706//1707
+f 1708//1706 1712//1712 1707//1708
+f 1709//1709 1713//1713 1716//1714
+f 1710//1710 1714//1715 1709//1709
+f 1711//1711 1715//1716 1714//1715
+f 1712//1712 1716//1714 1711//1711
+f 1713//1713 1717//1717 1716//1714
+f 1714//1715 1718//1718 1717//1717
+f 1715//1716 1719//1719 1718//1718
+f 1716//1714 1720//1720 1719//1719
+f 1717//1717 1721//1721 1724//1722
+f 1718//1718 1722//1723 1717//1717
+f 1719//1719 1723//1724 1722//1723
+f 1720//1720 1724//1722 1719//1719
+f 1721//1721 1725//1725 1724//1722
+f 1722//1723 1726//1726 1725//1725
+f 1723//1724 1727//1727 1722//1723
+f 1724//1722 1728//1728 1727//1727
+f 1725//1725 1729//1729 1732//1730
+f 1726//1726 1730//1731 1729//1729
+f 1727//1727 1731//1732 1730//1731
+f 1728//1728 1732//1730 1731//1732
+f 1729//1729 1733//1733 1736//1734
+f 1730//1731 1734//1735 1733//1733
+f 1731//1732 1735//1736 1734//1735
+f 1732//1730 1736//1734 1735//1736
+f 1737//1737 1741//1738 1740//1739
+f 1738//1740 1742//1741 1741//1738
+f 1739//1742 1743//1743 1738//1740
+f 1740//1739 1744//1744 1743//1743
+f 1741//1738 1745//1745 1748//1746
+f 1742//1741 1746//1747 1741//1738
+f 1743//1743 1747//1748 1746//1747
+f 1744//1744 1748//1746 1743//1743
+f 1745//1745 1749//1749 1748//1746
+f 1746//1747 1750//1750 1749//1749
+f 1747//1748 1751//1751 1746//1747
+f 1748//1746 1752//1752 1751//1751
+f 1749//1749 1753//1753 1752//1752
+f 1750//1750 1754//1754 1749//1749
+f 1751//1751 1755//1755 1750//1750
+f 1752//1752 1756//1756 1751//1751
+f 1753//1753 1757//1757 1760//1758
+f 1754//1754 1758//1759 1753//1753
+f 1755//1755 1759//1760 1758//1759
+f 1756//1756 1760//1758 1755//1755
+f 1757//1757 1761//1761 1764//1762
+f 1758//1759 1762//1763 1761//1761
+f 1759//1760 1763//1764 1762//1763
+f 1760//1758 1764//1762 1763//1764
+f 1761//1761 1765//1765 1764//1762
+f 1762//1763 1766//1766 1761//1761
+f 1763//1764 1767//1767 1762//1763
+f 1764//1762 1768//1768 1763//1764
+f 1765//1765 1769//1769 1768//1768
+f 1766//1766 1770//1770 1769//1769
+f 1767//1767 1771//1771 1766//1766
+f 1768//1768 1772//1772 1771//1771
+f 1769//1769 1773//1773 1772//1772
+f 1770//1770 1774//1774 1769//1769
+f 1771//1771 1775//1775 1770//1770
+f 1772//1772 1776//1776 1771//1771
+f 1773//1773 1777//1777 1780//1778
+f 1774//1774 1778//1779 1777//1777
+f 1775//1775 1779//1780 1778//1779
+f 1776//1776 1780//1778 1779//1780
+f 1781//1781 1785//1782 1788//1783
+f 1782//1784 1786//1785 1785//1782
+f 1783//1786 1787//1787 1786//1785
+f 1784//1788 1788//1783 1787//1787
+f 1785//1782 1789//1789 1788//1783
+f 1786//1785 1790//1790 1785//1782
+f 1787//1787 1791//1791 1786//1785
+f 1788//1783 1792//1792 1787//1787
+f 1789//1789 1793//1793 1792//1792
+f 1790//1790 1794//1794 1793//1793
+f 1791//1791 1795//1795 1790//1790
+f 1792//1792 1796//1796 1795//1795
+f 1793//1793 1797//1797 1800//1798
+f 1794//1794 1798//1799 1797//1797
+f 1795//1795 1799//1800 1798//1799
+f 1796//1796 1800//1798 1799//1800
+f 1797//1797 1801//1801 1800//1798
+f 1798//1799 1802//1802 1801//1801
+f 1799//1800 1803//1803 1798//1799
+f 1800//1798 1804//1804 1803//1803
+f 1801//1801 1805//1805 1804//1804
+f 1802//1802 1806//1806 1801//1801
+f 1803//1803 1807//1807 1802//1802
+f 1804//1804 1808//1808 1803//1803
+f 1805//1805 1809//1809 1812//1810
+f 1806//1806 1810//1811 1809//1809
+f 1807//1807 1811//1812 1810//1811
+f 1808//1808 1812//1810 1811//1812
+f 1809//1809 1813//1813 1812//1810
+f 1810//1811 1814//1814 1809//1809
+f 1811//1812 1815//1815 1810//1811
+f 1812//1810 1816//1816 1811//1812
+f 1813//1813 1817//1817 1820//1818
+f 1814//1814 1818//1819 1817//1817
+f 1815//1815 1819//1820 1818//1819
+f 1816//1816 1820//1818 1819//1820
+f 1817//1817 1821//1821 1824//1822
+f 1818//1819 1822//1823 1821//1821
+f 1819//1820 1823//1824 1822//1823
+f 1820//1818 1824//1822 1823//1824
+f 1825//1825 1829//1826 1828//1827
+f 1826//1828 1830//1829 1829//1826
+f 1827//1830 1831//1831 1826//1828
+f 1828//1827 1832//1832 1831//1831
+f 1829//1826 1833//1833 1836//1834
+f 1830//1829 1834//1835 1829//1826
+f 1831//1831 1835//1836 1834//1835
+f 1832//1832 1836//1834 1831//1831
+f 1833//1833 1837//1837 1840//1838
+f 1834//1835 1838//1839 1833//1833
+f 1835//1836 1839//1840 1838//1839
+f 1836//1834 1840//1838 1835//1836
+f 1837//1837 1841//1841 1840//1838
+f 1838//1839 1842//1842 1841//1841
+f 1839//1840 1843//1843 1838//1839
+f 1840//1838 1844//1844 1843//1843
+f 1841//1841 1845//1845 1848//1846
+f 1842//1842 1846//1847 1841//1841
+f 1843//1843 1847//1848 1846//1847
+f 1844//1844 1848//1846 1843//1843
+f 1845//1845 1849//1849 1852//1850
+f 1846//1847 1850//1851 1845//1845
+f 1847//1848 1851//1852 1850//1851
+f 1848//1846 1852//1850 1847//1848
+f 1849//1849 1853//1853 1856//1854
+f 1850//1851 1854//1855 1853//1853
+f 1851//1852 1855//1856 1854//1855
+f 1852//1850 1856//1854 1855//1856
+f 1857//1857 1861//1858 1860//1859
+f 1858//1860 1862//1861 1857//1857
+f 1859//1862 1863//1863 1858//1860
+f 1860//1859 1864//1864 1859//1862
+f 1861//1858 1865//1865 1868//1866
+f 1862//1861 1866//1867 1865//1865
+f 1863//1863 1867//1868 1866//1867
+f 1864//1864 1868//1866 1867//1868
+f 1865//1865 1869//1869 1872//1870
+f 1866//1867 1870//1871 1865//1865
+f 1867//1868 1871//1872 1870//1871
+f 1868//1866 1872//1870 1867//1868
+f 1869//1869 1873//1873 1876//1874
+f 1870//1871 1874//1875 1873//1873
+f 1871//1872 1875//1876 1874//1875
+f 1872//1870 1876//1874 1875//1876
+f 1877//1877 1881//1878 1884//1879
+f 1878//1880 1882//1881 1881//1878
+f 1879//1882 1883//1883 1882//1881
+f 1880//1884 1884//1879 1883//1883
+f 1881//1878 1885//1885 1888//1886
+f 1882//1881 1886//1887 1885//1885
+f 1883//1883 1887//1888 1886//1887
+f 1884//1879 1888//1886 1887//1888
+f 1889//1889 1893//1890 1896//1891
+f 1890//1892 1894//1893 1893//1890
+f 1891//1894 1895//1895 1894//1893
+f 1892//1896 1896//1891 1895//1895
+f 1897//1897 1901//1898 1904//1899
+f 1898//1900 1902//1901 1901//1898
+f 1899//1902 1903//1903 1902//1901
+f 1900//1904 1904//1899 1903//1903
+f 1901//1898 1905//1905 1904//1899
+f 1902//1901 1906//1906 1901//1898
+f 1903//1903 1907//1907 1902//1901
+f 1904//1899 1908//1908 1903//1903
+f 1905//1905 1909//1909 1908//1908
+f 1906//1906 1910//1910 1905//1905
+f 1907//1907 1911//1911 1906//1906
+f 1908//1908 1912//1912 1907//1907
+f 1909//1909 1913//1913 1912//1912
+f 1910//1910 1914//1914 1909//1909
+f 1911//1911 1915//1915 1910//1910
+f 1912//1912 1916//1916 1911//1911
+f 1913//1913 1917//1917 1916//1916
+f 1914//1914 1918//1918 1913//1913
+f 1915//1915 1919//1919 1914//1914
+f 1916//1916 1920//1920 1915//1915
+f 1917//1917 1921//1921 1924//1922
+f 1918//1918 1922//1923 1921//1921
+f 1919//1919 1923//1924 1922//1923
+f 1920//1920 1924//1922 1923//1924
+f 1925//1925 1929//1926 1928//1927
+f 1926//1928 1930//1929 1925//1925
+f 1927//1930 1931//1931 1930//1929
+f 1928//1927 1932//1932 1927//1930
+f 1929//1926 1933//1933 1932//1932
+f 1930//1929 1934//1934 1933//1933
+f 1931//1931 1935//1935 1930//1929
+f 1932//1932 1936//1936 1935//1935
+f 1933//1933 1937//1937 1940//1938
+f 1934//1934 1938//1939 1937//1937
+f 1935//1935 1939//1940 1938//1939
+f 1936//1936 1940//1938 1939//1940
+f 1941//1941 1945//1942 1948//1943
+f 1942//1944 1946//1945 1945//1942
+f 1943//1946 1947//1947 1946//1945
+f 1944//1948 1948//1943 1947//1947
+f 1949//1949 1953//1950 1952//1951
+f 1950//1952 1954//1953 1949//1949
+f 1951//1954 1955//1955 1950//1952
+f 1952//1951 1956//1956 1951//1954
+f 1953//1950 1957//1957 1960//1958
+f 1954//1953 1958//1959 1957//1957
+f 1955//1955 1959//1960 1958//1959
+f 1956//1956 1960//1958 1959//1960
+f 1957//1957 1961//1961 1964//1962
+f 1958//1959 1962//1963 1961//1961
+f 1959//1960 1963//1964 1962//1963
+f 1960//1958 1964//1962 1963//1964
+f 1961//1961 1965//1965 1968//1966
+f 1962//1963 1966//1967 1965//1965
+f 1963//1964 1967//1968 1966//1967
+f 1964//1962 1968//1966 1967//1968
+f 1965//1965 1969//1969 1968//1966
+f 1966//1967 1970//1970 1965//1965
+f 1967//1968 1971//1971 1966//1967
+f 1968//1966 1972//1972 1967//1968
+f 1969//1969 1973//1973 1976//1974
+f 1970//1970 1974//1975 1973//1973
+f 1971//1971 1975//1976 1974//1975
+f 1972//1972 1976//1974 1975//1976
+f 1973//1973 1977//1977 1980//1978
+f 1974//1975 1978//1979 1977//1977
+f 1975//1976 1979//1980 1978//1979
+f 1976//1974 1980//1978 1979//1980
+f 1981//1981 1985//1982 1988//1983
+f 1982//1984 1986//1985 1985//1982
+f 1983//1986 1987//1987 1986//1985
+f 1984//1988 1988//1983 1987//1987
+f 1985//1982 1989//1989 1988//1983
+f 1986//1985 1990//1990 1985//1982
+f 1987//1987 1991//1991 1986//1985
+f 1988//1983 1992//1992 1987//1987
+f 1989//1989 1993//1993 1992//1992
+f 1990//1990 1994//1994 1993//1993
+f 1991//1991 1995//1995 1990//1990
+f 1992//1992 1996//1996 1995//1995
+f 1993//1993 1997//1997 2000//1998
+f 1994//1994 1998//1999 1997//1997
+f 1995//1995 1999//2000 1998//1999
+f 1996//1996 2000//1998 1999//2000
+f 2001//2001 2005//2002 2008//2003
+f 2002//2004 2006//2005 2005//2002
+f 2003//2006 2007//2007 2006//2005
+f 2004//2008 2008//2003 2007//2007
+f 2005//2002 2009//2009 2012//2010
+f 2006//2005 2010//2011 2009//2009
+f 2007//2007 2011//2012 2010//2011
+f 2008//2003 2012//2010 2011//2012
+f 2013//2013 2017//2014 2020//2015
+f 2014//2016 2018//2017 2017//2014
+f 2015//2018 2019//2019 2018//2017
+f 2016//2020 2020//2015 2019//2019
+f 2021//2021 2025//2022 2028//2023
+f 2022//2024 2026//2025 2021//2021
+f 2023//2026 2027//2027 2026//2025
+f 2024//2028 2028//2023 2023//2026
+f 2025//2022 2029//2029 2028//2023
+f 2026//2025 2030//2030 2029//2029
+f 2027//2027 2031//2031 2026//2025
+f 2028//2023 2032//2032 2031//2031
+f 2029//2029 2033//2033 2032//2032
+f 2030//2030 2034//2034 2033//2033
+f 2031//2031 2035//2035 2030//2030
+f 2032//2032 2036//2036 2035//2035
+f 2033//2033 2037//2037 2040//2038
+f 2034//2034 2038//2039 2033//2033
+f 2035//2035 2039//2040 2038//2039
+f 2036//2036 2040//2038 2035//2035
+f 2037//2037 2041//2041 2044//2042
+f 2038//2039 2042//2043 2037//2037
+f 2039//2040 2043//2044 2042//2043
+f 2040//2038 2044//2042 2039//2040
+f 2041//2041 2045//2045 2048//2046
+f 2042//2043 2046//2047 2045//2045
+f 2043//2044 2047//2048 2046//2047
+f 2044//2042 2048//2046 2047//2048
+f 2049//2049 2053//2050 2056//2051
+f 2050//2052 2054//2053 2053//2050
+f 2051//2054 2055//2055 2054//2053
+f 2052//2056 2056//2051 2055//2055
+f 2053//2050 2057//2057 2056//2051
+f 2054//2053 2058//2058 2053//2050
+f 2055//2055 2059//2059 2054//2053
+f 2056//2051 2060//2060 2055//2055
+f 2057//2057 2061//2061 2064//2062
+f 2058//2058 2062//2063 2061//2061
+f 2059//2059 2063//2064 2062//2063
+f 2060//2060 2064//2062 2063//2064
+f 2065//2065 2069//2066 2072//2067
+f 2066//2068 2070//2069 2069//2066
+f 2067//2070 2071//2071 2070//2069
+f 2068//2072 2072//2067 2071//2071
+f 2073//2073 2077//2074 2080//2075
+f 2074//2076 2078//2077 2077//2074
+f 2075//2078 2079//2079 2078//2077
+f 2076//2080 2080//2075 2079//2079
+f 2077//2074 2081//2081 2080//2075
+f 2078//2077 2082//2082 2077//2074
+f 2079//2079 2083//2083 2078//2077
+f 2080//2075 2084//2084 2079//2079
+f 2081//2081 2085//2085 2088//2086
+f 2082//2082 2086//2087 2081//2081
+f 2083//2083 2087//2088 2086//2087
+f 2084//2084 2088//2086 2083//2083
+f 2085//2085 2089//2089 2088//2086
+f 2086//2087 2090//2090 2089//2089
+f 2087//2088 2091//2091 2086//2087
+f 2088//2086 2092//2092 2091//2091
+f 2089//2089 2093//2093 2092//2092
+f 2090//2090 2094//2094 2093//2093
+f 2091//2091 2095//2095 2090//2090
+f 2092//2092 2096//2096 2095//2095
+f 2093//2093 2097//2097 2100//2098
+f 2094//2094 2098//2099 2093//2093
+f 2095//2095 2099//2100 2098//2099
+f 2096//2096 2100//2098 2095//2095
+f 2097//2097 2101//2101 2104//2102
+f 2098//2099 2102//2103 2101//2101
+f 2099//2100 2103//2104 2102//2103
+f 2100//2098 2104//2102 2103//2104
+f 2105//2105 2109//2106 2112//2107
+f 2106//2108 2110//2109 2109//2106
+f 2107//2110 2111//2111 2110//2109
+f 2108//2112 2112//2107 2111//2111
+f 2109//2106 2113//2113 2112//2107
+f 2110//2109 2114//2114 2109//2106
+f 2111//2111 2115//2115 2110//2109
+f 2112//2107 2116//2116 2111//2111
+f 2113//2113 2117//2117 2116//2116
+f 2114//2114 2118//2118 2113//2113
+f 2115//2115 2119//2119 2114//2114
+f 2116//2116 2120//2120 2115//2115
+f 2117//2117 2121//2121 2124//2122
+f 2118//2118 2122//2123 2121//2121
+f 2119//2119 2123//2124 2122//2123
+f 2120//2120 2124//2122 2123//2124
+f 2125//2125 2129//2126 2128//2127
+f 2126//2128 2130//2129 2129//2126
+f 2127//2130 2131//2131 2126//2128
+f 2128//2127 2132//2132 2131//2131
+f 2129//2126 2133//2133 2136//2134
+f 2130//2129 2134//2135 2133//2133
+f 2131//2131 2135//2136 2134//2135
+f 2132//2132 2136//2134 2135//2136
+f 2137//2137 2141//2138 2144//2139
+f 2138//2140 2142//2141 2141//2138
+f 2139//2142 2143//2143 2142//2141
+f 2140//2144 2144//2139 2143//2143
+f 2145//2145 2149//2146 2148//2147
+f 2146//2148 2150//2149 2145//2145
+f 2147//2150 2151//2151 2146//2148
+f 2148//2147 2152//2152 2147//2150
+f 2149//2146 2153//2153 2152//2152
+f 2150//2149 2154//2154 2149//2146
+f 2151//2151 2155//2155 2150//2149
+f 2152//2152 2156//2156 2151//2151
+f 2153//2153 2157//2157 2160//2158
+f 2154//2154 2158//2159 2157//2157
+f 2155//2155 2159//2160 2158//2159
+f 2156//2156 2160//2158 2159//2160
+f 2157//2157 2161//2161 2160//2158
+f 2158//2159 2162//2162 2157//2157
+f 2159//2160 2163//2163 2158//2159
+f 2160//2158 2164//2164 2159//2160
+f 2161//2161 2165//2165 2168//2166
+f 2162//2162 2166//2167 2165//2165
+f 2163//2163 2167//2168 2166//2167
+f 2164//2164 2168//2166 2167//2168
+f 2165//2165 2169//2169 2172//2170
+f 2166//2167 2170//2171 2169//2169
+f 2167//2168 2171//2172 2170//2171
+f 2168//2166 2172//2170 2171//2172
+f 2173//2173 2177//2174 2180//2175
+f 2174//2176 2178//2177 2177//2174
+f 2175//2178 2179//2179 2178//2177
+f 2176//2180 2180//2175 2179//2179
+f 2177//2174 2181//2181 2180//2175
+f 2178//2177 2182//2182 2177//2174
+f 2179//2179 2183//2183 2178//2177
+f 2180//2175 2184//2184 2179//2179
+f 2181//2181 2185//2185 2188//2186
+f 2182//2182 2186//2187 2185//2185
+f 2183//2183 2187//2188 2186//2187
+f 2184//2184 2188//2186 2187//2188
+f 2189//2189 2193//2190 2196//2191
+f 2190//2192 2194//2193 2193//2190
+f 2191//2194 2195//2195 2194//2193
+f 2192//2196 2196//2191 2195//2195
+f 2197//2197 2201//2198 2200//2199
+f 2198//2200 2202//2201 2197//2197
+f 2199//2202 2203//2203 2198//2200
+f 2200//2199 2204//2204 2199//2202
+f 2201//2198 2205//2205 2208//2206
+f 2202//2201 2206//2207 2205//2205
+f 2203//2203 2207//2208 2206//2207
+f 2204//2204 2208//2206 2207//2208
+f 2205//2205 2209//2209 2208//2206
+f 2206//2207 2210//2210 2205//2205
+f 2207//2208 2211//2211 2206//2207
+f 2208//2206 2212//2212 2207//2208
+f 2209//2209 2213//2213 2212//2212
+f 2210//2210 2214//2214 2209//2209
+f 2211//2211 2215//2215 2210//2210
+f 2212//2212 2216//2216 2211//2211
+f 2213//2213 2217//2217 2220//2218
+f 2214//2214 2218//2219 2217//2217
+f 2215//2215 2219//2220 2218//2219
+f 2216//2216 2220//2218 2219//2220
+f 2217//2217 2221//2221 2220//2218
+f 2218//2219 2222//2222 2217//2217
+f 2219//2220 2223//2223 2218//2219
+f 2220//2218 2224//2224 2219//2220
+f 2221//2221 2225//2225 2228//2226
+f 2222//2222 2226//2227 2225//2225
+f 2223//2223 2227//2228 2226//2227
+f 2224//2224 2228//2226 2227//2228
+f 2229//2229 2233//2230 2236//2231
+f 2230//2232 2234//2233 2233//2230
+f 2231//2234 2235//2235 2234//2233
+f 2232//2236 2236//2231 2235//2235
+f 2233//2230 2237//2237 2236//2231
+f 2234//2233 2238//2238 2233//2230
+f 2235//2235 2239//2239 2234//2233
+f 2236//2231 2240//2240 2235//2235
+f 2237//2237 2241//2241 2240//2240
+f 2238//2238 2242//2242 2241//2241
+f 2239//2239 2243//2243 2238//2238
+f 2240//2240 2244//2244 2243//2243
+f 2241//2241 2245//2245 2248//2246
+f 2242//2242 2246//2247 2245//2245
+f 2243//2243 2247//2248 2246//2247
+f 2244//2244 2248//2246 2247//2248
+f 2249//2249 2253//2250 2252//2251
+f 2250//2252 2254//2253 2249//2249
+f 2251//2254 2255//2255 2250//2252
+f 2252//2251 2256//2256 2251//2254
+f 2253//2250 2257//2257 2260//2258
+f 2254//2253 2258//2259 2257//2257
+f 2255//2255 2259//2260 2258//2259
+f 2256//2256 2260//2258 2259//2260
+f 2261//2261 2265//2262 2268//2263
+f 2262//2264 2266//2265 2265//2262
+f 2263//2266 2267//2267 2266//2265
+f 2264//2268 2268//2263 2267//2267
+f 2269//2269 2273//2270 2276//2271
+f 2270//2272 2274//2273 2273//2270
+f 2271//2274 2275//2275 2274//2273
+f 2272//2276 2276//2271 2275//2275
+f 2273//2270 2277//2277 2280//2278
+f 2274//2273 2278//2279 2277//2277
+f 2275//2275 2279//2280 2278//2279
+f 2276//2271 2280//2278 2279//2280
+f 2277//2277 2281//2281 2280//2278
+f 2278//2279 2282//2282 2277//2277
+f 2279//2280 2283//2283 2278//2279
+f 2280//2278 2284//2284 2279//2280
+f 2281//2281 2285//2285 2284//2284
+f 2282//2282 2286//2286 2281//2281
+f 2283//2283 2287//2287 2282//2282
+f 2284//2284 2288//2288 2283//2283
+f 2285//2285 2289//2289 2288//2288
+f 2286//2286 2290//2290 2285//2285
+f 2287//2287 2291//2291 2286//2286
+f 2288//2288 2292//2292 2287//2287
+f 2289//2289 2293//2293 2296//2294
+f 2290//2290 2294//2295 2293//2293
+f 2291//2291 2295//2296 2294//2295
+f 2292//2292 2296//2294 2295//2296
+f 2297//2297 2301//2298 2304//2299
+f 2298//2300 2302//2301 2301//2298
+f 2299//2302 2303//2303 2302//2301
+f 2300//2304 2304//2299 2303//2303
+f 2301//2298 2305//2305 2308//2306
+f 2302//2301 2306//2307 2305//2305
+f 2303//2303 2307//2308 2306//2307
+f 2304//2299 2308//2306 2307//2308
+f 2305//2305 2309//2309 2312//2310
+f 2306//2307 2310//2311 2309//2309
+f 2307//2308 2311//2312 2310//2311
+f 2308//2306 2312//2310 2311//2312
+f 2313//2313 2317//2314 2320//2315
+f 2314//2316 2318//2317 2317//2314
+f 2315//2318 2319//2319 2318//2317
+f 2316//2320 2320//2315 2319//2319
+f 2321//2321 2325//2322 2328//2323
+f 2322//2324 2326//2325 2325//2322
+f 2323//2326 2327//2327 2326//2325
+f 2324//2328 2328//2323 2327//2327
+f 2325//2322 2329//2329 2328//2323
+f 2326//2325 2330//2330 2325//2322
+f 2327//2327 2331//2331 2326//2325
+f 2328//2323 2332//2332 2327//2327
+f 2329//2329 2333//2333 2332//2332
+f 2330//2330 2334//2334 2329//2329
+f 2331//2331 2335//2335 2330//2330
+f 2332//2332 2336//2336 2331//2331
+f 2333//2333 2337//2337 2340//2338
+f 2334//2334 2338//2339 2337//2337
+f 2335//2335 2339//2340 2338//2339
+f 2336//2336 2340//2338 2339//2340
+f 2337//2337 2341//2341 2340//2338
+f 2338//2339 2342//2342 2337//2337
+f 2339//2340 2343//2343 2338//2339
+f 2340//2338 2344//2344 2339//2340
+f 2341//2341 2345//2345 2348//2346
+f 2342//2342 2346//2347 2345//2345
+f 2343//2343 2347//2348 2346//2347
+f 2344//2344 2348//2346 2343//2343
+f 2345//2345 2349//2349 2352//2350
+f 2346//2347 2350//2351 2349//2349
+f 2347//2348 2351//2352 2350//2351
+f 2348//2346 2352//2350 2351//2352
+f 2353//2353 2357//2354 2356//2355
+f 2354//2356 2358//2357 2353//2353
+f 2355//2358 2359//2359 2354//2356
+f 2356//2355 2360//2360 2355//2358
+f 2357//2354 2361//2361 2360//2360
+f 2358//2357 2362//2362 2357//2354
+f 2359//2359 2363//2363 2358//2357
+f 2360//2360 2364//2364 2359//2359
+f 2361//2361 2365//2365 2364//2364
+f 2362//2362 2366//2366 2365//2365
+f 2363//2363 2367//2367 2362//2362
+f 2364//2364 2368//2368 2367//2367
+f 2365//2365 2369//2369 2372//2370
+f 2366//2366 2370//2371 2369//2369
+f 2367//2367 2371//2372 2370//2371
+f 2368//2368 2372//2370 2371//2372
+f 2373//2373 2377//2374 2380//2375
+f 2374//2376 2378//2377 2373//2373
+f 2375//2378 2379//2379 2378//2377
+f 2376//2380 2380//2375 2375//2378
+f 2377//2374 2381//2381 2384//2382
+f 2378//2377 2382//2383 2381//2381
+f 2379//2379 2383//2384 2382//2383
+f 2380//2375 2384//2382 2383//2384
+f 2385//2385 2389//2386 2392//2387
+f 2386//2388 2390//2389 2389//2386
+f 2387//2390 2391//2391 2390//2389
+f 2388//2392 2392//2387 2391//2391
+f 2393//2393 2397//2394 2396//2395
+f 2394//2396 2398//2397 2393//2393
+f 2395//2398 2399//2399 2394//2396
+f 2396//2395 2400//2400 2395//2398
+f 2397//2394 2401//2401 2404//2402
+f 2398//2397 2402//2403 2401//2401
+f 2399//2399 2403//2404 2402//2403
+f 2400//2400 2404//2402 2403//2404
+f 2401//2401 2405//2405 2404//2402
+f 2402//2403 2406//2406 2401//2401
+f 2403//2404 2407//2407 2402//2403
+f 2404//2402 2408//2408 2403//2404
+f 2405//2405 2409//2409 2412//2410
+f 2406//2406 2410//2411 2409//2409
+f 2407//2407 2411//2412 2410//2411
+f 2408//2408 2412//2410 2411//2412
+f 2409//2409 2413//2413 2412//2410
+f 2410//2411 2414//2414 2409//2409
+f 2411//2412 2415//2415 2410//2411
+f 2412//2410 2416//2416 2411//2412
+f 2413//2413 2417//2417 2420//2418
+f 2414//2414 2418//2419 2417//2417
+f 2415//2415 2419//2420 2418//2419
+f 2416//2416 2420//2418 2419//2420
+f 2421//2421 2425//2422 2428//2423
+f 2422//2424 2426//2425 2425//2422
+f 2423//2426 2427//2427 2426//2425
+f 2424//2428 2428//2423 2427//2427
+f 2425//2422 2429//2429 2428//2423
+f 2426//2425 2430//2430 2429//2429
+f 2427//2427 2431//2431 2426//2425
+f 2428//2423 2432//2432 2431//2431
+f 2429//2429 2433//2433 2436//2434
+f 2430//2430 2434//2435 2433//2433
+f 2431//2431 2435//2436 2434//2435
+f 2432//2432 2436//2434 2435//2436
+f 2437//2437 2441//2438 2444//2439
+f 2438//2440 2442//2441 2441//2438
+f 2439//2442 2443//2443 2442//2441
+f 2440//2444 2444//2439 2443//2443
+f 2445//2445 2449//2446 2448//2447
+f 2446//2448 2450//2449 2445//2445
+f 2447//2450 2451//2451 2446//2448
+f 2448//2447 2452//2452 2447//2450
+f 2449//2446 2453//2453 2456//2454
+f 2450//2449 2454//2455 2453//2453
+f 2451//2451 2455//2456 2454//2455
+f 2452//2452 2456//2454 2455//2456
+f 2453//2453 2457//2457 2456//2454
+f 2454//2455 2458//2458 2453//2453
+f 2455//2456 2459//2459 2454//2455
+f 2456//2454 2460//2460 2455//2456
+f 2457//2457 2461//2461 2464//2462
+f 2458//2458 2462//2463 2461//2461
+f 2459//2459 2463//2464 2462//2463
+f 2460//2460 2464//2462 2463//2464
+f 2461//2461 2465//2465 2464//2462
+f 2462//2463 2466//2466 2461//2461
+f 2463//2464 2467//2467 2462//2463
+f 2464//2462 2468//2468 2463//2464
+f 2465//2465 2469//2469 2472//2470
+f 2466//2466 2470//2471 2469//2469
+f 2467//2467 2471//2472 2470//2471
+f 2468//2468 2472//2470 2471//2472
+f 2469//2469 2473//2473 2476//2474
+f 2470//2471 2474//2475 2473//2473
+f 2471//2472 2475//2476 2474//2475
+f 2472//2470 2476//2474 2475//2476
+f 2477//2477 2481//2478 2484//2479
+f 2478//2480 2482//2481 2481//2478
+f 2479//2482 2483//2483 2482//2481
+f 2480//2484 2484//2479 2483//2483
+f 2481//2478 2485//2485 2484//2479
+f 2482//2481 2486//2486 2481//2478
+f 2483//2483 2487//2487 2482//2481
+f 2484//2479 2488//2488 2483//2483
+f 2485//2485 2489//2489 2492//2490
+f 2486//2486 2490//2491 2485//2485
+f 2487//2487 2491//2492 2490//2491
+f 2488//2488 2492//2490 2487//2487
+f 2489//2489 2493//2493 2496//2494
+f 2490//2491 2494//2495 2493//2493
+f 2491//2492 2495//2496 2494//2495
+f 2492//2490 2496//2494 2495//2496
+f 2497//2497 2501//2498 2504//2499
+f 2498//2500 2502//2501 2501//2498
+f 2499//2502 2503//2503 2502//2501
+f 2500//2504 2504//2499 2503//2503
+f 2501//2498 2505//2505 2508//2506
+f 2502//2501 2506//2507 2505//2505
+f 2503//2503 2507//2508 2506//2507
+f 2504//2499 2508//2506 2507//2508
+f 2509//2509 2513//2510 2516//2511
+f 2510//2512 2514//2513 2513//2510
+f 2511//2514 2515//2515 2514//2513
+f 2512//2516 2516//2511 2515//2515
+f 2517//2517 2521//2518 2524//2519
+f 2518//2520 2522//2521 2521//2518
+f 2519//2522 2523//2523 2522//2521
+f 2520//2524 2524//2519 2523//2523
+f 2521//2518 2525//2525 2528//2526
+f 2522//2521 2526//2527 2525//2525
+f 2523//2523 2527//2528 2526//2527
+f 2524//2519 2528//2526 2527//2528
+f 2525//2525 2529//2529 2528//2526
+f 2526//2527 2530//2530 2525//2525
+f 2527//2528 2531//2531 2526//2527
+f 2528//2526 2532//2532 2527//2528
+f 2529//2529 2533//2533 2536//2534
+f 2530//2530 2534//2535 2533//2533
+f 2531//2531 2535//2536 2534//2535
+f 2532//2532 2536//2534 2535//2536
+f 2533//2533 2537//2537 2536//2534
+f 2534//2535 2538//2538 2533//2533
+f 2535//2536 2539//2539 2534//2535
+f 2536//2534 2540//2540 2535//2536
+f 2537//2537 2541//2541 2544//2542
+f 2538//2538 2542//2543 2541//2541
+f 2539//2539 2543//2544 2542//2543
+f 2540//2540 2544//2542 2543//2544
+f 2545//2545 2549//2546 2548//2547
+f 2546//2548 2550//2549 2545//2545
+f 2547//2550 2551//2551 2546//2548
+f 2548//2547 2552//2552 2547//2550
+f 2549//2546 2553//2553 2556//2554
+f 2550//2549 2554//2555 2553//2553
+f 2551//2551 2555//2556 2554//2555
+f 2552//2552 2556//2554 2551//2551
+f 2553//2553 2557//2557 2560//2558
+f 2554//2555 2558//2559 2557//2557
+f 2555//2556 2559//2560 2558//2559
+f 2556//2554 2560//2558 2559//2560
+f 2561//2561 2565//2562 2568//2563
+f 2562//2564 2566//2565 2565//2562
+f 2563//2566 2567//2567 2566//2565
+f 2564//2568 2568//2563 2567//2567
+f 2569//2569 2573//2570 2576//2571
+f 2570//2572 2574//2573 2573//2570
+f 2571//2574 2575//2575 2574//2573
+f 2572//2576 2576//2571 2575//2575
+f 2573//2570 2577//2577 2576//2571
+f 2574//2573 2578//2578 2573//2570
+f 2575//2575 2579//2579 2574//2573
+f 2576//2571 2580//2580 2575//2575
+f 2577//2577 2581//2581 2584//2582
+f 2578//2578 2582//2583 2581//2581
+f 2579//2579 2583//2584 2582//2583
+f 2580//2580 2584//2582 2583//2584
+f 2581//2581 2585//2585 2584//2582
+f 2582//2583 2586//2586 2581//2581
+f 2583//2584 2587//2587 2582//2583
+f 2584//2582 2588//2588 2583//2584
+f 2585//2585 2589//2589 2592//2590
+f 2586//2586 2590//2591 2589//2589
+f 2587//2587 2591//2592 2590//2591
+f 2588//2588 2592//2590 2591//2592
+f 2589//2589 2593//2593 2596//2594
+f 2590//2591 2594//2595 2593//2593
+f 2591//2592 2595//2596 2594//2595
+f 2592//2590 2596//2594 2595//2596
+f 2593//2593 2597//2597 2600//2598
+f 2594//2595 2598//2599 2597//2597
+f 2595//2596 2599//2600 2598//2599
+f 2596//2594 2600//2598 2599//2600
+f 2601//2601 2605//2602 2604//2603
+f 2602//2604 2606//2605 2601//2601
+f 2603//2606 2607//2607 2602//2604
+f 2604//2603 2608//2608 2603//2606
+f 2605//2602 2609//2609 2608//2608
+f 2606//2605 2610//2610 2605//2602
+f 2607//2607 2611//2611 2606//2605
+f 2608//2608 2612//2612 2607//2607
+f 2609//2609 2613//2613 2612//2612
+f 2610//2610 2614//2614 2613//2613
+f 2611//2611 2615//2615 2610//2610
+f 2612//2612 2616//2616 2615//2615
+f 2613//2613 2617//2617 2620//2618
+f 2614//2614 2618//2619 2617//2617
+f 2615//2615 2619//2620 2618//2619
+f 2616//2616 2620//2618 2619//2620
+f 2621//2621 2625//2622 2628//2623
+f 2622//2624 2626//2625 2621//2621
+f 2623//2626 2627//2627 2626//2625
+f 2624//2628 2628//2623 2623//2626
+f 2625//2622 2629//2629 2632//2630
+f 2626//2625 2630//2631 2629//2629
+f 2627//2627 2631//2632 2630//2631
+f 2628//2623 2632//2630 2631//2632
+f 2633//2633 2637//2634 2640//2635
+f 2634//2636 2638//2637 2637//2634
+f 2635//2638 2639//2639 2638//2637
+f 2636//2640 2640//2635 2639//2639
+f 2641//2641 2645//2642 2644//2643
+f 2642//2644 2646//2645 2641//2641
+f 2643//2646 2647//2647 2646//2645
+f 2644//2643 2648//2648 2643//2646
+f 2645//2642 2649//2649 2648//2648
+f 2646//2645 2650//2650 2649//2649
+f 2647//2647 2651//2651 2646//2645
+f 2648//2648 2652//2652 2651//2651
+f 2649//2649 2653//2653 2652//2652
+f 2650//2650 2654//2654 2653//2653
+f 2651//2651 2655//2655 2650//2650
+f 2652//2652 2656//2656 2655//2655
+f 2653//2653 2657//2657 2656//2656
+f 2654//2654 2658//2658 2657//2657
+f 2655//2655 2659//2659 2654//2654
+f 2656//2656 2660//2660 2659//2659
+f 2657//2657 2661//2661 2664//2662
+f 2658//2658 2662//2663 2657//2657
+f 2659//2659 2663//2664 2662//2663
+f 2660//2660 2664//2662 2659//2659
+f 2661//2661 2665//2665 2668//2666
+f 2662//2663 2666//2667 2665//2665
+f 2663//2664 2667//2668 2666//2667
+f 2664//2662 2668//2666 2667//2668
+f 2669//2669 2673//2670 2672//2671
+f 2670//2672 2674//2673 2673//2670
+f 2671//2674 2675//2675 2670//2672
+f 2672//2671 2676//2676 2675//2675
+f 2673//2670 2677//2677 2676//2676
+f 2674//2673 2678//2678 2677//2677
+f 2675//2675 2679//2679 2674//2673
+f 2676//2676 2680//2680 2679//2679
+f 2677//2677 2681//2681 2684//2682
+f 2678//2678 2682//2683 2681//2681
+f 2679//2679 2683//2684 2682//2683
+f 2680//2680 2684//2682 2683//2684
+f 2685//2685 2689//2686 2692//2687
+f 2686//2688 2690//2689 2689//2686
+f 2687//2690 2691//2691 2690//2689
+f 2688//2692 2692//2687 2691//2691
+f 2693//2693 2697//2694 2696//2695
+f 2694//2696 2698//2697 2693//2693
+f 2695//2698 2699//2699 2694//2696
+f 2696//2695 2700//2700 2695//2698
+f 2697//2694 2701//2701 2704//2702
+f 2698//2697 2702//2703 2701//2701
+f 2699//2699 2703//2704 2702//2703
+f 2700//2700 2704//2702 2703//2704
+f 2701//2701 2705//2705 2704//2702
+f 2702//2703 2706//2706 2701//2701
+f 2703//2704 2707//2707 2702//2703
+f 2704//2702 2708//2708 2703//2704
+f 2705//2705 2709//2709 2712//2710
+f 2706//2706 2710//2711 2709//2709
+f 2707//2707 2711//2712 2710//2711
+f 2708//2708 2712//2710 2711//2712
+f 2709//2709 2713//2713 2712//2710
+f 2710//2711 2714//2714 2709//2709
+f 2711//2712 2715//2715 2710//2711
+f 2712//2710 2716//2716 2711//2712
+f 2713//2713 2717//2717 2720//2718
+f 2714//2714 2718//2719 2717//2717
+f 2715//2715 2719//2720 2718//2719
+f 2716//2716 2720//2718 2719//2720
+f 2717//2717 2721//2721 2724//2722
+f 2718//2719 2722//2723 2721//2721
+f 2719//2720 2723//2724 2722//2723
+f 2720//2718 2724//2722 2723//2724
+f 2725//2725 2729//2726 2732//2727
+f 2726//2728 2730//2729 2725//2725
+f 2727//2730 2731//2731 2730//2729
+f 2728//2732 2732//2727 2727//2730
+f 2729//2726 2733//2733 2732//2727
+f 2730//2729 2734//2734 2733//2733
+f 2731//2731 2735//2735 2730//2729
+f 2732//2727 2736//2736 2735//2735
+f 2733//2733 2737//2737 2740//2738
+f 2734//2734 2738//2739 2737//2737
+f 2735//2735 2739//2740 2738//2739
+f 2736//2736 2740//2738 2739//2740
+f 2737//2737 2741//2741 2744//2742
+f 2738//2739 2742//2743 2741//2741
+f 2739//2740 2743//2744 2742//2743
+f 2740//2738 2744//2742 2743//2744
+f 2745//2745 2749//2746 2748//2747
+f 2746//2748 2750//2749 2745//2745
+f 2747//2750 2751//2751 2746//2748
+f 2748//2747 2752//2752 2747//2750
+f 2749//2746 2753//2753 2756//2754
+f 2750//2749 2754//2755 2753//2753
+f 2751//2751 2755//2756 2754//2755
+f 2752//2752 2756//2754 2755//2756
+f 2757//2757 2761//2758 2764//2759
+f 2758//2760 2762//2761 2761//2758
+f 2759//2762 2763//2763 2762//2761
+f 2760//2764 2764//2759 2763//2763
+f 2765//2765 2769//2766 2772//2767
+f 2766//2768 2770//2769 2769//2766
+f 2767//2770 2771//2771 2770//2769
+f 2768//2772 2772//2767 2771//2771
+f 2769//2766 2773//2773 2772//2767
+f 2770//2769 2774//2774 2769//2766
+f 2771//2771 2775//2775 2770//2769
+f 2772//2767 2776//2776 2771//2771
+f 2773//2773 2777//2777 2780//2778
+f 2774//2774 2778//2779 2777//2777
+f 2775//2775 2779//2780 2778//2779
+f 2776//2776 2780//2778 2779//2780
+f 2777//2777 2781//2781 2780//2778
+f 2778//2779 2782//2782 2777//2777
+f 2779//2780 2783//2783 2778//2779
+f 2780//2778 2784//2784 2779//2780
+f 2781//2781 2785//2785 2788//2786
+f 2782//2782 2786//2787 2785//2785
+f 2783//2783 2787//2788 2786//2787
+f 2784//2784 2788//2786 2787//2788
+f 2785//2785 2789//2789 2792//2790
+f 2786//2787 2790//2791 2789//2789
+f 2787//2788 2791//2792 2790//2791
+f 2788//2786 2792//2790 2791//2792
+f 2793//2793 2797//2794 2796//2795
+f 2794//2796 2798//2797 2797//2794
+f 2795//2798 2799//2799 2794//2796
+f 2796//2795 2800//2800 2799//2799
+f 2797//2794 2801//2801 2804//2802
+f 2798//2797 2802//2803 2797//2794
+f 2799//2799 2803//2804 2802//2803
+f 2800//2800 2804//2802 2799//2799
+f 2801//2801 2805//2805 2808//2806
+f 2802//2803 2806//2807 2805//2805
+f 2803//2804 2807//2808 2806//2807
+f 2804//2802 2808//2806 2807//2808
+f 2809//2809 2813//2810 2816//2811
+f 2810//2812 2814//2813 2813//2810
+f 2811//2814 2815//2815 2814//2813
+f 2812//2816 2816//2811 2815//2815
+f 2817//2817 2821//2818 2820//2819
+f 2818//2820 2822//2821 2821//2818
+f 2819//2822 2823//2823 2818//2820
+f 2820//2819 2824//2824 2823//2823
+f 2821//2818 2825//2825 2828//2826
+f 2822//2821 2826//2827 2821//2818
+f 2823//2823 2827//2828 2826//2827
+f 2824//2824 2828//2826 2823//2823
+f 2825//2825 2829//2829 2832//2830
+f 2826//2827 2830//2831 2825//2825
+f 2827//2828 2831//2832 2830//2831
+f 2828//2826 2832//2830 2827//2828
+f 2829//2829 2833//2833 2832//2830
+f 2830//2831 2834//2834 2833//2833
+f 2831//2832 2835//2835 2830//2831
+f 2832//2830 2836//2836 2835//2835
+f 2833//2833 2837//2837 2840//2838
+f 2834//2834 2838//2839 2833//2833
+f 2835//2835 2839//2840 2838//2839
+f 2836//2836 2840//2838 2835//2835
+f 2837//2837 2841//2841 2840//2838
+f 2838//2839 2842//2842 2841//2841
+f 2839//2840 2843//2843 2838//2839
+f 2840//2838 2844//2844 2843//2843
+f 2841//2841 2845//2845 2848//2846
+f 2842//2842 2846//2847 2845//2845
+f 2843//2843 2847//2848 2846//2847
+f 2844//2844 2848//2846 2847//2848
+f 2849//2849 2853//2850 2852//2851
+f 2850//2852 2854//2853 2849//2849
+f 2851//2854 2855//2855 2850//2852
+f 2852//2851 2856//2856 2851//2854
+f 2853//2850 2857//2857 2860//2858
+f 2854//2853 2858//2859 2857//2857
+f 2855//2855 2859//2860 2858//2859
+f 2856//2856 2860//2858 2859//2860
+f 2857//2857 2861//2861 2864//2862
+f 2858//2859 2862//2863 2857//2857
+f 2859//2860 2863//2864 2862//2863
+f 2860//2858 2864//2862 2859//2860
+f 2861//2861 2865//2865 2868//2866
+f 2862//2863 2866//2867 2865//2865
+f 2863//2864 2867//2868 2866//2867
+f 2864//2862 2868//2866 2867//2868
+f 2869//2869 2873//2870 2872//2871
+f 2870//2872 2874//2873 2873//2870
+f 2871//2874 2875//2875 2870//2872
+f 2872//2871 2876//2876 2875//2875
+f 2873//2870 2877//2877 2880//2878
+f 2874//2873 2878//2879 2877//2877
+f 2875//2875 2879//2880 2878//2879
+f 2876//2876 2880//2878 2879//2880
+f 2881//2881 2885//2882 2888//2883
+f 2882//2884 2886//2885 2885//2882
+f 2883//2886 2887//2887 2886//2885
+f 2884//2888 2888//2883 2887//2887
+f 2889//2889 2893//2890 2892//2891
+f 2890//2892 2894//2893 2889//2889
+f 2891//2894 2895//2895 2890//2892
+f 2892//2891 2896//2896 2891//2894
+f 2893//2890 2897//2897 2900//2898
+f 2894//2893 2898//2899 2897//2897
+f 2895//2895 2899//2900 2898//2899
+f 2896//2896 2900//2898 2899//2900
+f 2897//2897 2901//2901 2900//2898
+f 2898//2899 2902//2902 2897//2897
+f 2899//2900 2903//2903 2898//2899
+f 2900//2898 2904//2904 2899//2900
+f 2901//2901 2905//2905 2908//2906
+f 2902//2902 2906//2907 2905//2905
+f 2903//2903 2907//2908 2906//2907
+f 2904//2904 2908//2906 2907//2908
+f 2905//2905 2909//2909 2908//2906
+f 2906//2907 2910//2910 2905//2905
+f 2907//2908 2911//2911 2906//2907
+f 2908//2906 2912//2912 2907//2908
+f 2909//2909 2913//2913 2916//2914
+f 2910//2910 2914//2915 2913//2913
+f 2911//2911 2915//2916 2914//2915
+f 2912//2912 2916//2914 2915//2916
+f 2917//2917 2921//2918 2920//2919
+f 2918//2920 2922//2921 2917//2917
+f 2919//2922 2923//2923 2918//2920
+f 2920//2919 2924//2924 2919//2922
+f 2921//2918 2925//2925 2928//2926
+f 2922//2921 2926//2927 2925//2925
+f 2923//2923 2927//2928 2926//2927
+f 2924//2924 2928//2926 2927//2928
+f 2925//2925 2929//2929 2932//2930
+f 2926//2927 2930//2931 2929//2929
+f 2927//2928 2931//2932 2930//2931
+f 2928//2926 2932//2930 2931//2932
+f 2933//2933 2937//2934 2940//2935
+f 2934//2936 2938//2937 2937//2934
+f 2935//2938 2939//2939 2938//2937
+f 2936//2940 2940//2935 2939//2939
+f 2941//2941 2945//2942 2944//2943
+f 2942//2944 2946//2945 2941//2941
+f 2943//2946 2947//2947 2942//2944
+f 2944//2943 2948//2948 2943//2946
+f 2945//2942 2949//2949 2952//2950
+f 2946//2945 2950//2951 2949//2949
+f 2947//2947 2951//2952 2950//2951
+f 2948//2948 2952//2950 2951//2952
+f 2949//2949 2953//2953 2952//2950
+f 2950//2951 2954//2954 2949//2949
+f 2951//2952 2955//2955 2950//2951
+f 2952//2950 2956//2956 2951//2952
+f 2953//2953 2957//2957 2960//2958
+f 2954//2954 2958//2959 2957//2957
+f 2955//2955 2959//2960 2958//2959
+f 2956//2956 2960//2958 2959//2960
+f 2957//2957 2961//2961 2960//2958
+f 2958//2959 2962//2962 2957//2957
+f 2959//2960 2963//2963 2958//2959
+f 2960//2958 2964//2964 2959//2960
+f 2961//2961 2965//2965 2964//2964
+f 2962//2962 2966//2966 2961//2961
+f 2963//2963 2967//2967 2962//2962
+f 2964//2964 2968//2968 2963//2963
+f 2965//2965 2969//2969 2972//2970
+f 2966//2966 2970//2971 2969//2969
+f 2967//2967 2971//2972 2970//2971
+f 2968//2968 2972//2970 2971//2972
+f 2973//2973 2977//2974 2980//2975
+f 2974//2976 2978//2977 2973//2973
+f 2975//2978 2979//2979 2978//2977
+f 2976//2980 2980//2975 2975//2978
+f 2977//2974 2981//2981 2984//2982
+f 2978//2977 2982//2983 2977//2974
+f 2979//2979 2983//2984 2982//2983
+f 2980//2975 2984//2982 2979//2979
+f 2981//2981 2985//2985 2988//2986
+f 2982//2983 2986//2987 2985//2985
+f 2983//2984 2987//2988 2986//2987
+f 2984//2982 2988//2986 2987//2988
+f 2985//2985 2989//2989 2992//2990
+f 2986//2987 2990//2991 2989//2989
+f 2987//2988 2991//2992 2990//2991
+f 2988//2986 2992//2990 2991//2992
+f 2993//2993 2997//2994 2996//2995
+f 2994//2996 2998//2997 2997//2994
+f 2995//2998 2999//2999 2994//2996
+f 2996//2995 3000//3000 2999//2999
+f 2997//2994 3001//3001 3004//3002
+f 2998//2997 3002//3003 3001//3001
+f 2999//2999 3003//3004 3002//3003
+f 3000//3000 3004//3002 3003//3004
+f 3005//3005 3009//3006 3012//3007
+f 3006//3008 3010//3009 3009//3006
+f 3007//3010 3011//3011 3010//3009
+f 3008//3012 3012//3007 3011//3011
+f 3013//3013 3017//3014 3016//3015
+f 3014//3016 3018//3017 3017//3014
+f 3015//3018 3019//3019 3014//3016
+f 3016//3015 3020//3020 3019//3019
+f 3017//3014 3021//3021 3024//3022
+f 3018//3017 3022//3023 3017//3014
+f 3019//3019 3023//3024 3022//3023
+f 3020//3020 3024//3022 3019//3019
+f 3021//3021 3025//3025 3024//3022
+f 3022//3023 3026//3026 3025//3025
+f 3023//3024 3027//3027 3022//3023
+f 3024//3022 3028//3028 3027//3027
+f 3025//3025 3029//3029 3032//3030
+f 3026//3026 3030//3031 3025//3025
+f 3027//3027 3031//3032 3030//3031
+f 3028//3028 3032//3030 3027//3027
+f 3029//3029 3033//3033 3036//3034
+f 3030//3031 3034//3035 3029//3029
+f 3031//3032 3035//3036 3034//3035
+f 3032//3030 3036//3034 3031//3032
+f 3033//3033 3037//3037 3040//3038
+f 3034//3035 3038//3039 3037//3037
+f 3035//3036 3039//3040 3038//3039
+f 3036//3034 3040//3038 3039//3040
+f 3041//3041 3045//3042 3044//3043
+f 3042//3044 3046//3045 3045//3042
+f 3043//3046 3047//3047 3042//3044
+f 3044//3043 3048//3048 3047//3047
+f 3045//3042 3049//3049 3052//3050
+f 3046//3045 3050//3051 3045//3042
+f 3047//3047 3051//3052 3050//3051
+f 3048//3048 3052//3050 3047//3047
+f 3049//3049 3053//3053 3056//3054
+f 3050//3051 3054//3055 3053//3053
+f 3051//3052 3055//3056 3054//3055
+f 3052//3050 3056//3054 3055//3056
+f 3057//3057 3061//3058 3064//3059
+f 3058//3060 3062//3061 3061//3058
+f 3059//3062 3063//3063 3062//3061
+f 3060//3064 3064//3059 3063//3063
+f 3065//3065 3069//3066 3068//3067
+f 3066//3068 3070//3069 3065//3065
+f 3067//3070 3071//3071 3066//3068
+f 3068//3067 3072//3072 3067//3070
+f 3069//3066 3073//3073 3072//3072
+f 3070//3069 3074//3074 3069//3066
+f 3071//3071 3075//3075 3070//3069
+f 3072//3072 3076//3076 3071//3071
+f 3073//3073 3077//3077 3080//3078
+f 3074//3074 3078//3079 3077//3077
+f 3075//3075 3079//3080 3078//3079
+f 3076//3076 3080//3078 3079//3080
+f 3077//3077 3081//3081 3084//3082
+f 3078//3079 3082//3083 3081//3081
+f 3079//3080 3083//3084 3082//3083
+f 3080//3078 3084//3082 3083//3084
+f 3081//3081 3085//3085 3084//3082
+f 3082//3083 3086//3086 3081//3081
+f 3083//3084 3087//3087 3082//3083
+f 3084//3082 3088//3088 3083//3084
+f 3085//3085 3089//3089 3092//3090
+f 3086//3086 3090//3091 3089//3089
+f 3087//3087 3091//3092 3090//3091
+f 3088//3088 3092//3090 3091//3092
+f 3089//3089 3093//3093 3096//3094
+f 3090//3091 3094//3095 3093//3093
+f 3091//3092 3095//3096 3094//3095
+f 3092//3090 3096//3094 3095//3096
+f 3097//3097 3101//3098 3100//3099
+f 3098//3100 3102//3101 3097//3097
+f 3099//3102 3103//3103 3098//3100
+f 3100//3099 3104//3104 3099//3102
+f 3101//3098 3105//3105 3104//3104
+f 3102//3101 3106//3106 3101//3098
+f 3103//3103 3107//3107 3102//3101
+f 3104//3104 3108//3108 3103//3103
+f 3105//3105 3109//3109 3112//3110
+f 3106//3106 3110//3111 3105//3105
+f 3107//3107 3111//3112 3110//3111
+f 3108//3108 3112//3110 3107//3107
+f 3109//3109 3113//3113 3116//3114
+f 3110//3111 3114//3115 3113//3113
+f 3111//3112 3115//3116 3114//3115
+f 3112//3110 3116//3114 3115//3116
+f 3117//3117 3121//3118 3124//3119
+f 3118//3120 3122//3121 3117//3117
+f 3119//3122 3123//3123 3122//3121
+f 3120//3124 3124//3119 3119//3122
+f 3121//3118 3125//3125 3128//3126
+f 3122//3121 3126//3127 3125//3125
+f 3123//3123 3127//3128 3126//3127
+f 3124//3119 3128//3126 3127//3128
+f 3129//3129 3133//3130 3136//3131
+f 3130//3132 3134//3133 3133//3130
+f 3131//3134 3135//3135 3134//3133
+f 3132//3136 3136//3131 3135//3135
+f 3137//3137 3141//3138 3144//3139
+f 3138//3140 3142//3141 3141//3138
+f 3139//3142 3143//3143 3142//3141
+f 3140//3144 3144//3139 3143//3143
+f 3141//3138 3145//3145 3148//3146
+f 3142//3141 3146//3147 3145//3145
+f 3143//3143 3147//3148 3146//3147
+f 3144//3139 3148//3146 3147//3148
+f 3145//3145 3149//3149 3152//3150
+f 3146//3147 3150//3151 3149//3149
+f 3147//3148 3151//3152 3150//3151
+f 3148//3146 3152//3150 3151//3152
+f 3149//3149 3153//3153 3152//3150
+f 3150//3151 3154//3154 3153//3153
+f 3151//3152 3155//3155 3150//3151
+f 3152//3150 3156//3156 3155//3155
+f 3153//3153 3157//3157 3156//3156
+f 3154//3154 3158//3158 3157//3157
+f 3155//3155 3159//3159 3154//3154
+f 3156//3156 3160//3160 3159//3159
+f 3157//3157 3161//3161 3164//3162
+f 3158//3158 3162//3163 3161//3161
+f 3159//3159 3163//3164 3162//3163
+f 3160//3160 3164//3162 3163//3164
+f 3165//3165 3169//3166 3172//3167
+f 3166//3168 3170//3169 3165//3165
+f 3167//3170 3171//3171 3170//3169
+f 3168//3172 3172//3167 3167//3170
+f 3169//3166 3173//3173 3172//3167
+f 3170//3169 3174//3174 3173//3173
+f 3171//3171 3175//3175 3170//3169
+f 3172//3167 3176//3176 3175//3175
+f 3173//3173 3177//3177 3180//3178
+f 3174//3174 3178//3179 3177//3177
+f 3175//3175 3179//3180 3178//3179
+f 3176//3176 3180//3178 3179//3180
+f 3181//3181 3185//3182 3188//3183
+f 3182//3184 3186//3185 3185//3182
+f 3183//3186 3187//3187 3186//3185
+f 3184//3188 3188//3183 3187//3187
+f 3189//3189 3193//3190 3192//3191
+f 3190//3192 3194//3193 3189//3189
+f 3191//3194 3195//3195 3190//3192
+f 3192//3191 3196//3196 3191//3194
+f 3193//3190 3197//3197 3200//3198
+f 3194//3193 3198//3199 3197//3197
+f 3195//3195 3199//3200 3198//3199
+f 3196//3196 3200//3198 3199//3200
+f 3197//3197 3201//3201 3200//3198
+f 3198//3199 3202//3202 3197//3197
+f 3199//3200 3203//3203 3198//3199
+f 3200//3198 3204//3204 3199//3200
+f 3201//3201 3205//3205 3204//3204
+f 3202//3202 3206//3206 3201//3201
+f 3203//3203 3207//3207 3202//3202
+f 3204//3204 3208//3208 3203//3203
+f 3205//3205 3209//3209 3208//3208
+f 3206//3206 3210//3210 3205//3205
+f 3207//3207 3211//3211 3206//3206
+f 3208//3208 3212//3212 3207//3207
+f 3209//3209 3213//3213 3216//3214
+f 3210//3210 3214//3215 3213//3213
+f 3211//3211 3215//3216 3214//3215
+f 3212//3212 3216//3214 3215//3216
+f 3213//3213 3217//3217 3220//3218
+f 3214//3215 3218//3219 3217//3217
+f 3215//3216 3219//3220 3218//3219
+f 3216//3214 3220//3218 3219//3220
+f 3221//3221 3225//3222 3228//3223
+f 3222//3224 3226//3225 3221//3221
+f 3223//3226 3227//3227 3226//3225
+f 3224//3228 3228//3223 3223//3226
+f 3225//3222 3229//3229 3232//3230
+f 3226//3225 3230//3231 3225//3222
+f 3227//3227 3231//3232 3230//3231
+f 3228//3223 3232//3230 3227//3227
+f 3229//3229 3233//3233 3232//3230
+f 3230//3231 3234//3234 3233//3233
+f 3231//3232 3235//3235 3230//3231
+f 3232//3230 3236//3236 3235//3235
+f 3233//3233 3237//3237 3240//3238
+f 3234//3234 3238//3239 3237//3237
+f 3235//3235 3239//3240 3238//3239
+f 3236//3236 3240//3238 3239//3240
+f 3241//3241 3245//3242 3248//3243
+f 3242//3244 3246//3245 3241//3241
+f 3243//3246 3247//3247 3246//3245
+f 3244//3248 3248//3243 3243//3246
+f 3245//3242 3249//3249 3252//3250
+f 3246//3245 3250//3251 3249//3249
+f 3247//3247 3251//3252 3250//3251
+f 3248//3243 3252//3250 3251//3252
+f 3253//3253 3257//3254 3260//3255
+f 3254//3256 3258//3257 3257//3254
+f 3255//3258 3259//3259 3258//3257
+f 3256//3260 3260//3255 3259//3259
+f 3261//3261 3265//3262 3268//3263
+f 3262//3264 3266//3265 3265//3262
+f 3263//3266 3267//3267 3266//3265
+f 3264//3268 3268//3263 3267//3267
+f 3265//3262 3269//3269 3272//3270
+f 3266//3265 3270//3271 3269//3269
+f 3267//3267 3271//3272 3270//3271
+f 3268//3263 3272//3270 3267//3267
+f 3269//3269 3273//3273 3272//3270
+f 3270//3271 3274//3274 3269//3269
+f 3271//3272 3275//3275 3270//3271
+f 3272//3270 3276//3276 3275//3275
+f 3273//3273 3277//3277 3280//3278
+f 3274//3274 3278//3279 3273//3273
+f 3275//3275 3279//3280 3278//3279
+f 3276//3276 3280//3278 3275//3275
+f 3277//3277 3281//3281 3280//3278
+f 3278//3279 3282//3282 3281//3281
+f 3279//3280 3283//3283 3278//3279
+f 3280//3278 3284//3284 3283//3283
+f 3281//3281 3285//3285 3288//3286
+f 3282//3282 3286//3287 3285//3285
+f 3283//3283 3287//3288 3286//3287
+f 3284//3284 3288//3286 3287//3288
+f 3289//3289 3293//3290 3296//3291
+f 3290//3292 3294//3293 3293//3290
+f 3291//3294 3295//3295 3294//3293
+f 3292//3296 3296//3291 3295//3295
+f 3293//3290 3297//3297 3300//3298
+f 3294//3293 3298//3299 3297//3297
+f 3295//3295 3299//3300 3298//3299
+f 3296//3291 3300//3298 3299//3300
+f 3297//3297 3301//3301 3304//3302
+f 3298//3299 3302//3303 3301//3301
+f 3299//3300 3303//3304 3302//3303
+f 3300//3298 3304//3302 3303//3304
+f 3305//3305 3309//3306 3312//3307
+f 3306//3308 3310//3309 3309//3306
+f 3307//3310 3311//3311 3310//3309
+f 3308//3312 3312//3307 3311//3311
+f 3313//3313 3317//3314 3316//3315
+f 3314//3316 3318//3317 3317//3314
+f 3315//3318 3319//3319 3314//3316
+f 3316//3315 3320//3320 3319//3319
+f 3317//3314 3321//3321 3320//3320
+f 3318//3317 3322//3322 3321//3321
+f 3319//3319 3323//3323 3318//3317
+f 3320//3320 3324//3324 3323//3323
+f 3321//3321 3325//3325 3328//3326
+f 3322//3322 3326//3327 3321//3321
+f 3323//3323 3327//3328 3326//3327
+f 3324//3324 3328//3326 3323//3323
+f 3325//3325 3329//3329 3332//3330
+f 3326//3327 3330//3331 3325//3325
+f 3327//3328 3331//3332 3330//3331
+f 3328//3326 3332//3330 3327//3328
+f 3329//3329 3333//3333 3336//3334
+f 3330//3331 3334//3335 3329//3329
+f 3331//3332 3335//3336 3334//3335
+f 3332//3330 3336//3334 3331//3332
+f 3333//3333 3337//3337 3336//3334
+f 3334//3335 3338//3338 3337//3337
+f 3335//3336 3339//3339 3334//3335
+f 3336//3334 3340//3340 3339//3339
+f 3337//3337 3341//3341 3344//3342
+f 3338//3338 3342//3343 3341//3341
+f 3339//3339 3343//3344 3342//3343
+f 3340//3340 3344//3342 3343//3344
+f 3345//3345 3349//3346 3348//3347
+f 3346//3348 3350//3349 3345//3345
+f 3347//3350 3351//3351 3346//3348
+f 3348//3347 3352//3352 3347//3350
+f 3349//3346 3353//3353 3356//3354
+f 3350//3349 3354//3355 3353//3353
+f 3351//3351 3355//3356 3354//3355
+f 3352//3352 3356//3354 3355//3356
+f 3353//3353 3357//3357 3360//3358
+f 3354//3355 3358//3359 3357//3357
+f 3355//3356 3359//3360 3358//3359
+f 3356//3354 3360//3358 3359//3360
+f 3357//3357 3361//3361 3364//3362
+f 3358//3359 3362//3363 3361//3361
+f 3359//3360 3363//3364 3362//3363
+f 3360//3358 3364//3362 3363//3364
+f 3365//3365 3369//3366 3368//3367
+f 3366//3368 3370//3369 3365//3365
+f 3367//3370 3371//3371 3366//3368
+f 3368//3367 3372//3372 3367//3370
+f 3369//3366 3373//3373 3376//3374
+f 3370//3369 3374//3375 3373//3373
+f 3371//3371 3375//3376 3374//3375
+f 3372//3372 3376//3374 3375//3376
+f 3377//3377 3381//3378 3384//3379
+f 3378//3380 3382//3381 3381//3378
+f 3379//3382 3383//3383 3382//3381
+f 3380//3384 3384//3379 3383//3383
+f 3385//3385 3389//3386 3392//3387
+f 3386//3388 3390//3389 3389//3386
+f 3387//3390 3391//3391 3390//3389
+f 3388//3392 3392//3387 3391//3391
+f 3389//3386 3393//3393 3392//3387
+f 3390//3389 3394//3394 3389//3386
+f 3391//3391 3395//3395 3390//3389
+f 3392//3387 3396//3396 3391//3391
+f 3393//3393 3397//3397 3396//3396
+f 3394//3394 3398//3398 3393//3393
+f 3395//3395 3399//3399 3394//3394
+f 3396//3396 3400//3400 3395//3395
+f 3397//3397 3401//3401 3400//3400
+f 3398//3398 3402//3402 3397//3397
+f 3399//3399 3403//3403 3398//3398
+f 3400//3400 3404//3404 3399//3399
+f 3401//3401 3405//3405 3408//3406
+f 3402//3402 3406//3407 3405//3405
+f 3403//3403 3407//3408 3406//3407
+f 3404//3404 3408//3406 3407//3408
+f 3405//3405 3409//3409 3412//3410
+f 3406//3407 3410//3411 3409//3409
+f 3407//3408 3411//3412 3410//3411
+f 3408//3406 3412//3410 3411//3412
+f 3413//3413 3417//3414 3416//3415
+f 3414//3416 3418//3417 3417//3414
+f 3415//3418 3419//3419 3414//3416
+f 3416//3415 3420//3420 3419//3419
+f 3417//3414 3421//3421 3424//3422
+f 3418//3417 3422//3423 3417//3414
+f 3419//3419 3423//3424 3422//3423
+f 3420//3420 3424//3422 3419//3419
+f 3421//3421 3425//3425 3428//3426
+f 3422//3423 3426//3427 3425//3425
+f 3423//3424 3427//3428 3426//3427
+f 3424//3422 3428//3426 3427//3428
+f 3429//3429 3433//3430 3436//3431
+f 3430//3432 3434//3433 3433//3430
+f 3431//3434 3435//3435 3434//3433
+f 3432//3436 3436//3431 3435//3435
+f 3437//3437 3441//3438 3440//3439
+f 3438//3440 3442//3441 3437//3437
+f 3439//3442 3443//3443 3438//3440
+f 3440//3439 3444//3444 3439//3442
+f 3441//3438 3445//3445 3448//3446
+f 3442//3441 3446//3447 3445//3445
+f 3443//3443 3447//3448 3446//3447
+f 3444//3444 3448//3446 3447//3448
+f 3445//3445 3449//3449 3452//3450
+f 3446//3447 3450//3451 3449//3449
+f 3447//3448 3451//3452 3450//3451
+f 3448//3446 3452//3450 3451//3452
+f 3449//3449 3453//3453 3452//3450
+f 3450//3451 3454//3454 3449//3449
+f 3451//3452 3455//3455 3450//3451
+f 3452//3450 3456//3456 3451//3452
+f 3453//3453 3457//3457 3456//3456
+f 3454//3454 3458//3458 3453//3453
+f 3455//3455 3459//3459 3454//3454
+f 3456//3456 3460//3460 3455//3455
+f 3457//3457 3461//3461 3460//3460
+f 3458//3458 3462//3462 3457//3457
+f 3459//3459 3463//3463 3458//3458
+f 3460//3460 3464//3464 3459//3459
+f 3461//3461 3465//3465 3468//3466
+f 3462//3462 3466//3467 3465//3465
+f 3463//3463 3467//3468 3466//3467
+f 3464//3464 3468//3466 3467//3468
+f 3469//3469 3473//3470 3472//3471
+f 3470//3472 3474//3473 3469//3469
+f 3471//3474 3475//3475 3470//3472
+f 3472//3471 3476//3476 3471//3474
+f 3473//3470 3477//3477 3480//3478
+f 3474//3473 3478//3479 3477//3477
+f 3475//3475 3479//3480 3478//3479
+f 3476//3476 3480//3478 3479//3480
+f 3477//3477 3481//3481 3484//3482
+f 3478//3479 3482//3483 3477//3477
+f 3479//3480 3483//3484 3482//3483
+f 3480//3478 3484//3482 3479//3480
+f 3481//3481 3485//3485 3488//3486
+f 3482//3483 3486//3487 3485//3485
+f 3483//3484 3487//3488 3486//3487
+f 3484//3482 3488//3486 3487//3488
+f 3489//3489 3493//3490 3496//3491
+f 3490//3492 3494//3493 3493//3490
+f 3491//3494 3495//3495 3494//3493
+f 3492//3496 3496//3491 3495//3495
+f 3493//3490 3497//3497 3500//3498
+f 3494//3493 3498//3499 3497//3497
+f 3495//3495 3499//3500 3498//3499
+f 3496//3491 3500//3498 3499//3500
+f 3501//3501 3505//3502 3508//3503
+f 3502//3504 3506//3505 3505//3502
+f 3503//3506 3507//3507 3506//3505
+f 3504//3508 3508//3503 3507//3507
+f 3509//3509 3513//3510 3512//3511
+f 3510//3512 3514//3513 3513//3510
+f 3511//3514 3515//3515 3510//3512
+f 3512//3511 3516//3516 3515//3515
+f 3513//3510 3517//3517 3516//3516
+f 3514//3513 3518//3518 3517//3517
+f 3515//3515 3519//3519 3514//3513
+f 3516//3516 3520//3520 3519//3519
+f 3517//3517 3521//3521 3524//3522
+f 3518//3518 3522//3523 3517//3517
+f 3519//3519 3523//3524 3522//3523
+f 3520//3520 3524//3522 3519//3519
+f 3521//3521 3525//3525 3528//3526
+f 3522//3523 3526//3527 3521//3521
+f 3523//3524 3527//3528 3526//3527
+f 3524//3522 3528//3526 3523//3524
+f 3525//3525 3529//3529 3528//3526
+f 3526//3527 3530//3530 3529//3529
+f 3527//3528 3531//3531 3526//3527
+f 3528//3526 3532//3532 3531//3531
+f 3529//3529 3533//3533 3536//3534
+f 3530//3530 3534//3535 3533//3533
+f 3531//3531 3535//3536 3534//3535
+f 3532//3532 3536//3534 3535//3536
+f 3537//3537 3541//3538 3540//3539
+f 3538//3540 3542//3541 3541//3538
+f 3539//3542 3543//3543 3538//3540
+f 3540//3539 3544//3544 3543//3543
+f 3541//3538 3545//3545 3548//3546
+f 3542//3541 3546//3547 3541//3538
+f 3543//3543 3547//3548 3546//3547
+f 3544//3544 3548//3546 3543//3543
+f 3545//3545 3549//3549 3552//3550
+f 3546//3547 3550//3551 3549//3549
+f 3547//3548 3551//3552 3550//3551
+f 3548//3546 3552//3550 3551//3552
+f 3553//3553 3557//3554 3560//3555
+f 3554//3556 3558//3557 3557//3554
+f 3555//3558 3559//3559 3558//3557
+f 3556//3560 3560//3555 3559//3559
+f 3561//3561 3565//3562 3568//3563
+f 3562//3564 3566//3565 3565//3562
+f 3563//3566 3567//3567 3566//3565
+f 3564//3568 3568//3563 3567//3567
+f 3565//3562 3569//3569 3572//3570
+f 3566//3565 3570//3571 3569//3569
+f 3567//3567 3571//3572 3570//3571
+f 3568//3563 3572//3570 3571//3572
+f 3569//3569 3573//3573 3576//3574
+f 3570//3571 3574//3575 3573//3573
+f 3571//3572 3575//3576 3574//3575
+f 3572//3570 3576//3574 3575//3576
+f 3573//3573 3577//3577 3576//3574
+f 3574//3575 3578//3578 3573//3573
+f 3575//3576 3579//3579 3574//3575
+f 3576//3574 3580//3580 3575//3576
+f 3577//3577 3581//3581 3584//3582
+f 3578//3578 3582//3583 3581//3581
+f 3579//3579 3583//3584 3582//3583
+f 3580//3580 3584//3582 3583//3584
+f 3581//3581 3585//3585 3584//3582
+f 3582//3583 3586//3586 3581//3581
+f 3583//3584 3587//3587 3582//3583
+f 3584//3582 3588//3588 3583//3584
+f 3585//3585 3589//3589 3592//3590
+f 3586//3586 3590//3591 3589//3589
+f 3587//3587 3591//3592 3590//3591
+f 3588//3588 3592//3590 3591//3592
+f 3593//3593 3597//3594 3600//3595
+f 3594//3596 3598//3597 3597//3594
+f 3595//3598 3599//3599 3598//3597
+f 3596//3600 3600//3595 3599//3599
+f 3597//3594 3601//3601 3600//3595
+f 3598//3597 3602//3602 3601//3601
+f 3599//3599 3603//3603 3598//3597
+f 3600//3595 3604//3604 3603//3603
+f 3601//3601 3605//3605 3604//3604
+f 3602//3602 3606//3606 3605//3605
+f 3603//3603 3607//3607 3602//3602
+f 3604//3604 3608//3608 3607//3607
+f 3605//3605 3609//3609 3612//3610
+f 3606//3606 3610//3611 3609//3609
+f 3607//3607 3611//3612 3610//3611
+f 3608//3608 3612//3610 3611//3612
+f 3613//3613 3617//3614 3620//3615
+f 3614//3616 3618//3617 3613//3613
+f 3615//3618 3619//3619 3618//3617
+f 3616//3620 3620//3615 3615//3618
+f 3617//3614 3621//3621 3624//3622
+f 3618//3617 3622//3623 3621//3621
+f 3619//3619 3623//3624 3622//3623
+f 3620//3615 3624//3622 3623//3624
+f 3625//3625 3629//3626 3632//3627
+f 3626//3628 3630//3629 3629//3626
+f 3627//3630 3631//3631 3630//3629
+f 3628//3632 3632//3627 3631//3631
+f 3633//3633 3637//3634 3636//3635
+f 3634//3636 3638//3637 3633//3633
+f 3635//3638 3639//3639 3634//3636
+f 3636//3635 3640//3640 3635//3638
+f 3637//3634 3641//3641 3644//3642
+f 3638//3637 3642//3643 3641//3641
+f 3639//3639 3643//3644 3642//3643
+f 3640//3640 3644//3642 3643//3644
+f 3641//3641 3645//3645 3644//3642
+f 3642//3643 3646//3646 3641//3641
+f 3643//3644 3647//3647 3642//3643
+f 3644//3642 3648//3648 3643//3644
+f 3645//3645 3649//3649 3648//3648
+f 3646//3646 3650//3650 3645//3645
+f 3647//3647 3651//3651 3646//3646
+f 3648//3648 3652//3652 3647//3647
+f 3649//3649 3653//3653 3656//3654
+f 3650//3650 3654//3655 3653//3653
+f 3651//3651 3655//3656 3654//3655
+f 3652//3652 3656//3654 3651//3651
+f 3653//3653 3657//3657 3660//3658
+f 3654//3655 3658//3659 3657//3657
+f 3655//3656 3659//3660 3658//3659
+f 3656//3654 3660//3658 3659//3660
+f 3661//3661 3665//3662 3668//3663
+f 3662//3664 3666//3665 3665//3662
+f 3663//3666 3667//3667 3666//3665
+f 3664//3668 3668//3663 3667//3667
+f 3665//3662 3669//3669 3668//3663
+f 3666//3665 3670//3670 3665//3662
+f 3667//3667 3671//3671 3666//3665
+f 3668//3663 3672//3672 3667//3667
+f 3669//3669 3673//3673 3676//3674
+f 3670//3670 3674//3675 3673//3673
+f 3671//3671 3675//3676 3674//3675
+f 3672//3672 3676//3674 3675//3676
+f 3677//3677 3681//3678 3684//3679
+f 3678//3680 3682//3681 3681//3678
+f 3679//3682 3683//3683 3682//3681
+f 3680//3684 3684//3679 3683//3683
+f 3685//3685 3689//3686 3688//3687
+f 3686//3688 3690//3689 3685//3685
+f 3687//3690 3691//3691 3686//3688
+f 3688//3687 3692//3692 3687//3690
+f 3689//3686 3693//3693 3696//3694
+f 3690//3689 3694//3695 3693//3693
+f 3691//3691 3695//3696 3694//3695
+f 3692//3692 3696//3694 3695//3696
+f 3693//3693 3697//3697 3696//3694
+f 3694//3695 3698//3698 3693//3693
+f 3695//3696 3699//3699 3694//3695
+f 3696//3694 3700//3700 3695//3696
+f 3697//3697 3701//3701 3700//3700
+f 3698//3698 3702//3702 3697//3697
+f 3699//3699 3703//3703 3698//3698
+f 3700//3700 3704//3704 3699//3699
+f 3701//3701 3705//3705 3704//3704
+f 3702//3702 3706//3706 3701//3701
+f 3703//3703 3707//3707 3702//3702
+f 3704//3704 3708//3708 3703//3703
+f 3705//3705 3709//3709 3712//3710
+f 3706//3706 3710//3711 3709//3709
+f 3707//3707 3711//3712 3710//3711
+f 3708//3708 3712//3710 3711//3712
+f 3709//3709 3713//3713 3716//3714
+f 3710//3711 3714//3715 3713//3713
+f 3711//3712 3715//3716 3714//3715
+f 3712//3710 3716//3714 3715//3716
+f 3717//3717 3721//3718 3720//3719
+f 3718//3720 3722//3721 3717//3717
+f 3719//3722 3723//3723 3718//3720
+f 3720//3719 3724//3724 3719//3722
+f 3721//3718 3725//3725 3728//3726
+f 3722//3721 3726//3727 3725//3725
+f 3723//3723 3727//3728 3726//3727
+f 3724//3724 3728//3726 3727//3728
+f 3725//3725 3729//3729 3728//3726
+f 3726//3727 3730//3730 3729//3729
+f 3727//3728 3731//3731 3726//3727
+f 3728//3726 3732//3732 3731//3731
+f 3729//3729 3733//3733 3736//3734
+f 3730//3730 3734//3735 3733//3733
+f 3731//3731 3735//3736 3734//3735
+f 3732//3732 3736//3734 3735//3736
+f 3737//3737 3741//3738 3740//3739
+f 3738//3740 3742//3741 3737//3737
+f 3739//3742 3743//3743 3738//3740
+f 3740//3739 3744//3744 3739//3742
+f 3741//3738 3745//3745 3748//3746
+f 3742//3741 3746//3747 3745//3745
+f 3743//3743 3747//3748 3746//3747
+f 3744//3744 3748//3746 3747//3748
+f 3749//3749 3753//3750 3756//3751
+f 3750//3752 3754//3753 3753//3750
+f 3751//3754 3755//3755 3754//3753
+f 3752//3756 3756//3751 3755//3755
+f 3757//3757 3761//3758 3760//3759
+f 3758//3760 3762//3761 3757//3757
+f 3759//3762 3763//3763 3758//3760
+f 3760//3759 3764//3764 3759//3762
+f 3761//3758 3765//3765 3764//3764
+f 3762//3761 3766//3766 3765//3765
+f 3763//3763 3767//3767 3762//3761
+f 3764//3764 3768//3768 3767//3767
+f 3765//3765 3769//3769 3768//3768
+f 3766//3766 3770//3770 3769//3769
+f 3767//3767 3771//3771 3766//3766
+f 3768//3768 3772//3772 3771//3771
+f 3769//3769 3773//3773 3776//3774
+f 3770//3770 3774//3775 3769//3769
+f 3771//3771 3775//3776 3774//3775
+f 3772//3772 3776//3774 3771//3771
+f 3773//3773 3777//3777 3776//3774
+f 3774//3775 3778//3778 3777//3777
+f 3775//3776 3779//3779 3774//3775
+f 3776//3774 3780//3780 3779//3779
+f 3777//3777 3781//3781 3784//3782
+f 3778//3778 3782//3783 3781//3781
+f 3779//3779 3783//3784 3782//3783
+f 3780//3780 3784//3782 3783//3784
+f 3785//3785 3789//3786 3792//3787
+f 3786//3788 3790//3789 3789//3786
+f 3787//3790 3791//3791 3790//3789
+f 3788//3792 3792//3787 3791//3791
+f 3789//3786 3793//3793 3796//3794
+f 3790//3789 3794//3795 3793//3793
+f 3791//3791 3795//3796 3794//3795
+f 3792//3787 3796//3794 3795//3796
+f 3793//3793 3797//3797 3800//3798
+f 3794//3795 3798//3799 3797//3797
+f 3795//3796 3799//3800 3798//3799
+f 3796//3794 3800//3798 3799//3800
+f 3801//3801 3805//3802 3808//3803
+f 3802//3804 3806//3805 3805//3802
+f 3803//3806 3807//3807 3806//3805
+f 3804//3808 3808//3803 3807//3807
+f 3809//3809 3813//3810 3812//3811
+f 3810//3812 3814//3813 3809//3809
+f 3811//3814 3815//3815 3810//3812
+f 3812//3811 3816//3816 3811//3814
+f 3813//3810 3817//3817 3816//3816
+f 3814//3813 3818//3818 3813//3810
+f 3815//3815 3819//3819 3814//3813
+f 3816//3816 3820//3820 3815//3815
+f 3817//3817 3821//3821 3820//3820
+f 3818//3818 3822//3822 3817//3817
+f 3819//3819 3823//3823 3818//3818
+f 3820//3820 3824//3824 3819//3819
+f 3821//3821 3825//3825 3824//3824
+f 3822//3822 3826//3826 3821//3821
+f 3823//3823 3827//3827 3822//3822
+f 3824//3824 3828//3828 3823//3823
+f 3825//3825 3829//3829 3832//3830
+f 3826//3826 3830//3831 3829//3829
+f 3827//3827 3831//3832 3830//3831
+f 3828//3828 3832//3830 3831//3832
+f 3829//3829 3833//3833 3832//3830
+f 3830//3831 3834//3834 3829//3829
+f 3831//3832 3835//3835 3830//3831
+f 3832//3830 3836//3836 3831//3832
+f 3833//3833 3837//3837 3840//3838
+f 3834//3834 3838//3839 3837//3837
+f 3835//3835 3839//3840 3838//3839
+f 3836//3836 3840//3838 3839//3840
+f 3841//3841 3845//3842 3844//3843
+f 3842//3844 3846//3845 3845//3842
+f 3843//3846 3847//3847 3842//3844
+f 3844//3843 3848//3848 3847//3847
+f 3845//3842 3849//3849 3852//3850
+f 3846//3845 3850//3851 3845//3842
+f 3847//3847 3851//3852 3850//3851
+f 3848//3848 3852//3850 3847//3847
+f 3849//3849 3853//3853 3856//3854
+f 3850//3851 3854//3855 3853//3853
+f 3851//3852 3855//3856 3854//3855
+f 3852//3850 3856//3854 3855//3856
+f 3853//3853 3857//3857 3860//3858
+f 3854//3855 3858//3859 3857//3857
+f 3855//3856 3859//3860 3858//3859
+f 3856//3854 3860//3858 3859//3860
+f 3861//3861 3865//3862 3864//3863
+f 3862//3864 3866//3865 3865//3862
+f 3863//3866 3867//3867 3862//3864
+f 3864//3863 3868//3868 3867//3867
+f 3865//3862 3869//3869 3872//3870
+f 3866//3865 3870//3871 3869//3869
+f 3867//3867 3871//3872 3870//3871
+f 3868//3868 3872//3870 3871//3872
+f 3873//3873 3877//3874 3880//3875
+f 3874//3876 3878//3877 3877//3874
+f 3875//3878 3879//3879 3878//3877
+f 3876//3880 3880//3875 3879//3879
+f 5//2 8//8 4//3
+f 1//1 2//4 5//2
+f 7//7 6//5 2//4
+f 3//6 4//3 7//7
+f 8//8 5//2 12//10
+f 5//2 6//5 9//9
+f 6//5 7//7 10//11
+f 7//7 8//8 11//12
+f 12//10 9//9 16//14
+f 14//15 13//13 9//9
+f 10//11 11//12 14//15
+f 16//14 15//16 11//12
+f 17//17 20//20 16//14
+f 18//18 17//17 13//13
+f 19//19 18//18 14//15
+f 20//20 19//19 15//16
+f 21//21 24//24 20//20
+f 17//17 18//18 21//21
+f 23//23 22//22 18//18
+f 19//19 20//20 23//23
+f 25//25 28//28 24//24
+f 26//26 25//25 21//21
+f 27//27 26//26 22//22
+f 28//28 27//27 23//23
+f 28//28 25//25 32//30
+f 25//25 26//26 29//29
+f 26//26 27//27 30//31
+f 27//27 28//28 31//32
+f 32//30 29//29 36//34
+f 29//29 30//31 33//33
+f 30//31 31//32 34//35
+f 31//32 32//30 35//36
+f 41//38 44//44 40//39
+f 37//37 38//40 41//38
+f 43//43 42//41 38//40
+f 39//42 40//39 43//43
+f 44//44 41//38 48//46
+f 46//47 45//45 41//38
+f 42//41 43//43 46//47
+f 48//46 47//48 43//43
+f 48//46 45//45 52//50
+f 45//45 46//47 49//49
+f 46//47 47//48 50//51
+f 47//48 48//46 51//52
+f 53//53 56//56 52//50
+f 54//54 53//53 49//49
+f 55//55 54//54 50//51
+f 56//56 55//55 51//52
+f 56//56 53//53 60//58
+f 53//53 54//54 57//57
+f 54//54 55//55 58//59
+f 55//55 56//56 59//60
+f 60//58 57//57 64//62
+f 62//63 61//61 57//57
+f 58//59 59//60 62//63
+f 64//62 63//64 59//60
+f 64//62 61//61 68//66
+f 61//61 62//63 65//65
+f 62//63 63//64 66//67
+f 63//64 64//62 67//68
+f 73//70 76//76 72//71
+f 74//73 73//70 69//69
+f 75//75 74//73 70//72
+f 76//76 75//75 71//74
+f 76//76 73//70 80//78
+f 73//70 74//73 77//77
+f 74//73 75//75 78//79
+f 75//75 76//76 79//80
+f 81//81 84//84 80//78
+f 82//82 81//81 77//77
+f 83//83 82//82 78//79
+f 84//84 83//83 79//80
+f 84//84 81//81 88//86
+f 81//81 82//82 85//85
+f 82//82 83//83 86//87
+f 83//83 84//84 87//88
+f 89//89 92//92 88//86
+f 85//85 86//87 89//89
+f 91//91 90//90 86//87
+f 87//88 88//86 91//91
+f 92//92 89//89 96//94
+f 94//95 93//93 89//89
+f 90//90 91//91 94//95
+f 96//94 95//96 91//91
+f 96//94 93//93 100//98
+f 93//93 94//95 97//97
+f 94//95 95//96 98//99
+f 95//96 96//94 99//100
+f 104//108 101//101 108//103
+f 101//101 102//104 105//102
+f 102//104 103//106 106//105
+f 103//106 104//108 107//107
+f 109//109 112//112 108//103
+f 110//110 109//109 105//102
+f 111//111 110//110 106//105
+f 112//112 111//111 107//107
+f 113//113 116//116 112//112
+f 114//114 113//113 109//109
+f 115//115 114//114 110//110
+f 116//116 115//115 111//111
+f 116//116 113//113 120//118
+f 113//113 114//114 117//117
+f 114//114 115//115 118//119
+f 115//115 116//116 119//120
+f 121//121 124//124 120//118
+f 117//117 118//119 121//121
+f 123//123 122//122 118//119
+f 119//120 120//118 123//123
+f 124//124 121//121 128//126
+f 121//121 122//122 125//125
+f 122//122 123//123 126//127
+f 123//123 124//124 127//128
+f 132//136 129//129 136//131
+f 129//129 130//132 133//130
+f 130//132 131//134 134//133
+f 131//134 132//136 135//135
+f 137//137 140//140 136//131
+f 138//138 137//137 133//130
+f 139//139 138//138 134//133
+f 140//140 139//139 135//135
+f 141//141 144//144 140//140
+f 137//137 138//138 141//141
+f 143//143 142//142 138//138
+f 139//139 140//140 143//143
+f 144//144 141//141 148//146
+f 146//147 145//145 141//141
+f 142//142 143//143 146//147
+f 148//146 147//148 143//143
+f 148//146 145//145 152//150
+f 145//145 146//147 149//149
+f 146//147 147//148 150//151
+f 147//148 148//146 151//152
+f 156//160 153//153 160//155
+f 158//157 157//154 153//153
+f 154//156 155//158 158//157
+f 160//155 159//159 155//158
+f 161//161 164//164 160//155
+f 157//154 158//157 161//161
+f 163//163 162//162 158//157
+f 159//159 160//155 163//163
+f 164//164 161//161 168//166
+f 161//161 162//162 165//165
+f 162//162 163//163 166//167
+f 163//163 164//164 167//168
+f 168//166 165//165 172//170
+f 170//171 169//169 165//165
+f 166//167 167//168 170//171
+f 172//170 171//172 167//168
+f 172//170 169//169 176//174
+f 169//169 170//171 173//173
+f 170//171 171//172 174//175
+f 171//172 172//170 175//176
+f 180//184 177//177 184//179
+f 177//177 178//180 181//178
+f 178//180 179//182 182//181
+f 179//182 180//184 183//183
+f 184//179 181//178 188//186
+f 181//178 182//181 185//185
+f 182//181 183//183 186//187
+f 183//183 184//179 187//188
+f 189//189 192//192 188//186
+f 190//190 189//189 185//185
+f 191//191 190//190 186//187
+f 192//192 191//191 187//188
+f 192//192 189//189 196//194
+f 189//189 190//190 193//193
+f 190//190 191//191 194//195
+f 191//191 192//192 195//196
+f 201//198 204//204 200//199
+f 197//197 198//200 201//198
+f 203//203 202//201 198//200
+f 199//202 200//199 203//203
+f 204//204 201//198 208//206
+f 206//207 205//205 201//198
+f 202//201 203//203 206//207
+f 208//206 207//208 203//203
+f 209//209 212//212 208//206
+f 210//210 209//209 205//205
+f 211//211 210//210 206//207
+f 212//212 211//211 207//208
+f 212//212 209//209 216//214
+f 209//209 210//210 213//213
+f 210//210 211//211 214//215
+f 211//211 212//212 215//216
+f 220//224 217//217 224//219
+f 222//221 221//218 217//217
+f 218//220 219//222 222//221
+f 224//219 223//223 219//222
+f 225//225 228//228 224//219
+f 221//218 222//221 225//225
+f 227//227 226//226 222//221
+f 223//223 224//219 227//227
+f 228//228 225//225 232//230
+f 225//225 226//226 229//229
+f 226//226 227//227 230//231
+f 227//227 228//228 231//232
+f 236//240 233//233 240//235
+f 238//237 237//234 233//233
+f 234//236 235//238 238//237
+f 240//235 239//239 235//238
+f 241//241 244//244 240//235
+f 237//234 238//237 241//241
+f 243//243 242//242 238//237
+f 239//239 240//235 243//243
+f 244//244 241//241 248//246
+f 241//241 242//242 245//245
+f 242//242 243//243 246//247
+f 243//243 244//244 247//248
+f 253//250 256//256 252//251
+f 254//253 253//250 249//249
+f 255//255 254//253 250//252
+f 256//256 255//255 251//254
+f 256//256 253//250 260//258
+f 258//259 257//257 253//250
+f 254//253 255//255 258//259
+f 260//258 259//260 255//255
+f 260//258 257//257 264//262
+f 257//257 258//259 261//261
+f 258//259 259//260 262//263
+f 259//260 260//258 263//264
+f 269//266 272//272 268//267
+f 270//269 269//266 265//265
+f 271//271 270//269 266//268
+f 272//272 271//271 267//270
+f 272//272 269//266 276//274
+f 269//266 270//269 273//273
+f 270//269 271//271 274//275
+f 271//271 272//272 275//276
+f 280//284 277//277 284//279
+f 277//277 278//280 281//278
+f 278//280 279//282 282//281
+f 279//282 280//284 283//283
+f 284//279 281//278 288//286
+f 281//278 282//281 285//285
+f 282//281 283//283 286//287
+f 283//283 284//279 287//288
+f 293//290 296//296 292//291
+f 294//293 293//290 289//289
+f 295//295 294//293 290//292
+f 296//296 295//295 291//294
+f 296//296 293//290 300//298
+f 293//290 294//293 297//297
+f 294//293 295//295 298//299
+f 295//295 296//296 299//300
+f 304//308 301//301 308//303
+f 301//301 302//304 305//302
+f 302//304 303//306 306//305
+f 303//306 304//308 307//307
+f 308//303 305//302 312//310
+f 305//302 306//305 309//309
+f 306//305 307//307 310//311
+f 307//307 308//303 311//312
+f 317//314 320//320 316//315
+f 318//317 317//314 313//313
+f 319//319 318//317 314//316
+f 320//320 319//319 315//318
+f 320//320 317//314 324//322
+f 317//314 318//317 321//321
+f 318//317 319//319 322//323
+f 319//319 320//320 323//324
+f 328//332 325//325 332//327
+f 325//325 326//328 329//326
+f 326//328 327//330 330//329
+f 327//330 328//332 331//331
+f 336//340 333//333 340//335
+f 333//333 334//336 337//334
+f 334//336 335//338 338//337
+f 335//338 336//340 339//339
+f 344//348 341//341 348//343
+f 341//341 342//344 345//342
+f 342//344 343//346 346//345
+f 343//346 344//348 347//347
+f 352//356 349//349 356//351
+f 349//349 350//352 353//350
+f 350//352 351//354 354//353
+f 351//354 352//356 355//355
+f 360//364 357//357 364//359
+f 357//357 358//360 361//358
+f 358//360 359//362 362//361
+f 359//362 360//364 363//363
+f 368//372 365//365 372//367
+f 365//365 366//368 369//366
+f 366//368 367//370 370//369
+f 367//370 368//372 371//371
+f 376//380 373//373 380//375
+f 373//373 374//376 377//374
+f 374//376 375//378 378//377
+f 375//378 376//380 379//379
+f 380//375 377//374 384//382
+f 377//374 378//377 381//381
+f 378//377 379//379 382//383
+f 379//379 380//375 383//384
+f 384//382 381//381 388//386
+f 386//387 385//385 381//381
+f 382//383 383//384 386//387
+f 388//386 387//388 383//384
+f 389//389 392//392 388//386
+f 390//390 389//389 385//385
+f 391//391 390//390 386//387
+f 392//392 391//391 387//388
+f 392//392 389//389 396//394
+f 394//395 393//393 389//389
+f 390//390 391//391 394//395
+f 396//394 395//396 391//391
+f 397//397 400//400 396//394
+f 393//393 394//395 397//397
+f 399//399 398//398 394//395
+f 395//396 396//394 399//399
+f 400//400 397//397 404//402
+f 397//397 398//398 401//401
+f 398//398 399//399 402//403
+f 399//399 400//400 403//404
+f 405//405 408//408 404//402
+f 406//406 405//405 401//401
+f 407//407 406//406 402//403
+f 408//408 407//407 403//404
+f 408//408 405//405 412//410
+f 405//405 406//406 409//409
+f 406//406 407//407 410//411
+f 407//407 408//408 411//412
+f 412//410 409//409 416//414
+f 409//409 410//411 413//413
+f 410//411 411//412 414//415
+f 411//412 412//410 415//416
+f 421//418 424//424 420//419
+f 422//421 421//418 417//417
+f 423//423 422//421 418//420
+f 424//424 423//423 419//422
+f 424//424 421//418 428//426
+f 421//418 422//421 425//425
+f 422//421 423//423 426//427
+f 423//423 424//424 427//428
+f 429//429 432//432 428//426
+f 430//430 429//429 425//425
+f 431//431 430//430 426//427
+f 432//432 431//431 427//428
+f 432//432 429//429 436//434
+f 434//435 433//433 429//429
+f 430//430 431//431 434//435
+f 436//434 435//436 431//431
+f 437//437 440//440 436//434
+f 433//433 434//435 437//437
+f 439//439 438//438 434//435
+f 435//436 436//434 439//439
+f 440//440 437//437 444//442
+f 437//437 438//438 441//441
+f 438//438 439//439 442//443
+f 439//439 440//440 443//444
+f 445//445 448//448 444//442
+f 441//441 442//443 445//445
+f 447//447 446//446 442//443
+f 443//444 444//442 447//447
+f 448//448 445//445 452//450
+f 450//451 449//449 445//445
+f 446//446 447//447 450//451
+f 452//450 451//452 447//447
+f 452//450 449//449 456//454
+f 449//449 450//451 453//453
+f 450//451 451//452 454//455
+f 451//452 452//450 455//456
+f 456//454 453//453 460//458
+f 453//453 454//455 457//457
+f 454//455 455//456 458//459
+f 455//456 456//454 459//460
+f 465//462 468//468 464//463
+f 461//461 462//464 465//462
+f 467//467 466//465 462//464
+f 463//466 464//463 467//467
+f 469//469 472//472 468//468
+f 465//462 466//465 469//469
+f 471//471 470//470 466//465
+f 467//467 468//468 471//471
+f 473//473 476//476 472//472
+f 474//474 473//473 469//469
+f 475//475 474//474 470//470
+f 476//476 475//475 471//471
+f 476//476 473//473 480//478
+f 478//479 477//477 473//473
+f 474//474 475//475 478//479
+f 480//478 479//480 475//475
+f 480//478 477//477 484//482
+f 477//477 478//479 481//481
+f 478//479 479//480 482//483
+f 479//480 480//478 483//484
+f 484//482 481//481 488//486
+f 486//487 485//485 481//481
+f 482//483 483//484 486//487
+f 488//486 487//488 483//484
+f 489//489 492//492 488//486
+f 485//485 486//487 489//489
+f 491//491 490//490 486//487
+f 487//488 488//486 491//491
+f 493//493 496//496 492//492
+f 494//494 493//493 489//489
+f 495//495 494//494 490//490
+f 496//496 495//495 491//491
+f 496//496 493//493 500//498
+f 493//493 494//494 497//497
+f 494//494 495//495 498//499
+f 495//495 496//496 499//500
+f 500//498 497//497 504//502
+f 497//497 498//499 501//501
+f 498//499 499//500 502//503
+f 499//500 500//498 503//504
+f 509//506 512//512 508//507
+f 505//505 506//508 509//506
+f 511//511 510//509 506//508
+f 507//510 508//507 511//511
+f 512//512 509//506 516//514
+f 509//506 510//509 513//513
+f 510//509 511//511 514//515
+f 511//511 512//512 515//516
+f 516//514 513//513 520//518
+f 513//513 514//515 517//517
+f 514//515 515//516 518//519
+f 515//516 516//514 519//520
+f 521//521 524//524 520//518
+f 517//517 518//519 521//521
+f 523//523 522//522 518//519
+f 524//524 523//523 519//520
+f 524//524 521//521 528//526
+f 526//527 525//525 521//521
+f 522//522 523//523 526//527
+f 528//526 527//528 523//523
+f 528//526 525//525 532//530
+f 525//525 526//527 529//529
+f 526//527 527//528 530//531
+f 527//528 528//526 531//532
+f 532//530 529//529 536//534
+f 529//529 530//531 533//533
+f 530//531 531//532 534//535
+f 531//532 532//530 535//536
+f 537//537 540//540 536//534
+f 538//538 537//537 533//533
+f 539//539 538//538 534//535
+f 540//540 539//539 535//536
+f 541//541 544//544 540//540
+f 542//542 541//541 537//537
+f 543//543 542//542 538//538
+f 544//544 543//543 539//539
+f 544//544 541//541 548//546
+f 541//541 542//542 545//545
+f 542//542 543//543 546//547
+f 543//543 544//544 547//548
+f 552//556 549//549 556//551
+f 549//549 550//552 553//550
+f 550//552 551//554 554//553
+f 551//554 552//556 555//555
+f 557//557 560//560 556//551
+f 558//558 557//557 553//550
+f 559//559 558//558 554//553
+f 560//560 559//559 555//555
+f 560//560 557//557 564//562
+f 562//563 561//561 557//557
+f 558//558 559//559 562//563
+f 564//562 563//564 559//559
+f 565//565 568//568 564//562
+f 561//561 562//563 565//565
+f 567//567 566//566 562//563
+f 563//564 564//562 567//567
+f 569//569 572//572 568//568
+f 570//570 569//569 565//565
+f 571//571 570//570 566//566
+f 572//572 571//571 567//567
+f 573//573 576//576 572//572
+f 569//569 570//570 573//573
+f 575//575 574//574 570//570
+f 571//571 572//572 575//575
+f 576//576 573//573 580//578
+f 578//579 577//577 573//573
+f 574//574 575//575 578//579
+f 580//578 579//580 575//575
+f 581//581 584//584 580//578
+f 582//582 581//581 577//577
+f 583//583 582//582 578//579
+f 584//584 583//583 579//580
+f 585//585 588//588 584//584
+f 586//586 585//585 581//581
+f 587//587 586//586 582//582
+f 588//588 587//587 583//583
+f 588//588 585//585 592//590
+f 585//585 586//586 589//589
+f 586//586 587//587 590//591
+f 587//587 588//588 591//592
+f 597//594 600//600 596//595
+f 593//593 594//596 597//594
+f 599//599 598//597 594//596
+f 595//598 596//595 599//599
+f 600//600 597//594 604//602
+f 602//603 601//601 597//594
+f 598//597 599//599 602//603
+f 604//602 603//604 599//599
+f 605//605 608//608 604//602
+f 601//601 602//603 605//605
+f 607//607 606//606 602//603
+f 603//604 604//602 607//607
+f 609//609 612//612 608//608
+f 610//610 609//609 605//605
+f 611//611 610//610 606//606
+f 612//612 611//611 607//607
+f 612//612 609//609 616//614
+f 609//609 610//610 613//613
+f 610//610 611//611 614//615
+f 611//611 612//612 615//616
+f 616//614 613//613 620//618
+f 618//619 617//617 613//613
+f 614//615 615//616 618//619
+f 620//618 619//620 615//616
+f 620//618 617//617 624//622
+f 617//617 618//619 621//621
+f 618//619 619//620 622//623
+f 619//620 620//618 623//624
+f 625//625 628//628 624//622
+f 626//626 625//625 621//621
+f 627//627 626//626 622//623
+f 628//628 627//627 623//624
+f 628//628 625//625 632//630
+f 630//631 629//629 625//625
+f 626//626 627//627 630//631
+f 632//630 631//632 627//627
+f 632//630 629//629 636//634
+f 629//629 630//631 633//633
+f 630//631 631//632 634//635
+f 631//632 632//630 635//636
+f 641//638 644//644 640//639
+f 637//637 638//640 641//638
+f 643//643 642//641 638//640
+f 639//642 640//639 643//643
+f 644//644 641//638 648//646
+f 646//647 645//645 641//638
+f 642//641 643//643 646//647
+f 648//646 647//648 643//643
+f 649//649 652//652 648//646
+f 650//650 649//649 645//645
+f 651//651 650//650 646//647
+f 652//652 651//651 647//648
+f 652//652 649//649 656//654
+f 649//649 650//650 653//653
+f 650//650 651//651 654//655
+f 651//651 652//652 655//656
+f 656//654 653//653 660//658
+f 653//653 654//655 657//657
+f 654//655 655//656 658//659
+f 655//656 656//654 659//660
+f 660//658 657//657 664//662
+f 662//663 661//661 657//657
+f 658//659 659//660 662//663
+f 659//660 660//658 663//664
+f 665//665 668//668 664//662
+f 666//666 665//665 661//661
+f 667//667 666//666 662//663
+f 668//668 667//667 663//664
+f 669//669 672//672 668//668
+f 665//665 666//666 669//669
+f 671//671 670//670 666//666
+f 667//667 668//668 671//671
+f 672//672 669//669 676//674
+f 669//669 670//670 673//673
+f 670//670 671//671 674//675
+f 671//671 672//672 675//676
+f 676//674 673//673 680//678
+f 673//673 674//675 677//677
+f 674//675 675//676 678//679
+f 675//676 676//674 679//680
+f 685//682 688//688 684//683
+f 686//685 685//682 681//681
+f 687//687 686//685 682//684
+f 688//688 687//687 683//686
+f 688//688 685//682 692//690
+f 685//682 686//685 689//689
+f 686//685 687//687 690//691
+f 687//687 688//688 691//692
+f 692//690 689//689 696//694
+f 689//689 690//691 693//693
+f 690//691 691//692 694//695
+f 691//692 692//690 695//696
+f 696//694 693//693 700//698
+f 698//699 697//697 693//693
+f 694//695 695//696 698//699
+f 700//698 699//700 695//696
+f 701//701 704//704 700//698
+f 697//697 698//699 701//701
+f 703//703 702//702 698//699
+f 699//700 700//698 703//703
+f 705//705 708//708 704//704
+f 706//706 705//705 701//701
+f 707//707 706//706 702//702
+f 708//708 707//707 703//703
+f 708//708 705//705 712//710
+f 705//705 706//706 709//709
+f 706//706 707//707 710//711
+f 707//707 708//708 711//712
+f 713//713 716//716 712//710
+f 709//709 710//711 713//713
+f 715//715 714//714 710//711
+f 711//712 712//710 715//715
+f 716//716 713//713 720//718
+f 718//719 717//717 713//713
+f 714//714 715//715 718//719
+f 720//718 719//720 715//715
+f 720//718 717//717 724//722
+f 717//717 718//719 721//721
+f 718//719 719//720 722//723
+f 719//720 720//718 723//724
+f 728//732 725//725 732//727
+f 725//725 726//728 729//726
+f 726//728 727//730 730//729
+f 727//730 728//732 731//731
+f 732//727 729//726 736//734
+f 729//726 730//729 733//733
+f 730//729 731//731 734//735
+f 731//731 732//727 735//736
+f 737//737 740//740 736//734
+f 733//733 734//735 737//737
+f 739//739 738//738 734//735
+f 735//736 736//734 739//739
+f 740//740 737//737 744//742
+f 742//743 741//741 737//737
+f 738//738 739//739 742//743
+f 744//742 743//744 739//739
+f 744//742 741//741 748//746
+f 746//747 745//745 741//741
+f 747//748 746//747 742//743
+f 748//746 747//748 743//744
+f 749//749 752//752 748//746
+f 745//745 746//747 749//749
+f 751//751 750//750 746//747
+f 747//748 748//746 751//751
+f 753//753 756//756 752//752
+f 749//749 750//750 753//753
+f 755//755 754//754 750//750
+f 751//751 752//752 755//755
+f 756//756 753//753 760//758
+f 758//759 757//757 753//753
+f 754//754 755//755 758//759
+f 760//758 759//760 755//755
+f 761//761 764//764 760//758
+f 757//757 758//759 761//761
+f 763//763 762//762 758//759
+f 759//760 760//758 763//763
+f 764//764 761//761 768//766
+f 761//761 762//762 765//765
+f 762//762 763//763 766//767
+f 763//763 764//764 767//768
+f 773//770 776//776 772//771
+f 769//769 770//772 773//770
+f 775//775 774//773 770//772
+f 771//774 772//771 775//775
+f 776//776 773//770 780//778
+f 778//779 777//777 773//770
+f 774//773 775//775 778//779
+f 780//778 779//780 775//775
+f 781//781 784//784 780//778
+f 777//777 778//779 781//781
+f 783//783 782//782 778//779
+f 779//780 780//778 783//783
+f 785//785 788//788 784//784
+f 786//786 785//785 781//781
+f 787//787 786//786 782//782
+f 788//788 787//787 783//783
+f 788//788 785//785 792//790
+f 785//785 786//786 789//789
+f 786//786 787//787 790//791
+f 787//787 788//788 791//792
+f 792//790 789//789 796//794
+f 794//795 793//793 789//789
+f 790//791 791//792 794//795
+f 796//794 795//796 791//792
+f 797//797 800//800 796//794
+f 798//798 797//797 793//793
+f 799//799 798//798 794//795
+f 800//800 799//799 795//796
+f 800//800 797//797 804//802
+f 797//797 798//798 801//801
+f 798//798 799//799 802//803
+f 799//799 800//800 803//804
+f 805//805 808//808 804//802
+f 806//806 805//805 801//801
+f 807//807 806//806 802//803
+f 808//808 807//807 803//804
+f 808//808 805//805 812//810
+f 805//805 806//806 809//809
+f 806//806 807//807 810//811
+f 807//807 808//808 811//812
+f 817//814 820//820 816//815
+f 818//817 817//814 813//813
+f 819//819 818//817 814//816
+f 815//818 816//815 819//819
+f 820//820 817//814 824//822
+f 817//814 818//817 821//821
+f 818//817 819//819 822//823
+f 819//819 820//820 823//824
+f 825//825 828//828 824//822
+f 821//821 822//823 825//825
+f 827//827 826//826 822//823
+f 823//824 824//822 827//827
+f 828//828 825//825 832//830
+f 830//831 829//829 825//825
+f 826//826 827//827 830//831
+f 832//830 831//832 827//827
+f 832//830 829//829 836//834
+f 829//829 830//831 833//833
+f 830//831 831//832 834//835
+f 831//832 832//830 835//836
+f 836//834 833//833 840//838
+f 838//839 837//837 833//833
+f 834//835 835//836 838//839
+f 840//838 839//840 835//836
+f 841//841 844//844 840//838
+f 837//837 838//839 841//841
+f 843//843 842//842 838//839
+f 839//840 840//838 843//843
+f 845//845 848//848 844//844
+f 841//841 842//842 845//845
+f 847//847 846//846 842//842
+f 843//843 844//844 847//847
+f 848//848 845//845 852//850
+f 850//851 849//849 845//845
+f 846//846 847//847 850//851
+f 852//850 851//852 847//847
+f 852//850 849//849 856//854
+f 849//849 850//851 853//853
+f 850//851 851//852 854//855
+f 851//852 852//850 855//856
+f 860//864 857//857 864//859
+f 862//861 861//858 857//857
+f 858//860 859//862 862//861
+f 864//859 863//863 859//862
+f 865//865 868//868 864//859
+f 861//858 862//861 865//865
+f 867//867 866//866 862//861
+f 863//863 864//859 867//867
+f 869//869 872//872 868//868
+f 865//865 866//866 869//869
+f 871//871 870//870 866//866
+f 867//867 868//868 871//871
+f 873//873 876//876 872//872
+f 869//869 870//870 873//873
+f 875//875 874//874 870//870
+f 871//871 872//872 875//875
+f 877//877 880//880 876//876
+f 873//873 874//874 877//877
+f 879//879 878//878 874//874
+f 875//875 876//876 879//879
+f 880//880 877//877 884//882
+f 877//877 878//878 881//881
+f 878//878 879//879 882//883
+f 879//879 880//880 883//884
+f 884//882 881//881 888//886
+f 886//887 885//885 881//881
+f 882//883 883//884 886//887
+f 888//886 887//888 883//884
+f 889//889 892//892 888//886
+f 885//885 886//887 889//889
+f 891//891 890//890 886//887
+f 887//888 888//886 891//891
+f 892//892 889//889 896//894
+f 889//889 890//890 893//893
+f 890//890 891//891 894//895
+f 891//891 892//892 895//896
+f 896//894 893//893 900//898
+f 893//893 894//895 897//897
+f 894//895 895//896 898//899
+f 895//896 896//894 899//900
+f 904//908 901//901 908//903
+f 901//901 902//904 905//902
+f 902//904 903//906 906//905
+f 903//906 904//908 907//907
+f 908//903 905//902 912//910
+f 905//902 906//905 909//909
+f 906//905 907//907 910//911
+f 907//907 908//903 911//912
+f 913//913 916//916 912//910
+f 914//914 913//913 909//909
+f 915//915 914//914 910//911
+f 916//916 915//915 911//912
+f 916//916 913//913 920//918
+f 918//919 917//917 913//913
+f 914//914 915//915 918//919
+f 920//918 919//920 915//915
+f 921//921 924//924 920//918
+f 922//922 921//921 917//917
+f 923//923 922//922 918//919
+f 924//924 923//923 919//920
+f 924//924 921//921 928//926
+f 926//927 925//925 921//921
+f 922//922 923//923 926//927
+f 928//926 927//928 923//923
+f 929//929 932//932 928//926
+f 925//925 926//927 929//929
+f 931//931 930//930 926//927
+f 927//928 928//926 931//931
+f 933//933 936//936 932//932
+f 929//929 930//930 933//933
+f 935//935 934//934 930//930
+f 931//931 932//932 935//935
+f 936//936 933//933 940//938
+f 933//933 934//934 937//937
+f 934//934 935//935 938//939
+f 935//935 936//936 939//940
+f 940//938 937//937 944//942
+f 937//937 938//939 941//941
+f 938//939 939//940 942//943
+f 939//940 940//938 943//944
+f 949//946 952//952 948//947
+f 945//945 946//948 949//946
+f 951//951 950//949 946//948
+f 947//950 948//947 951//951
+f 952//952 949//946 956//954
+f 949//946 950//949 953//953
+f 950//949 951//951 954//955
+f 951//951 952//952 955//956
+f 957//957 960//960 956//954
+f 958//958 957//957 953//953
+f 959//959 958//958 954//955
+f 960//960 959//959 955//956
+f 960//960 957//957 964//962
+f 962//963 961//961 957//957
+f 958//958 959//959 962//963
+f 964//962 963//964 959//959
+f 964//962 961//961 968//966
+f 966//967 965//965 961//961
+f 962//963 963//964 966//967
+f 968//966 967//968 963//964
+f 969//969 972//972 968//966
+f 970//970 969//969 965//965
+f 971//971 970//970 966//967
+f 972//972 971//971 967//968
+f 972//972 969//969 976//974
+f 969//969 970//970 973//973
+f 970//970 971//971 974//975
+f 971//971 972//972 975//976
+f 976//974 973//973 980//978
+f 978//979 977//977 973//973
+f 974//975 975//976 978//979
+f 980//978 979//980 975//976
+f 981//981 984//984 980//978
+f 977//977 978//979 981//981
+f 983//983 982//982 978//979
+f 979//980 980//978 983//983
+f 984//984 981//981 988//986
+f 981//981 982//982 985//985
+f 982//982 983//983 986//987
+f 983//983 984//984 987//988
+f 993//990 996//996 992//991
+f 994//993 993//990 989//989
+f 995//995 994//993 990//992
+f 996//996 995//995 991//994
+f 997//997 1000//1000 996//996
+f 998//998 997//997 993//990
+f 999//999 998//998 994//993
+f 1000//1000 999//999 995//995
+f 1000//1000 997//997 1004//1002
+f 1002//1003 1001//1001 997//997
+f 998//998 999//999 1002//1003
+f 1004//1002 1003//1004 999//999
+f 1005//1005 1008//1008 1004//1002
+f 1001//1001 1002//1003 1005//1005
+f 1007//1007 1006//1006 1002//1003
+f 1003//1004 1004//1002 1007//1007
+f 1008//1008 1005//1005 1012//1010
+f 1005//1005 1006//1006 1009//1009
+f 1006//1006 1007//1007 1010//1011
+f 1007//1007 1008//1008 1011//1012
+f 1012//1010 1009//1009 1016//1014
+f 1009//1009 1010//1011 1013//1013
+f 1010//1011 1011//1012 1014//1015
+f 1011//1012 1012//1010 1015//1016
+f 1017//1017 1020//1020 1016//1014
+f 1013//1013 1014//1015 1017//1017
+f 1019//1019 1018//1018 1014//1015
+f 1015//1016 1016//1014 1019//1019
+f 1020//1020 1017//1017 1024//1022
+f 1017//1017 1018//1018 1021//1021
+f 1018//1018 1019//1019 1022//1023
+f 1019//1019 1020//1020 1023//1024
+f 1024//1022 1021//1021 1028//1026
+f 1021//1021 1022//1023 1025//1025
+f 1022//1023 1023//1024 1026//1027
+f 1023//1024 1024//1022 1027//1028
+f 1028//1026 1025//1025 1032//1030
+f 1025//1025 1026//1027 1029//1029
+f 1026//1027 1027//1028 1030//1031
+f 1027//1028 1028//1026 1031//1032
+f 1036//1040 1033//1033 1040//1035
+f 1038//1037 1037//1034 1033//1033
+f 1034//1036 1035//1038 1038//1037
+f 1040//1035 1039//1039 1035//1038
+f 1040//1035 1037//1034 1044//1042
+f 1042//1043 1041//1041 1037//1034
+f 1038//1037 1039//1039 1042//1043
+f 1044//1042 1043//1044 1039//1039
+f 1045//1045 1048//1048 1044//1042
+f 1041//1041 1042//1043 1045//1045
+f 1047//1047 1046//1046 1042//1043
+f 1043//1044 1044//1042 1047//1047
+f 1048//1048 1045//1045 1052//1050
+f 1045//1045 1046//1046 1049//1049
+f 1046//1046 1047//1047 1050//1051
+f 1047//1047 1048//1048 1051//1052
+f 1053//1053 1056//1056 1052//1050
+f 1049//1049 1050//1051 1053//1053
+f 1055//1055 1054//1054 1050//1051
+f 1051//1052 1052//1050 1055//1055
+f 1057//1057 1060//1060 1056//1056
+f 1053//1053 1054//1054 1057//1057
+f 1059//1059 1058//1058 1054//1054
+f 1055//1055 1056//1056 1059//1059
+f 1060//1060 1057//1057 1064//1062
+f 1062//1063 1061//1061 1057//1057
+f 1058//1058 1059//1059 1062//1063
+f 1064//1062 1063//1064 1059//1059
+f 1065//1065 1068//1068 1064//1062
+f 1066//1066 1065//1065 1061//1061
+f 1067//1067 1066//1066 1062//1063
+f 1068//1068 1067//1067 1063//1064
+f 1068//1068 1065//1065 1072//1070
+f 1065//1065 1066//1066 1069//1069
+f 1066//1066 1067//1067 1070//1071
+f 1067//1067 1068//1068 1071//1072
+f 1072//1070 1069//1069 1076//1074
+f 1069//1069 1070//1071 1073//1073
+f 1070//1071 1071//1072 1074//1075
+f 1071//1072 1072//1070 1075//1076
+f 1081//1078 1084//1084 1080//1079
+f 1082//1081 1081//1078 1077//1077
+f 1083//1083 1082//1081 1078//1080
+f 1084//1084 1083//1083 1079//1082
+f 1084//1084 1081//1078 1088//1086
+f 1081//1078 1082//1081 1085//1085
+f 1082//1081 1083//1083 1086//1087
+f 1083//1083 1084//1084 1087//1088
+f 1089//1089 1092//1092 1088//1086
+f 1085//1085 1086//1087 1089//1089
+f 1091//1091 1090//1090 1086//1087
+f 1087//1088 1088//1086 1091//1091
+f 1092//1092 1089//1089 1096//1094
+f 1094//1095 1093//1093 1089//1089
+f 1090//1090 1091//1091 1094//1095
+f 1096//1094 1095//1096 1091//1091
+f 1097//1097 1100//1100 1096//1094
+f 1093//1093 1094//1095 1097//1097
+f 1099//1099 1098//1098 1094//1095
+f 1095//1096 1096//1094 1099//1099
+f 1101//1101 1104//1104 1100//1100
+f 1102//1102 1101//1101 1097//1097
+f 1103//1103 1102//1102 1098//1098
+f 1104//1104 1103//1103 1099//1099
+f 1104//1104 1101//1101 1108//1106
+f 1106//1107 1105//1105 1101//1101
+f 1102//1102 1103//1103 1106//1107
+f 1108//1106 1107//1108 1103//1103
+f 1109//1109 1112//1112 1108//1106
+f 1110//1110 1109//1109 1105//1105
+f 1111//1111 1110//1110 1106//1107
+f 1112//1112 1111//1111 1107//1108
+f 1113//1113 1116//1116 1112//1112
+f 1109//1109 1110//1110 1113//1113
+f 1115//1115 1114//1114 1110//1110
+f 1111//1111 1112//1112 1115//1115
+f 1116//1116 1113//1113 1120//1118
+f 1113//1113 1114//1114 1117//1117
+f 1114//1114 1115//1115 1118//1119
+f 1115//1115 1116//1116 1119//1120
+f 1124//1128 1121//1121 1128//1123
+f 1121//1121 1122//1124 1125//1122
+f 1122//1124 1123//1126 1126//1125
+f 1123//1126 1124//1128 1127//1127
+f 1128//1123 1125//1122 1132//1130
+f 1125//1122 1126//1125 1129//1129
+f 1126//1125 1127//1127 1130//1131
+f 1127//1127 1128//1123 1131//1132
+f 1133//1133 1136//1136 1132//1130
+f 1134//1134 1133//1133 1129//1129
+f 1135//1135 1134//1134 1130//1131
+f 1136//1136 1135//1135 1131//1132
+f 1137//1137 1140//1140 1136//1136
+f 1133//1133 1134//1134 1137//1137
+f 1139//1139 1138//1138 1134//1134
+f 1135//1135 1136//1136 1139//1139
+f 1140//1140 1137//1137 1144//1142
+f 1142//1143 1141//1141 1137//1137
+f 1138//1138 1139//1139 1142//1143
+f 1144//1142 1143//1144 1139//1139
+f 1145//1145 1148//1148 1144//1142
+f 1141//1141 1142//1143 1145//1145
+f 1147//1147 1146//1146 1142//1143
+f 1143//1144 1144//1142 1147//1147
+f 1149//1149 1152//1152 1148//1148
+f 1145//1145 1146//1146 1149//1149
+f 1151//1151 1150//1150 1146//1146
+f 1147//1147 1148//1148 1151//1151
+f 1153//1153 1156//1156 1152//1152
+f 1149//1149 1150//1150 1153//1153
+f 1155//1155 1154//1154 1150//1150
+f 1151//1151 1152//1152 1155//1155
+f 1156//1156 1153//1153 1160//1158
+f 1158//1159 1157//1157 1153//1153
+f 1154//1154 1155//1155 1158//1159
+f 1160//1158 1159//1160 1155//1155
+f 1160//1158 1157//1157 1164//1162
+f 1157//1157 1158//1159 1161//1161
+f 1158//1159 1159//1160 1162//1163
+f 1159//1160 1160//1158 1163//1164
+f 1168//1172 1165//1165 1172//1167
+f 1170//1169 1169//1166 1165//1165
+f 1166//1168 1167//1170 1170//1169
+f 1172//1167 1171//1171 1167//1170
+f 1173//1173 1176//1176 1172//1167
+f 1169//1166 1170//1169 1173//1173
+f 1175//1175 1174//1174 1170//1169
+f 1171//1171 1172//1167 1175//1175
+f 1177//1177 1180//1180 1176//1176
+f 1178//1178 1177//1177 1173//1173
+f 1179//1179 1178//1178 1174//1174
+f 1180//1180 1179//1179 1175//1175
+f 1181//1181 1184//1184 1180//1180
+f 1177//1177 1178//1178 1181//1181
+f 1183//1183 1182//1182 1178//1178
+f 1179//1179 1180//1180 1183//1183
+f 1184//1184 1181//1181 1188//1186
+f 1181//1181 1182//1182 1185//1185
+f 1182//1182 1183//1183 1186//1187
+f 1183//1183 1184//1184 1187//1188
+f 1189//1189 1192//1192 1188//1186
+f 1185//1185 1186//1187 1189//1189
+f 1191//1191 1190//1190 1186//1187
+f 1187//1188 1188//1186 1191//1191
+f 1193//1193 1196//1196 1192//1192
+f 1189//1189 1190//1190 1193//1193
+f 1195//1195 1194//1194 1190//1190
+f 1191//1191 1192//1192 1195//1195
+f 1196//1196 1193//1193 1200//1198
+f 1193//1193 1194//1194 1197//1197
+f 1194//1194 1195//1195 1198//1199
+f 1195//1195 1196//1196 1199//1200
+f 1201//1201 1204//1204 1200//1198
+f 1202//1202 1201//1201 1197//1197
+f 1203//1203 1202//1202 1198//1199
+f 1204//1204 1203//1203 1199//1200
+f 1204//1204 1201//1201 1208//1206
+f 1201//1201 1202//1202 1205//1205
+f 1202//1202 1203//1203 1206//1207
+f 1203//1203 1204//1204 1207//1208
+f 1212//1216 1209//1209 1216//1211
+f 1214//1213 1213//1210 1209//1209
+f 1210//1212 1211//1214 1214//1213
+f 1216//1211 1215//1215 1211//1214
+f 1217//1217 1220//1220 1216//1211
+f 1213//1210 1214//1213 1217//1217
+f 1219//1219 1218//1218 1214//1213
+f 1215//1215 1216//1211 1219//1219
+f 1220//1220 1217//1217 1224//1222
+f 1222//1223 1221//1221 1217//1217
+f 1218//1218 1219//1219 1222//1223
+f 1224//1222 1223//1224 1219//1219
+f 1224//1222 1221//1221 1228//1226
+f 1221//1221 1222//1223 1225//1225
+f 1222//1223 1223//1224 1226//1227
+f 1223//1224 1224//1222 1227//1228
+f 1229//1229 1232//1232 1228//1226
+f 1230//1230 1229//1229 1225//1225
+f 1231//1231 1230//1230 1226//1227
+f 1232//1232 1231//1231 1227//1228
+f 1233//1233 1236//1236 1232//1232
+f 1229//1229 1230//1230 1233//1233
+f 1235//1235 1234//1234 1230//1230
+f 1231//1231 1232//1232 1235//1235
+f 1236//1236 1233//1233 1240//1238
+f 1238//1239 1237//1237 1233//1233
+f 1234//1234 1235//1235 1238//1239
+f 1240//1238 1239//1240 1235//1235
+f 1240//1238 1237//1237 1244//1242
+f 1237//1237 1238//1239 1241//1241
+f 1238//1239 1239//1240 1242//1243
+f 1239//1240 1240//1238 1243//1244
+f 1245//1245 1248//1248 1244//1242
+f 1246//1246 1245//1245 1241//1241
+f 1247//1247 1246//1246 1242//1243
+f 1248//1248 1247//1247 1243//1244
+f 1248//1248 1245//1245 1252//1250
+f 1245//1245 1246//1246 1249//1249
+f 1246//1246 1247//1247 1250//1251
+f 1247//1247 1248//1248 1251//1252
+f 1256//1260 1253//1253 1260//1255
+f 1253//1253 1254//1256 1257//1254
+f 1254//1256 1255//1258 1258//1257
+f 1255//1258 1256//1260 1259//1259
+f 1261//1261 1264//1264 1260//1255
+f 1262//1262 1261//1261 1257//1254
+f 1263//1263 1262//1262 1258//1257
+f 1264//1264 1263//1263 1259//1259
+f 1264//1264 1261//1261 1268//1266
+f 1266//1267 1265//1265 1261//1261
+f 1262//1262 1263//1263 1266//1267
+f 1268//1266 1267//1268 1263//1263
+f 1268//1266 1265//1265 1272//1270
+f 1265//1265 1266//1267 1269//1269
+f 1266//1267 1267//1268 1270//1271
+f 1267//1268 1268//1266 1271//1272
+f 1273//1273 1276//1276 1272//1270
+f 1274//1274 1273//1273 1269//1269
+f 1275//1275 1274//1274 1270//1271
+f 1276//1276 1275//1275 1271//1272
+f 1276//1276 1273//1273 1280//1278
+f 1273//1273 1274//1274 1277//1277
+f 1274//1274 1275//1275 1278//1279
+f 1275//1275 1276//1276 1279//1280
+f 1281//1281 1284//1284 1280//1278
+f 1282//1282 1281//1281 1277//1277
+f 1283//1283 1282//1282 1278//1279
+f 1284//1284 1283//1283 1279//1280
+f 1284//1284 1281//1281 1288//1286
+f 1281//1281 1282//1282 1285//1285
+f 1282//1282 1283//1283 1286//1287
+f 1283//1283 1284//1284 1287//1288
+f 1288//1286 1285//1285 1292//1290
+f 1290//1291 1289//1289 1285//1285
+f 1286//1287 1287//1288 1290//1291
+f 1292//1290 1291//1292 1287//1288
+f 1292//1290 1289//1289 1296//1294
+f 1289//1289 1290//1291 1293//1293
+f 1290//1291 1291//1292 1294//1295
+f 1291//1292 1292//1290 1295//1296
+f 1301//1298 1304//1304 1300//1299
+f 1302//1301 1301//1298 1297//1297
+f 1303//1303 1302//1301 1298//1300
+f 1304//1304 1303//1303 1299//1302
+f 1304//1304 1301//1298 1308//1306
+f 1301//1298 1302//1301 1305//1305
+f 1302//1301 1303//1303 1306//1307
+f 1303//1303 1304//1304 1307//1308
+f 1308//1306 1305//1305 1312//1310
+f 1305//1305 1306//1307 1309//1309
+f 1306//1307 1307//1308 1310//1311
+f 1307//1308 1308//1306 1311//1312
+f 1313//1313 1316//1316 1312//1310
+f 1309//1309 1310//1311 1313//1313
+f 1315//1315 1314//1314 1310//1311
+f 1311//1312 1312//1310 1315//1315
+f 1316//1316 1313//1313 1320//1318
+f 1313//1313 1314//1314 1317//1317
+f 1314//1314 1315//1315 1318//1319
+f 1315//1315 1316//1316 1319//1320
+f 1320//1318 1317//1317 1324//1322
+f 1322//1323 1321//1321 1317//1317
+f 1323//1324 1322//1323 1318//1319
+f 1324//1322 1323//1324 1319//1320
+f 1324//1322 1321//1321 1328//1326
+f 1326//1327 1325//1325 1321//1321
+f 1322//1323 1323//1324 1326//1327
+f 1328//1326 1327//1328 1323//1324
+f 1329//1329 1332//1332 1328//1326
+f 1325//1325 1326//1327 1329//1329
+f 1331//1331 1330//1330 1326//1327
+f 1327//1328 1328//1326 1331//1331
+f 1333//1333 1336//1336 1332//1332
+f 1329//1329 1330//1330 1333//1333
+f 1335//1335 1334//1334 1330//1330
+f 1331//1331 1332//1332 1335//1335
+f 1336//1336 1333//1333 1340//1338
+f 1333//1333 1334//1334 1337//1337
+f 1334//1334 1335//1335 1338//1339
+f 1335//1335 1336//1336 1339//1340
+f 1345//1342 1348//1348 1344//1343
+f 1346//1345 1345//1342 1341//1341
+f 1347//1347 1346//1345 1342//1344
+f 1348//1348 1347//1347 1343//1346
+f 1349//1349 1352//1352 1348//1348
+f 1350//1350 1349//1349 1345//1342
+f 1351//1351 1350//1350 1346//1345
+f 1352//1352 1351//1351 1347//1347
+f 1352//1352 1349//1349 1356//1354
+f 1354//1355 1353//1353 1349//1349
+f 1350//1350 1351//1351 1354//1355
+f 1356//1354 1355//1356 1351//1351
+f 1357//1357 1360//1360 1356//1354
+f 1353//1353 1354//1355 1357//1357
+f 1359//1359 1358//1358 1354//1355
+f 1355//1356 1356//1354 1359//1359
+f 1360//1360 1357//1357 1364//1362
+f 1357//1357 1358//1358 1361//1361
+f 1358//1358 1359//1359 1362//1363
+f 1359//1359 1360//1360 1363//1364
+f 1364//1362 1361//1361 1368//1366
+f 1361//1361 1362//1363 1365//1365
+f 1362//1363 1363//1364 1366//1367
+f 1363//1364 1364//1362 1367//1368
+f 1369//1369 1372//1372 1368//1366
+f 1365//1365 1366//1367 1369//1369
+f 1371//1371 1370//1370 1366//1367
+f 1367//1368 1368//1366 1371//1371
+f 1373//1373 1376//1376 1372//1372
+f 1374//1374 1373//1373 1369//1369
+f 1375//1375 1374//1374 1370//1370
+f 1376//1376 1375//1375 1371//1371
+f 1376//1376 1373//1373 1380//1378
+f 1373//1373 1374//1374 1377//1377
+f 1374//1374 1375//1375 1378//1379
+f 1375//1375 1376//1376 1379//1380
+f 1380//1378 1377//1377 1384//1382
+f 1377//1377 1378//1379 1381//1381
+f 1378//1379 1379//1380 1382//1383
+f 1379//1380 1380//1378 1383//1384
+f 1388//1392 1385//1385 1392//1387
+f 1385//1385 1386//1388 1389//1386
+f 1386//1388 1387//1390 1390//1389
+f 1387//1390 1388//1392 1391//1391
+f 1393//1393 1396//1396 1392//1387
+f 1394//1394 1393//1393 1389//1386
+f 1395//1395 1394//1394 1390//1389
+f 1396//1396 1395//1395 1391//1391
+f 1397//1397 1400//1400 1396//1396
+f 1398//1398 1397//1397 1393//1393
+f 1399//1399 1398//1398 1394//1394
+f 1400//1400 1399//1399 1395//1395
+f 1401//1401 1404//1404 1400//1400
+f 1397//1397 1398//1398 1401//1401
+f 1403//1403 1402//1402 1398//1398
+f 1399//1399 1400//1400 1403//1403
+f 1404//1404 1401//1401 1408//1406
+f 1406//1407 1405//1405 1401//1401
+f 1402//1402 1403//1403 1406//1407
+f 1408//1406 1407//1408 1403//1403
+f 1409//1409 1412//1412 1408//1406
+f 1410//1410 1409//1409 1405//1405
+f 1411//1411 1410//1410 1406//1407
+f 1412//1412 1411//1411 1407//1408
+f 1412//1412 1409//1409 1416//1414
+f 1409//1409 1410//1410 1413//1413
+f 1410//1410 1411//1411 1414//1415
+f 1411//1411 1412//1412 1415//1416
+f 1417//1417 1420//1420 1416//1414
+f 1418//1418 1417//1417 1413//1413
+f 1419//1419 1418//1418 1414//1415
+f 1420//1420 1419//1419 1415//1416
+f 1421//1421 1424//1424 1420//1420
+f 1417//1417 1418//1418 1421//1421
+f 1423//1423 1422//1422 1418//1418
+f 1419//1419 1420//1420 1423//1423
+f 1424//1424 1421//1421 1428//1426
+f 1421//1421 1422//1422 1425//1425
+f 1422//1422 1423//1423 1426//1427
+f 1423//1423 1424//1424 1427//1428
+f 1433//1430 1436//1436 1432//1431
+f 1434//1433 1433//1430 1429//1429
+f 1435//1435 1434//1433 1430//1432
+f 1436//1436 1435//1435 1431//1434
+f 1436//1436 1433//1430 1440//1438
+f 1433//1430 1434//1433 1437//1437
+f 1434//1433 1435//1435 1438//1439
+f 1435//1435 1436//1436 1439//1440
+f 1440//1438 1437//1437 1444//1442
+f 1437//1437 1438//1439 1441//1441
+f 1438//1439 1439//1440 1442//1443
+f 1439//1440 1440//1438 1443//1444
+f 1444//1442 1441//1441 1448//1446
+f 1441//1441 1442//1443 1445//1445
+f 1442//1443 1443//1444 1446//1447
+f 1443//1444 1444//1442 1447//1448
+f 1449//1449 1452//1452 1448//1446
+f 1450//1450 1449//1449 1445//1445
+f 1451//1451 1450//1450 1446//1447
+f 1452//1452 1451//1451 1447//1448
+f 1453//1453 1456//1456 1452//1452
+f 1454//1454 1453//1453 1449//1449
+f 1455//1455 1454//1454 1450//1450
+f 1456//1456 1455//1455 1451//1451
+f 1456//1456 1453//1453 1460//1458
+f 1453//1453 1454//1454 1457//1457
+f 1454//1454 1455//1455 1458//1459
+f 1455//1455 1456//1456 1459//1460
+f 1461//1461 1464//1464 1460//1458
+f 1462//1462 1461//1461 1457//1457
+f 1463//1463 1462//1462 1458//1459
+f 1464//1464 1463//1463 1459//1460
+f 1464//1464 1461//1461 1468//1466
+f 1461//1461 1462//1462 1465//1465
+f 1462//1462 1463//1463 1466//1467
+f 1463//1463 1464//1464 1467//1468
+f 1468//1466 1465//1465 1472//1470
+f 1465//1465 1466//1467 1469//1469
+f 1466//1467 1467//1468 1470//1471
+f 1467//1468 1468//1466 1471//1472
+f 1477//1474 1480//1480 1476//1475
+f 1478//1477 1477//1474 1473//1473
+f 1479//1479 1478//1477 1474//1476
+f 1480//1480 1479//1479 1475//1478
+f 1481//1481 1484//1484 1480//1480
+f 1482//1482 1481//1481 1477//1474
+f 1483//1483 1482//1482 1478//1477
+f 1484//1484 1483//1483 1479//1479
+f 1484//1484 1481//1481 1488//1486
+f 1481//1481 1482//1482 1485//1485
+f 1482//1482 1483//1483 1486//1487
+f 1483//1483 1484//1484 1487//1488
+f 1489//1489 1492//1492 1488//1486
+f 1485//1485 1486//1487 1489//1489
+f 1491//1491 1490//1490 1486//1487
+f 1487//1488 1488//1486 1491//1491
+f 1492//1492 1489//1489 1496//1494
+f 1494//1495 1493//1493 1489//1489
+f 1490//1490 1491//1491 1494//1495
+f 1496//1494 1495//1496 1491//1491
+f 1496//1494 1493//1493 1500//1498
+f 1498//1499 1497//1497 1493//1493
+f 1494//1495 1495//1496 1498//1499
+f 1500//1498 1499//1500 1495//1496
+f 1501//1501 1504//1504 1500//1498
+f 1497//1497 1498//1499 1501//1501
+f 1503//1503 1502//1502 1498//1499
+f 1499//1500 1500//1498 1503//1503
+f 1504//1504 1501//1501 1508//1506
+f 1506//1507 1505//1505 1501//1501
+f 1502//1502 1503//1503 1506//1507
+f 1508//1506 1507//1508 1503//1503
+f 1509//1509 1512//1512 1508//1506
+f 1505//1505 1506//1507 1509//1509
+f 1511//1511 1510//1510 1506//1507
+f 1507//1508 1508//1506 1511//1511
+f 1512//1512 1509//1509 1516//1514
+f 1509//1509 1510//1510 1513//1513
+f 1510//1510 1511//1511 1514//1515
+f 1511//1511 1512//1512 1515//1516
+f 1521//1518 1524//1524 1520//1519
+f 1517//1517 1518//1520 1521//1518
+f 1523//1523 1522//1521 1518//1520
+f 1519//1522 1520//1519 1523//1523
+f 1524//1524 1521//1518 1528//1526
+f 1526//1527 1525//1525 1521//1518
+f 1522//1521 1523//1523 1526//1527
+f 1528//1526 1527//1528 1523//1523
+f 1528//1526 1525//1525 1532//1530
+f 1525//1525 1526//1527 1529//1529
+f 1526//1527 1527//1528 1530//1531
+f 1527//1528 1528//1526 1531//1532
+f 1532//1530 1529//1529 1536//1534
+f 1534//1535 1533//1533 1529//1529
+f 1530//1531 1531//1532 1534//1535
+f 1536//1534 1535//1536 1531//1532
+f 1537//1537 1540//1540 1536//1534
+f 1538//1538 1537//1537 1533//1533
+f 1539//1539 1538//1538 1534//1535
+f 1540//1540 1539//1539 1535//1536
+f 1541//1541 1544//1544 1540//1540
+f 1537//1537 1538//1538 1541//1541
+f 1543//1543 1542//1542 1538//1538
+f 1539//1539 1540//1540 1543//1543
+f 1545//1545 1548//1548 1544//1544
+f 1541//1541 1542//1542 1545//1545
+f 1547//1547 1546//1546 1542//1542
+f 1543//1543 1544//1544 1547//1547
+f 1548//1548 1545//1545 1552//1550
+f 1550//1551 1549//1549 1545//1545
+f 1546//1546 1547//1547 1550//1551
+f 1552//1550 1551//1552 1547//1547
+f 1553//1553 1556//1556 1552//1550
+f 1549//1549 1550//1551 1553//1553
+f 1555//1555 1554//1554 1550//1551
+f 1551//1552 1552//1550 1555//1555
+f 1556//1556 1553//1553 1560//1558
+f 1553//1553 1554//1554 1557//1557
+f 1554//1554 1555//1555 1558//1559
+f 1555//1555 1556//1556 1559//1560
+f 1564//1568 1561//1561 1568//1563
+f 1561//1561 1562//1564 1565//1562
+f 1562//1564 1563//1566 1566//1565
+f 1563//1566 1564//1568 1567//1567
+f 1569//1569 1572//1572 1568//1563
+f 1570//1570 1569//1569 1565//1562
+f 1571//1571 1570//1570 1566//1565
+f 1572//1572 1571//1571 1567//1567
+f 1572//1572 1569//1569 1576//1574
+f 1569//1569 1570//1570 1573//1573
+f 1570//1570 1571//1571 1574//1575
+f 1571//1571 1572//1572 1575//1576
+f 1577//1577 1580//1580 1576//1574
+f 1573//1573 1574//1575 1577//1577
+f 1579//1579 1578//1578 1574//1575
+f 1575//1576 1576//1574 1579//1579
+f 1581//1581 1584//1584 1580//1580
+f 1582//1582 1581//1581 1577//1577
+f 1583//1583 1582//1582 1578//1578
+f 1584//1584 1583//1583 1579//1579
+f 1584//1584 1581//1581 1588//1586
+f 1581//1581 1582//1582 1585//1585
+f 1582//1582 1583//1583 1586//1587
+f 1583//1583 1584//1584 1587//1588
+f 1588//1586 1585//1585 1592//1590
+f 1590//1591 1589//1589 1585//1585
+f 1586//1587 1587//1588 1590//1591
+f 1592//1590 1591//1592 1587//1588
+f 1593//1593 1596//1596 1592//1590
+f 1589//1589 1590//1591 1593//1593
+f 1595//1595 1594//1594 1590//1591
+f 1591//1592 1592//1590 1595//1595
+f 1596//1596 1593//1593 1600//1598
+f 1593//1593 1594//1594 1597//1597
+f 1594//1594 1595//1595 1598//1599
+f 1595//1595 1596//1596 1599//1600
+f 1600//1598 1597//1597 1604//1602
+f 1597//1597 1598//1599 1601//1601
+f 1598//1599 1599//1600 1602//1603
+f 1599//1600 1600//1598 1603//1604
+f 1608//1612 1605//1605 1612//1607
+f 1610//1609 1609//1606 1605//1605
+f 1606//1608 1607//1610 1610//1609
+f 1612//1607 1611//1611 1607//1610
+f 1612//1607 1609//1606 1616//1614
+f 1609//1606 1610//1609 1613//1613
+f 1610//1609 1611//1611 1614//1615
+f 1611//1611 1612//1607 1615//1616
+f 1616//1614 1613//1613 1620//1618
+f 1618//1619 1617//1617 1613//1613
+f 1614//1615 1615//1616 1618//1619
+f 1620//1618 1619//1620 1615//1616
+f 1621//1621 1624//1624 1620//1618
+f 1617//1617 1618//1619 1621//1621
+f 1623//1623 1622//1622 1618//1619
+f 1619//1620 1620//1618 1623//1623
+f 1625//1625 1628//1628 1624//1624
+f 1621//1621 1622//1622 1625//1625
+f 1627//1627 1626//1626 1622//1622
+f 1623//1623 1624//1624 1627//1627
+f 1629//1629 1632//1632 1628//1628
+f 1630//1630 1629//1629 1625//1625
+f 1631//1631 1630//1630 1626//1626
+f 1632//1632 1631//1631 1627//1627
+f 1632//1632 1629//1629 1636//1634
+f 1634//1635 1633//1633 1629//1629
+f 1630//1630 1631//1631 1634//1635
+f 1636//1634 1635//1636 1631//1631
+f 1637//1637 1640//1640 1636//1634
+f 1638//1638 1637//1637 1633//1633
+f 1639//1639 1638//1638 1634//1635
+f 1640//1640 1639//1639 1635//1636
+f 1640//1640 1637//1637 1644//1642
+f 1637//1637 1638//1638 1641//1641
+f 1638//1638 1639//1639 1642//1643
+f 1639//1639 1640//1640 1643//1644
+f 1644//1642 1641//1641 1648//1646
+f 1641//1641 1642//1643 1645//1645
+f 1642//1643 1643//1644 1646//1647
+f 1643//1644 1644//1642 1647//1648
+f 1652//1656 1649//1649 1656//1651
+f 1654//1653 1653//1650 1649//1649
+f 1650//1652 1651//1654 1654//1653
+f 1656//1651 1655//1655 1651//1654
+f 1657//1657 1660//1660 1656//1651
+f 1653//1650 1654//1653 1657//1657
+f 1659//1659 1658//1658 1654//1653
+f 1655//1655 1656//1651 1659//1659
+f 1660//1660 1657//1657 1664//1662
+f 1662//1663 1661//1661 1657//1657
+f 1658//1658 1659//1659 1662//1663
+f 1664//1662 1663//1664 1659//1659
+f 1665//1665 1668//1668 1664//1662
+f 1666//1666 1665//1665 1661//1661
+f 1667//1667 1666//1666 1662//1663
+f 1668//1668 1667//1667 1663//1664
+f 1669//1669 1672//1672 1668//1668
+f 1665//1665 1666//1666 1669//1669
+f 1671//1671 1670//1670 1666//1666
+f 1667//1667 1668//1668 1671//1671
+f 1672//1672 1669//1669 1676//1674
+f 1669//1669 1670//1670 1673//1673
+f 1670//1670 1671//1671 1674//1675
+f 1671//1671 1672//1672 1675//1676
+f 1677//1677 1680//1680 1676//1674
+f 1673//1673 1674//1675 1677//1677
+f 1679//1679 1678//1678 1674//1675
+f 1675//1676 1676//1674 1679//1679
+f 1681//1681 1684//1684 1680//1680
+f 1682//1682 1681//1681 1677//1677
+f 1683//1683 1682//1682 1678//1678
+f 1684//1684 1683//1683 1679//1679
+f 1684//1684 1681//1681 1688//1686
+f 1686//1687 1685//1685 1681//1681
+f 1682//1682 1683//1683 1686//1687
+f 1688//1686 1687//1688 1683//1683
+f 1688//1686 1685//1685 1692//1690
+f 1685//1685 1686//1687 1689//1689
+f 1686//1687 1687//1688 1690//1691
+f 1687//1688 1688//1686 1691//1692
+f 1696//1700 1693//1693 1700//1695
+f 1698//1697 1697//1694 1693//1693
+f 1694//1696 1695//1698 1698//1697
+f 1700//1695 1699//1699 1695//1698
+f 1701//1701 1704//1704 1700//1695
+f 1697//1694 1698//1697 1701//1701
+f 1703//1703 1702//1702 1698//1697
+f 1699//1699 1700//1695 1703//1703
+f 1704//1704 1701//1701 1708//1706
+f 1701//1701 1702//1702 1705//1705
+f 1702//1702 1703//1703 1706//1707
+f 1703//1703 1704//1704 1707//1708
+f 1709//1709 1712//1712 1708//1706
+f 1710//1710 1709//1709 1705//1705
+f 1711//1711 1710//1710 1706//1707
+f 1712//1712 1711//1711 1707//1708
+f 1712//1712 1709//1709 1716//1714
+f 1714//1715 1713//1713 1709//1709
+f 1710//1710 1711//1711 1714//1715
+f 1716//1714 1715//1716 1711//1711
+f 1717//1717 1720//1720 1716//1714
+f 1713//1713 1714//1715 1717//1717
+f 1714//1715 1715//1716 1718//1718
+f 1715//1716 1716//1714 1719//1719
+f 1720//1720 1717//1717 1724//1722
+f 1722//1723 1721//1721 1717//1717
+f 1718//1718 1719//1719 1722//1723
+f 1724//1722 1723//1724 1719//1719
+f 1725//1725 1728//1728 1724//1722
+f 1721//1721 1722//1723 1725//1725
+f 1727//1727 1726//1726 1722//1723
+f 1723//1724 1724//1722 1727//1727
+f 1728//1728 1725//1725 1732//1730
+f 1725//1725 1726//1726 1729//1729
+f 1726//1726 1727//1727 1730//1731
+f 1727//1727 1728//1728 1731//1732
+f 1732//1730 1729//1729 1736//1734
+f 1729//1729 1730//1731 1733//1733
+f 1730//1731 1731//1732 1734//1735
+f 1731//1732 1732//1730 1735//1736
+f 1741//1738 1744//1744 1740//1739
+f 1737//1737 1738//1740 1741//1738
+f 1743//1743 1742//1741 1738//1740
+f 1739//1742 1740//1739 1743//1743
+f 1744//1744 1741//1738 1748//1746
+f 1746//1747 1745//1745 1741//1738
+f 1742//1741 1743//1743 1746//1747
+f 1748//1746 1747//1748 1743//1743
+f 1749//1749 1752//1752 1748//1746
+f 1745//1745 1746//1747 1749//1749
+f 1751//1751 1750//1750 1746//1747
+f 1747//1748 1748//1746 1751//1751
+f 1753//1753 1756//1756 1752//1752
+f 1754//1754 1753//1753 1749//1749
+f 1755//1755 1754//1754 1750//1750
+f 1756//1756 1755//1755 1751//1751
+f 1756//1756 1753//1753 1760//1758
+f 1758//1759 1757//1757 1753//1753
+f 1754//1754 1755//1755 1758//1759
+f 1760//1758 1759//1760 1755//1755
+f 1760//1758 1757//1757 1764//1762
+f 1757//1757 1758//1759 1761//1761
+f 1758//1759 1759//1760 1762//1763
+f 1759//1760 1760//1758 1763//1764
+f 1765//1765 1768//1768 1764//1762
+f 1766//1766 1765//1765 1761//1761
+f 1767//1767 1766//1766 1762//1763
+f 1768//1768 1767//1767 1763//1764
+f 1769//1769 1772//1772 1768//1768
+f 1765//1765 1766//1766 1769//1769
+f 1771//1771 1770//1770 1766//1766
+f 1767//1767 1768//1768 1771//1771
+f 1773//1773 1776//1776 1772//1772
+f 1774//1774 1773//1773 1769//1769
+f 1775//1775 1774//1774 1770//1770
+f 1776//1776 1775//1775 1771//1771
+f 1776//1776 1773//1773 1780//1778
+f 1773//1773 1774//1774 1777//1777
+f 1774//1774 1775//1775 1778//1779
+f 1775//1775 1776//1776 1779//1780
+f 1784//1788 1781//1781 1788//1783
+f 1781//1781 1782//1784 1785//1782
+f 1782//1784 1783//1786 1786//1785
+f 1783//1786 1784//1788 1787//1787
+f 1789//1789 1792//1792 1788//1783
+f 1790//1790 1789//1789 1785//1782
+f 1791//1791 1790//1790 1786//1785
+f 1792//1792 1791//1791 1787//1787
+f 1793//1793 1796//1796 1792//1792
+f 1789//1789 1790//1790 1793//1793
+f 1795//1795 1794//1794 1790//1790
+f 1791//1791 1792//1792 1795//1795
+f 1796//1796 1793//1793 1800//1798
+f 1793//1793 1794//1794 1797//1797
+f 1794//1794 1795//1795 1798//1799
+f 1795//1795 1796//1796 1799//1800
+f 1801//1801 1804//1804 1800//1798
+f 1797//1797 1798//1799 1801//1801
+f 1803//1803 1802//1802 1798//1799
+f 1799//1800 1800//1798 1803//1803
+f 1805//1805 1808//1808 1804//1804
+f 1806//1806 1805//1805 1801//1801
+f 1807//1807 1806//1806 1802//1802
+f 1808//1808 1807//1807 1803//1803
+f 1808//1808 1805//1805 1812//1810
+f 1805//1805 1806//1806 1809//1809
+f 1806//1806 1807//1807 1810//1811
+f 1807//1807 1808//1808 1811//1812
+f 1813//1813 1816//1816 1812//1810
+f 1814//1814 1813//1813 1809//1809
+f 1815//1815 1814//1814 1810//1811
+f 1816//1816 1815//1815 1811//1812
+f 1816//1816 1813//1813 1820//1818
+f 1813//1813 1814//1814 1817//1817
+f 1814//1814 1815//1815 1818//1819
+f 1815//1815 1816//1816 1819//1820
+f 1820//1818 1817//1817 1824//1822
+f 1817//1817 1818//1819 1821//1821
+f 1818//1819 1819//1820 1822//1823
+f 1819//1820 1820//1818 1823//1824
+f 1829//1826 1832//1832 1828//1827
+f 1825//1825 1826//1828 1829//1826
+f 1831//1831 1830//1829 1826//1828
+f 1827//1830 1828//1827 1831//1831
+f 1832//1832 1829//1826 1836//1834
+f 1834//1835 1833//1833 1829//1826
+f 1830//1829 1831//1831 1834//1835
+f 1836//1834 1835//1836 1831//1831
+f 1836//1834 1833//1833 1840//1838
+f 1838//1839 1837//1837 1833//1833
+f 1834//1835 1835//1836 1838//1839
+f 1840//1838 1839//1840 1835//1836
+f 1841//1841 1844//1844 1840//1838
+f 1837//1837 1838//1839 1841//1841
+f 1843//1843 1842//1842 1838//1839
+f 1839//1840 1840//1838 1843//1843
+f 1844//1844 1841//1841 1848//1846
+f 1846//1847 1845//1845 1841//1841
+f 1842//1842 1843//1843 1846//1847
+f 1848//1846 1847//1848 1843//1843
+f 1848//1846 1845//1845 1852//1850
+f 1850//1851 1849//1849 1845//1845
+f 1846//1847 1847//1848 1850//1851
+f 1852//1850 1851//1852 1847//1848
+f 1852//1850 1849//1849 1856//1854
+f 1849//1849 1850//1851 1853//1853
+f 1850//1851 1851//1852 1854//1855
+f 1851//1852 1852//1850 1855//1856
+f 1861//1858 1864//1864 1860//1859
+f 1862//1861 1861//1858 1857//1857
+f 1863//1863 1862//1861 1858//1860
+f 1864//1864 1863//1863 1859//1862
+f 1864//1864 1861//1858 1868//1866
+f 1861//1858 1862//1861 1865//1865
+f 1862//1861 1863//1863 1866//1867
+f 1863//1863 1864//1864 1867//1868
+f 1868//1866 1865//1865 1872//1870
+f 1870//1871 1869//1869 1865//1865
+f 1866//1867 1867//1868 1870//1871
+f 1872//1870 1871//1872 1867//1868
+f 1872//1870 1869//1869 1876//1874
+f 1869//1869 1870//1871 1873//1873
+f 1870//1871 1871//1872 1874//1875
+f 1871//1872 1872//1870 1875//1876
+f 1880//1884 1877//1877 1884//1879
+f 1877//1877 1878//1880 1881//1878
+f 1878//1880 1879//1882 1882//1881
+f 1879//1882 1880//1884 1883//1883
+f 1884//1879 1881//1878 1888//1886
+f 1881//1878 1882//1881 1885//1885
+f 1882//1881 1883//1883 1886//1887
+f 1883//1883 1884//1879 1887//1888
+f 1892//1896 1889//1889 1896//1891
+f 1889//1889 1890//1892 1893//1890
+f 1890//1892 1891//1894 1894//1893
+f 1891//1894 1892//1896 1895//1895
+f 1900//1904 1897//1897 1904//1899
+f 1897//1897 1898//1900 1901//1898
+f 1898//1900 1899//1902 1902//1901
+f 1899//1902 1900//1904 1903//1903
+f 1905//1905 1908//1908 1904//1899
+f 1906//1906 1905//1905 1901//1898
+f 1907//1907 1906//1906 1902//1901
+f 1908//1908 1907//1907 1903//1903
+f 1909//1909 1912//1912 1908//1908
+f 1910//1910 1909//1909 1905//1905
+f 1911//1911 1910//1910 1906//1906
+f 1912//1912 1911//1911 1907//1907
+f 1913//1913 1916//1916 1912//1912
+f 1914//1914 1913//1913 1909//1909
+f 1915//1915 1914//1914 1910//1910
+f 1916//1916 1915//1915 1911//1911
+f 1917//1917 1920//1920 1916//1916
+f 1918//1918 1917//1917 1913//1913
+f 1919//1919 1918//1918 1914//1914
+f 1920//1920 1919//1919 1915//1915
+f 1920//1920 1917//1917 1924//1922
+f 1917//1917 1918//1918 1921//1921
+f 1918//1918 1919//1919 1922//1923
+f 1919//1919 1920//1920 1923//1924
+f 1929//1926 1932//1932 1928//1927
+f 1930//1929 1929//1926 1925//1925
+f 1926//1928 1927//1930 1930//1929
+f 1932//1932 1931//1931 1927//1930
+f 1933//1933 1936//1936 1932//1932
+f 1929//1926 1930//1929 1933//1933
+f 1935//1935 1934//1934 1930//1929
+f 1931//1931 1932//1932 1935//1935
+f 1936//1936 1933//1933 1940//1938
+f 1933//1933 1934//1934 1937//1937
+f 1934//1934 1935//1935 1938//1939
+f 1935//1935 1936//1936 1939//1940
+f 1944//1948 1941//1941 1948//1943
+f 1941//1941 1942//1944 1945//1942
+f 1942//1944 1943//1946 1946//1945
+f 1943//1946 1944//1948 1947//1947
+f 1953//1950 1956//1956 1952//1951
+f 1954//1953 1953//1950 1949//1949
+f 1955//1955 1954//1953 1950//1952
+f 1956//1956 1955//1955 1951//1954
+f 1956//1956 1953//1950 1960//1958
+f 1953//1950 1954//1953 1957//1957
+f 1954//1953 1955//1955 1958//1959
+f 1955//1955 1956//1956 1959//1960
+f 1960//1958 1957//1957 1964//1962
+f 1957//1957 1958//1959 1961//1961
+f 1958//1959 1959//1960 1962//1963
+f 1959//1960 1960//1958 1963//1964
+f 1964//1962 1961//1961 1968//1966
+f 1961//1961 1962//1963 1965//1965
+f 1962//1963 1963//1964 1966//1967
+f 1963//1964 1964//1962 1967//1968
+f 1969//1969 1972//1972 1968//1966
+f 1970//1970 1969//1969 1965//1965
+f 1971//1971 1970//1970 1966//1967
+f 1972//1972 1971//1971 1967//1968
+f 1972//1972 1969//1969 1976//1974
+f 1969//1969 1970//1970 1973//1973
+f 1970//1970 1971//1971 1974//1975
+f 1971//1971 1972//1972 1975//1976
+f 1976//1974 1973//1973 1980//1978
+f 1973//1973 1974//1975 1977//1977
+f 1974//1975 1975//1976 1978//1979
+f 1975//1976 1976//1974 1979//1980
+f 1984//1988 1981//1981 1988//1983
+f 1981//1981 1982//1984 1985//1982
+f 1982//1984 1983//1986 1986//1985
+f 1983//1986 1984//1988 1987//1987
+f 1989//1989 1992//1992 1988//1983
+f 1990//1990 1989//1989 1985//1982
+f 1991//1991 1990//1990 1986//1985
+f 1992//1992 1991//1991 1987//1987
+f 1993//1993 1996//1996 1992//1992
+f 1989//1989 1990//1990 1993//1993
+f 1995//1995 1994//1994 1990//1990
+f 1991//1991 1992//1992 1995//1995
+f 1996//1996 1993//1993 2000//1998
+f 1993//1993 1994//1994 1997//1997
+f 1994//1994 1995//1995 1998//1999
+f 1995//1995 1996//1996 1999//2000
+f 2004//2008 2001//2001 2008//2003
+f 2001//2001 2002//2004 2005//2002
+f 2002//2004 2003//2006 2006//2005
+f 2003//2006 2004//2008 2007//2007
+f 2008//2003 2005//2002 2012//2010
+f 2005//2002 2006//2005 2009//2009
+f 2006//2005 2007//2007 2010//2011
+f 2007//2007 2008//2003 2011//2012
+f 2016//2020 2013//2013 2020//2015
+f 2013//2013 2014//2016 2017//2014
+f 2014//2016 2015//2018 2018//2017
+f 2015//2018 2016//2020 2019//2019
+f 2024//2028 2021//2021 2028//2023
+f 2026//2025 2025//2022 2021//2021
+f 2022//2024 2023//2026 2026//2025
+f 2028//2023 2027//2027 2023//2026
+f 2029//2029 2032//2032 2028//2023
+f 2025//2022 2026//2025 2029//2029
+f 2031//2031 2030//2030 2026//2025
+f 2027//2027 2028//2023 2031//2031
+f 2033//2033 2036//2036 2032//2032
+f 2029//2029 2030//2030 2033//2033
+f 2035//2035 2034//2034 2030//2030
+f 2031//2031 2032//2032 2035//2035
+f 2036//2036 2033//2033 2040//2038
+f 2038//2039 2037//2037 2033//2033
+f 2034//2034 2035//2035 2038//2039
+f 2040//2038 2039//2040 2035//2035
+f 2040//2038 2037//2037 2044//2042
+f 2042//2043 2041//2041 2037//2037
+f 2038//2039 2039//2040 2042//2043
+f 2044//2042 2043//2044 2039//2040
+f 2044//2042 2041//2041 2048//2046
+f 2041//2041 2042//2043 2045//2045
+f 2042//2043 2043//2044 2046//2047
+f 2043//2044 2044//2042 2047//2048
+f 2052//2056 2049//2049 2056//2051
+f 2049//2049 2050//2052 2053//2050
+f 2050//2052 2051//2054 2054//2053
+f 2051//2054 2052//2056 2055//2055
+f 2057//2057 2060//2060 2056//2051
+f 2058//2058 2057//2057 2053//2050
+f 2059//2059 2058//2058 2054//2053
+f 2060//2060 2059//2059 2055//2055
+f 2060//2060 2057//2057 2064//2062
+f 2057//2057 2058//2058 2061//2061
+f 2058//2058 2059//2059 2062//2063
+f 2059//2059 2060//2060 2063//2064
+f 2068//2072 2065//2065 2072//2067
+f 2065//2065 2066//2068 2069//2066
+f 2066//2068 2067//2070 2070//2069
+f 2067//2070 2068//2072 2071//2071
+f 2076//2080 2073//2073 2080//2075
+f 2073//2073 2074//2076 2077//2074
+f 2074//2076 2075//2078 2078//2077
+f 2075//2078 2076//2080 2079//2079
+f 2081//2081 2084//2084 2080//2075
+f 2082//2082 2081//2081 2077//2074
+f 2083//2083 2082//2082 2078//2077
+f 2084//2084 2083//2083 2079//2079
+f 2084//2084 2081//2081 2088//2086
+f 2086//2087 2085//2085 2081//2081
+f 2082//2082 2083//2083 2086//2087
+f 2088//2086 2087//2088 2083//2083
+f 2089//2089 2092//2092 2088//2086
+f 2085//2085 2086//2087 2089//2089
+f 2091//2091 2090//2090 2086//2087
+f 2087//2088 2088//2086 2091//2091
+f 2093//2093 2096//2096 2092//2092
+f 2089//2089 2090//2090 2093//2093
+f 2095//2095 2094//2094 2090//2090
+f 2091//2091 2092//2092 2095//2095
+f 2096//2096 2093//2093 2100//2098
+f 2098//2099 2097//2097 2093//2093
+f 2094//2094 2095//2095 2098//2099
+f 2100//2098 2099//2100 2095//2095
+f 2100//2098 2097//2097 2104//2102
+f 2097//2097 2098//2099 2101//2101
+f 2098//2099 2099//2100 2102//2103
+f 2099//2100 2100//2098 2103//2104
+f 2108//2112 2105//2105 2112//2107
+f 2105//2105 2106//2108 2109//2106
+f 2106//2108 2107//2110 2110//2109
+f 2107//2110 2108//2112 2111//2111
+f 2113//2113 2116//2116 2112//2107
+f 2114//2114 2113//2113 2109//2106
+f 2115//2115 2114//2114 2110//2109
+f 2116//2116 2115//2115 2111//2111
+f 2117//2117 2120//2120 2116//2116
+f 2118//2118 2117//2117 2113//2113
+f 2119//2119 2118//2118 2114//2114
+f 2120//2120 2119//2119 2115//2115
+f 2120//2120 2117//2117 2124//2122
+f 2117//2117 2118//2118 2121//2121
+f 2118//2118 2119//2119 2122//2123
+f 2119//2119 2120//2120 2123//2124
+f 2129//2126 2132//2132 2128//2127
+f 2125//2125 2126//2128 2129//2126
+f 2131//2131 2130//2129 2126//2128
+f 2127//2130 2128//2127 2131//2131
+f 2132//2132 2129//2126 2136//2134
+f 2129//2126 2130//2129 2133//2133
+f 2130//2129 2131//2131 2134//2135
+f 2131//2131 2132//2132 2135//2136
+f 2140//2144 2137//2137 2144//2139
+f 2137//2137 2138//2140 2141//2138
+f 2138//2140 2139//2142 2142//2141
+f 2139//2142 2140//2144 2143//2143
+f 2149//2146 2152//2152 2148//2147
+f 2150//2149 2149//2146 2145//2145
+f 2151//2151 2150//2149 2146//2148
+f 2152//2152 2151//2151 2147//2150
+f 2153//2153 2156//2156 2152//2152
+f 2154//2154 2153//2153 2149//2146
+f 2155//2155 2154//2154 2150//2149
+f 2156//2156 2155//2155 2151//2151
+f 2156//2156 2153//2153 2160//2158
+f 2153//2153 2154//2154 2157//2157
+f 2154//2154 2155//2155 2158//2159
+f 2155//2155 2156//2156 2159//2160
+f 2161//2161 2164//2164 2160//2158
+f 2162//2162 2161//2161 2157//2157
+f 2163//2163 2162//2162 2158//2159
+f 2164//2164 2163//2163 2159//2160
+f 2164//2164 2161//2161 2168//2166
+f 2161//2161 2162//2162 2165//2165
+f 2162//2162 2163//2163 2166//2167
+f 2163//2163 2164//2164 2167//2168
+f 2168//2166 2165//2165 2172//2170
+f 2165//2165 2166//2167 2169//2169
+f 2166//2167 2167//2168 2170//2171
+f 2167//2168 2168//2166 2171//2172
+f 2176//2180 2173//2173 2180//2175
+f 2173//2173 2174//2176 2177//2174
+f 2174//2176 2175//2178 2178//2177
+f 2175//2178 2176//2180 2179//2179
+f 2181//2181 2184//2184 2180//2175
+f 2182//2182 2181//2181 2177//2174
+f 2183//2183 2182//2182 2178//2177
+f 2184//2184 2183//2183 2179//2179
+f 2184//2184 2181//2181 2188//2186
+f 2181//2181 2182//2182 2185//2185
+f 2182//2182 2183//2183 2186//2187
+f 2183//2183 2184//2184 2187//2188
+f 2192//2196 2189//2189 2196//2191
+f 2189//2189 2190//2192 2193//2190
+f 2190//2192 2191//2194 2194//2193
+f 2191//2194 2192//2196 2195//2195
+f 2201//2198 2204//2204 2200//2199
+f 2202//2201 2201//2198 2197//2197
+f 2203//2203 2202//2201 2198//2200
+f 2204//2204 2203//2203 2199//2202
+f 2204//2204 2201//2198 2208//2206
+f 2201//2198 2202//2201 2205//2205
+f 2202//2201 2203//2203 2206//2207
+f 2203//2203 2204//2204 2207//2208
+f 2209//2209 2212//2212 2208//2206
+f 2210//2210 2209//2209 2205//2205
+f 2211//2211 2210//2210 2206//2207
+f 2212//2212 2211//2211 2207//2208
+f 2213//2213 2216//2216 2212//2212
+f 2214//2214 2213//2213 2209//2209
+f 2215//2215 2214//2214 2210//2210
+f 2216//2216 2215//2215 2211//2211
+f 2216//2216 2213//2213 2220//2218
+f 2213//2213 2214//2214 2217//2217
+f 2214//2214 2215//2215 2218//2219
+f 2215//2215 2216//2216 2219//2220
+f 2221//2221 2224//2224 2220//2218
+f 2222//2222 2221//2221 2217//2217
+f 2223//2223 2222//2222 2218//2219
+f 2224//2224 2223//2223 2219//2220
+f 2224//2224 2221//2221 2228//2226
+f 2221//2221 2222//2222 2225//2225
+f 2222//2222 2223//2223 2226//2227
+f 2223//2223 2224//2224 2227//2228
+f 2232//2236 2229//2229 2236//2231
+f 2229//2229 2230//2232 2233//2230
+f 2230//2232 2231//2234 2234//2233
+f 2231//2234 2232//2236 2235//2235
+f 2237//2237 2240//2240 2236//2231
+f 2238//2238 2237//2237 2233//2230
+f 2239//2239 2238//2238 2234//2233
+f 2240//2240 2239//2239 2235//2235
+f 2241//2241 2244//2244 2240//2240
+f 2237//2237 2238//2238 2241//2241
+f 2243//2243 2242//2242 2238//2238
+f 2239//2239 2240//2240 2243//2243
+f 2244//2244 2241//2241 2248//2246
+f 2241//2241 2242//2242 2245//2245
+f 2242//2242 2243//2243 2246//2247
+f 2243//2243 2244//2244 2247//2248
+f 2253//2250 2256//2256 2252//2251
+f 2254//2253 2253//2250 2249//2249
+f 2255//2255 2254//2253 2250//2252
+f 2256//2256 2255//2255 2251//2254
+f 2256//2256 2253//2250 2260//2258
+f 2253//2250 2254//2253 2257//2257
+f 2254//2253 2255//2255 2258//2259
+f 2255//2255 2256//2256 2259//2260
+f 2264//2268 2261//2261 2268//2263
+f 2261//2261 2262//2264 2265//2262
+f 2262//2264 2263//2266 2266//2265
+f 2263//2266 2264//2268 2267//2267
+f 2272//2276 2269//2269 2276//2271
+f 2269//2269 2270//2272 2273//2270
+f 2270//2272 2271//2274 2274//2273
+f 2271//2274 2272//2276 2275//2275
+f 2276//2271 2273//2270 2280//2278
+f 2273//2270 2274//2273 2277//2277
+f 2274//2273 2275//2275 2278//2279
+f 2275//2275 2276//2271 2279//2280
+f 2281//2281 2284//2284 2280//2278
+f 2282//2282 2281//2281 2277//2277
+f 2283//2283 2282//2282 2278//2279
+f 2284//2284 2283//2283 2279//2280
+f 2285//2285 2288//2288 2284//2284
+f 2286//2286 2285//2285 2281//2281
+f 2287//2287 2286//2286 2282//2282
+f 2288//2288 2287//2287 2283//2283
+f 2289//2289 2292//2292 2288//2288
+f 2290//2290 2289//2289 2285//2285
+f 2291//2291 2290//2290 2286//2286
+f 2292//2292 2291//2291 2287//2287
+f 2292//2292 2289//2289 2296//2294
+f 2289//2289 2290//2290 2293//2293
+f 2290//2290 2291//2291 2294//2295
+f 2291//2291 2292//2292 2295//2296
+f 2300//2304 2297//2297 2304//2299
+f 2297//2297 2298//2300 2301//2298
+f 2298//2300 2299//2302 2302//2301
+f 2299//2302 2300//2304 2303//2303
+f 2304//2299 2301//2298 2308//2306
+f 2301//2298 2302//2301 2305//2305
+f 2302//2301 2303//2303 2306//2307
+f 2303//2303 2304//2299 2307//2308
+f 2308//2306 2305//2305 2312//2310
+f 2305//2305 2306//2307 2309//2309
+f 2306//2307 2307//2308 2310//2311
+f 2307//2308 2308//2306 2311//2312
+f 2316//2320 2313//2313 2320//2315
+f 2313//2313 2314//2316 2317//2314
+f 2314//2316 2315//2318 2318//2317
+f 2315//2318 2316//2320 2319//2319
+f 2324//2328 2321//2321 2328//2323
+f 2321//2321 2322//2324 2325//2322
+f 2322//2324 2323//2326 2326//2325
+f 2323//2326 2324//2328 2327//2327
+f 2329//2329 2332//2332 2328//2323
+f 2330//2330 2329//2329 2325//2322
+f 2331//2331 2330//2330 2326//2325
+f 2332//2332 2331//2331 2327//2327
+f 2333//2333 2336//2336 2332//2332
+f 2334//2334 2333//2333 2329//2329
+f 2335//2335 2334//2334 2330//2330
+f 2336//2336 2335//2335 2331//2331
+f 2336//2336 2333//2333 2340//2338
+f 2333//2333 2334//2334 2337//2337
+f 2334//2334 2335//2335 2338//2339
+f 2335//2335 2336//2336 2339//2340
+f 2341//2341 2344//2344 2340//2338
+f 2342//2342 2341//2341 2337//2337
+f 2343//2343 2342//2342 2338//2339
+f 2344//2344 2343//2343 2339//2340
+f 2344//2344 2341//2341 2348//2346
+f 2341//2341 2342//2342 2345//2345
+f 2342//2342 2343//2343 2346//2347
+f 2348//2346 2347//2348 2343//2343
+f 2348//2346 2345//2345 2352//2350
+f 2345//2345 2346//2347 2349//2349
+f 2346//2347 2347//2348 2350//2351
+f 2347//2348 2348//2346 2351//2352
+f 2357//2354 2360//2360 2356//2355
+f 2358//2357 2357//2354 2353//2353
+f 2359//2359 2358//2357 2354//2356
+f 2360//2360 2359//2359 2355//2358
+f 2361//2361 2364//2364 2360//2360
+f 2362//2362 2361//2361 2357//2354
+f 2363//2363 2362//2362 2358//2357
+f 2364//2364 2363//2363 2359//2359
+f 2365//2365 2368//2368 2364//2364
+f 2361//2361 2362//2362 2365//2365
+f 2367//2367 2366//2366 2362//2362
+f 2363//2363 2364//2364 2367//2367
+f 2368//2368 2365//2365 2372//2370
+f 2365//2365 2366//2366 2369//2369
+f 2366//2366 2367//2367 2370//2371
+f 2367//2367 2368//2368 2371//2372
+f 2376//2380 2373//2373 2380//2375
+f 2378//2377 2377//2374 2373//2373
+f 2374//2376 2375//2378 2378//2377
+f 2380//2375 2379//2379 2375//2378
+f 2380//2375 2377//2374 2384//2382
+f 2377//2374 2378//2377 2381//2381
+f 2378//2377 2379//2379 2382//2383
+f 2379//2379 2380//2375 2383//2384
+f 2388//2392 2385//2385 2392//2387
+f 2385//2385 2386//2388 2389//2386
+f 2386//2388 2387//2390 2390//2389
+f 2387//2390 2388//2392 2391//2391
+f 2397//2394 2400//2400 2396//2395
+f 2398//2397 2397//2394 2393//2393
+f 2399//2399 2398//2397 2394//2396
+f 2400//2400 2399//2399 2395//2398
+f 2400//2400 2397//2394 2404//2402
+f 2397//2394 2398//2397 2401//2401
+f 2398//2397 2399//2399 2402//2403
+f 2399//2399 2400//2400 2403//2404
+f 2405//2405 2408//2408 2404//2402
+f 2406//2406 2405//2405 2401//2401
+f 2407//2407 2406//2406 2402//2403
+f 2408//2408 2407//2407 2403//2404
+f 2408//2408 2405//2405 2412//2410
+f 2405//2405 2406//2406 2409//2409
+f 2406//2406 2407//2407 2410//2411
+f 2407//2407 2408//2408 2411//2412
+f 2413//2413 2416//2416 2412//2410
+f 2414//2414 2413//2413 2409//2409
+f 2415//2415 2414//2414 2410//2411
+f 2416//2416 2415//2415 2411//2412
+f 2416//2416 2413//2413 2420//2418
+f 2413//2413 2414//2414 2417//2417
+f 2414//2414 2415//2415 2418//2419
+f 2415//2415 2416//2416 2419//2420
+f 2424//2428 2421//2421 2428//2423
+f 2421//2421 2422//2424 2425//2422
+f 2422//2424 2423//2426 2426//2425
+f 2423//2426 2424//2428 2427//2427
+f 2429//2429 2432//2432 2428//2423
+f 2425//2422 2426//2425 2429//2429
+f 2431//2431 2430//2430 2426//2425
+f 2427//2427 2428//2423 2431//2431
+f 2432//2432 2429//2429 2436//2434
+f 2429//2429 2430//2430 2433//2433
+f 2430//2430 2431//2431 2434//2435
+f 2431//2431 2432//2432 2435//2436
+f 2440//2444 2437//2437 2444//2439
+f 2437//2437 2438//2440 2441//2438
+f 2438//2440 2439//2442 2442//2441
+f 2439//2442 2440//2444 2443//2443
+f 2449//2446 2452//2452 2448//2447
+f 2450//2449 2449//2446 2445//2445
+f 2451//2451 2450//2449 2446//2448
+f 2452//2452 2451//2451 2447//2450
+f 2452//2452 2449//2446 2456//2454
+f 2449//2446 2450//2449 2453//2453
+f 2450//2449 2451//2451 2454//2455
+f 2451//2451 2452//2452 2455//2456
+f 2457//2457 2460//2460 2456//2454
+f 2458//2458 2457//2457 2453//2453
+f 2459//2459 2458//2458 2454//2455
+f 2460//2460 2459//2459 2455//2456
+f 2460//2460 2457//2457 2464//2462
+f 2457//2457 2458//2458 2461//2461
+f 2458//2458 2459//2459 2462//2463
+f 2459//2459 2460//2460 2463//2464
+f 2465//2465 2468//2468 2464//2462
+f 2466//2466 2465//2465 2461//2461
+f 2467//2467 2466//2466 2462//2463
+f 2468//2468 2467//2467 2463//2464
+f 2468//2468 2465//2465 2472//2470
+f 2465//2465 2466//2466 2469//2469
+f 2466//2466 2467//2467 2470//2471
+f 2467//2467 2468//2468 2471//2472
+f 2472//2470 2469//2469 2476//2474
+f 2469//2469 2470//2471 2473//2473
+f 2470//2471 2471//2472 2474//2475
+f 2471//2472 2472//2470 2475//2476
+f 2480//2484 2477//2477 2484//2479
+f 2477//2477 2478//2480 2481//2478
+f 2478//2480 2479//2482 2482//2481
+f 2479//2482 2480//2484 2483//2483
+f 2485//2485 2488//2488 2484//2479
+f 2486//2486 2485//2485 2481//2478
+f 2487//2487 2486//2486 2482//2481
+f 2488//2488 2487//2487 2483//2483
+f 2488//2488 2485//2485 2492//2490
+f 2490//2491 2489//2489 2485//2485
+f 2486//2486 2487//2487 2490//2491
+f 2492//2490 2491//2492 2487//2487
+f 2492//2490 2489//2489 2496//2494
+f 2489//2489 2490//2491 2493//2493
+f 2490//2491 2491//2492 2494//2495
+f 2491//2492 2492//2490 2495//2496
+f 2500//2504 2497//2497 2504//2499
+f 2497//2497 2498//2500 2501//2498
+f 2498//2500 2499//2502 2502//2501
+f 2499//2502 2500//2504 2503//2503
+f 2504//2499 2501//2498 2508//2506
+f 2501//2498 2502//2501 2505//2505
+f 2502//2501 2503//2503 2506//2507
+f 2503//2503 2504//2499 2507//2508
+f 2512//2516 2509//2509 2516//2511
+f 2509//2509 2510//2512 2513//2510
+f 2510//2512 2511//2514 2514//2513
+f 2511//2514 2512//2516 2515//2515
+f 2520//2524 2517//2517 2524//2519
+f 2517//2517 2518//2520 2521//2518
+f 2518//2520 2519//2522 2522//2521
+f 2519//2522 2520//2524 2523//2523
+f 2524//2519 2521//2518 2528//2526
+f 2521//2518 2522//2521 2525//2525
+f 2522//2521 2523//2523 2526//2527
+f 2523//2523 2524//2519 2527//2528
+f 2529//2529 2532//2532 2528//2526
+f 2530//2530 2529//2529 2525//2525
+f 2531//2531 2530//2530 2526//2527
+f 2532//2532 2531//2531 2527//2528
+f 2532//2532 2529//2529 2536//2534
+f 2529//2529 2530//2530 2533//2533
+f 2530//2530 2531//2531 2534//2535
+f 2531//2531 2532//2532 2535//2536
+f 2537//2537 2540//2540 2536//2534
+f 2538//2538 2537//2537 2533//2533
+f 2539//2539 2538//2538 2534//2535
+f 2540//2540 2539//2539 2535//2536
+f 2540//2540 2537//2537 2544//2542
+f 2537//2537 2538//2538 2541//2541
+f 2538//2538 2539//2539 2542//2543
+f 2539//2539 2540//2540 2543//2544
+f 2549//2546 2552//2552 2548//2547
+f 2550//2549 2549//2546 2545//2545
+f 2551//2551 2550//2549 2546//2548
+f 2552//2552 2551//2551 2547//2550
+f 2552//2552 2549//2546 2556//2554
+f 2549//2546 2550//2549 2553//2553
+f 2550//2549 2551//2551 2554//2555
+f 2556//2554 2555//2556 2551//2551
+f 2556//2554 2553//2553 2560//2558
+f 2553//2553 2554//2555 2557//2557
+f 2554//2555 2555//2556 2558//2559
+f 2555//2556 2556//2554 2559//2560
+f 2564//2568 2561//2561 2568//2563
+f 2561//2561 2562//2564 2565//2562
+f 2562//2564 2563//2566 2566//2565
+f 2563//2566 2564//2568 2567//2567
+f 2572//2576 2569//2569 2576//2571
+f 2569//2569 2570//2572 2573//2570
+f 2570//2572 2571//2574 2574//2573
+f 2571//2574 2572//2576 2575//2575
+f 2577//2577 2580//2580 2576//2571
+f 2578//2578 2577//2577 2573//2570
+f 2579//2579 2578//2578 2574//2573
+f 2580//2580 2579//2579 2575//2575
+f 2580//2580 2577//2577 2584//2582
+f 2577//2577 2578//2578 2581//2581
+f 2578//2578 2579//2579 2582//2583
+f 2579//2579 2580//2580 2583//2584
+f 2585//2585 2588//2588 2584//2582
+f 2586//2586 2585//2585 2581//2581
+f 2587//2587 2586//2586 2582//2583
+f 2588//2588 2587//2587 2583//2584
+f 2588//2588 2585//2585 2592//2590
+f 2585//2585 2586//2586 2589//2589
+f 2586//2586 2587//2587 2590//2591
+f 2587//2587 2588//2588 2591//2592
+f 2592//2590 2589//2589 2596//2594
+f 2589//2589 2590//2591 2593//2593
+f 2590//2591 2591//2592 2594//2595
+f 2591//2592 2592//2590 2595//2596
+f 2596//2594 2593//2593 2600//2598
+f 2593//2593 2594//2595 2597//2597
+f 2594//2595 2595//2596 2598//2599
+f 2595//2596 2596//2594 2599//2600
+f 2605//2602 2608//2608 2604//2603
+f 2606//2605 2605//2602 2601//2601
+f 2607//2607 2606//2605 2602//2604
+f 2608//2608 2607//2607 2603//2606
+f 2609//2609 2612//2612 2608//2608
+f 2610//2610 2609//2609 2605//2602
+f 2611//2611 2610//2610 2606//2605
+f 2612//2612 2611//2611 2607//2607
+f 2613//2613 2616//2616 2612//2612
+f 2609//2609 2610//2610 2613//2613
+f 2615//2615 2614//2614 2610//2610
+f 2611//2611 2612//2612 2615//2615
+f 2616//2616 2613//2613 2620//2618
+f 2613//2613 2614//2614 2617//2617
+f 2614//2614 2615//2615 2618//2619
+f 2615//2615 2616//2616 2619//2620
+f 2624//2628 2621//2621 2628//2623
+f 2626//2625 2625//2622 2621//2621
+f 2622//2624 2623//2626 2626//2625
+f 2628//2623 2627//2627 2623//2626
+f 2628//2623 2625//2622 2632//2630
+f 2625//2622 2626//2625 2629//2629
+f 2626//2625 2627//2627 2630//2631
+f 2627//2627 2628//2623 2631//2632
+f 2636//2640 2633//2633 2640//2635
+f 2633//2633 2634//2636 2637//2634
+f 2634//2636 2635//2638 2638//2637
+f 2635//2638 2636//2640 2639//2639
+f 2645//2642 2648//2648 2644//2643
+f 2646//2645 2645//2642 2641//2641
+f 2642//2644 2643//2646 2646//2645
+f 2648//2648 2647//2647 2643//2646
+f 2649//2649 2652//2652 2648//2648
+f 2645//2642 2646//2645 2649//2649
+f 2651//2651 2650//2650 2646//2645
+f 2647//2647 2648//2648 2651//2651
+f 2653//2653 2656//2656 2652//2652
+f 2649//2649 2650//2650 2653//2653
+f 2655//2655 2654//2654 2650//2650
+f 2651//2651 2652//2652 2655//2655
+f 2657//2657 2660//2660 2656//2656
+f 2653//2653 2654//2654 2657//2657
+f 2659//2659 2658//2658 2654//2654
+f 2655//2655 2656//2656 2659//2659
+f 2660//2660 2657//2657 2664//2662
+f 2662//2663 2661//2661 2657//2657
+f 2658//2658 2659//2659 2662//2663
+f 2664//2662 2663//2664 2659//2659
+f 2664//2662 2661//2661 2668//2666
+f 2661//2661 2662//2663 2665//2665
+f 2662//2663 2663//2664 2666//2667
+f 2663//2664 2664//2662 2667//2668
+f 2673//2670 2676//2676 2672//2671
+f 2669//2669 2670//2672 2673//2670
+f 2675//2675 2674//2673 2670//2672
+f 2671//2674 2672//2671 2675//2675
+f 2677//2677 2680//2680 2676//2676
+f 2673//2670 2674//2673 2677//2677
+f 2679//2679 2678//2678 2674//2673
+f 2675//2675 2676//2676 2679//2679
+f 2680//2680 2677//2677 2684//2682
+f 2677//2677 2678//2678 2681//2681
+f 2678//2678 2679//2679 2682//2683
+f 2679//2679 2680//2680 2683//2684
+f 2688//2692 2685//2685 2692//2687
+f 2685//2685 2686//2688 2689//2686
+f 2686//2688 2687//2690 2690//2689
+f 2687//2690 2688//2692 2691//2691
+f 2697//2694 2700//2700 2696//2695
+f 2698//2697 2697//2694 2693//2693
+f 2699//2699 2698//2697 2694//2696
+f 2700//2700 2699//2699 2695//2698
+f 2700//2700 2697//2694 2704//2702
+f 2697//2694 2698//2697 2701//2701
+f 2698//2697 2699//2699 2702//2703
+f 2699//2699 2700//2700 2703//2704
+f 2705//2705 2708//2708 2704//2702
+f 2706//2706 2705//2705 2701//2701
+f 2707//2707 2706//2706 2702//2703
+f 2708//2708 2707//2707 2703//2704
+f 2708//2708 2705//2705 2712//2710
+f 2705//2705 2706//2706 2709//2709
+f 2706//2706 2707//2707 2710//2711
+f 2707//2707 2708//2708 2711//2712
+f 2713//2713 2716//2716 2712//2710
+f 2714//2714 2713//2713 2709//2709
+f 2715//2715 2714//2714 2710//2711
+f 2716//2716 2715//2715 2711//2712
+f 2716//2716 2713//2713 2720//2718
+f 2713//2713 2714//2714 2717//2717
+f 2714//2714 2715//2715 2718//2719
+f 2715//2715 2716//2716 2719//2720
+f 2720//2718 2717//2717 2724//2722
+f 2717//2717 2718//2719 2721//2721
+f 2718//2719 2719//2720 2722//2723
+f 2719//2720 2720//2718 2723//2724
+f 2728//2732 2725//2725 2732//2727
+f 2730//2729 2729//2726 2725//2725
+f 2726//2728 2727//2730 2730//2729
+f 2732//2727 2731//2731 2727//2730
+f 2733//2733 2736//2736 2732//2727
+f 2729//2726 2730//2729 2733//2733
+f 2735//2735 2734//2734 2730//2729
+f 2731//2731 2732//2727 2735//2735
+f 2736//2736 2733//2733 2740//2738
+f 2733//2733 2734//2734 2737//2737
+f 2734//2734 2735//2735 2738//2739
+f 2735//2735 2736//2736 2739//2740
+f 2740//2738 2737//2737 2744//2742
+f 2737//2737 2738//2739 2741//2741
+f 2738//2739 2739//2740 2742//2743
+f 2739//2740 2740//2738 2743//2744
+f 2749//2746 2752//2752 2748//2747
+f 2750//2749 2749//2746 2745//2745
+f 2751//2751 2750//2749 2746//2748
+f 2752//2752 2751//2751 2747//2750
+f 2752//2752 2749//2746 2756//2754
+f 2749//2746 2750//2749 2753//2753
+f 2750//2749 2751//2751 2754//2755
+f 2751//2751 2752//2752 2755//2756
+f 2760//2764 2757//2757 2764//2759
+f 2757//2757 2758//2760 2761//2758
+f 2758//2760 2759//2762 2762//2761
+f 2759//2762 2760//2764 2763//2763
+f 2768//2772 2765//2765 2772//2767
+f 2765//2765 2766//2768 2769//2766
+f 2766//2768 2767//2770 2770//2769
+f 2767//2770 2768//2772 2771//2771
+f 2773//2773 2776//2776 2772//2767
+f 2774//2774 2773//2773 2769//2766
+f 2775//2775 2774//2774 2770//2769
+f 2776//2776 2775//2775 2771//2771
+f 2776//2776 2773//2773 2780//2778
+f 2773//2773 2774//2774 2777//2777
+f 2774//2774 2775//2775 2778//2779
+f 2775//2775 2776//2776 2779//2780
+f 2781//2781 2784//2784 2780//2778
+f 2782//2782 2781//2781 2777//2777
+f 2783//2783 2782//2782 2778//2779
+f 2784//2784 2783//2783 2779//2780
+f 2784//2784 2781//2781 2788//2786
+f 2781//2781 2782//2782 2785//2785
+f 2782//2782 2783//2783 2786//2787
+f 2783//2783 2784//2784 2787//2788
+f 2788//2786 2785//2785 2792//2790
+f 2785//2785 2786//2787 2789//2789
+f 2786//2787 2787//2788 2790//2791
+f 2787//2788 2788//2786 2791//2792
+f 2797//2794 2800//2800 2796//2795
+f 2793//2793 2794//2796 2797//2794
+f 2799//2799 2798//2797 2794//2796
+f 2795//2798 2796//2795 2799//2799
+f 2800//2800 2797//2794 2804//2802
+f 2802//2803 2801//2801 2797//2794
+f 2798//2797 2799//2799 2802//2803
+f 2804//2802 2803//2804 2799//2799
+f 2804//2802 2801//2801 2808//2806
+f 2801//2801 2802//2803 2805//2805
+f 2802//2803 2803//2804 2806//2807
+f 2803//2804 2804//2802 2807//2808
+f 2812//2816 2809//2809 2816//2811
+f 2809//2809 2810//2812 2813//2810
+f 2810//2812 2811//2814 2814//2813
+f 2811//2814 2812//2816 2815//2815
+f 2821//2818 2824//2824 2820//2819
+f 2817//2817 2818//2820 2821//2818
+f 2823//2823 2822//2821 2818//2820
+f 2819//2822 2820//2819 2823//2823
+f 2824//2824 2821//2818 2828//2826
+f 2826//2827 2825//2825 2821//2818
+f 2822//2821 2823//2823 2826//2827
+f 2828//2826 2827//2828 2823//2823
+f 2828//2826 2825//2825 2832//2830
+f 2830//2831 2829//2829 2825//2825
+f 2826//2827 2827//2828 2830//2831
+f 2832//2830 2831//2832 2827//2828
+f 2833//2833 2836//2836 2832//2830
+f 2829//2829 2830//2831 2833//2833
+f 2835//2835 2834//2834 2830//2831
+f 2831//2832 2832//2830 2835//2835
+f 2836//2836 2833//2833 2840//2838
+f 2838//2839 2837//2837 2833//2833
+f 2834//2834 2835//2835 2838//2839
+f 2840//2838 2839//2840 2835//2835
+f 2841//2841 2844//2844 2840//2838
+f 2837//2837 2838//2839 2841//2841
+f 2843//2843 2842//2842 2838//2839
+f 2839//2840 2840//2838 2843//2843
+f 2844//2844 2841//2841 2848//2846
+f 2841//2841 2842//2842 2845//2845
+f 2842//2842 2843//2843 2846//2847
+f 2843//2843 2844//2844 2847//2848
+f 2853//2850 2856//2856 2852//2851
+f 2854//2853 2853//2850 2849//2849
+f 2855//2855 2854//2853 2850//2852
+f 2856//2856 2855//2855 2851//2854
+f 2856//2856 2853//2850 2860//2858
+f 2853//2850 2854//2853 2857//2857
+f 2854//2853 2855//2855 2858//2859
+f 2855//2855 2856//2856 2859//2860
+f 2860//2858 2857//2857 2864//2862
+f 2862//2863 2861//2861 2857//2857
+f 2858//2859 2859//2860 2862//2863
+f 2864//2862 2863//2864 2859//2860
+f 2864//2862 2861//2861 2868//2866
+f 2861//2861 2862//2863 2865//2865
+f 2862//2863 2863//2864 2866//2867
+f 2863//2864 2864//2862 2867//2868
+f 2873//2870 2876//2876 2872//2871
+f 2869//2869 2870//2872 2873//2870
+f 2875//2875 2874//2873 2870//2872
+f 2871//2874 2872//2871 2875//2875
+f 2876//2876 2873//2870 2880//2878
+f 2873//2870 2874//2873 2877//2877
+f 2874//2873 2875//2875 2878//2879
+f 2875//2875 2876//2876 2879//2880
+f 2884//2888 2881//2881 2888//2883
+f 2881//2881 2882//2884 2885//2882
+f 2882//2884 2883//2886 2886//2885
+f 2883//2886 2884//2888 2887//2887
+f 2893//2890 2896//2896 2892//2891
+f 2894//2893 2893//2890 2889//2889
+f 2895//2895 2894//2893 2890//2892
+f 2896//2896 2895//2895 2891//2894
+f 2896//2896 2893//2890 2900//2898
+f 2893//2890 2894//2893 2897//2897
+f 2894//2893 2895//2895 2898//2899
+f 2895//2895 2896//2896 2899//2900
+f 2901//2901 2904//2904 2900//2898
+f 2902//2902 2901//2901 2897//2897
+f 2903//2903 2902//2902 2898//2899
+f 2904//2904 2903//2903 2899//2900
+f 2904//2904 2901//2901 2908//2906
+f 2901//2901 2902//2902 2905//2905
+f 2902//2902 2903//2903 2906//2907
+f 2903//2903 2904//2904 2907//2908
+f 2909//2909 2912//2912 2908//2906
+f 2910//2910 2909//2909 2905//2905
+f 2911//2911 2910//2910 2906//2907
+f 2912//2912 2911//2911 2907//2908
+f 2912//2912 2909//2909 2916//2914
+f 2909//2909 2910//2910 2913//2913
+f 2910//2910 2911//2911 2914//2915
+f 2911//2911 2912//2912 2915//2916
+f 2921//2918 2924//2924 2920//2919
+f 2922//2921 2921//2918 2917//2917
+f 2923//2923 2922//2921 2918//2920
+f 2924//2924 2923//2923 2919//2922
+f 2924//2924 2921//2918 2928//2926
+f 2921//2918 2922//2921 2925//2925
+f 2922//2921 2923//2923 2926//2927
+f 2923//2923 2924//2924 2927//2928
+f 2928//2926 2925//2925 2932//2930
+f 2925//2925 2926//2927 2929//2929
+f 2926//2927 2927//2928 2930//2931
+f 2927//2928 2928//2926 2931//2932
+f 2936//2940 2933//2933 2940//2935
+f 2933//2933 2934//2936 2937//2934
+f 2934//2936 2935//2938 2938//2937
+f 2935//2938 2936//2940 2939//2939
+f 2945//2942 2948//2948 2944//2943
+f 2946//2945 2945//2942 2941//2941
+f 2947//2947 2946//2945 2942//2944
+f 2948//2948 2947//2947 2943//2946
+f 2948//2948 2945//2942 2952//2950
+f 2945//2942 2946//2945 2949//2949
+f 2946//2945 2947//2947 2950//2951
+f 2947//2947 2948//2948 2951//2952
+f 2953//2953 2956//2956 2952//2950
+f 2954//2954 2953//2953 2949//2949
+f 2955//2955 2954//2954 2950//2951
+f 2956//2956 2955//2955 2951//2952
+f 2956//2956 2953//2953 2960//2958
+f 2953//2953 2954//2954 2957//2957
+f 2954//2954 2955//2955 2958//2959
+f 2955//2955 2956//2956 2959//2960
+f 2961//2961 2964//2964 2960//2958
+f 2962//2962 2961//2961 2957//2957
+f 2963//2963 2962//2962 2958//2959
+f 2964//2964 2963//2963 2959//2960
+f 2965//2965 2968//2968 2964//2964
+f 2966//2966 2965//2965 2961//2961
+f 2967//2967 2966//2966 2962//2962
+f 2968//2968 2967//2967 2963//2963
+f 2968//2968 2965//2965 2972//2970
+f 2965//2965 2966//2966 2969//2969
+f 2966//2966 2967//2967 2970//2971
+f 2967//2967 2968//2968 2971//2972
+f 2976//2980 2973//2973 2980//2975
+f 2978//2977 2977//2974 2973//2973
+f 2974//2976 2975//2978 2978//2977
+f 2980//2975 2979//2979 2975//2978
+f 2980//2975 2977//2974 2984//2982
+f 2982//2983 2981//2981 2977//2974
+f 2978//2977 2979//2979 2982//2983
+f 2984//2982 2983//2984 2979//2979
+f 2984//2982 2981//2981 2988//2986
+f 2981//2981 2982//2983 2985//2985
+f 2982//2983 2983//2984 2986//2987
+f 2983//2984 2984//2982 2987//2988
+f 2988//2986 2985//2985 2992//2990
+f 2985//2985 2986//2987 2989//2989
+f 2986//2987 2987//2988 2990//2991
+f 2987//2988 2988//2986 2991//2992
+f 2997//2994 3000//3000 2996//2995
+f 2993//2993 2994//2996 2997//2994
+f 2999//2999 2998//2997 2994//2996
+f 2995//2998 2996//2995 2999//2999
+f 3000//3000 2997//2994 3004//3002
+f 2997//2994 2998//2997 3001//3001
+f 2998//2997 2999//2999 3002//3003
+f 2999//2999 3000//3000 3003//3004
+f 3008//3012 3005//3005 3012//3007
+f 3005//3005 3006//3008 3009//3006
+f 3006//3008 3007//3010 3010//3009
+f 3007//3010 3008//3012 3011//3011
+f 3017//3014 3020//3020 3016//3015
+f 3013//3013 3014//3016 3017//3014
+f 3019//3019 3018//3017 3014//3016
+f 3015//3018 3016//3015 3019//3019
+f 3020//3020 3017//3014 3024//3022
+f 3022//3023 3021//3021 3017//3014
+f 3018//3017 3019//3019 3022//3023
+f 3024//3022 3023//3024 3019//3019
+f 3025//3025 3028//3028 3024//3022
+f 3021//3021 3022//3023 3025//3025
+f 3027//3027 3026//3026 3022//3023
+f 3023//3024 3024//3022 3027//3027
+f 3028//3028 3025//3025 3032//3030
+f 3030//3031 3029//3029 3025//3025
+f 3026//3026 3027//3027 3030//3031
+f 3032//3030 3031//3032 3027//3027
+f 3032//3030 3029//3029 3036//3034
+f 3034//3035 3033//3033 3029//3029
+f 3030//3031 3031//3032 3034//3035
+f 3036//3034 3035//3036 3031//3032
+f 3036//3034 3033//3033 3040//3038
+f 3033//3033 3034//3035 3037//3037
+f 3034//3035 3035//3036 3038//3039
+f 3035//3036 3036//3034 3039//3040
+f 3045//3042 3048//3048 3044//3043
+f 3041//3041 3042//3044 3045//3042
+f 3047//3047 3046//3045 3042//3044
+f 3043//3046 3044//3043 3047//3047
+f 3048//3048 3045//3042 3052//3050
+f 3050//3051 3049//3049 3045//3042
+f 3046//3045 3047//3047 3050//3051
+f 3052//3050 3051//3052 3047//3047
+f 3052//3050 3049//3049 3056//3054
+f 3049//3049 3050//3051 3053//3053
+f 3050//3051 3051//3052 3054//3055
+f 3051//3052 3052//3050 3055//3056
+f 3060//3064 3057//3057 3064//3059
+f 3057//3057 3058//3060 3061//3058
+f 3058//3060 3059//3062 3062//3061
+f 3059//3062 3060//3064 3063//3063
+f 3069//3066 3072//3072 3068//3067
+f 3070//3069 3069//3066 3065//3065
+f 3071//3071 3070//3069 3066//3068
+f 3072//3072 3071//3071 3067//3070
+f 3073//3073 3076//3076 3072//3072
+f 3074//3074 3073//3073 3069//3066
+f 3075//3075 3074//3074 3070//3069
+f 3076//3076 3075//3075 3071//3071
+f 3076//3076 3073//3073 3080//3078
+f 3073//3073 3074//3074 3077//3077
+f 3074//3074 3075//3075 3078//3079
+f 3075//3075 3076//3076 3079//3080
+f 3080//3078 3077//3077 3084//3082
+f 3077//3077 3078//3079 3081//3081
+f 3078//3079 3079//3080 3082//3083
+f 3079//3080 3080//3078 3083//3084
+f 3085//3085 3088//3088 3084//3082
+f 3086//3086 3085//3085 3081//3081
+f 3087//3087 3086//3086 3082//3083
+f 3088//3088 3087//3087 3083//3084
+f 3088//3088 3085//3085 3092//3090
+f 3085//3085 3086//3086 3089//3089
+f 3086//3086 3087//3087 3090//3091
+f 3087//3087 3088//3088 3091//3092
+f 3092//3090 3089//3089 3096//3094
+f 3089//3089 3090//3091 3093//3093
+f 3090//3091 3091//3092 3094//3095
+f 3091//3092 3092//3090 3095//3096
+f 3101//3098 3104//3104 3100//3099
+f 3102//3101 3101//3098 3097//3097
+f 3103//3103 3102//3101 3098//3100
+f 3104//3104 3103//3103 3099//3102
+f 3105//3105 3108//3108 3104//3104
+f 3106//3106 3105//3105 3101//3098
+f 3107//3107 3106//3106 3102//3101
+f 3108//3108 3107//3107 3103//3103
+f 3108//3108 3105//3105 3112//3110
+f 3110//3111 3109//3109 3105//3105
+f 3106//3106 3107//3107 3110//3111
+f 3112//3110 3111//3112 3107//3107
+f 3112//3110 3109//3109 3116//3114
+f 3109//3109 3110//3111 3113//3113
+f 3110//3111 3111//3112 3114//3115
+f 3111//3112 3112//3110 3115//3116
+f 3120//3124 3117//3117 3124//3119
+f 3122//3121 3121//3118 3117//3117
+f 3118//3120 3119//3122 3122//3121
+f 3124//3119 3123//3123 3119//3122
+f 3124//3119 3121//3118 3128//3126
+f 3121//3118 3122//3121 3125//3125
+f 3122//3121 3123//3123 3126//3127
+f 3123//3123 3124//3119 3127//3128
+f 3132//3136 3129//3129 3136//3131
+f 3129//3129 3130//3132 3133//3130
+f 3130//3132 3131//3134 3134//3133
+f 3131//3134 3132//3136 3135//3135
+f 3140//3144 3137//3137 3144//3139
+f 3137//3137 3138//3140 3141//3138
+f 3138//3140 3139//3142 3142//3141
+f 3139//3142 3140//3144 3143//3143
+f 3144//3139 3141//3138 3148//3146
+f 3141//3138 3142//3141 3145//3145
+f 3142//3141 3143//3143 3146//3147
+f 3143//3143 3144//3139 3147//3148
+f 3148//3146 3145//3145 3152//3150
+f 3145//3145 3146//3147 3149//3149
+f 3146//3147 3147//3148 3150//3151
+f 3147//3148 3148//3146 3151//3152
+f 3153//3153 3156//3156 3152//3150
+f 3149//3149 3150//3151 3153//3153
+f 3155//3155 3154//3154 3150//3151
+f 3151//3152 3152//3150 3155//3155
+f 3157//3157 3160//3160 3156//3156
+f 3153//3153 3154//3154 3157//3157
+f 3159//3159 3158//3158 3154//3154
+f 3155//3155 3156//3156 3159//3159
+f 3160//3160 3157//3157 3164//3162
+f 3157//3157 3158//3158 3161//3161
+f 3158//3158 3159//3159 3162//3163
+f 3159//3159 3160//3160 3163//3164
+f 3168//3172 3165//3165 3172//3167
+f 3170//3169 3169//3166 3165//3165
+f 3166//3168 3167//3170 3170//3169
+f 3172//3167 3171//3171 3167//3170
+f 3173//3173 3176//3176 3172//3167
+f 3169//3166 3170//3169 3173//3173
+f 3175//3175 3174//3174 3170//3169
+f 3171//3171 3172//3167 3175//3175
+f 3176//3176 3173//3173 3180//3178
+f 3173//3173 3174//3174 3177//3177
+f 3174//3174 3175//3175 3178//3179
+f 3175//3175 3176//3176 3179//3180
+f 3184//3188 3181//3181 3188//3183
+f 3181//3181 3182//3184 3185//3182
+f 3182//3184 3183//3186 3186//3185
+f 3183//3186 3184//3188 3187//3187
+f 3193//3190 3196//3196 3192//3191
+f 3194//3193 3193//3190 3189//3189
+f 3195//3195 3194//3193 3190//3192
+f 3196//3196 3195//3195 3191//3194
+f 3196//3196 3193//3190 3200//3198
+f 3193//3190 3194//3193 3197//3197
+f 3194//3193 3195//3195 3198//3199
+f 3195//3195 3196//3196 3199//3200
+f 3201//3201 3204//3204 3200//3198
+f 3202//3202 3201//3201 3197//3197
+f 3203//3203 3202//3202 3198//3199
+f 3204//3204 3203//3203 3199//3200
+f 3205//3205 3208//3208 3204//3204
+f 3206//3206 3205//3205 3201//3201
+f 3207//3207 3206//3206 3202//3202
+f 3208//3208 3207//3207 3203//3203
+f 3209//3209 3212//3212 3208//3208
+f 3210//3210 3209//3209 3205//3205
+f 3211//3211 3210//3210 3206//3206
+f 3212//3212 3211//3211 3207//3207
+f 3212//3212 3209//3209 3216//3214
+f 3209//3209 3210//3210 3213//3213
+f 3210//3210 3211//3211 3214//3215
+f 3211//3211 3212//3212 3215//3216
+f 3216//3214 3213//3213 3220//3218
+f 3213//3213 3214//3215 3217//3217
+f 3214//3215 3215//3216 3218//3219
+f 3215//3216 3216//3214 3219//3220
+f 3224//3228 3221//3221 3228//3223
+f 3226//3225 3225//3222 3221//3221
+f 3222//3224 3223//3226 3226//3225
+f 3228//3223 3227//3227 3223//3226
+f 3228//3223 3225//3222 3232//3230
+f 3230//3231 3229//3229 3225//3222
+f 3226//3225 3227//3227 3230//3231
+f 3232//3230 3231//3232 3227//3227
+f 3233//3233 3236//3236 3232//3230
+f 3229//3229 3230//3231 3233//3233
+f 3235//3235 3234//3234 3230//3231
+f 3231//3232 3232//3230 3235//3235
+f 3236//3236 3233//3233 3240//3238
+f 3233//3233 3234//3234 3237//3237
+f 3234//3234 3235//3235 3238//3239
+f 3235//3235 3236//3236 3239//3240
+f 3244//3248 3241//3241 3248//3243
+f 3246//3245 3245//3242 3241//3241
+f 3242//3244 3243//3246 3246//3245
+f 3248//3243 3247//3247 3243//3246
+f 3248//3243 3245//3242 3252//3250
+f 3245//3242 3246//3245 3249//3249
+f 3246//3245 3247//3247 3250//3251
+f 3247//3247 3248//3243 3251//3252
+f 3256//3260 3253//3253 3260//3255
+f 3253//3253 3254//3256 3257//3254
+f 3254//3256 3255//3258 3258//3257
+f 3255//3258 3256//3260 3259//3259
+f 3264//3268 3261//3261 3268//3263
+f 3261//3261 3262//3264 3265//3262
+f 3262//3264 3263//3266 3266//3265
+f 3263//3266 3264//3268 3267//3267
+f 3268//3263 3265//3262 3272//3270
+f 3265//3262 3266//3265 3269//3269
+f 3266//3265 3267//3267 3270//3271
+f 3272//3270 3271//3272 3267//3267
+f 3273//3273 3276//3276 3272//3270
+f 3274//3274 3273//3273 3269//3269
+f 3275//3275 3274//3274 3270//3271
+f 3271//3272 3272//3270 3275//3275
+f 3276//3276 3273//3273 3280//3278
+f 3278//3279 3277//3277 3273//3273
+f 3274//3274 3275//3275 3278//3279
+f 3280//3278 3279//3280 3275//3275
+f 3281//3281 3284//3284 3280//3278
+f 3277//3277 3278//3279 3281//3281
+f 3283//3283 3282//3282 3278//3279
+f 3279//3280 3280//3278 3283//3283
+f 3284//3284 3281//3281 3288//3286
+f 3281//3281 3282//3282 3285//3285
+f 3282//3282 3283//3283 3286//3287
+f 3283//3283 3284//3284 3287//3288
+f 3292//3296 3289//3289 3296//3291
+f 3289//3289 3290//3292 3293//3290
+f 3290//3292 3291//3294 3294//3293
+f 3291//3294 3292//3296 3295//3295
+f 3296//3291 3293//3290 3300//3298
+f 3293//3290 3294//3293 3297//3297
+f 3294//3293 3295//3295 3298//3299
+f 3295//3295 3296//3291 3299//3300
+f 3300//3298 3297//3297 3304//3302
+f 3297//3297 3298//3299 3301//3301
+f 3298//3299 3299//3300 3302//3303
+f 3299//3300 3300//3298 3303//3304
+f 3308//3312 3305//3305 3312//3307
+f 3305//3305 3306//3308 3309//3306
+f 3306//3308 3307//3310 3310//3309
+f 3307//3310 3308//3312 3311//3311
+f 3317//3314 3320//3320 3316//3315
+f 3313//3313 3314//3316 3317//3314
+f 3319//3319 3318//3317 3314//3316
+f 3315//3318 3316//3315 3319//3319
+f 3321//3321 3324//3324 3320//3320
+f 3317//3314 3318//3317 3321//3321
+f 3323//3323 3322//3322 3318//3317
+f 3319//3319 3320//3320 3323//3323
+f 3324//3324 3321//3321 3328//3326
+f 3326//3327 3325//3325 3321//3321
+f 3322//3322 3323//3323 3326//3327
+f 3328//3326 3327//3328 3323//3323
+f 3328//3326 3325//3325 3332//3330
+f 3330//3331 3329//3329 3325//3325
+f 3326//3327 3327//3328 3330//3331
+f 3332//3330 3331//3332 3327//3328
+f 3332//3330 3329//3329 3336//3334
+f 3334//3335 3333//3333 3329//3329
+f 3330//3331 3331//3332 3334//3335
+f 3336//3334 3335//3336 3331//3332
+f 3337//3337 3340//3340 3336//3334
+f 3333//3333 3334//3335 3337//3337
+f 3339//3339 3338//3338 3334//3335
+f 3335//3336 3336//3334 3339//3339
+f 3340//3340 3337//3337 3344//3342
+f 3337//3337 3338//3338 3341//3341
+f 3338//3338 3339//3339 3342//3343
+f 3339//3339 3340//3340 3343//3344
+f 3349//3346 3352//3352 3348//3347
+f 3350//3349 3349//3346 3345//3345
+f 3351//3351 3350//3349 3346//3348
+f 3352//3352 3351//3351 3347//3350
+f 3352//3352 3349//3346 3356//3354
+f 3349//3346 3350//3349 3353//3353
+f 3350//3349 3351//3351 3354//3355
+f 3351//3351 3352//3352 3355//3356
+f 3356//3354 3353//3353 3360//3358
+f 3353//3353 3354//3355 3357//3357
+f 3354//3355 3355//3356 3358//3359
+f 3355//3356 3356//3354 3359//3360
+f 3360//3358 3357//3357 3364//3362
+f 3357//3357 3358//3359 3361//3361
+f 3358//3359 3359//3360 3362//3363
+f 3359//3360 3360//3358 3363//3364
+f 3369//3366 3372//3372 3368//3367
+f 3370//3369 3369//3366 3365//3365
+f 3371//3371 3370//3369 3366//3368
+f 3372//3372 3371//3371 3367//3370
+f 3372//3372 3369//3366 3376//3374
+f 3369//3366 3370//3369 3373//3373
+f 3370//3369 3371//3371 3374//3375
+f 3371//3371 3372//3372 3375//3376
+f 3380//3384 3377//3377 3384//3379
+f 3377//3377 3378//3380 3381//3378
+f 3378//3380 3379//3382 3382//3381
+f 3379//3382 3380//3384 3383//3383
+f 3388//3392 3385//3385 3392//3387
+f 3385//3385 3386//3388 3389//3386
+f 3386//3388 3387//3390 3390//3389
+f 3387//3390 3388//3392 3391//3391
+f 3393//3393 3396//3396 3392//3387
+f 3394//3394 3393//3393 3389//3386
+f 3395//3395 3394//3394 3390//3389
+f 3396//3396 3395//3395 3391//3391
+f 3397//3397 3400//3400 3396//3396
+f 3398//3398 3397//3397 3393//3393
+f 3399//3399 3398//3398 3394//3394
+f 3400//3400 3399//3399 3395//3395
+f 3401//3401 3404//3404 3400//3400
+f 3402//3402 3401//3401 3397//3397
+f 3403//3403 3402//3402 3398//3398
+f 3404//3404 3403//3403 3399//3399
+f 3404//3404 3401//3401 3408//3406
+f 3401//3401 3402//3402 3405//3405
+f 3402//3402 3403//3403 3406//3407
+f 3403//3403 3404//3404 3407//3408
+f 3408//3406 3405//3405 3412//3410
+f 3405//3405 3406//3407 3409//3409
+f 3406//3407 3407//3408 3410//3411
+f 3407//3408 3408//3406 3411//3412
+f 3417//3414 3420//3420 3416//3415
+f 3413//3413 3414//3416 3417//3414
+f 3419//3419 3418//3417 3414//3416
+f 3415//3418 3416//3415 3419//3419
+f 3420//3420 3417//3414 3424//3422
+f 3422//3423 3421//3421 3417//3414
+f 3418//3417 3419//3419 3422//3423
+f 3424//3422 3423//3424 3419//3419
+f 3424//3422 3421//3421 3428//3426
+f 3421//3421 3422//3423 3425//3425
+f 3422//3423 3423//3424 3426//3427
+f 3423//3424 3424//3422 3427//3428
+f 3432//3436 3429//3429 3436//3431
+f 3429//3429 3430//3432 3433//3430
+f 3430//3432 3431//3434 3434//3433
+f 3431//3434 3432//3436 3435//3435
+f 3441//3438 3444//3444 3440//3439
+f 3442//3441 3441//3438 3437//3437
+f 3443//3443 3442//3441 3438//3440
+f 3444//3444 3443//3443 3439//3442
+f 3444//3444 3441//3438 3448//3446
+f 3441//3438 3442//3441 3445//3445
+f 3442//3441 3443//3443 3446//3447
+f 3443//3443 3444//3444 3447//3448
+f 3448//3446 3445//3445 3452//3450
+f 3445//3445 3446//3447 3449//3449
+f 3446//3447 3447//3448 3450//3451
+f 3447//3448 3448//3446 3451//3452
+f 3453//3453 3456//3456 3452//3450
+f 3454//3454 3453//3453 3449//3449
+f 3455//3455 3454//3454 3450//3451
+f 3456//3456 3455//3455 3451//3452
+f 3457//3457 3460//3460 3456//3456
+f 3458//3458 3457//3457 3453//3453
+f 3459//3459 3458//3458 3454//3454
+f 3460//3460 3459//3459 3455//3455
+f 3461//3461 3464//3464 3460//3460
+f 3462//3462 3461//3461 3457//3457
+f 3463//3463 3462//3462 3458//3458
+f 3464//3464 3463//3463 3459//3459
+f 3464//3464 3461//3461 3468//3466
+f 3461//3461 3462//3462 3465//3465
+f 3462//3462 3463//3463 3466//3467
+f 3463//3463 3464//3464 3467//3468
+f 3473//3470 3476//3476 3472//3471
+f 3474//3473 3473//3470 3469//3469
+f 3475//3475 3474//3473 3470//3472
+f 3476//3476 3475//3475 3471//3474
+f 3476//3476 3473//3470 3480//3478
+f 3473//3470 3474//3473 3477//3477
+f 3474//3473 3475//3475 3478//3479
+f 3475//3475 3476//3476 3479//3480
+f 3480//3478 3477//3477 3484//3482
+f 3482//3483 3481//3481 3477//3477
+f 3478//3479 3479//3480 3482//3483
+f 3484//3482 3483//3484 3479//3480
+f 3484//3482 3481//3481 3488//3486
+f 3481//3481 3482//3483 3485//3485
+f 3482//3483 3483//3484 3486//3487
+f 3483//3484 3484//3482 3487//3488
+f 3492//3496 3489//3489 3496//3491
+f 3489//3489 3490//3492 3493//3490
+f 3490//3492 3491//3494 3494//3493
+f 3491//3494 3492//3496 3495//3495
+f 3496//3491 3493//3490 3500//3498
+f 3493//3490 3494//3493 3497//3497
+f 3494//3493 3495//3495 3498//3499
+f 3495//3495 3496//3491 3499//3500
+f 3504//3508 3501//3501 3508//3503
+f 3501//3501 3502//3504 3505//3502
+f 3502//3504 3503//3506 3506//3505
+f 3503//3506 3504//3508 3507//3507
+f 3513//3510 3516//3516 3512//3511
+f 3509//3509 3510//3512 3513//3510
+f 3515//3515 3514//3513 3510//3512
+f 3511//3514 3512//3511 3515//3515
+f 3517//3517 3520//3520 3516//3516
+f 3513//3510 3514//3513 3517//3517
+f 3519//3519 3518//3518 3514//3513
+f 3515//3515 3516//3516 3519//3519
+f 3520//3520 3517//3517 3524//3522
+f 3522//3523 3521//3521 3517//3517
+f 3518//3518 3519//3519 3522//3523
+f 3524//3522 3523//3524 3519//3519
+f 3524//3522 3521//3521 3528//3526
+f 3526//3527 3525//3525 3521//3521
+f 3522//3523 3523//3524 3526//3527
+f 3528//3526 3527//3528 3523//3524
+f 3529//3529 3532//3532 3528//3526
+f 3525//3525 3526//3527 3529//3529
+f 3531//3531 3530//3530 3526//3527
+f 3527//3528 3528//3526 3531//3531
+f 3532//3532 3529//3529 3536//3534
+f 3529//3529 3530//3530 3533//3533
+f 3530//3530 3531//3531 3534//3535
+f 3531//3531 3532//3532 3535//3536
+f 3541//3538 3544//3544 3540//3539
+f 3537//3537 3538//3540 3541//3538
+f 3543//3543 3542//3541 3538//3540
+f 3539//3542 3540//3539 3543//3543
+f 3544//3544 3541//3538 3548//3546
+f 3546//3547 3545//3545 3541//3538
+f 3542//3541 3543//3543 3546//3547
+f 3548//3546 3547//3548 3543//3543
+f 3548//3546 3545//3545 3552//3550
+f 3545//3545 3546//3547 3549//3549
+f 3546//3547 3547//3548 3550//3551
+f 3547//3548 3548//3546 3551//3552
+f 3556//3560 3553//3553 3560//3555
+f 3553//3553 3554//3556 3557//3554
+f 3554//3556 3555//3558 3558//3557
+f 3555//3558 3556//3560 3559//3559
+f 3564//3568 3561//3561 3568//3563
+f 3561//3561 3562//3564 3565//3562
+f 3562//3564 3563//3566 3566//3565
+f 3563//3566 3564//3568 3567//3567
+f 3568//3563 3565//3562 3572//3570
+f 3565//3562 3566//3565 3569//3569
+f 3566//3565 3567//3567 3570//3571
+f 3567//3567 3568//3563 3571//3572
+f 3572//3570 3569//3569 3576//3574
+f 3569//3569 3570//3571 3573//3573
+f 3570//3571 3571//3572 3574//3575
+f 3571//3572 3572//3570 3575//3576
+f 3577//3577 3580//3580 3576//3574
+f 3578//3578 3577//3577 3573//3573
+f 3579//3579 3578//3578 3574//3575
+f 3580//3580 3579//3579 3575//3576
+f 3580//3580 3577//3577 3584//3582
+f 3577//3577 3578//3578 3581//3581
+f 3578//3578 3579//3579 3582//3583
+f 3579//3579 3580//3580 3583//3584
+f 3585//3585 3588//3588 3584//3582
+f 3586//3586 3585//3585 3581//3581
+f 3587//3587 3586//3586 3582//3583
+f 3588//3588 3587//3587 3583//3584
+f 3588//3588 3585//3585 3592//3590
+f 3585//3585 3586//3586 3589//3589
+f 3586//3586 3587//3587 3590//3591
+f 3587//3587 3588//3588 3591//3592
+f 3596//3600 3593//3593 3600//3595
+f 3593//3593 3594//3596 3597//3594
+f 3594//3596 3595//3598 3598//3597
+f 3595//3598 3596//3600 3599//3599
+f 3601//3601 3604//3604 3600//3595
+f 3597//3594 3598//3597 3601//3601
+f 3603//3603 3602//3602 3598//3597
+f 3599//3599 3600//3595 3603//3603
+f 3605//3605 3608//3608 3604//3604
+f 3601//3601 3602//3602 3605//3605
+f 3607//3607 3606//3606 3602//3602
+f 3603//3603 3604//3604 3607//3607
+f 3608//3608 3605//3605 3612//3610
+f 3605//3605 3606//3606 3609//3609
+f 3606//3606 3607//3607 3610//3611
+f 3607//3607 3608//3608 3611//3612
+f 3616//3620 3613//3613 3620//3615
+f 3618//3617 3617//3614 3613//3613
+f 3614//3616 3615//3618 3618//3617
+f 3620//3615 3619//3619 3615//3618
+f 3620//3615 3617//3614 3624//3622
+f 3617//3614 3618//3617 3621//3621
+f 3618//3617 3619//3619 3622//3623
+f 3619//3619 3620//3615 3623//3624
+f 3628//3632 3625//3625 3632//3627
+f 3625//3625 3626//3628 3629//3626
+f 3626//3628 3627//3630 3630//3629
+f 3627//3630 3628//3632 3631//3631
+f 3637//3634 3640//3640 3636//3635
+f 3638//3637 3637//3634 3633//3633
+f 3639//3639 3638//3637 3634//3636
+f 3640//3640 3639//3639 3635//3638
+f 3640//3640 3637//3634 3644//3642
+f 3637//3634 3638//3637 3641//3641
+f 3638//3637 3639//3639 3642//3643
+f 3639//3639 3640//3640 3643//3644
+f 3645//3645 3648//3648 3644//3642
+f 3646//3646 3645//3645 3641//3641
+f 3647//3647 3646//3646 3642//3643
+f 3648//3648 3647//3647 3643//3644
+f 3649//3649 3652//3652 3648//3648
+f 3650//3650 3649//3649 3645//3645
+f 3651//3651 3650//3650 3646//3646
+f 3652//3652 3651//3651 3647//3647
+f 3652//3652 3649//3649 3656//3654
+f 3649//3649 3650//3650 3653//3653
+f 3650//3650 3651//3651 3654//3655
+f 3656//3654 3655//3656 3651//3651
+f 3656//3654 3653//3653 3660//3658
+f 3653//3653 3654//3655 3657//3657
+f 3654//3655 3655//3656 3658//3659
+f 3655//3656 3656//3654 3659//3660
+f 3664//3668 3661//3661 3668//3663
+f 3661//3661 3662//3664 3665//3662
+f 3662//3664 3663//3666 3666//3665
+f 3663//3666 3664//3668 3667//3667
+f 3669//3669 3672//3672 3668//3663
+f 3670//3670 3669//3669 3665//3662
+f 3671//3671 3670//3670 3666//3665
+f 3672//3672 3671//3671 3667//3667
+f 3672//3672 3669//3669 3676//3674
+f 3669//3669 3670//3670 3673//3673
+f 3670//3670 3671//3671 3674//3675
+f 3671//3671 3672//3672 3675//3676
+f 3680//3684 3677//3677 3684//3679
+f 3677//3677 3678//3680 3681//3678
+f 3678//3680 3679//3682 3682//3681
+f 3679//3682 3680//3684 3683//3683
+f 3689//3686 3692//3692 3688//3687
+f 3690//3689 3689//3686 3685//3685
+f 3691//3691 3690//3689 3686//3688
+f 3692//3692 3691//3691 3687//3690
+f 3692//3692 3689//3686 3696//3694
+f 3689//3686 3690//3689 3693//3693
+f 3690//3689 3691//3691 3694//3695
+f 3691//3691 3692//3692 3695//3696
+f 3697//3697 3700//3700 3696//3694
+f 3698//3698 3697//3697 3693//3693
+f 3699//3699 3698//3698 3694//3695
+f 3700//3700 3699//3699 3695//3696
+f 3701//3701 3704//3704 3700//3700
+f 3702//3702 3701//3701 3697//3697
+f 3703//3703 3702//3702 3698//3698
+f 3704//3704 3703//3703 3699//3699
+f 3705//3705 3708//3708 3704//3704
+f 3706//3706 3705//3705 3701//3701
+f 3707//3707 3706//3706 3702//3702
+f 3708//3708 3707//3707 3703//3703
+f 3708//3708 3705//3705 3712//3710
+f 3705//3705 3706//3706 3709//3709
+f 3706//3706 3707//3707 3710//3711
+f 3707//3707 3708//3708 3711//3712
+f 3712//3710 3709//3709 3716//3714
+f 3709//3709 3710//3711 3713//3713
+f 3710//3711 3711//3712 3714//3715
+f 3711//3712 3712//3710 3715//3716
+f 3721//3718 3724//3724 3720//3719
+f 3722//3721 3721//3718 3717//3717
+f 3723//3723 3722//3721 3718//3720
+f 3724//3724 3723//3723 3719//3722
+f 3724//3724 3721//3718 3728//3726
+f 3721//3718 3722//3721 3725//3725
+f 3722//3721 3723//3723 3726//3727
+f 3723//3723 3724//3724 3727//3728
+f 3729//3729 3732//3732 3728//3726
+f 3725//3725 3726//3727 3729//3729
+f 3731//3731 3730//3730 3726//3727
+f 3727//3728 3728//3726 3731//3731
+f 3732//3732 3729//3729 3736//3734
+f 3729//3729 3730//3730 3733//3733
+f 3730//3730 3731//3731 3734//3735
+f 3731//3731 3732//3732 3735//3736
+f 3741//3738 3744//3744 3740//3739
+f 3742//3741 3741//3738 3737//3737
+f 3743//3743 3742//3741 3738//3740
+f 3744//3744 3743//3743 3739//3742
+f 3744//3744 3741//3738 3748//3746
+f 3741//3738 3742//3741 3745//3745
+f 3742//3741 3743//3743 3746//3747
+f 3743//3743 3744//3744 3747//3748
+f 3752//3756 3749//3749 3756//3751
+f 3749//3749 3750//3752 3753//3750
+f 3750//3752 3751//3754 3754//3753
+f 3751//3754 3752//3756 3755//3755
+f 3761//3758 3764//3764 3760//3759
+f 3762//3761 3761//3758 3757//3757
+f 3763//3763 3762//3761 3758//3760
+f 3764//3764 3763//3763 3759//3762
+f 3765//3765 3768//3768 3764//3764
+f 3761//3758 3762//3761 3765//3765
+f 3767//3767 3766//3766 3762//3761
+f 3763//3763 3764//3764 3767//3767
+f 3769//3769 3772//3772 3768//3768
+f 3765//3765 3766//3766 3769//3769
+f 3771//3771 3770//3770 3766//3766
+f 3767//3767 3768//3768 3771//3771
+f 3772//3772 3769//3769 3776//3774
+f 3774//3775 3773//3773 3769//3769
+f 3770//3770 3771//3771 3774//3775
+f 3776//3774 3775//3776 3771//3771
+f 3777//3777 3780//3780 3776//3774
+f 3773//3773 3774//3775 3777//3777
+f 3779//3779 3778//3778 3774//3775
+f 3775//3776 3776//3774 3779//3779
+f 3780//3780 3777//3777 3784//3782
+f 3777//3777 3778//3778 3781//3781
+f 3778//3778 3779//3779 3782//3783
+f 3779//3779 3780//3780 3783//3784
+f 3788//3792 3785//3785 3792//3787
+f 3785//3785 3786//3788 3789//3786
+f 3786//3788 3787//3790 3790//3789
+f 3787//3790 3788//3792 3791//3791
+f 3792//3787 3789//3786 3796//3794
+f 3789//3786 3790//3789 3793//3793
+f 3790//3789 3791//3791 3794//3795
+f 3791//3791 3792//3787 3795//3796
+f 3796//3794 3793//3793 3800//3798
+f 3793//3793 3794//3795 3797//3797
+f 3794//3795 3795//3796 3798//3799
+f 3795//3796 3796//3794 3799//3800
+f 3804//3808 3801//3801 3808//3803
+f 3801//3801 3802//3804 3805//3802
+f 3802//3804 3803//3806 3806//3805
+f 3803//3806 3804//3808 3807//3807
+f 3813//3810 3816//3816 3812//3811
+f 3814//3813 3813//3810 3809//3809
+f 3815//3815 3814//3813 3810//3812
+f 3816//3816 3815//3815 3811//3814
+f 3817//3817 3820//3820 3816//3816
+f 3818//3818 3817//3817 3813//3810
+f 3819//3819 3818//3818 3814//3813
+f 3820//3820 3819//3819 3815//3815
+f 3821//3821 3824//3824 3820//3820
+f 3822//3822 3821//3821 3817//3817
+f 3823//3823 3822//3822 3818//3818
+f 3824//3824 3823//3823 3819//3819
+f 3825//3825 3828//3828 3824//3824
+f 3826//3826 3825//3825 3821//3821
+f 3827//3827 3826//3826 3822//3822
+f 3828//3828 3827//3827 3823//3823
+f 3828//3828 3825//3825 3832//3830
+f 3825//3825 3826//3826 3829//3829
+f 3826//3826 3827//3827 3830//3831
+f 3827//3827 3828//3828 3831//3832
+f 3833//3833 3836//3836 3832//3830
+f 3834//3834 3833//3833 3829//3829
+f 3835//3835 3834//3834 3830//3831
+f 3836//3836 3835//3835 3831//3832
+f 3836//3836 3833//3833 3840//3838
+f 3833//3833 3834//3834 3837//3837
+f 3834//3834 3835//3835 3838//3839
+f 3835//3835 3836//3836 3839//3840
+f 3845//3842 3848//3848 3844//3843
+f 3841//3841 3842//3844 3845//3842
+f 3847//3847 3846//3845 3842//3844
+f 3843//3846 3844//3843 3847//3847
+f 3848//3848 3845//3842 3852//3850
+f 3850//3851 3849//3849 3845//3842
+f 3846//3845 3847//3847 3850//3851
+f 3852//3850 3851//3852 3847//3847
+f 3852//3850 3849//3849 3856//3854
+f 3849//3849 3850//3851 3853//3853
+f 3850//3851 3851//3852 3854//3855
+f 3851//3852 3852//3850 3855//3856
+f 3856//3854 3853//3853 3860//3858
+f 3853//3853 3854//3855 3857//3857
+f 3854//3855 3855//3856 3858//3859
+f 3855//3856 3856//3854 3859//3860
+f 3865//3862 3868//3868 3864//3863
+f 3861//3861 3862//3864 3865//3862
+f 3867//3867 3866//3865 3862//3864
+f 3863//3866 3864//3863 3867//3867
+f 3868//3868 3865//3862 3872//3870
+f 3865//3862 3866//3865 3869//3869
+f 3866//3865 3867//3867 3870//3871
+f 3867//3867 3868//3868 3871//3872
+f 3876//3880 3873//3873 3880//3875
+f 3873//3873 3874//3876 3877//3874
+f 3874//3876 3875//3878 3878//3877
+f 3875//3878 3876//3880 3879//3879

+ 14 - 0
examples/16-shadowmaps/varying.def.sc

@@ -0,0 +1,14 @@
+vec2 v_texcoord0   : TEXCOORD0 = vec2(0.0, 0.0);
+vec4 v_texcoord1   : TEXCOORD1 = vec4(0.0, 0.0, 0.0, 0.0);
+vec4 v_texcoord2   : TEXCOORD2 = vec4(0.0, 0.0, 0.0, 0.0);
+vec4 v_texcoord3   : TEXCOORD3 = vec4(0.0, 0.0, 0.0, 0.0);
+vec4 v_texcoord4   : TEXCOORD4 = vec4(0.0, 0.0, 0.0, 0.0);
+vec3 v_view        : TEXCOORD5 = vec3(0.0, 0.0, 0.0);
+vec4 v_shadowcoord : TEXCOORD6 = vec4(0.0, 0.0, 0.0, 0.0);
+vec4 v_position    : TEXCOORD7 = vec4(0.0, 0.0, 0.0, 0.0);
+vec3 v_normal      : NORMAL    = vec3(0.0, 0.0, 1.0);
+float v_depth      : FOG       = 0.0;
+
+vec3 a_position  : POSITION;
+vec4 a_normal    : NORMAL;
+vec2 a_texcoord0 : TEXCOORD0;

+ 13 - 0
examples/16-shadowmaps/vs_shadowmaps_color.sc

@@ -0,0 +1,13 @@
+$input a_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+}

+ 25 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning.sc

@@ -0,0 +1,25 @@
+$input a_position, a_normal
+$output  v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+uniform mat4 u_lightMtx;
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec3 posOffset = a_position + normal.xyz * u_shadowMapOffset;
+	v_shadowcoord = mul(u_lightMtx, vec4(posOffset, 1.0) );
+}

+ 36 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning_csm.sc

@@ -0,0 +1,36 @@
+$input a_position, a_normal
+$output v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4 
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y 
+
+uniform mat4 u_lightMtx;
+uniform mat4 u_shadowMapMtx0;
+uniform mat4 u_shadowMapMtx1;
+uniform mat4 u_shadowMapMtx2;
+uniform mat4 u_shadowMapMtx3;
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec4 posOffset = vec4(a_position + normal.xyz * u_shadowMapOffset, 1.0);
+	v_position = mul(u_modelView, posOffset);
+
+	vec4 wpos = vec4(mul(u_model[0], posOffset).xyz, 1.0);
+	v_texcoord1 = mul(u_shadowMapMtx0, wpos);
+	v_texcoord2 = mul(u_shadowMapMtx1, wpos);
+	v_texcoord3 = mul(u_shadowMapMtx2, wpos);
+	v_texcoord4 = mul(u_shadowMapMtx3, wpos);
+}

+ 26 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear.sc

@@ -0,0 +1,26 @@
+$input a_position, a_normal, a_texcoord0
+$output  v_normal, v_view, v_shadowcoord
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+uniform mat4 u_lightMtx;
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec3 posOffset = a_position + normal.xyz * u_shadowMapOffset;
+	v_shadowcoord = mul(u_lightMtx, vec4(posOffset, 1.0) ); 
+	v_shadowcoord.z += 0.5;
+}

+ 41 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear_csm.sc

@@ -0,0 +1,41 @@
+$input a_position, a_normal
+$output v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4 
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y 
+
+uniform mat4 u_lightMtx;
+uniform mat4 u_shadowMapMtx0;
+uniform mat4 u_shadowMapMtx1;
+uniform mat4 u_shadowMapMtx2;
+uniform mat4 u_shadowMapMtx3;
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec4 posOffset = vec4(a_position + normal.xyz * u_shadowMapOffset, 1.0);
+	v_position = mul(u_modelView, posOffset);
+
+	vec4 wpos = vec4(mul(u_model[0], posOffset).xyz, 1.0);
+	v_texcoord1 = mul(u_shadowMapMtx0, wpos);
+	v_texcoord2 = mul(u_shadowMapMtx1, wpos);
+	v_texcoord3 = mul(u_shadowMapMtx2, wpos);
+	v_texcoord4 = mul(u_shadowMapMtx3, wpos);
+
+	v_texcoord1.z += 0.5;
+	v_texcoord2.z += 0.5;
+	v_texcoord3.z += 0.5;
+	v_texcoord4.z += 0.5;
+}

+ 40 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning_linear_omni.sc

@@ -0,0 +1,40 @@
+$input a_position, a_normal
+$output v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4 
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y 
+
+uniform mat4 u_lightMtx;
+uniform mat4 u_shadowMapMtx0;
+uniform mat4 u_shadowMapMtx1;
+uniform mat4 u_shadowMapMtx2;
+uniform mat4 u_shadowMapMtx3;
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec4 posOffset = vec4(a_position + normal.xyz * u_shadowMapOffset, 1.0);
+	v_position = mul(u_lightMtx, posOffset);
+
+	v_texcoord1 = mul(u_shadowMapMtx0, v_position);
+	v_texcoord2 = mul(u_shadowMapMtx1, v_position);
+	v_texcoord3 = mul(u_shadowMapMtx2, v_position);
+	v_texcoord4 = mul(u_shadowMapMtx3, v_position);
+
+	v_texcoord1.z += 0.5;
+	v_texcoord2.z += 0.5;
+	v_texcoord3.z += 0.5;
+	v_texcoord4.z += 0.5;
+}

+ 35 - 0
examples/16-shadowmaps/vs_shadowmaps_color_lightning_omni.sc

@@ -0,0 +1,35 @@
+$input a_position, a_normal
+$output v_position, v_normal, v_view, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4 
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+uniform vec4 u_params1;
+#define u_shadowMapOffset u_params1.y 
+
+uniform mat4 u_lightMtx;
+uniform mat4 u_shadowMapMtx0;
+uniform mat4 u_shadowMapMtx1;
+uniform mat4 u_shadowMapMtx2;
+uniform mat4 u_shadowMapMtx3;
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+	vec4 posOffset = vec4(a_position + normal.xyz * u_shadowMapOffset, 1.0);
+	v_position = mul(u_lightMtx, posOffset);
+
+	v_texcoord1 = mul(u_shadowMapMtx0, v_position);
+	v_texcoord2 = mul(u_shadowMapMtx1, v_position);
+	v_texcoord3 = mul(u_shadowMapMtx2, v_position);
+	v_texcoord4 = mul(u_shadowMapMtx3, v_position);
+}

+ 16 - 0
examples/16-shadowmaps/vs_shadowmaps_color_texture.sc

@@ -0,0 +1,16 @@
+$input a_position, a_texcoord0
+$output v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+    v_texcoord0 = a_texcoord0;
+}

+ 13 - 0
examples/16-shadowmaps/vs_shadowmaps_depth.sc

@@ -0,0 +1,13 @@
+$input a_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0));
+}

+ 32 - 0
examples/16-shadowmaps/vs_shadowmaps_hblur.sc

@@ -0,0 +1,32 @@
+$input a_position, a_texcoord0
+$output v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2011-2013 Branimir Karadzic. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+uniform vec4 u_smSamplingParams;
+#define u_xOffset u_smSamplingParams.z
+
+void main()
+{
+	float offset = u_viewTexel.x*u_xOffset;
+
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+	v_texcoord0 = a_texcoord0;
+	v_texcoord1 = vec4(a_texcoord0.x - offset*1.0, a_texcoord0.y,
+					   a_texcoord0.x + offset*1.0, a_texcoord0.y
+					  );
+	v_texcoord2 = vec4(a_texcoord0.x - offset*2.0, a_texcoord0.y,
+					   a_texcoord0.x + offset*2.0, a_texcoord0.y
+					  );
+	v_texcoord3 = vec4(a_texcoord0.x - offset*3.0, a_texcoord0.y,
+					   a_texcoord0.x + offset*3.0, a_texcoord0.y
+					  );
+	v_texcoord4 = vec4(a_texcoord0.x - offset*4.0, a_texcoord0.y,
+					   a_texcoord0.x + offset*4.0, a_texcoord0.y
+					  );
+}

+ 15 - 0
examples/16-shadowmaps/vs_shadowmaps_packdepth.sc

@@ -0,0 +1,15 @@
+$input a_position
+$output v_position
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+	v_position = gl_Position;
+}

+ 15 - 0
examples/16-shadowmaps/vs_shadowmaps_packdepth_linear.sc

@@ -0,0 +1,15 @@
+$input a_position
+$output v_depth
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+	v_depth = gl_Position.z * 0.5 + 0.5;
+}

+ 16 - 0
examples/16-shadowmaps/vs_shadowmaps_texture.sc

@@ -0,0 +1,16 @@
+$input a_position, a_texcoord0
+$output v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+    v_texcoord0 = a_texcoord0;
+}

+ 20 - 0
examples/16-shadowmaps/vs_shadowmaps_texture_lightning.sc

@@ -0,0 +1,20 @@
+$input a_position, a_normal, a_texcoord0
+$output  v_normal, v_view, v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0));
+
+	vec4 normal = a_normal * 2.0 - 1.0;
+	v_normal = mul(u_modelView, vec4(normal.xyz, 0.0)).xyz;
+	v_view = mul(u_modelView, vec4(a_position, 1.0)).xyz;
+
+    v_texcoord0 = a_texcoord0;
+}

+ 16 - 0
examples/16-shadowmaps/vs_shadowmaps_unpackdepth.sc

@@ -0,0 +1,16 @@
+$input a_position, a_texcoord0
+$output v_texcoord0
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh" 
+
+void main()
+{
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+
+    v_texcoord0 = a_texcoord0;
+}

+ 32 - 0
examples/16-shadowmaps/vs_shadowmaps_vblur.sc

@@ -0,0 +1,32 @@
+$input a_position, a_texcoord0
+$output v_texcoord0, v_texcoord1, v_texcoord2, v_texcoord3, v_texcoord4
+
+/*
+ * Copyright 2013 Dario Manesku. All rights reserved.
+ * License: http://www.opensource.org/licenses/BSD-2-Clause
+ */
+
+#include "../common/common.sh"
+
+uniform vec4 u_smSamplingParams;
+#define u_yOffset u_smSamplingParams.w
+
+void main()
+{
+	float offset = u_viewTexel.y*u_yOffset;
+
+	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
+	v_texcoord0 = a_texcoord0;
+	v_texcoord1 = vec4(a_texcoord0.x, a_texcoord0.y - offset*1.0,
+					   a_texcoord0.x, a_texcoord0.y + offset*1.0
+					  );
+	v_texcoord2 = vec4(a_texcoord0.x, a_texcoord0.y - offset*2.0,
+					   a_texcoord0.x, a_texcoord0.y + offset*2.0
+					  );
+	v_texcoord3 = vec4(a_texcoord0.x, a_texcoord0.y - offset*3.0,
+					   a_texcoord0.x, a_texcoord0.y + offset*3.0
+					  );
+	v_texcoord4 = vec4(a_texcoord0.x, a_texcoord0.y - offset*4.0,
+					   a_texcoord0.x, a_texcoord0.y + offset*4.0
+					  );
+}

+ 30 - 1
examples/common/entry/entry.cpp

@@ -104,6 +104,35 @@ namespace entry
 		return 0;
 	}
 
+	int cmdMove(CmdContext* /*_context*/, void* /*_userData*/, int _argc, char const* const* _argv)
+	{
+		if (_argc > 1)
+		{
+			if (0 == strcmp(_argv[1], "forward") )
+			{
+				cameraSetKeyState(CAMERA_KEY_UP, true);
+				return 0;
+			}
+			else if (0 == strcmp(_argv[1], "left") )
+			{
+				cameraSetKeyState(CAMERA_KEY_LEFT, true);
+				return 0;
+			}
+			else if (0 == strcmp(_argv[1], "right") )
+			{
+				cameraSetKeyState(CAMERA_KEY_RIGHT, true);
+				return 0;
+			}
+			else if (0 == strcmp(_argv[1], "backward") )
+			{
+				cameraSetKeyState(CAMERA_KEY_DOWN, true);
+				return 0;
+			}
+		}
+
+		return 1;
+	}
+
 	static const InputBinding s_bindings[] = 
 	{
 		{ entry::Key::KeyQ,  entry::Modifier::LeftCtrl,  1, cmd, "exit"                              },
@@ -129,7 +158,7 @@ namespace entry
 
 	int main(int _argc, char** _argv)
 	{
-		DBG(BX_COMPILER_NAME " / " BX_CPU_NAME " / " BX_ARCH_NAME " / " BX_PLATFORM_NAME);
+		//DBG(BX_COMPILER_NAME " / " BX_CPU_NAME " / " BX_ARCH_NAME " / " BX_PLATFORM_NAME);
 
 		cmdAdd("mouselock", cmdMouseLock);
 		cmdAdd("graphics",  cmdGraphics );

+ 10 - 0
examples/common/fpumath.h

@@ -24,6 +24,16 @@ inline float fmaxf(float _a, float _b)
 }
 #endif // BX_COMPILER_MSVC
 
+inline float toRad(float _deg)
+{
+	return _deg * float(M_PI) / 180.0f;
+}
+
+inline float toDeg(float _rad)
+{
+	return _rad * 180.0f / float(M_PI);
+}
+
 inline float fclamp(float _a, float _min, float _max)
 {
 	return fminf(fmaxf(_a, _min), _max);

BIN=BIN
examples/runtime/meshes/hollowcube.bin


BIN=BIN
examples/runtime/meshes/tree.bin


BIN=BIN
examples/runtime/meshes/tricube.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_black.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_csm.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear_csm.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_linear_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_esm_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_csm.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear_csm.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_linear_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_hard_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf.bin


+ 293 - 0
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_csm.bin

@@ -0,0 +1,293 @@
+FSHF�­œuniform sampler2D u_shadowMap3;
+uniform sampler2D u_shadowMap2;
+uniform sampler2D u_shadowMap1;
+uniform sampler2D u_shadowMap0;
+uniform vec4 u_csmFarDistances;
+uniform vec4 u_smSamplingParams;
+uniform vec4 u_lightAttenuationSpotOuter;
+uniform vec4 u_lightSpotDirectionInner;
+uniform vec4 u_lightSpecularPower;
+uniform vec4 u_lightDiffusePower;
+uniform vec4 u_lightAmbientPower;
+uniform vec4 u_lightPosition;
+uniform vec4 u_materialKs;
+uniform vec3 u_materialKd;
+uniform vec3 u_materialKa;
+uniform vec4 u_color;
+uniform vec4 u_params2;
+uniform vec4 u_params1;
+varying vec3 v_view;
+varying vec4 v_texcoord4;
+varying vec4 v_texcoord3;
+varying vec4 v_texcoord2;
+varying vec4 v_texcoord1;
+varying vec4 v_position;
+varying vec3 v_normal;
+void main ()
+{
+  float visibility_1;
+  vec3 colorCoverage_2;
+  vec2 tmpvar_3;
+  tmpvar_3 = u_params2.zz;
+  visibility_1 = 1.0;
+  if ((v_position.z < u_csmFarDistances.x)) {
+    vec2 tmpvar_4;
+    tmpvar_4 = (v_texcoord1.xy / v_texcoord1.w);
+    float tmpvar_5;
+    tmpvar_5 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_4, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_4, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+    vec3 tmpvar_6;
+    tmpvar_6.x = -(tmpvar_5);
+    tmpvar_6.y = tmpvar_5;
+    tmpvar_6.z = -(tmpvar_5);
+    colorCoverage_2 = tmpvar_6;
+    vec4 _shadowCoord_7;
+    _shadowCoord_7 = v_texcoord1;
+    float _bias_8;
+    _bias_8 = u_params1.x;
+    vec4 _pcfParams_9;
+    _pcfParams_9 = u_smSamplingParams;
+    vec2 _texelSize_10;
+    _texelSize_10 = tmpvar_3;
+    int x_11;
+    int ynum_12;
+    int xnum_13;
+    float result_14;
+    vec2 tmpvar_15;
+    tmpvar_15 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+    float tmpvar_16;
+    tmpvar_16 = (tmpvar_15.x * tmpvar_15.y);
+    result_14 = 0.0;
+    int tmpvar_17;
+    tmpvar_17 = int(u_smSamplingParams.x);
+    xnum_13 = tmpvar_17;
+    ynum_12 = int(u_smSamplingParams.y);
+    x_11 = -(tmpvar_17);
+    while (true) {
+      int y_18;
+      if ((x_11 > xnum_13)) {
+        break;
+      };
+      y_18 = -(ynum_12);
+      while (true) {
+        if ((y_18 > ynum_12)) {
+          break;
+        };
+        vec2 tmpvar_19;
+        tmpvar_19.x = float(x_11);
+        tmpvar_19.y = float(y_18);
+        vec4 tmpvar_20;
+        tmpvar_20.zw = vec2(0.0, 0.0);
+        tmpvar_20.xy = ((tmpvar_19 * _pcfParams_9.zw) * _texelSize_10);
+        vec4 tmpvar_21;
+        tmpvar_21 = (_shadowCoord_7 + tmpvar_20);
+        result_14 = (result_14 + float((dot (texture2D (u_shadowMap0, (tmpvar_21.xy / tmpvar_21.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_21.z - _bias_8) / tmpvar_21.w))));
+        y_18 = (y_18 + 1);
+      };
+      x_11 = (x_11 + 1);
+    };
+    visibility_1 = (result_14 / max (tmpvar_16, 1.0));
+  } else {
+    if ((v_position.z < u_csmFarDistances.y)) {
+      vec2 tmpvar_22;
+      tmpvar_22 = (v_texcoord2.xy / v_texcoord2.w);
+      float tmpvar_23;
+      tmpvar_23 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_22, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_22, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+      vec3 tmpvar_24;
+      tmpvar_24.x = tmpvar_23;
+      tmpvar_24.y = tmpvar_23;
+      tmpvar_24.z = -(tmpvar_23);
+      colorCoverage_2 = tmpvar_24;
+      vec4 _shadowCoord_25;
+      _shadowCoord_25 = v_texcoord2;
+      float _bias_26;
+      _bias_26 = u_params1.x;
+      vec4 _pcfParams_27;
+      _pcfParams_27 = u_smSamplingParams;
+      vec2 _texelSize_28;
+      _texelSize_28 = (u_params2.zz / 2.0);
+      int x_29;
+      int ynum_30;
+      int xnum_31;
+      float result_32;
+      vec2 tmpvar_33;
+      tmpvar_33 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+      float tmpvar_34;
+      tmpvar_34 = (tmpvar_33.x * tmpvar_33.y);
+      result_32 = 0.0;
+      int tmpvar_35;
+      tmpvar_35 = int(u_smSamplingParams.x);
+      xnum_31 = tmpvar_35;
+      ynum_30 = int(u_smSamplingParams.y);
+      x_29 = -(tmpvar_35);
+      while (true) {
+        int y_36;
+        if ((x_29 > xnum_31)) {
+          break;
+        };
+        y_36 = -(ynum_30);
+        while (true) {
+          if ((y_36 > ynum_30)) {
+            break;
+          };
+          vec2 tmpvar_37;
+          tmpvar_37.x = float(x_29);
+          tmpvar_37.y = float(y_36);
+          vec4 tmpvar_38;
+          tmpvar_38.zw = vec2(0.0, 0.0);
+          tmpvar_38.xy = ((tmpvar_37 * _pcfParams_27.zw) * _texelSize_28);
+          vec4 tmpvar_39;
+          tmpvar_39 = (_shadowCoord_25 + tmpvar_38);
+          result_32 = (result_32 + float((dot (texture2D (u_shadowMap1, (tmpvar_39.xy / tmpvar_39.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_39.z - _bias_26) / tmpvar_39.w))));
+          y_36 = (y_36 + 1);
+        };
+        x_29 = (x_29 + 1);
+      };
+      visibility_1 = (result_32 / max (tmpvar_34, 1.0));
+    } else {
+      if ((v_position.z < u_csmFarDistances.z)) {
+        vec2 tmpvar_40;
+        tmpvar_40 = (v_texcoord3.xy / v_texcoord3.w);
+        float tmpvar_41;
+        tmpvar_41 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_40, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_40, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_42;
+        tmpvar_42.x = -(tmpvar_41);
+        tmpvar_42.y = -(tmpvar_41);
+        tmpvar_42.z = tmpvar_41;
+        colorCoverage_2 = tmpvar_42;
+        vec4 _shadowCoord_43;
+        _shadowCoord_43 = v_texcoord3;
+        float _bias_44;
+        _bias_44 = u_params1.x;
+        vec4 _pcfParams_45;
+        _pcfParams_45 = u_smSamplingParams;
+        vec2 _texelSize_46;
+        _texelSize_46 = (u_params2.zz / 3.0);
+        int x_47;
+        int ynum_48;
+        int xnum_49;
+        float result_50;
+        vec2 tmpvar_51;
+        tmpvar_51 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+        float tmpvar_52;
+        tmpvar_52 = (tmpvar_51.x * tmpvar_51.y);
+        result_50 = 0.0;
+        int tmpvar_53;
+        tmpvar_53 = int(u_smSamplingParams.x);
+        xnum_49 = tmpvar_53;
+        ynum_48 = int(u_smSamplingParams.y);
+        x_47 = -(tmpvar_53);
+        while (true) {
+          int y_54;
+          if ((x_47 > xnum_49)) {
+            break;
+          };
+          y_54 = -(ynum_48);
+          while (true) {
+            if ((y_54 > ynum_48)) {
+              break;
+            };
+            vec2 tmpvar_55;
+            tmpvar_55.x = float(x_47);
+            tmpvar_55.y = float(y_54);
+            vec4 tmpvar_56;
+            tmpvar_56.zw = vec2(0.0, 0.0);
+            tmpvar_56.xy = ((tmpvar_55 * _pcfParams_45.zw) * _texelSize_46);
+            vec4 tmpvar_57;
+            tmpvar_57 = (_shadowCoord_43 + tmpvar_56);
+            result_50 = (result_50 + float((dot (texture2D (u_shadowMap2, (tmpvar_57.xy / tmpvar_57.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_57.z - _bias_44) / tmpvar_57.w))));
+            y_54 = (y_54 + 1);
+          };
+          x_47 = (x_47 + 1);
+        };
+        visibility_1 = (result_50 / max (tmpvar_52, 1.0));
+      } else {
+        vec2 tmpvar_58;
+        tmpvar_58 = (v_texcoord4.xy / v_texcoord4.w);
+        float tmpvar_59;
+        tmpvar_59 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_58, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_58, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_60;
+        tmpvar_60.x = tmpvar_59;
+        tmpvar_60.y = -(tmpvar_59);
+        tmpvar_60.z = -(tmpvar_59);
+        colorCoverage_2 = tmpvar_60;
+        vec4 _shadowCoord_61;
+        _shadowCoord_61 = v_texcoord4;
+        float _bias_62;
+        _bias_62 = u_params1.x;
+        vec4 _pcfParams_63;
+        _pcfParams_63 = u_smSamplingParams;
+        vec2 _texelSize_64;
+        _texelSize_64 = (u_params2.zz / 4.0);
+        int x_65;
+        int ynum_66;
+        int xnum_67;
+        float result_68;
+        vec2 tmpvar_69;
+        tmpvar_69 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+        float tmpvar_70;
+        tmpvar_70 = (tmpvar_69.x * tmpvar_69.y);
+        result_68 = 0.0;
+        int tmpvar_71;
+        tmpvar_71 = int(u_smSamplingParams.x);
+        xnum_67 = tmpvar_71;
+        ynum_66 = int(u_smSamplingParams.y);
+        x_65 = -(tmpvar_71);
+        while (true) {
+          int y_72;
+          if ((x_65 > xnum_67)) {
+            break;
+          };
+          y_72 = -(ynum_66);
+          while (true) {
+            if ((y_72 > ynum_66)) {
+              break;
+            };
+            vec2 tmpvar_73;
+            tmpvar_73.x = float(x_65);
+            tmpvar_73.y = float(y_72);
+            vec4 tmpvar_74;
+            tmpvar_74.zw = vec2(0.0, 0.0);
+            tmpvar_74.xy = ((tmpvar_73 * _pcfParams_63.zw) * _texelSize_64);
+            vec4 tmpvar_75;
+            tmpvar_75 = (_shadowCoord_61 + tmpvar_74);
+            result_68 = (result_68 + float((dot (texture2D (u_shadowMap3, (tmpvar_75.xy / tmpvar_75.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_75.z - _bias_62) / tmpvar_75.w))));
+            y_72 = (y_72 + 1);
+          };
+          x_65 = (x_65 + 1);
+        };
+        visibility_1 = (result_68 / max (tmpvar_70, 1.0));
+      };
+    };
+  };
+  vec3 tmpvar_76;
+  tmpvar_76 = -(normalize(v_view));
+  vec3 tmpvar_77;
+  float tmpvar_78;
+  tmpvar_77 = -(normalize(u_lightPosition.xyz));
+  tmpvar_78 = 1.0;
+  if ((0.0 != u_lightPosition.w)) {
+    vec3 tmpvar_79;
+    tmpvar_79 = (u_lightPosition.xyz - v_view);
+    vec3 tmpvar_80;
+    tmpvar_80 = normalize(tmpvar_79);
+    tmpvar_77 = tmpvar_80;
+    float tmpvar_81;
+    tmpvar_81 = cos((u_lightAttenuationSpotOuter.w * 0.0174533));
+    float tmpvar_82;
+    tmpvar_82 = sqrt(dot (tmpvar_79, tmpvar_79));
+    tmpvar_78 = ((1.0/(((u_lightAttenuationSpotOuter.x + (u_lightAttenuationSpotOuter.y * tmpvar_82)) + ((u_lightAttenuationSpotOuter.z * tmpvar_82) * tmpvar_82)))) * mix (clamp (((max (0.0, dot (-(tmpvar_80), normalize(u_lightSpotDirectionInner.xyz))) - tmpvar_81) / (cos((min (u_lightSpotDirectionInner.w, (u_lightAttenuationSpotOuter.w - 0.001)) * 0.0174533)) - tmpvar_81)), 0.0, 1.0), 1.0, float((u_lightAttenuationSpotOuter.w >= 90.0))));
+  };
+  float tmpvar_83;
+  tmpvar_83 = dot (v_normal, tmpvar_77);
+  vec2 tmpvar_84;
+  tmpvar_84.x = tmpvar_83;
+  tmpvar_84.y = (((float((tmpvar_83 >= 0.0)) * pow (max (0.0, dot ((((2.0 * tmpvar_83) * v_normal) - tmpvar_77), tmpvar_76)), u_materialKs.w)) * (2.0 + u_materialKs.w)) / 8.0);
+  vec2 tmpvar_85;
+  tmpvar_85 = (max (tmpvar_84, 0.0) * tmpvar_78);
+  float tmpvar_86;
+  tmpvar_86 = sqrt(dot (v_view, v_view));
+  gl_FragColor.xyz = mix (vec3(0.0, 0.0, 0.0), (pow (((((u_lightAmbientPower.xyz * u_lightAmbientPower.w) * u_materialKa) * u_color.xyz) + ((((((u_lightDiffusePower.xyz * u_lightDiffusePower.w) * u_materialKd) * tmpvar_85.x) + (((u_lightSpecularPower.xyz * u_lightSpecularPower.w) * u_materialKs.xyz) * tmpvar_85.y)) * u_color.xyz) * visibility_1)), vec3(0.454545, 0.454545, 0.454545)) + (colorCoverage_2 * u_params2.y)), clamp ((1.0/(exp2(((4.36415e-05 * tmpvar_86) * tmpvar_86)))), 0.0, 1.0));
+  gl_FragColor.w = 1.0;
+}
+
+

BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear.bin


+ 321 - 0
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear_csm.bin

@@ -0,0 +1,321 @@
+FSHF�­œuniform sampler2D u_shadowMap3;
+uniform sampler2D u_shadowMap2;
+uniform sampler2D u_shadowMap1;
+uniform sampler2D u_shadowMap0;
+uniform vec4 u_csmFarDistances;
+uniform vec4 u_smSamplingParams;
+uniform vec4 u_lightAttenuationSpotOuter;
+uniform vec4 u_lightSpotDirectionInner;
+uniform vec4 u_lightSpecularPower;
+uniform vec4 u_lightDiffusePower;
+uniform vec4 u_lightAmbientPower;
+uniform vec4 u_lightPosition;
+uniform vec4 u_materialKs;
+uniform vec3 u_materialKd;
+uniform vec3 u_materialKa;
+uniform vec4 u_color;
+uniform vec4 u_params2;
+uniform vec4 u_params1;
+varying vec3 v_view;
+varying vec4 v_texcoord4;
+varying vec4 v_texcoord3;
+varying vec4 v_texcoord2;
+varying vec4 v_texcoord1;
+varying vec4 v_position;
+varying vec3 v_normal;
+void main ()
+{
+  float visibility_1;
+  vec3 colorCoverage_2;
+  vec2 tmpvar_3;
+  tmpvar_3 = u_params2.zz;
+  visibility_1 = 1.0;
+  if ((v_position.z < u_csmFarDistances.x)) {
+    vec2 tmpvar_4;
+    tmpvar_4 = (v_texcoord1.xy / v_texcoord1.w);
+    float tmpvar_5;
+    tmpvar_5 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_4, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_4, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+    vec3 tmpvar_6;
+    tmpvar_6.x = -(tmpvar_5);
+    tmpvar_6.y = tmpvar_5;
+    tmpvar_6.z = -(tmpvar_5);
+    colorCoverage_2 = tmpvar_6;
+    vec4 tmpvar_7;
+    tmpvar_7.w = 1.0;
+    tmpvar_7.xy = (v_texcoord1.xy / v_texcoord1.w);
+    tmpvar_7.z = v_texcoord1.z;
+    vec4 tmpvar_8;
+    tmpvar_8.xy = u_smSamplingParams.xy;
+    tmpvar_8.zw = (u_smSamplingParams.zw / v_texcoord1.w);
+    vec4 _shadowCoord_9;
+    _shadowCoord_9 = tmpvar_7;
+    float _bias_10;
+    _bias_10 = u_params1.x;
+    vec4 _pcfParams_11;
+    _pcfParams_11 = tmpvar_8;
+    vec2 _texelSize_12;
+    _texelSize_12 = tmpvar_3;
+    int x_13;
+    int ynum_14;
+    int xnum_15;
+    float result_16;
+    vec2 tmpvar_17;
+    tmpvar_17 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+    float tmpvar_18;
+    tmpvar_18 = (tmpvar_17.x * tmpvar_17.y);
+    result_16 = 0.0;
+    int tmpvar_19;
+    tmpvar_19 = int(u_smSamplingParams.x);
+    xnum_15 = tmpvar_19;
+    ynum_14 = int(u_smSamplingParams.y);
+    x_13 = -(tmpvar_19);
+    while (true) {
+      int y_20;
+      if ((x_13 > xnum_15)) {
+        break;
+      };
+      y_20 = -(ynum_14);
+      while (true) {
+        if ((y_20 > ynum_14)) {
+          break;
+        };
+        vec2 tmpvar_21;
+        tmpvar_21.x = float(x_13);
+        tmpvar_21.y = float(y_20);
+        vec4 tmpvar_22;
+        tmpvar_22.zw = vec2(0.0, 0.0);
+        tmpvar_22.xy = ((tmpvar_21 * _pcfParams_11.zw) * _texelSize_12);
+        vec4 tmpvar_23;
+        tmpvar_23 = (_shadowCoord_9 + tmpvar_22);
+        result_16 = (result_16 + float((dot (texture2D (u_shadowMap0, (tmpvar_23.xy / tmpvar_23.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_23.z - _bias_10) / tmpvar_23.w))));
+        y_20 = (y_20 + 1);
+      };
+      x_13 = (x_13 + 1);
+    };
+    visibility_1 = (result_16 / max (tmpvar_18, 1.0));
+  } else {
+    if ((v_position.z < u_csmFarDistances.y)) {
+      vec2 tmpvar_24;
+      tmpvar_24 = (v_texcoord2.xy / v_texcoord2.w);
+      float tmpvar_25;
+      tmpvar_25 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_24, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_24, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+      vec3 tmpvar_26;
+      tmpvar_26.x = tmpvar_25;
+      tmpvar_26.y = tmpvar_25;
+      tmpvar_26.z = -(tmpvar_25);
+      colorCoverage_2 = tmpvar_26;
+      vec4 tmpvar_27;
+      tmpvar_27.w = 1.0;
+      tmpvar_27.xy = (v_texcoord2.xy / v_texcoord2.w);
+      tmpvar_27.z = v_texcoord2.z;
+      vec4 tmpvar_28;
+      tmpvar_28.xy = u_smSamplingParams.xy;
+      tmpvar_28.zw = (u_smSamplingParams.zw / v_texcoord2.w);
+      vec4 _shadowCoord_29;
+      _shadowCoord_29 = tmpvar_27;
+      float _bias_30;
+      _bias_30 = u_params1.x;
+      vec4 _pcfParams_31;
+      _pcfParams_31 = tmpvar_28;
+      vec2 _texelSize_32;
+      _texelSize_32 = (u_params2.zz / 2.0);
+      int x_33;
+      int ynum_34;
+      int xnum_35;
+      float result_36;
+      vec2 tmpvar_37;
+      tmpvar_37 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+      float tmpvar_38;
+      tmpvar_38 = (tmpvar_37.x * tmpvar_37.y);
+      result_36 = 0.0;
+      int tmpvar_39;
+      tmpvar_39 = int(u_smSamplingParams.x);
+      xnum_35 = tmpvar_39;
+      ynum_34 = int(u_smSamplingParams.y);
+      x_33 = -(tmpvar_39);
+      while (true) {
+        int y_40;
+        if ((x_33 > xnum_35)) {
+          break;
+        };
+        y_40 = -(ynum_34);
+        while (true) {
+          if ((y_40 > ynum_34)) {
+            break;
+          };
+          vec2 tmpvar_41;
+          tmpvar_41.x = float(x_33);
+          tmpvar_41.y = float(y_40);
+          vec4 tmpvar_42;
+          tmpvar_42.zw = vec2(0.0, 0.0);
+          tmpvar_42.xy = ((tmpvar_41 * _pcfParams_31.zw) * _texelSize_32);
+          vec4 tmpvar_43;
+          tmpvar_43 = (_shadowCoord_29 + tmpvar_42);
+          result_36 = (result_36 + float((dot (texture2D (u_shadowMap1, (tmpvar_43.xy / tmpvar_43.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_43.z - _bias_30) / tmpvar_43.w))));
+          y_40 = (y_40 + 1);
+        };
+        x_33 = (x_33 + 1);
+      };
+      visibility_1 = (result_36 / max (tmpvar_38, 1.0));
+    } else {
+      if ((v_position.z < u_csmFarDistances.z)) {
+        vec2 tmpvar_44;
+        tmpvar_44 = (v_texcoord3.xy / v_texcoord3.w);
+        float tmpvar_45;
+        tmpvar_45 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_44, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_44, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_46;
+        tmpvar_46.x = -(tmpvar_45);
+        tmpvar_46.y = -(tmpvar_45);
+        tmpvar_46.z = tmpvar_45;
+        colorCoverage_2 = tmpvar_46;
+        vec4 tmpvar_47;
+        tmpvar_47.w = 1.0;
+        tmpvar_47.xy = (v_texcoord3.xy / v_texcoord3.w);
+        tmpvar_47.z = v_texcoord3.z;
+        vec4 tmpvar_48;
+        tmpvar_48.xy = u_smSamplingParams.xy;
+        tmpvar_48.zw = (u_smSamplingParams.zw / v_texcoord3.w);
+        vec4 _shadowCoord_49;
+        _shadowCoord_49 = tmpvar_47;
+        float _bias_50;
+        _bias_50 = u_params1.x;
+        vec4 _pcfParams_51;
+        _pcfParams_51 = tmpvar_48;
+        vec2 _texelSize_52;
+        _texelSize_52 = (u_params2.zz / 3.0);
+        int x_53;
+        int ynum_54;
+        int xnum_55;
+        float result_56;
+        vec2 tmpvar_57;
+        tmpvar_57 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+        float tmpvar_58;
+        tmpvar_58 = (tmpvar_57.x * tmpvar_57.y);
+        result_56 = 0.0;
+        int tmpvar_59;
+        tmpvar_59 = int(u_smSamplingParams.x);
+        xnum_55 = tmpvar_59;
+        ynum_54 = int(u_smSamplingParams.y);
+        x_53 = -(tmpvar_59);
+        while (true) {
+          int y_60;
+          if ((x_53 > xnum_55)) {
+            break;
+          };
+          y_60 = -(ynum_54);
+          while (true) {
+            if ((y_60 > ynum_54)) {
+              break;
+            };
+            vec2 tmpvar_61;
+            tmpvar_61.x = float(x_53);
+            tmpvar_61.y = float(y_60);
+            vec4 tmpvar_62;
+            tmpvar_62.zw = vec2(0.0, 0.0);
+            tmpvar_62.xy = ((tmpvar_61 * _pcfParams_51.zw) * _texelSize_52);
+            vec4 tmpvar_63;
+            tmpvar_63 = (_shadowCoord_49 + tmpvar_62);
+            result_56 = (result_56 + float((dot (texture2D (u_shadowMap2, (tmpvar_63.xy / tmpvar_63.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_63.z - _bias_50) / tmpvar_63.w))));
+            y_60 = (y_60 + 1);
+          };
+          x_53 = (x_53 + 1);
+        };
+        visibility_1 = (result_56 / max (tmpvar_58, 1.0));
+      } else {
+        vec2 tmpvar_64;
+        tmpvar_64 = (v_texcoord4.xy / v_texcoord4.w);
+        float tmpvar_65;
+        tmpvar_65 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_64, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_64, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_66;
+        tmpvar_66.x = tmpvar_65;
+        tmpvar_66.y = -(tmpvar_65);
+        tmpvar_66.z = -(tmpvar_65);
+        colorCoverage_2 = tmpvar_66;
+        vec4 tmpvar_67;
+        tmpvar_67.w = 1.0;
+        tmpvar_67.xy = (v_texcoord4.xy / v_texcoord4.w);
+        tmpvar_67.z = v_texcoord4.z;
+        vec4 tmpvar_68;
+        tmpvar_68.xy = u_smSamplingParams.xy;
+        tmpvar_68.zw = (u_smSamplingParams.zw / v_texcoord4.w);
+        vec4 _shadowCoord_69;
+        _shadowCoord_69 = tmpvar_67;
+        float _bias_70;
+        _bias_70 = u_params1.x;
+        vec4 _pcfParams_71;
+        _pcfParams_71 = tmpvar_68;
+        vec2 _texelSize_72;
+        _texelSize_72 = (u_params2.zz / 4.0);
+        int x_73;
+        int ynum_74;
+        int xnum_75;
+        float result_76;
+        vec2 tmpvar_77;
+        tmpvar_77 = ((u_smSamplingParams.xy * 2.0) + 1.0);
+        float tmpvar_78;
+        tmpvar_78 = (tmpvar_77.x * tmpvar_77.y);
+        result_76 = 0.0;
+        int tmpvar_79;
+        tmpvar_79 = int(u_smSamplingParams.x);
+        xnum_75 = tmpvar_79;
+        ynum_74 = int(u_smSamplingParams.y);
+        x_73 = -(tmpvar_79);
+        while (true) {
+          int y_80;
+          if ((x_73 > xnum_75)) {
+            break;
+          };
+          y_80 = -(ynum_74);
+          while (true) {
+            if ((y_80 > ynum_74)) {
+              break;
+            };
+            vec2 tmpvar_81;
+            tmpvar_81.x = float(x_73);
+            tmpvar_81.y = float(y_80);
+            vec4 tmpvar_82;
+            tmpvar_82.zw = vec2(0.0, 0.0);
+            tmpvar_82.xy = ((tmpvar_81 * _pcfParams_71.zw) * _texelSize_72);
+            vec4 tmpvar_83;
+            tmpvar_83 = (_shadowCoord_69 + tmpvar_82);
+            result_76 = (result_76 + float((dot (texture2D (u_shadowMap3, (tmpvar_83.xy / tmpvar_83.w)), vec4(5.96046e-08, 1.52588e-05, 0.00390625, 1.0)) >= ((tmpvar_83.z - _bias_70) / tmpvar_83.w))));
+            y_80 = (y_80 + 1);
+          };
+          x_73 = (x_73 + 1);
+        };
+        visibility_1 = (result_76 / max (tmpvar_78, 1.0));
+      };
+    };
+  };
+  vec3 tmpvar_84;
+  tmpvar_84 = -(normalize(v_view));
+  vec3 tmpvar_85;
+  float tmpvar_86;
+  tmpvar_85 = -(normalize(u_lightPosition.xyz));
+  tmpvar_86 = 1.0;
+  if ((0.0 != u_lightPosition.w)) {
+    vec3 tmpvar_87;
+    tmpvar_87 = (u_lightPosition.xyz - v_view);
+    vec3 tmpvar_88;
+    tmpvar_88 = normalize(tmpvar_87);
+    tmpvar_85 = tmpvar_88;
+    float tmpvar_89;
+    tmpvar_89 = cos((u_lightAttenuationSpotOuter.w * 0.0174533));
+    float tmpvar_90;
+    tmpvar_90 = sqrt(dot (tmpvar_87, tmpvar_87));
+    tmpvar_86 = ((1.0/(((u_lightAttenuationSpotOuter.x + (u_lightAttenuationSpotOuter.y * tmpvar_90)) + ((u_lightAttenuationSpotOuter.z * tmpvar_90) * tmpvar_90)))) * mix (clamp (((max (0.0, dot (-(tmpvar_88), normalize(u_lightSpotDirectionInner.xyz))) - tmpvar_89) / (cos((min (u_lightSpotDirectionInner.w, (u_lightAttenuationSpotOuter.w - 0.001)) * 0.0174533)) - tmpvar_89)), 0.0, 1.0), 1.0, float((u_lightAttenuationSpotOuter.w >= 90.0))));
+  };
+  float tmpvar_91;
+  tmpvar_91 = dot (v_normal, tmpvar_85);
+  vec2 tmpvar_92;
+  tmpvar_92.x = tmpvar_91;
+  tmpvar_92.y = (((float((tmpvar_91 >= 0.0)) * pow (max (0.0, dot ((((2.0 * tmpvar_91) * v_normal) - tmpvar_85), tmpvar_84)), u_materialKs.w)) * (2.0 + u_materialKs.w)) / 8.0);
+  vec2 tmpvar_93;
+  tmpvar_93 = (max (tmpvar_92, 0.0) * tmpvar_86);
+  float tmpvar_94;
+  tmpvar_94 = sqrt(dot (v_view, v_view));
+  gl_FragColor.xyz = mix (vec3(0.0, 0.0, 0.0), (pow (((((u_lightAmbientPower.xyz * u_lightAmbientPower.w) * u_materialKa) * u_color.xyz) + ((((((u_lightDiffusePower.xyz * u_lightDiffusePower.w) * u_materialKd) * tmpvar_93.x) + (((u_lightSpecularPower.xyz * u_lightSpecularPower.w) * u_materialKs.xyz) * tmpvar_93.y)) * u_color.xyz) * visibility_1)), vec3(0.454545, 0.454545, 0.454545)) + (colorCoverage_2 * u_params2.y)), clamp ((1.0/(exp2(((4.36415e-05 * tmpvar_94) * tmpvar_94)))), 0.0, 1.0));
+  gl_FragColor.w = 1.0;
+}
+
+

BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_linear_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pcf_omni.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_pfc.bin


BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm.bin


+ 194 - 0
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_csm.bin

@@ -0,0 +1,194 @@
+FSHF�­œuniform sampler2D u_shadowMap3;
+uniform sampler2D u_shadowMap2;
+uniform sampler2D u_shadowMap1;
+uniform sampler2D u_shadowMap0;
+uniform vec4 u_csmFarDistances;
+uniform vec4 u_lightAttenuationSpotOuter;
+uniform vec4 u_lightSpotDirectionInner;
+uniform vec4 u_lightSpecularPower;
+uniform vec4 u_lightDiffusePower;
+uniform vec4 u_lightAmbientPower;
+uniform vec4 u_lightPosition;
+uniform vec4 u_materialKs;
+uniform vec3 u_materialKd;
+uniform vec3 u_materialKa;
+uniform vec4 u_color;
+uniform vec4 u_params2;
+uniform vec4 u_params1;
+varying vec3 v_view;
+varying vec4 v_texcoord4;
+varying vec4 v_texcoord3;
+varying vec4 v_texcoord2;
+varying vec4 v_texcoord1;
+varying vec4 v_position;
+varying vec3 v_normal;
+void main ()
+{
+  float visibility_1;
+  vec3 colorCoverage_2;
+  visibility_1 = 1.0;
+  if ((v_position.z < u_csmFarDistances.x)) {
+    vec2 tmpvar_3;
+    tmpvar_3 = (v_texcoord1.xy / v_texcoord1.w);
+    float tmpvar_4;
+    tmpvar_4 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_3, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_3, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+    vec3 tmpvar_5;
+    tmpvar_5.x = -(tmpvar_4);
+    tmpvar_5.y = tmpvar_4;
+    tmpvar_5.z = -(tmpvar_4);
+    colorCoverage_2 = tmpvar_5;
+    float tmpvar_6;
+    float tmpvar_7;
+    tmpvar_7 = (((v_texcoord1.z - u_params1.x) / v_texcoord1.w) * u_params1.w);
+    vec2 tmpvar_8;
+    tmpvar_8 = (v_texcoord1.xy / v_texcoord1.w);
+    vec4 tmpvar_9;
+    tmpvar_9 = texture2D (u_shadowMap0, tmpvar_8);
+    vec2 tmpvar_10;
+    tmpvar_10.x = dot (tmpvar_9.xy, vec2(0.00390625, 1.0));
+    tmpvar_10.y = dot (tmpvar_9.zw, vec2(0.00390625, 1.0));
+    vec2 tmpvar_11;
+    tmpvar_11 = (tmpvar_10 * u_params1.w);
+    if ((tmpvar_7 < tmpvar_11.x)) {
+      tmpvar_6 = 1.0;
+    } else {
+      float tmpvar_12;
+      tmpvar_12 = max ((tmpvar_11.y - (tmpvar_11.x * tmpvar_11.x)), u_params1.z);
+      float tmpvar_13;
+      tmpvar_13 = (tmpvar_7 - tmpvar_11.x);
+      tmpvar_6 = mix ((tmpvar_12 / (tmpvar_12 + (tmpvar_13 * tmpvar_13))), 1.0, float(any(greaterThan (tmpvar_8, vec2(0.95, 0.95)))));
+    };
+    visibility_1 = tmpvar_6;
+  } else {
+    if ((v_position.z < u_csmFarDistances.y)) {
+      vec2 tmpvar_14;
+      tmpvar_14 = (v_texcoord2.xy / v_texcoord2.w);
+      float tmpvar_15;
+      tmpvar_15 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_14, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_14, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+      vec3 tmpvar_16;
+      tmpvar_16.x = tmpvar_15;
+      tmpvar_16.y = tmpvar_15;
+      tmpvar_16.z = -(tmpvar_15);
+      colorCoverage_2 = tmpvar_16;
+      float tmpvar_17;
+      float tmpvar_18;
+      tmpvar_18 = (((v_texcoord2.z - u_params1.x) / v_texcoord2.w) * u_params1.w);
+      vec2 tmpvar_19;
+      tmpvar_19 = (v_texcoord2.xy / v_texcoord2.w);
+      vec4 tmpvar_20;
+      tmpvar_20 = texture2D (u_shadowMap1, tmpvar_19);
+      vec2 tmpvar_21;
+      tmpvar_21.x = dot (tmpvar_20.xy, vec2(0.00390625, 1.0));
+      tmpvar_21.y = dot (tmpvar_20.zw, vec2(0.00390625, 1.0));
+      vec2 tmpvar_22;
+      tmpvar_22 = (tmpvar_21 * u_params1.w);
+      if ((tmpvar_18 < tmpvar_22.x)) {
+        tmpvar_17 = 1.0;
+      } else {
+        float tmpvar_23;
+        tmpvar_23 = max ((tmpvar_22.y - (tmpvar_22.x * tmpvar_22.x)), u_params1.z);
+        float tmpvar_24;
+        tmpvar_24 = (tmpvar_18 - tmpvar_22.x);
+        tmpvar_17 = mix ((tmpvar_23 / (tmpvar_23 + (tmpvar_24 * tmpvar_24))), 1.0, float(any(greaterThan (tmpvar_19, vec2(0.95, 0.95)))));
+      };
+      visibility_1 = tmpvar_17;
+    } else {
+      if ((v_position.z < u_csmFarDistances.z)) {
+        vec2 tmpvar_25;
+        tmpvar_25 = (v_texcoord3.xy / v_texcoord3.w);
+        float tmpvar_26;
+        tmpvar_26 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_25, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_25, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_27;
+        tmpvar_27.x = -(tmpvar_26);
+        tmpvar_27.y = -(tmpvar_26);
+        tmpvar_27.z = tmpvar_26;
+        colorCoverage_2 = tmpvar_27;
+        float tmpvar_28;
+        float tmpvar_29;
+        tmpvar_29 = (((v_texcoord3.z - u_params1.x) / v_texcoord3.w) * u_params1.w);
+        vec2 tmpvar_30;
+        tmpvar_30 = (v_texcoord3.xy / v_texcoord3.w);
+        vec4 tmpvar_31;
+        tmpvar_31 = texture2D (u_shadowMap2, tmpvar_30);
+        vec2 tmpvar_32;
+        tmpvar_32.x = dot (tmpvar_31.xy, vec2(0.00390625, 1.0));
+        tmpvar_32.y = dot (tmpvar_31.zw, vec2(0.00390625, 1.0));
+        vec2 tmpvar_33;
+        tmpvar_33 = (tmpvar_32 * u_params1.w);
+        if ((tmpvar_29 < tmpvar_33.x)) {
+          tmpvar_28 = 1.0;
+        } else {
+          float tmpvar_34;
+          tmpvar_34 = max ((tmpvar_33.y - (tmpvar_33.x * tmpvar_33.x)), u_params1.z);
+          float tmpvar_35;
+          tmpvar_35 = (tmpvar_29 - tmpvar_33.x);
+          tmpvar_28 = mix ((tmpvar_34 / (tmpvar_34 + (tmpvar_35 * tmpvar_35))), 1.0, float(any(greaterThan (tmpvar_30, vec2(0.95, 0.95)))));
+        };
+        visibility_1 = tmpvar_28;
+      } else {
+        vec2 tmpvar_36;
+        tmpvar_36 = (v_texcoord4.xy / v_texcoord4.w);
+        float tmpvar_37;
+        tmpvar_37 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_36, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_36, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_38;
+        tmpvar_38.x = tmpvar_37;
+        tmpvar_38.y = -(tmpvar_37);
+        tmpvar_38.z = -(tmpvar_37);
+        colorCoverage_2 = tmpvar_38;
+        float tmpvar_39;
+        float tmpvar_40;
+        tmpvar_40 = (((v_texcoord4.z - u_params1.x) / v_texcoord4.w) * u_params1.w);
+        vec2 tmpvar_41;
+        tmpvar_41 = (v_texcoord4.xy / v_texcoord4.w);
+        vec4 tmpvar_42;
+        tmpvar_42 = texture2D (u_shadowMap3, tmpvar_41);
+        vec2 tmpvar_43;
+        tmpvar_43.x = dot (tmpvar_42.xy, vec2(0.00390625, 1.0));
+        tmpvar_43.y = dot (tmpvar_42.zw, vec2(0.00390625, 1.0));
+        vec2 tmpvar_44;
+        tmpvar_44 = (tmpvar_43 * u_params1.w);
+        if ((tmpvar_40 < tmpvar_44.x)) {
+          tmpvar_39 = 1.0;
+        } else {
+          float tmpvar_45;
+          tmpvar_45 = max ((tmpvar_44.y - (tmpvar_44.x * tmpvar_44.x)), u_params1.z);
+          float tmpvar_46;
+          tmpvar_46 = (tmpvar_40 - tmpvar_44.x);
+          tmpvar_39 = mix ((tmpvar_45 / (tmpvar_45 + (tmpvar_46 * tmpvar_46))), 1.0, float(any(greaterThan (tmpvar_41, vec2(0.95, 0.95)))));
+        };
+        visibility_1 = tmpvar_39;
+      };
+    };
+  };
+  vec3 tmpvar_47;
+  tmpvar_47 = -(normalize(v_view));
+  vec3 tmpvar_48;
+  float tmpvar_49;
+  tmpvar_48 = -(normalize(u_lightPosition.xyz));
+  tmpvar_49 = 1.0;
+  if ((0.0 != u_lightPosition.w)) {
+    vec3 tmpvar_50;
+    tmpvar_50 = (u_lightPosition.xyz - v_view);
+    vec3 tmpvar_51;
+    tmpvar_51 = normalize(tmpvar_50);
+    tmpvar_48 = tmpvar_51;
+    float tmpvar_52;
+    tmpvar_52 = cos((u_lightAttenuationSpotOuter.w * 0.0174533));
+    float tmpvar_53;
+    tmpvar_53 = sqrt(dot (tmpvar_50, tmpvar_50));
+    tmpvar_49 = ((1.0/(((u_lightAttenuationSpotOuter.x + (u_lightAttenuationSpotOuter.y * tmpvar_53)) + ((u_lightAttenuationSpotOuter.z * tmpvar_53) * tmpvar_53)))) * mix (clamp (((max (0.0, dot (-(tmpvar_51), normalize(u_lightSpotDirectionInner.xyz))) - tmpvar_52) / (cos((min (u_lightSpotDirectionInner.w, (u_lightAttenuationSpotOuter.w - 0.001)) * 0.0174533)) - tmpvar_52)), 0.0, 1.0), 1.0, float((u_lightAttenuationSpotOuter.w >= 90.0))));
+  };
+  float tmpvar_54;
+  tmpvar_54 = dot (v_normal, tmpvar_48);
+  vec2 tmpvar_55;
+  tmpvar_55.x = tmpvar_54;
+  tmpvar_55.y = (((float((tmpvar_54 >= 0.0)) * pow (max (0.0, dot ((((2.0 * tmpvar_54) * v_normal) - tmpvar_48), tmpvar_47)), u_materialKs.w)) * (2.0 + u_materialKs.w)) / 8.0);
+  vec2 tmpvar_56;
+  tmpvar_56 = (max (tmpvar_55, 0.0) * tmpvar_49);
+  float tmpvar_57;
+  tmpvar_57 = sqrt(dot (v_view, v_view));
+  gl_FragColor.xyz = mix (vec3(0.0, 0.0, 0.0), (pow (((((u_lightAmbientPower.xyz * u_lightAmbientPower.w) * u_materialKa) * u_color.xyz) + ((((((u_lightDiffusePower.xyz * u_lightDiffusePower.w) * u_materialKd) * tmpvar_56.x) + (((u_lightSpecularPower.xyz * u_lightSpecularPower.w) * u_materialKs.xyz) * tmpvar_56.y)) * u_color.xyz) * visibility_1)), vec3(0.454545, 0.454545, 0.454545)) + (colorCoverage_2 * u_params2.y)), clamp ((1.0/(exp2(((4.36415e-05 * tmpvar_57) * tmpvar_57)))), 0.0, 1.0));
+  gl_FragColor.w = 1.0;
+}
+
+

BIN=BIN
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_linear.bin


+ 202 - 0
examples/runtime/shaders/glsl/fs_shadowmaps_color_lightning_vsm_linear_csm.bin

@@ -0,0 +1,202 @@
+FSHF�­œuniform sampler2D u_shadowMap3;
+uniform sampler2D u_shadowMap2;
+uniform sampler2D u_shadowMap1;
+uniform sampler2D u_shadowMap0;
+uniform vec4 u_csmFarDistances;
+uniform vec4 u_lightAttenuationSpotOuter;
+uniform vec4 u_lightSpotDirectionInner;
+uniform vec4 u_lightSpecularPower;
+uniform vec4 u_lightDiffusePower;
+uniform vec4 u_lightAmbientPower;
+uniform vec4 u_lightPosition;
+uniform vec4 u_materialKs;
+uniform vec3 u_materialKd;
+uniform vec3 u_materialKa;
+uniform vec4 u_color;
+uniform vec4 u_params2;
+uniform vec4 u_params1;
+varying vec3 v_view;
+varying vec4 v_texcoord4;
+varying vec4 v_texcoord3;
+varying vec4 v_texcoord2;
+varying vec4 v_texcoord1;
+varying vec4 v_position;
+varying vec3 v_normal;
+void main ()
+{
+  float visibility_1;
+  vec3 colorCoverage_2;
+  visibility_1 = 1.0;
+  if ((v_position.z < u_csmFarDistances.x)) {
+    vec2 tmpvar_3;
+    tmpvar_3 = (v_texcoord1.xy / v_texcoord1.w);
+    float tmpvar_4;
+    tmpvar_4 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_3, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_3, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+    vec3 tmpvar_5;
+    tmpvar_5.x = -(tmpvar_4);
+    tmpvar_5.y = tmpvar_4;
+    tmpvar_5.z = -(tmpvar_4);
+    colorCoverage_2 = tmpvar_5;
+    vec4 tmpvar_6;
+    tmpvar_6.w = 1.0;
+    tmpvar_6.xy = (v_texcoord1.xy / v_texcoord1.w);
+    tmpvar_6.z = v_texcoord1.z;
+    float tmpvar_7;
+    float tmpvar_8;
+    tmpvar_8 = ((v_texcoord1.z - u_params1.x) * u_params1.w);
+    vec4 tmpvar_9;
+    tmpvar_9 = texture2D (u_shadowMap0, tmpvar_6.xy);
+    vec2 tmpvar_10;
+    tmpvar_10.x = dot (tmpvar_9.xy, vec2(0.00390625, 1.0));
+    tmpvar_10.y = dot (tmpvar_9.zw, vec2(0.00390625, 1.0));
+    vec2 tmpvar_11;
+    tmpvar_11 = (tmpvar_10 * u_params1.w);
+    if ((tmpvar_8 < tmpvar_11.x)) {
+      tmpvar_7 = 1.0;
+    } else {
+      float tmpvar_12;
+      tmpvar_12 = max ((tmpvar_11.y - (tmpvar_11.x * tmpvar_11.x)), u_params1.z);
+      float tmpvar_13;
+      tmpvar_13 = (tmpvar_8 - tmpvar_11.x);
+      tmpvar_7 = mix ((tmpvar_12 / (tmpvar_12 + (tmpvar_13 * tmpvar_13))), 1.0, float(any(greaterThan (tmpvar_6.xy, vec2(0.95, 0.95)))));
+    };
+    visibility_1 = tmpvar_7;
+  } else {
+    if ((v_position.z < u_csmFarDistances.y)) {
+      vec2 tmpvar_14;
+      tmpvar_14 = (v_texcoord2.xy / v_texcoord2.w);
+      float tmpvar_15;
+      tmpvar_15 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_14, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_14, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+      vec3 tmpvar_16;
+      tmpvar_16.x = tmpvar_15;
+      tmpvar_16.y = tmpvar_15;
+      tmpvar_16.z = -(tmpvar_15);
+      colorCoverage_2 = tmpvar_16;
+      vec4 tmpvar_17;
+      tmpvar_17.w = 1.0;
+      tmpvar_17.xy = (v_texcoord2.xy / v_texcoord2.w);
+      tmpvar_17.z = v_texcoord2.z;
+      float tmpvar_18;
+      float tmpvar_19;
+      tmpvar_19 = ((v_texcoord2.z - u_params1.x) * u_params1.w);
+      vec4 tmpvar_20;
+      tmpvar_20 = texture2D (u_shadowMap1, tmpvar_17.xy);
+      vec2 tmpvar_21;
+      tmpvar_21.x = dot (tmpvar_20.xy, vec2(0.00390625, 1.0));
+      tmpvar_21.y = dot (tmpvar_20.zw, vec2(0.00390625, 1.0));
+      vec2 tmpvar_22;
+      tmpvar_22 = (tmpvar_21 * u_params1.w);
+      if ((tmpvar_19 < tmpvar_22.x)) {
+        tmpvar_18 = 1.0;
+      } else {
+        float tmpvar_23;
+        tmpvar_23 = max ((tmpvar_22.y - (tmpvar_22.x * tmpvar_22.x)), u_params1.z);
+        float tmpvar_24;
+        tmpvar_24 = (tmpvar_19 - tmpvar_22.x);
+        tmpvar_18 = mix ((tmpvar_23 / (tmpvar_23 + (tmpvar_24 * tmpvar_24))), 1.0, float(any(greaterThan (tmpvar_17.xy, vec2(0.95, 0.95)))));
+      };
+      visibility_1 = tmpvar_18;
+    } else {
+      if ((v_position.z < u_csmFarDistances.z)) {
+        vec2 tmpvar_25;
+        tmpvar_25 = (v_texcoord3.xy / v_texcoord3.w);
+        float tmpvar_26;
+        tmpvar_26 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_25, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_25, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_27;
+        tmpvar_27.x = -(tmpvar_26);
+        tmpvar_27.y = -(tmpvar_26);
+        tmpvar_27.z = tmpvar_26;
+        colorCoverage_2 = tmpvar_27;
+        vec4 tmpvar_28;
+        tmpvar_28.w = 1.0;
+        tmpvar_28.xy = (v_texcoord3.xy / v_texcoord3.w);
+        tmpvar_28.z = v_texcoord3.z;
+        float tmpvar_29;
+        float tmpvar_30;
+        tmpvar_30 = ((v_texcoord3.z - u_params1.x) * u_params1.w);
+        vec4 tmpvar_31;
+        tmpvar_31 = texture2D (u_shadowMap2, tmpvar_28.xy);
+        vec2 tmpvar_32;
+        tmpvar_32.x = dot (tmpvar_31.xy, vec2(0.00390625, 1.0));
+        tmpvar_32.y = dot (tmpvar_31.zw, vec2(0.00390625, 1.0));
+        vec2 tmpvar_33;
+        tmpvar_33 = (tmpvar_32 * u_params1.w);
+        if ((tmpvar_30 < tmpvar_33.x)) {
+          tmpvar_29 = 1.0;
+        } else {
+          float tmpvar_34;
+          tmpvar_34 = max ((tmpvar_33.y - (tmpvar_33.x * tmpvar_33.x)), u_params1.z);
+          float tmpvar_35;
+          tmpvar_35 = (tmpvar_30 - tmpvar_33.x);
+          tmpvar_29 = mix ((tmpvar_34 / (tmpvar_34 + (tmpvar_35 * tmpvar_35))), 1.0, float(any(greaterThan (tmpvar_28.xy, vec2(0.95, 0.95)))));
+        };
+        visibility_1 = tmpvar_29;
+      } else {
+        vec2 tmpvar_36;
+        tmpvar_36 = (v_texcoord4.xy / v_texcoord4.w);
+        float tmpvar_37;
+        tmpvar_37 = (clamp ((1.0 - (float(any(greaterThan (tmpvar_36, vec2(1.0, 1.0)))) + float(any(lessThan (tmpvar_36, vec2(0.0, 0.0)))))), 0.0, 1.0) * 0.4);
+        vec3 tmpvar_38;
+        tmpvar_38.x = tmpvar_37;
+        tmpvar_38.y = -(tmpvar_37);
+        tmpvar_38.z = -(tmpvar_37);
+        colorCoverage_2 = tmpvar_38;
+        vec4 tmpvar_39;
+        tmpvar_39.w = 1.0;
+        tmpvar_39.xy = (v_texcoord4.xy / v_texcoord4.w);
+        tmpvar_39.z = v_texcoord4.z;
+        float tmpvar_40;
+        float tmpvar_41;
+        tmpvar_41 = ((v_texcoord4.z - u_params1.x) * u_params1.w);
+        vec4 tmpvar_42;
+        tmpvar_42 = texture2D (u_shadowMap3, tmpvar_39.xy);
+        vec2 tmpvar_43;
+        tmpvar_43.x = dot (tmpvar_42.xy, vec2(0.00390625, 1.0));
+        tmpvar_43.y = dot (tmpvar_42.zw, vec2(0.00390625, 1.0));
+        vec2 tmpvar_44;
+        tmpvar_44 = (tmpvar_43 * u_params1.w);
+        if ((tmpvar_41 < tmpvar_44.x)) {
+          tmpvar_40 = 1.0;
+        } else {
+          float tmpvar_45;
+          tmpvar_45 = max ((tmpvar_44.y - (tmpvar_44.x * tmpvar_44.x)), u_params1.z);
+          float tmpvar_46;
+          tmpvar_46 = (tmpvar_41 - tmpvar_44.x);
+          tmpvar_40 = mix ((tmpvar_45 / (tmpvar_45 + (tmpvar_46 * tmpvar_46))), 1.0, float(any(greaterThan (tmpvar_39.xy, vec2(0.95, 0.95)))));
+        };
+        visibility_1 = tmpvar_40;
+      };
+    };
+  };
+  vec3 tmpvar_47;
+  tmpvar_47 = -(normalize(v_view));
+  vec3 tmpvar_48;
+  float tmpvar_49;
+  tmpvar_48 = -(normalize(u_lightPosition.xyz));
+  tmpvar_49 = 1.0;
+  if ((0.0 != u_lightPosition.w)) {
+    vec3 tmpvar_50;
+    tmpvar_50 = (u_lightPosition.xyz - v_view);
+    vec3 tmpvar_51;
+    tmpvar_51 = normalize(tmpvar_50);
+    tmpvar_48 = tmpvar_51;
+    float tmpvar_52;
+    tmpvar_52 = cos((u_lightAttenuationSpotOuter.w * 0.0174533));
+    float tmpvar_53;
+    tmpvar_53 = sqrt(dot (tmpvar_50, tmpvar_50));
+    tmpvar_49 = ((1.0/(((u_lightAttenuationSpotOuter.x + (u_lightAttenuationSpotOuter.y * tmpvar_53)) + ((u_lightAttenuationSpotOuter.z * tmpvar_53) * tmpvar_53)))) * mix (clamp (((max (0.0, dot (-(tmpvar_51), normalize(u_lightSpotDirectionInner.xyz))) - tmpvar_52) / (cos((min (u_lightSpotDirectionInner.w, (u_lightAttenuationSpotOuter.w - 0.001)) * 0.0174533)) - tmpvar_52)), 0.0, 1.0), 1.0, float((u_lightAttenuationSpotOuter.w >= 90.0))));
+  };
+  float tmpvar_54;
+  tmpvar_54 = dot (v_normal, tmpvar_48);
+  vec2 tmpvar_55;
+  tmpvar_55.x = tmpvar_54;
+  tmpvar_55.y = (((float((tmpvar_54 >= 0.0)) * pow (max (0.0, dot ((((2.0 * tmpvar_54) * v_normal) - tmpvar_48), tmpvar_47)), u_materialKs.w)) * (2.0 + u_materialKs.w)) / 8.0);
+  vec2 tmpvar_56;
+  tmpvar_56 = (max (tmpvar_55, 0.0) * tmpvar_49);
+  float tmpvar_57;
+  tmpvar_57 = sqrt(dot (v_view, v_view));
+  gl_FragColor.xyz = mix (vec3(0.0, 0.0, 0.0), (pow (((((u_lightAmbientPower.xyz * u_lightAmbientPower.w) * u_materialKa) * u_color.xyz) + ((((((u_lightDiffusePower.xyz * u_lightDiffusePower.w) * u_materialKd) * tmpvar_56.x) + (((u_lightSpecularPower.xyz * u_lightSpecularPower.w) * u_materialKs.xyz) * tmpvar_56.y)) * u_color.xyz) * visibility_1)), vec3(0.454545, 0.454545, 0.454545)) + (colorCoverage_2 * u_params2.y)), clamp ((1.0/(exp2(((4.36415e-05 * tmpvar_57) * tmpvar_57)))), 0.0, 1.0));
+  gl_FragColor.w = 1.0;
+}
+
+

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio