diff --git a/.gitignore b/.gitignore index d0e492b..20a23fc 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,7 @@ export_presets.cfg # Mono-specific ignores .mono/ -data_*/ \ No newline at end of file +data_*/ + +# Ignore dbat dev stuff +dbat_dev/ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tres new file mode 100644 index 0000000..d8abc4f --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tres @@ -0,0 +1,77 @@ +[gd_resource type="VisualShader" load_steps=7 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Filters/LodBlur.gd" id="1_nbohf"] + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_jfkp4"] +parameter_name = "Texture2DParameter" +texture_type = 1 +texture_filter = 3 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_8pvek"] +default_input_values = [2, 1.115] +initialized = true +script = ExtResource("1_nbohf") + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_r8lli"] +input_name = "time" + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_q7lk4"] +function = 1 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_4wbml"] +default_input_values = [0, 0.0, 1, 10.0] +operator = 2 + +[resource] +code = "shader_type canvas_item; +uniform sampler2D Texture2DParameter : source_color, filter_nearest_mipmap; + + + +void fragment() { +// Input:5 + float n_out5p0 = TIME; + + +// FloatFunc:6 + float n_out6p0 = cos(n_out5p0); + + +// FloatOp:7 + float n_in7p1 = 10.00000; + float n_out7p0 = n_out6p0 * n_in7p1; + + + vec3 n_out3p0; +// LoDBlur:3 + { + + //When the sampler is set to Linear Mipmap it works best. + //The Bias will cause blurring. + vec4 color = textureLod(Texture2DParameter, UV, n_out7p0); + n_out3p0 = color.rgb; + + } + + +// Output:0 + COLOR.rgb = n_out3p0; + + +} +" +graph_offset = Vector2(-298, -23) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(500, 120) +nodes/fragment/2/node = SubResource("VisualShaderNodeTexture2DParameter_jfkp4") +nodes/fragment/2/position = Vector2(-193.333, 281.667) +nodes/fragment/3/node = SubResource("VisualShaderNodeCustom_8pvek") +nodes/fragment/3/position = Vector2(220, 180) +nodes/fragment/5/node = SubResource("VisualShaderNodeInput_r8lli") +nodes/fragment/5/position = Vector2(-560, 40) +nodes/fragment/6/node = SubResource("VisualShaderNodeFloatFunc_q7lk4") +nodes/fragment/6/position = Vector2(-260, 20) +nodes/fragment/7/node = SubResource("VisualShaderNodeFloatOp_4wbml") +nodes/fragment/7/position = Vector2(-47.2, 39.6) +nodes/fragment/connections = PackedInt32Array(2, 0, 3, 1, 3, 0, 0, 0, 5, 0, 6, 0, 6, 0, 7, 0, 7, 0, 3, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tscn new file mode 100644 index 0000000..c4ad467 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_2d_demo.tres" id="1_6t74a"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="1_wby0f"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gswws"] +shader = ExtResource("1_6t74a") +shader_parameter/Texture2DParameter = ExtResource("1_wby0f") + +[node name="blur_2d_demo" type="Node2D"] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_gswws") +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("1_wby0f") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_demo.tscn new file mode 100644 index 0000000..042f704 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_demo.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=5 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_vshader_demo.tres" id="1_8qkj1"] +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="5_vc82q"] + +[sub_resource type="PlaneMesh" id="PlaneMesh_xbehk"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mjkcc"] +render_priority = 0 +shader = ExtResource("1_8qkj1") +shader_parameter/Blur = 1.755 +shader_parameter/Texture2DParameter = ExtResource("5_vc82q") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +mesh = SubResource("PlaneMesh_xbehk") +surface_material_override/0 = SubResource("ShaderMaterial_mjkcc") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_vshader_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_vshader_demo.tres new file mode 100644 index 0000000..c99520f --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blur_3d_vshader_demo.tres @@ -0,0 +1,59 @@ +[gd_resource type="VisualShader" load_steps=5 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Filters/LodBlur.gd" id="1_u5y11"] + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_qxj8l"] +parameter_name = "Texture2DParameter" +texture_type = 1 +texture_filter = 4 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_e5pk6"] +default_input_values = [2, 1.115] +initialized = true +script = ExtResource("1_u5y11") + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_k3rmt"] +parameter_name = "Blur" +hint = 1 +max = 10.0 +default_value_enabled = true + +[resource] +code = "shader_type spatial; +uniform sampler2D Texture2DParameter : source_color, filter_linear_mipmap; +uniform float Blur : hint_range(0, 10) = 0; + + + +void fragment() { +// FloatParameter:23 + float n_out23p0 = Blur; + + + vec3 n_out22p0; +// LoDBlur:22 + { + + //When the sampler is set to Linear Mipmap it works best. + //The Bias will cause blurring. + vec4 color = textureLod(Texture2DParameter, UV, n_out23p0); + n_out22p0 = color.rgb; + + } + + +// Output:0 + ALBEDO = n_out22p0; + + +} +" +graph_offset = Vector2(-942.389, 686.417) +nodes/fragment/0/position = Vector2(-280, 1080) +nodes/fragment/18/node = SubResource("VisualShaderNodeTexture2DParameter_qxj8l") +nodes/fragment/18/position = Vector2(-980, 1240) +nodes/fragment/22/node = SubResource("VisualShaderNodeCustom_e5pk6") +nodes/fragment/22/position = Vector2(-580, 1140) +nodes/fragment/23/node = SubResource("VisualShaderNodeFloatParameter_k3rmt") +nodes/fragment/23/position = Vector2(-980, 960) +nodes/fragment/connections = PackedInt32Array(18, 0, 22, 1, 23, 0, 22, 2, 22, 0, 0, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blurthing.ptex b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blurthing.ptex new file mode 100644 index 0000000..13d4d4a --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/blur/blurthing.ptex @@ -0,0 +1,110 @@ +{ + "connections": [ + { + "from": "shape", + "from_port": 0, + "to": "gaussian_blur_x", + "to_port": 0 + }, + { + "from": "gaussian_blur_x", + "from_port": 0, + "to": "Material", + "to_port": 0 + }, + { + "from": "gaussian_blur_x", + "from_port": 0, + "to": "debug", + "to_port": 0 + } + ], + "label": "Graph", + "longdesc": "", + "name": "@@292", + "node_position": { + "x": 0, + "y": 0 + }, + "nodes": [ + { + "export_paths": { + "Godot/Godot 4": "/home/donn/Projects/03.GameDev/Pelagic/00.dev/godot_related_repos/GodotVisualShader-Extras-Fork/addons/VisualShaderExtras/dbat/demos/blur/mmblurthing" + }, + "name": "Material", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "albedo_color": { + "a": 1, + "b": 1, + "g": 1, + "r": 1, + "type": "Color" + }, + "ao": 1, + "depth_scale": 0.5, + "emission_energy": 1, + "flags_transparent": true, + "metallic": 0, + "normal": 1, + "roughness": 1 + }, + "seed": 0, + "seed_locked": false, + "type": "material_dynamic" + }, + { + "name": "gaussian_blur_x", + "node_position": { + "x": -408.200012, + "y": -25 + }, + "parameters": { + "sigma": 35.700001, + "size": 9 + }, + "seed": 0, + "seed_locked": false, + "type": "gaussian_blur_x" + }, + { + "name": "shape", + "node_position": { + "x": -612.200012, + "y": -51 + }, + "parameters": { + "edge": 0, + "radius": 0.78, + "shape": 1, + "sides": 6 + }, + "seed": 0, + "seed_locked": false, + "type": "shape" + }, + { + "name": "debug", + "node_position": { + "x": -125.200012, + "y": -101 + }, + "parameters": { + + }, + "seed": 0, + "seed_locked": false, + "type": "debug" + } + ], + "parameters": { + + }, + "seed": 0, + "seed_locked": false, + "shortdesc": "", + "type": "graph" +} \ No newline at end of file diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tres new file mode 100644 index 0000000..2b721b0 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tres @@ -0,0 +1,102 @@ +[gd_resource type="VisualShader" load_steps=10 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Usability/ColorMask.gd" id="1_8hvao"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="2_lfyqb"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_ipv1k"] +output_port_for_preview = 0 +default_input_values = [2, 0.502] +initialized = true +script = ExtResource("1_8hvao") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_j6g58"] +source = 5 +texture = ExtResource("2_lfyqb") + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_p8f0m"] +constant = Color(0.258824, 0.556863, 0.741176, 1) + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_2i2pe"] +constant = Color(0.910156, 0.842927, 0.061996, 1) + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_0172k"] +constant = Color(0.1, 0.075, 1, 1) + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_jdtvy"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_ticoq"] +parameter_name = "Texture2DParameter" +texture_type = 1 +texture_filter = 2 + +[resource] +code = "shader_type canvas_item; +uniform sampler2D Texture2DParameter : source_color, filter_linear; + + +// ColorMask + +float compare_VisualShaderExtrasUsabilityColorMask(vec4 in1, vec4 in2, float fuzz) +{ + return dot(abs(in1-in2), vec4(fuzz)); +} + + + +void fragment() { +// ColorConstant:7 + vec4 n_out7p0 = vec4(0.100000, 0.075000, 1.000000, 1.000000); + + +// ColorConstant:5 + vec4 n_out5p0 = vec4(0.910156, 0.842927, 0.061996, 1.000000); + + + vec4 n_out3p0; +// Texture2D:3 + n_out3p0 = texture(Texture2DParameter, UV); + + +// ColorConstant:4 + vec4 n_out4p0 = vec4(0.258824, 0.556863, 0.741176, 1.000000); + + + float n_out10p0; +// ColorMask:10 + float n_in10p2 = 0.50200; + { + n_out10p0 = compare_VisualShaderExtrasUsabilityColorMask(n_out3p0,n_out4p0,n_in10p2); + } + + +// Mix:8 + vec3 n_out8p0 = mix(vec3(n_out7p0.xyz), vec3(n_out5p0.xyz), n_out10p0); + + +// Output:0 + COLOR.rgb = n_out8p0; + + +} +" +graph_offset = Vector2(-334.81, -34.9294) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(720, 140) +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture_j6g58") +nodes/fragment/3/position = Vector2(-180, 60) +nodes/fragment/4/node = SubResource("VisualShaderNodeColorConstant_p8f0m") +nodes/fragment/4/position = Vector2(-120, 340) +nodes/fragment/5/node = SubResource("VisualShaderNodeColorConstant_2i2pe") +nodes/fragment/5/position = Vector2(280, 60) +nodes/fragment/7/node = SubResource("VisualShaderNodeColorConstant_0172k") +nodes/fragment/7/position = Vector2(360, 320) +nodes/fragment/8/node = SubResource("VisualShaderNodeMix_jdtvy") +nodes/fragment/8/position = Vector2(540, 140) +nodes/fragment/9/node = SubResource("VisualShaderNodeTexture2DParameter_ticoq") +nodes/fragment/9/position = Vector2(-580, 100) +nodes/fragment/10/node = SubResource("VisualShaderNodeCustom_ipv1k") +nodes/fragment/10/position = Vector2(60, 180) +nodes/fragment/connections = PackedInt32Array(9, 0, 3, 2, 7, 0, 8, 0, 5, 0, 8, 1, 8, 0, 0, 0, 3, 0, 10, 0, 4, 0, 10, 1, 10, 0, 8, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tscn new file mode 100644 index 0000000..d29457c --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_2d_demo.tres" id="1_yj4qn"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="2_k005x"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sgbdy"] +shader = ExtResource("1_yj4qn") +shader_parameter/Texture2DParameter = ExtResource("2_k005x") + +[node name="compare_2d_demo" type="Node2D"] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_sgbdy") +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("2_k005x") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_demo.tscn new file mode 100644 index 0000000..d3d54f1 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_demo.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_vshader.tres" id="1_04drd"] +[ext_resource type="ArrayMesh" uid="uid://bcv4ug57hcmnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj" id="1_b56b5"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pcei7"] +render_priority = 0 +shader = ExtResource("1_04drd") + +[node name="Node3D" type="Node3D"] + +[node name="suzanne" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.566285, 0.0365433, 0.0734995) +mesh = ExtResource("1_b56b5") +surface_material_override/0 = SubResource("ShaderMaterial_pcei7") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_vshader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_vshader.tres new file mode 100644 index 0000000..846acb5 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/color_mask_3d_vshader.tres @@ -0,0 +1,148 @@ +[gd_resource type="VisualShader" load_steps=14 format=3] + +[ext_resource type="Texture2D" uid="uid://x3a0rntfqelx" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png" id="1_ebv2o"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Usability/ColorMask.gd" id="2_x61a6"] + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_818w5"] +expanded_output_ports = [0] +constant = Color(1, 0, 0.122976, 1) + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_p3lqc"] +texture = ExtResource("1_ebv2o") + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_ft6g2"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)] +op_type = 3 + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_8go02"] +expanded_output_ports = [0] +constant = Color(0, 1, 0, 1) + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_ex3cp"] +texture = ExtResource("1_ebv2o") + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_e7w87"] +expanded_output_ports = [0] +constant = Color(0.753906, 0.0638833, 0.21712, 1) + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_ecxay"] +default_input_values = [2, 1.0] +initialized = true +script = ExtResource("2_x61a6") + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_jbyxt"] +default_input_values = [2, 1.0] +initialized = true +script = ExtResource("2_x61a6") + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_25vsa"] +expanded_output_ports = [0] +constant = Color(0.927566, 1, 0.317803, 1) + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_yt6sb"] +expanded_output_ports = [0] +constant = Color(0.342032, 0.532908, 1, 1) + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_b21m3"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)] +op_type = 3 + +[resource] +code = "shader_type spatial; +uniform sampler2D tex_frg_15; +uniform sampler2D tex_frg_19; + + +// ColorMask + +float compare_VisualShaderExtrasUsabilityColorMask(vec4 in1, vec4 in2, float fuzz) +{ + return dot(abs(in1-in2), vec4(fuzz)); +} + + + +void fragment() { +// ColorConstant:21 + vec4 n_out21p0 = vec4(0.753906, 0.063883, 0.217120, 1.000000); + + +// ColorConstant:5 + vec4 n_out5p0 = vec4(0.342032, 0.532908, 1.000000, 1.000000); + + +// ColorConstant:4 + vec4 n_out4p0 = vec4(0.927566, 1.000000, 0.317803, 1.000000); + + +// Texture2D:15 + vec4 n_out15p0 = texture(tex_frg_15, UV); + + +// ColorConstant:13 + vec4 n_out13p0 = vec4(1.000000, 0.000000, 0.122976, 1.000000); + + + float n_out24p0; +// ColorMask:24 + float n_in24p2 = 1.00000; + { + n_out24p0 = compare_VisualShaderExtrasUsabilityColorMask(n_out15p0,n_out13p0,n_in24p2); + } + + +// Mix:8 + vec3 n_out8p0 = mix(vec3(n_out5p0.xyz), vec3(n_out4p0.xyz), vec3(n_out24p0)); + + +// Texture2D:19 + vec4 n_out19p0 = texture(tex_frg_19, UV); + + +// ColorConstant:18 + vec4 n_out18p0 = vec4(0.000000, 1.000000, 0.000000, 1.000000); + + + float n_out25p0; +// ColorMask:25 + float n_in25p2 = 1.00000; + { + n_out25p0 = compare_VisualShaderExtrasUsabilityColorMask(n_out19p0,n_out18p0,n_in25p2); + } + + +// Mix:16 + vec3 n_out16p0 = mix(vec3(n_out21p0.xyz), n_out8p0, vec3(n_out25p0)); + + +// Output:0 + ALBEDO = n_out16p0; + + +} +" +graph_offset = Vector2(-328.332, 350.908) +nodes/fragment/0/position = Vector2(400, 200) +nodes/fragment/4/node = SubResource("VisualShaderNodeColorConstant_25vsa") +nodes/fragment/4/position = Vector2(-720, 280) +nodes/fragment/5/node = SubResource("VisualShaderNodeColorConstant_yt6sb") +nodes/fragment/5/position = Vector2(-720, 80) +nodes/fragment/8/node = SubResource("VisualShaderNodeMix_b21m3") +nodes/fragment/8/position = Vector2(-380, 200) +nodes/fragment/13/node = SubResource("VisualShaderNodeColorConstant_818w5") +nodes/fragment/13/position = Vector2(-920, 760) +nodes/fragment/15/node = SubResource("VisualShaderNodeTexture_p3lqc") +nodes/fragment/15/position = Vector2(-1000, 460) +nodes/fragment/16/node = SubResource("VisualShaderNodeMix_ft6g2") +nodes/fragment/16/position = Vector2(120, 340) +nodes/fragment/18/node = SubResource("VisualShaderNodeColorConstant_8go02") +nodes/fragment/18/position = Vector2(-320, 660) +nodes/fragment/19/node = SubResource("VisualShaderNodeTexture_ex3cp") +nodes/fragment/19/position = Vector2(-380, 400) +nodes/fragment/21/node = SubResource("VisualShaderNodeColorConstant_e7w87") +nodes/fragment/21/position = Vector2(-40, 140) +nodes/fragment/24/node = SubResource("VisualShaderNodeCustom_ecxay") +nodes/fragment/24/position = Vector2(-700, 560) +nodes/fragment/25/node = SubResource("VisualShaderNodeCustom_jbyxt") +nodes/fragment/25/position = Vector2(-120, 520) +nodes/fragment/connections = PackedInt32Array(5, 0, 8, 0, 16, 0, 0, 0, 21, 0, 16, 0, 8, 0, 16, 1, 4, 0, 8, 1, 15, 0, 24, 0, 13, 0, 24, 1, 24, 0, 8, 2, 19, 0, 25, 0, 18, 0, 25, 1, 25, 0, 16, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png new file mode 100644 index 0000000..eb823e9 Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png.import new file mode 100644 index 0000000..af2acee --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://x3a0rntfqelx" +path.s3tc="res://.godot/imported/ids.png-9bf16e9089ae721d6e19374595ffd97a.s3tc.ctex" +path.etc2="res://.godot/imported/ids.png-9bf16e9089ae721d6e19374595ffd97a.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/color_mask/ids.png" +dest_files=["res://.godot/imported/ids.png-9bf16e9089ae721d6e19374595ffd97a.s3tc.ctex", "res://.godot/imported/ids.png-9bf16e9089ae721d6e19374595ffd97a.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/Connectors_Demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/Connectors_Demo.tres new file mode 100644 index 0000000..470eade --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/Connectors_Demo.tres @@ -0,0 +1,199 @@ +[gd_resource type="VisualShader" load_steps=21 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/_removed/Circle.gd" id="1_10ds4"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Usability/RerouteMany.gd" id="2_lqd6l"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Usability/Reroute.gd" id="3_tr5mt"] + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_m3ool"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_n1wjm"] +size = Vector2(379.28, 558.36) +title = "Connector demos" +description = " + + + + + + + + + + + + + + + + + + + + + + + +Try add different inputs to the One To Many Connector." + +[sub_resource type="VisualShaderNodeVec2Constant" id="VisualShaderNodeVec2Constant_ha5ap"] +constant = Vector2(0.5, 0.3) + +[sub_resource type="VisualShaderNodeFloatConstant" id="VisualShaderNodeFloatConstant_v1480"] +constant = 1.479 + +[sub_resource type="VisualShaderNodeIntConstant" id="VisualShaderNodeIntConstant_4p474"] + +[sub_resource type="VisualShaderNodeVec3Constant" id="VisualShaderNodeVec3Constant_uutbx"] +constant = Vector3(1, 1, 0) + +[sub_resource type="VisualShaderNodeVec4Constant" id="VisualShaderNodeVec4Constant_61tys"] +constant = Quaternion(-200, 0, -11.2, 100) + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_6r16i"] +input_name = "uv" + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_v2ehy"] +parameter_name = "Texture2DParameter" + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_k1ph0"] +default_input_values = [1, Vector2(0.5, 0.5), 2, -0.005] +initialized = true +script = ExtResource("1_10ds4") + +[sub_resource type="VisualShaderNodeTexture3D" id="VisualShaderNodeTexture3D_arkyd"] +source = 1 + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_dd5ua"] +constant = Color(1, 0.386878, 0.342078, 1) + +[sub_resource type="VisualShaderNodeColorOp" id="VisualShaderNodeColorOp_srnum"] +operator = 1 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_v7x2n"] +initialized = true +script = ExtResource("2_lqd6l") + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_btql7"] +default_input_values = [0, 0.757, 1, 0.0] +operator = 1 + +[sub_resource type="VisualShaderNodeBooleanConstant" id="VisualShaderNodeBooleanConstant_yq66k"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_cyr48"] +initialized = true +script = ExtResource("3_tr5mt") + +[resource] +code = "shader_type canvas_item; +uniform sampler2D Texture2DParameter; + + +// Circle + + float sdCircle(vec2 pos, float r) { + return length(pos) - r; + } + + +void fragment() { +// Input:18 + vec2 n_out18p0 = UV; + + + vec4 n_out9p0; +// Route:9 + { + n_out9p0 = vec4(n_out18p0, 0.0, 0.0); + } + + + float n_out2p0; +// Circle:2 + vec2 n_in2p1 = vec2(0.50000, 0.50000); + float n_in2p2 = -0.00500; + { + n_out2p0 = sdCircle(UV.xy - n_in2p1.xy, n_in2p2); + } + + +// ColorConstant:3 + vec4 n_out3p0 = vec4(1.000000, 0.386878, 0.342078, 1.000000); + + +// ColorOp:5 + vec3 n_out5p0 = abs(vec3(n_out3p0.xyz) - vec3(n_out2p0)); + + + bool n_out6p0; + float n_out6p1; + int n_out6p2; + vec2 n_out6p3; + vec3 n_out6p4; + vec4 n_out6p5; + mat4 n_out6p6; +// RouteMany:6 + { + n_out6p1 = n_out2p0; + n_out6p4 = n_out5p0; + } + + +// Mix:10 + float n_in10p2 = 0.50000; + vec3 n_out10p0 = mix(vec3(n_out9p0.xyz), n_out6p4, n_in10p2); + + +// FloatOp:7 + float n_in7p0 = 0.75700; + float n_out7p0 = n_in7p0 - n_out6p1; + + +// Output:0 + COLOR.rgb = n_out10p0; + COLOR.a = n_out7p0; + NORMAL_MAP_DEPTH = n_out9p0.x; + + +} +" +graph_offset = Vector2(-56.2779, 119.222) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(900, 200) +nodes/fragment/2/node = SubResource("VisualShaderNodeCustom_k1ph0") +nodes/fragment/2/position = Vector2(-320, 320) +nodes/fragment/3/node = SubResource("VisualShaderNodeColorConstant_dd5ua") +nodes/fragment/3/position = Vector2(-320, 220) +nodes/fragment/5/node = SubResource("VisualShaderNodeColorOp_srnum") +nodes/fragment/5/position = Vector2(-120, 180) +nodes/fragment/6/node = SubResource("VisualShaderNodeCustom_v7x2n") +nodes/fragment/6/position = Vector2(240, 180) +nodes/fragment/7/node = SubResource("VisualShaderNodeFloatOp_btql7") +nodes/fragment/7/position = Vector2(680, 100) +nodes/fragment/8/node = SubResource("VisualShaderNodeBooleanConstant_yq66k") +nodes/fragment/8/position = Vector2(-160, 480) +nodes/fragment/9/node = SubResource("VisualShaderNodeCustom_cyr48") +nodes/fragment/9/position = Vector2(220, 560) +nodes/fragment/10/node = SubResource("VisualShaderNodeMix_m3ool") +nodes/fragment/10/position = Vector2(680, 240) +nodes/fragment/11/node = SubResource("VisualShaderNodeComment_n1wjm") +nodes/fragment/11/position = Vector2(180, 120) +nodes/fragment/12/node = SubResource("VisualShaderNodeVec2Constant_ha5ap") +nodes/fragment/12/position = Vector2(-160, 800) +nodes/fragment/13/node = SubResource("VisualShaderNodeFloatConstant_v1480") +nodes/fragment/13/position = Vector2(-160, 720) +nodes/fragment/14/node = SubResource("VisualShaderNodeIntConstant_4p474") +nodes/fragment/14/position = Vector2(-140, 640) +nodes/fragment/15/node = SubResource("VisualShaderNodeVec3Constant_uutbx") +nodes/fragment/15/position = Vector2(-300, 900) +nodes/fragment/17/node = SubResource("VisualShaderNodeVec4Constant_61tys") +nodes/fragment/17/position = Vector2(-360, 1000) +nodes/fragment/18/node = SubResource("VisualShaderNodeInput_6r16i") +nodes/fragment/18/position = Vector2(-300, 560) +nodes/fragment/19/node = SubResource("VisualShaderNodeTexture2DParameter_v2ehy") +nodes/fragment/19/position = Vector2(-220, 300) +nodes/fragment/20/node = SubResource("VisualShaderNodeTexture3D_arkyd") +nodes/fragment/20/position = Vector2(702.816, 491.136) +nodes/fragment/connections = PackedInt32Array(2, 0, 5, 1, 3, 0, 5, 0, 5, 0, 6, 4, 2, 0, 6, 1, 6, 1, 7, 1, 7, 0, 0, 1, 9, 0, 10, 0, 6, 4, 10, 1, 10, 0, 0, 0, 9, 0, 0, 4, 18, 0, 9, 0, 19, 0, 6, 7, 6, 7, 20, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/connectors_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/connectors_2d_demo.tscn new file mode 100644 index 0000000..268497d --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/connectors_2d_demo.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/connectors/Connectors_Demo.tres" id="1_q1015"] +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="2_5em8o"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_f0t8b"] +shader = ExtResource("1_q1015") + +[node name="Node2D" type="Node2D"] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_f0t8b") +offset_right = 189.0 +offset_bottom = 180.0 +texture = ExtResource("2_5em8o") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_2d_demo.tscn new file mode 100644 index 0000000..fb0b63b --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_2d_demo.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=8 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_demo.tres" id="1_8i6o1"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_n8abd"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="3_8270c"] +[ext_resource type="Texture2D" uid="uid://33ty6m6q8j0k" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" id="3_qb5u7"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="4_2mbpu"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="4_fftsb"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tv3gx"] +shader = ExtResource("1_8i6o1") +shader_parameter/ForeGroundAlbedo = ExtResource("3_8270c") +shader_parameter/BackgroundAlbedo = ExtResource("2_n8abd") +shader_parameter/BackgroundNormalMap = ExtResource("4_2mbpu") +shader_parameter/BackgroundDepth = ExtResource("3_qb5u7") + +[node name="Node2D" type="Node2D"] +metadata/_edit_horizontal_guides_ = [38.0] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_tv3gx") +offset_right = 64.0 +offset_bottom = 64.0 +texture = ExtResource("4_fftsb") + +[node name="PointLight2D" type="PointLight2D" parent="."] +position = Vector2(122, 114) +color = Color(0.960784, 1, 1, 1) +energy = 3.5 +texture = ExtResource("3_qb5u7") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_demo.tres new file mode 100644 index 0000000..b083a42 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/mask_blend/mask_blend_demo.tres @@ -0,0 +1,189 @@ +[gd_resource type="VisualShader" load_steps=18 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/TextureStack.gd" id="1_iva28"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="2_814ee"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/MaskBlend.gd" id="3_52467"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/_removed/Circle.gd" id="4_1qqte"] + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_6xmu7"] +input_name = "time" + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_y5reu"] +function = 0 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_vai6w"] +default_input_values = [0, 0.0, 1, 0.5] +operator = 2 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_s6kcb"] +initialized = true +script = ExtResource("1_iva28") + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_j7adv"] +parameter_name = "BackgroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_51rlw"] +parameter_name = "BackgroundDepth" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_1vtdj"] +size = Vector2(929.035, 1159.38) +title = "Textures" + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_338pd"] +source = 5 +texture = ExtResource("2_814ee") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_orcc3"] +parameter_name = "ForeGroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_kafga"] +parameter_name = "BackgroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_8tnnv"] +default_input_values = [0, 0.0, 1, 0.023, 2, 0.166] +initialized = true +script = ExtResource("3_52467") + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_1xvdg"] +default_input_values = [1, Vector2(0.5, 0.5), 2, 0.25] +initialized = true +script = ExtResource("4_1qqte") + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_3p70w"] +default_input_values = [0, Vector2(0, 0), 1, Vector2(1, 1), 2, Vector2(0, 0)] +op_type = 1 + +[resource] +code = "shader_type canvas_item; +uniform sampler2D ForeGroundAlbedo : source_color, filter_linear; +uniform sampler2D BackgroundAlbedo : source_color, filter_linear; +uniform sampler2D BackgroundNormalMap : hint_normal, filter_linear; +uniform sampler2D BackgroundDepth : filter_linear; + + +// Circle + + float sdCircle(vec2 pos, float r) { + return length(pos) - r; + } + +// MaskBlend + +float mask_blend_VisualShaderExtrasUtilityMaskBlend(float offset, float fade, float mask_in) { + offset *= -1.; + + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + return smoothstep(offset - fade, offset + fade, mask_in); +} + + + +void fragment() { + vec4 n_out4p0; +// Texture2D:4 + n_out4p0 = texture(ForeGroundAlbedo, UV); + + + vec2 n_out14p0; + vec4 n_out14p1; + vec3 n_out14p2; + float n_out14p3; + float n_out14p4; + float n_out14p5; + vec3 n_out14p6; + float n_out14p7; +// TextureStack:14 + { + n_out14p1 = textureLod(BackgroundAlbedo, UV, 0.); + + n_out14p6 = textureLod(BackgroundNormalMap, UV, 0.).rgb; + + n_out14p7 = textureLod(BackgroundDepth, UV, 0.).r; + + + n_out14p0 = UV; + } + + + float n_out8p0; +// Circle:8 + vec2 n_in8p1 = vec2(0.50000, 0.50000); + float n_in8p2 = 0.25000; + { + n_out8p0 = sdCircle(UV.xy - n_in8p1.xy, n_in8p2); + } + + +// Input:10 + float n_out10p0 = TIME; + + +// FloatFunc:12 + float n_out12p0 = sin(n_out10p0); + + +// FloatOp:13 + float n_in13p1 = 0.50000; + float n_out13p0 = n_out12p0 * n_in13p1; + + + float n_out7p0; +// MaskBlend:7 + float n_in7p1 = 0.02300; + { + + n_out7p0 = mask_blend_VisualShaderExtrasUtilityMaskBlend(n_in7p1, n_out13p0, n_out8p0); + } + + +// Mix:9 + vec2 n_out9p0 = mix(vec2(n_out4p0.xy), vec2(n_out14p1.xy), vec2(n_out7p0)); + + +// Output:0 + COLOR.rgb = vec3(n_out9p0, 0.0); + NORMAL_MAP = n_out14p6; + NORMAL_MAP_DEPTH = n_out14p7; + + +} +" +graph_offset = Vector2(-175.544, 239.624) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(1060, 560) +nodes/fragment/2/node = SubResource("VisualShaderNodeComment_1vtdj") +nodes/fragment/2/position = Vector2(-420, 420) +nodes/fragment/4/node = SubResource("VisualShaderNodeTexture_338pd") +nodes/fragment/4/position = Vector2(20, 500) +nodes/fragment/5/node = SubResource("VisualShaderNodeTexture2DParameter_orcc3") +nodes/fragment/5/position = Vector2(-300, 500) +nodes/fragment/6/node = SubResource("VisualShaderNodeTexture2DParameter_kafga") +nodes/fragment/6/position = Vector2(-320, 780) +nodes/fragment/7/node = SubResource("VisualShaderNodeCustom_8tnnv") +nodes/fragment/7/position = Vector2(580, 240) +nodes/fragment/8/node = SubResource("VisualShaderNodeCustom_1xvdg") +nodes/fragment/8/position = Vector2(380, 160) +nodes/fragment/9/node = SubResource("VisualShaderNodeMix_3p70w") +nodes/fragment/9/position = Vector2(880, 380) +nodes/fragment/10/node = SubResource("VisualShaderNodeInput_6xmu7") +nodes/fragment/10/position = Vector2(-480, 180) +nodes/fragment/12/node = SubResource("VisualShaderNodeFloatFunc_y5reu") +nodes/fragment/12/position = Vector2(-120, 160) +nodes/fragment/13/node = SubResource("VisualShaderNodeFloatOp_vai6w") +nodes/fragment/13/position = Vector2(220, 280) +nodes/fragment/14/node = SubResource("VisualShaderNodeCustom_s6kcb") +nodes/fragment/14/position = Vector2(300, 780) +nodes/fragment/15/node = SubResource("VisualShaderNodeTexture2DParameter_j7adv") +nodes/fragment/15/position = Vector2(-320, 1060) +nodes/fragment/16/node = SubResource("VisualShaderNodeTexture2DParameter_51rlw") +nodes/fragment/16/position = Vector2(-300, 1320) +nodes/fragment/connections = PackedInt32Array(5, 0, 4, 2, 8, 0, 7, 0, 10, 0, 12, 0, 12, 0, 13, 0, 13, 0, 7, 2, 6, 0, 14, 1, 15, 0, 14, 6, 16, 0, 14, 7, 14, 1, 9, 1, 14, 6, 0, 3, 14, 7, 0, 4, 9, 0, 0, 0, 4, 0, 9, 0, 7, 0, 9, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_3d_demo.tscn new file mode 100644 index 0000000..b758767 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_3d_demo.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=5 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_demo.tres" id="1_pviys"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="2_8lq7g"] + +[sub_resource type="SphereMesh" id="SphereMesh_27ab8"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_n806v"] +render_priority = 0 +shader = ExtResource("1_pviys") +shader_parameter/BackgroundNormalMap = ExtResource("2_8lq7g") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("SphereMesh_27ab8") +surface_material_override/0 = SubResource("ShaderMaterial_n806v") + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.809164) +light_color = Color(0.392157, 0.584314, 1, 1) +omni_range = 1.46783 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_demo.tres new file mode 100644 index 0000000..55ad011 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/normalmap_z/normalmap_z_demo.tres @@ -0,0 +1,106 @@ +[gd_resource type="VisualShader" load_steps=8 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/NormalMapZ.gd" id="1_e7ynp"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_r8ej1"] +[ext_resource type="Texture2D" uid="uid://33ty6m6q8j0k" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" id="3_d5ylu"] + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_i7wow"] +parameter_name = "BackgroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_574f2"] +default_input_values = [2, 0.0] +initialized = true +script = ExtResource("1_e7ynp") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_oxktn"] +texture = ExtResource("2_r8ej1") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_eihfq"] +texture = ExtResource("3_d5ylu") + +[resource] +code = "shader_type spatial; +uniform sampler2D tex_frg_15 : source_color; +uniform sampler2D BackgroundNormalMap : hint_normal, filter_linear; +uniform sampler2D tex_frg_16; + + +// RestoreNormalMapZ + +// Godot strips the z value from imported Normal Maps. +// It does this for two reasons: +// 1. Obtaining better compression because the z can be calculated by shader. +// Compression boosts speed of CPU to GPU transfer. +// 2. On mobile devices they do not do that calculation. They either ignore the z +// or do some other calculation, but the normal one (below) is apparently too slow +// or power-hungry for mobile devices. +// +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +vec3 normal_map_add_z_VisualShaderExtrasUtilityRestoreNormalMapZ( + vec3 normal_map_texture, + vec2 inuv, + vec3 _TANGENT, + vec3 _BINORMAL, + vec3 _NORMAL) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + + // Unpack the background normal map. + vec3 bg_normal = normal_map_texture * 2.0 - 1.0; + + // Recalculate z-component of the normal map with the Pythagorean theorem. + bg_normal.z = sqrt(1.0 - bg_normal.x * bg_normal.x - bg_normal.y * bg_normal.y); + + // Apply the tangent-space normal map to the view-space normals. + vec3 normal_applied = bg_normal.x * _TANGENT + bg_normal.y * _BINORMAL + bg_normal.z * _NORMAL; + return normal_applied; +} + + + +void fragment() { +// Texture2D:15 + vec4 n_out15p0 = texture(tex_frg_15, UV); + + + vec3 n_out14p0; +// RestoreNormalMapZ:14 + { + + vec3 normal_map_texture = textureLod(BackgroundNormalMap, UV, 0.).rgb; + + n_out14p0 = normal_map_add_z_VisualShaderExtrasUtilityRestoreNormalMapZ( + normal_map_texture, + UV, + TANGENT, + BINORMAL, + NORMAL); + + } + + +// Texture2D:16 + vec4 n_out16p0 = texture(tex_frg_16, UV); + + +// Output:0 + ALBEDO = vec3(n_out15p0.xyz); + NORMAL_MAP = n_out14p0; + NORMAL_MAP_DEPTH = n_out16p0.x; + + +} +" +nodes/fragment/0/position = Vector2(1540, -80) +nodes/fragment/12/node = SubResource("VisualShaderNodeTexture2DParameter_i7wow") +nodes/fragment/12/position = Vector2(820, 60) +nodes/fragment/14/node = SubResource("VisualShaderNodeCustom_574f2") +nodes/fragment/14/position = Vector2(1140, 140) +nodes/fragment/15/node = SubResource("VisualShaderNodeTexture_oxktn") +nodes/fragment/15/position = Vector2(1140, -120) +nodes/fragment/16/node = SubResource("VisualShaderNodeTexture_eihfq") +nodes/fragment/16/position = Vector2(1140, 280) +nodes/fragment/connections = PackedInt32Array(12, 0, 14, 1, 14, 0, 0, 9, 15, 0, 0, 0, 16, 0, 0, 10) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pm_demo_3d.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pm_demo_3d.tres new file mode 100644 index 0000000..e921d5d --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pm_demo_3d.tres @@ -0,0 +1,150 @@ +[gd_resource type="VisualShader" load_steps=10 format=3 uid="uid://6gmb8xxcbpq"] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/ParallaxMapping.gd" id="1_l416p"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/TextureStack.gd" id="2_i20sn"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_qibuv"] +default_input_values = [2, 32.0, 3, 2, 4, 32, 5, Vector2(1, 1)] +initialized = true +script = ExtResource("1_l416p") + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_clofw"] +parameter_name = "RockHeight" +color_default = 1 +texture_filter = 4 +texture_repeat = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_g6kfu"] +parameter_name = "RockAlbedo" +texture_type = 1 +texture_filter = 4 +texture_repeat = 1 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_yygue"] +initialized = true +script = ExtResource("2_i20sn") + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_qnp5j"] +parameter_name = "RockNormalMap" +texture_type = 2 +texture_filter = 4 +texture_repeat = 1 + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_7fnxx"] +default_input_values = [1, Vector2(8, 8), 2, Vector2(0, 0)] +function = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_hw5fa"] +parameter_name = "RockORM" +texture_filter = 4 +texture_repeat = 1 + +[resource] +code = "shader_type spatial; +uniform sampler2D RockHeight : hint_default_black, filter_linear_mipmap, repeat_enable; +uniform sampler2D RockAlbedo : source_color, filter_linear_mipmap, repeat_enable; +uniform sampler2D RockORM : filter_linear_mipmap, repeat_enable; +uniform sampler2D RockNormalMap : hint_normal, filter_linear_mipmap, repeat_enable; + + + +void fragment() { +// UVFunc:7 + vec2 n_in7p1 = vec2(8.00000, 8.00000); + vec2 n_in7p2 = vec2(0.00000, 0.00000); + vec2 n_out7p0 = fma((UV - n_in7p2), n_in7p1, n_in7p2); + + + vec2 n_out2p0; + float n_out2p1; +// ParallaxMapping:2 + float n_in2p2 = 32.00000; + int n_in2p3 = 2; + int n_in2p4 = 32; + vec2 n_in2p5 = vec2(1.00000, 1.00000); + { + + // Code taken from Godot's Spatial Shader + float heightmap_scale = n_in2p2; + int heightmap_min_layers = n_in2p3; + int heightmap_max_layers = n_in2p4; + vec2 heightmap_flip = n_in2p5; + vec2 base_uv = n_out7p0; + { + + vec3 view_dir = normalize(normalize(-VERTEX)*mat3(TANGENT*heightmap_flip.x,-BINORMAL*heightmap_flip.y,NORMAL)); + float num_layers = mix(float(heightmap_max_layers),float(heightmap_min_layers), abs(dot(vec3(0.0, 0.0, 1.0), view_dir))); + float layer_depth = 1.0 / num_layers; + float current_layer_depth = 0.0; + vec2 P = view_dir.xy * heightmap_scale * 0.01; + vec2 delta = P / num_layers; + vec2 ofs = base_uv; + float depth = 1.0 - texture(RockHeight, ofs).r; + float current_depth = 0.0; + while(current_depth < depth) { + ofs -= delta; + depth = 1.0 - texture(RockHeight, ofs).r; + current_depth += layer_depth; + } + vec2 prev_ofs = ofs + delta; + float after_depth = depth - current_depth; + float before_depth = ( 1.0 - texture(RockHeight, prev_ofs).r ) - current_depth + layer_depth; + float weight = after_depth / (after_depth - before_depth); + ofs = mix(ofs,prev_ofs,weight); + + n_out2p0 = ofs; + n_out2p1 = layer_depth; + } + } + + + vec2 n_out5p0; + vec4 n_out5p1; + vec3 n_out5p2; + float n_out5p3; + float n_out5p4; + float n_out5p5; + vec3 n_out5p6; + float n_out5p7; +// TextureStack:5 + { + n_out5p1 = textureLod(RockAlbedo, n_out2p0, 0.); + + n_out5p3 = textureLod(RockORM, n_out2p0, 0.).r; + n_out5p4 = textureLod(RockORM, n_out2p0, 0.).g; + n_out5p5 = textureLod(RockORM, n_out2p0, 0.).b; + + n_out5p6 = textureLod(RockNormalMap, n_out2p0, 0.).rgb; + + + n_out5p0 = n_out2p0; + } + + +// Output:0 + ALBEDO = vec3(n_out5p1.xyz); + METALLIC = n_out5p5; + ROUGHNESS = n_out5p4; + AO = n_out5p3; + NORMAL_MAP = n_out5p6; + NORMAL_MAP_DEPTH = n_out2p1; + + +} +" +graph_offset = Vector2(-404.267, 120.2) +nodes/fragment/2/node = SubResource("VisualShaderNodeCustom_qibuv") +nodes/fragment/2/position = Vector2(-386.4, 243.76) +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture2DParameter_clofw") +nodes/fragment/3/position = Vector2(-820, 160) +nodes/fragment/4/node = SubResource("VisualShaderNodeTexture2DParameter_g6kfu") +nodes/fragment/4/position = Vector2(-820, 460) +nodes/fragment/5/node = SubResource("VisualShaderNodeCustom_yygue") +nodes/fragment/5/position = Vector2(-40, 400) +nodes/fragment/6/node = SubResource("VisualShaderNodeTexture2DParameter_qnp5j") +nodes/fragment/6/position = Vector2(-820, 720) +nodes/fragment/7/node = SubResource("VisualShaderNodeUVFunc_7fnxx") +nodes/fragment/7/position = Vector2(-780, -20) +nodes/fragment/8/node = SubResource("VisualShaderNodeTexture2DParameter_hw5fa") +nodes/fragment/8/position = Vector2(-360, 760) +nodes/fragment/connections = PackedInt32Array(3, 0, 2, 1, 2, 0, 5, 0, 5, 1, 0, 0, 4, 0, 5, 1, 2, 1, 0, 10, 6, 0, 5, 6, 7, 0, 2, 0, 5, 6, 0, 9, 8, 0, 5, 2, 5, 3, 0, 6, 5, 4, 0, 3, 5, 5, 0, 2) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pmap_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pmap_3d_demo.tscn new file mode 100644 index 0000000..7b25663 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pmap_3d_demo.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=8 format=3] + +[ext_resource type="ArrayMesh" uid="uid://dsgni0xlkinot" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj" id="1_73xfj"] +[ext_resource type="Shader" uid="uid://6gmb8xxcbpq" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/parallax_mapping/pm_demo_3d.tres" id="2_5wjnb"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="3_aah15"] +[ext_resource type="Texture2D" uid="uid://33ty6m6q8j0k" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" id="4_nn2is"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="5_nmwjw"] +[ext_resource type="Texture2D" uid="uid://ccra6c4ccwuya" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png" id="6_vqudy"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jltqy"] +render_priority = 0 +shader = ExtResource("2_5wjnb") +shader_parameter/RockHeight = ExtResource("4_nn2is") +shader_parameter/RockAlbedo = ExtResource("3_aah15") +shader_parameter/RockORM = ExtResource("6_vqudy") +shader_parameter/RockNormalMap = ExtResource("5_nmwjw") + +[node name="Node3D" type="Node3D"] + +[node name="Suzanne" type="MeshInstance3D" parent="."] +mesh = ExtResource("1_73xfj") +surface_material_override/0 = SubResource("ShaderMaterial_jltqy") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.797005, 0, -0.603973, 0, 1, 0, 0.603973, 0, 0.797005, -0.377201, 0.974168, 1.60467) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png new file mode 100644 index 0000000..836bc8b Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png.import new file mode 100644 index 0000000..ff94010 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba7cojxxohdjb" +path.s3tc="res://.godot/imported/icon.png-2fb838320ef1b5aed823ef65c6799d7a.s3tc.ctex" +path.etc2="res://.godot/imported/icon.png-2fb838320ef1b5aed823ef65c6799d7a.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" +dest_files=["res://.godot/imported/icon.png-2fb838320ef1b5aed823ef65c6799d7a.s3tc.ctex", "res://.godot/imported/icon.png-2fb838320ef1b5aed823ef65c6799d7a.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg new file mode 100644 index 0000000..adc26df --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg @@ -0,0 +1 @@ + diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg.import new file mode 100644 index 0000000..67f60e6 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg.import @@ -0,0 +1,39 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dja24d5rtr2ae" +path.s3tc="res://.godot/imported/icon.svg-ff5d20ef873ad5909eba2fab9968675b.s3tc.ctex" +path.etc2="res://.godot/imported/icon.svg-ff5d20ef873ad5909eba2fab9968675b.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" +dest_files=["res://.godot/imported/icon.svg-ff5d20ef873ad5909eba2fab9968675b.s3tc.ctex", "res://.godot/imported/icon.svg-ff5d20ef873ad5909eba2fab9968675b.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj new file mode 100644 index 0000000..0825979 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj @@ -0,0 +1,2331 @@ +# Blender 3.3.0 +# www.blender.org +o Suzanne +v 0.437500 0.164062 0.765625 +v -0.437500 0.164062 0.765625 +v 0.500000 0.093750 0.687500 +v -0.500000 0.093750 0.687500 +v 0.546875 0.054688 0.578125 +v -0.546875 0.054688 0.578125 +v 0.351562 -0.023438 0.617188 +v -0.351562 -0.023438 0.617188 +v 0.351562 0.031250 0.718750 +v -0.351562 0.031250 0.718750 +v 0.351562 0.132812 0.781250 +v -0.351562 0.132812 0.781250 +v 0.273438 0.164062 0.796875 +v -0.273438 0.164062 0.796875 +v 0.203125 0.093750 0.742188 +v -0.203125 0.093750 0.742188 +v 0.156250 0.054688 0.648438 +v -0.156250 0.054688 0.648438 +v 0.078125 0.242188 0.656250 +v -0.078125 0.242188 0.656250 +v 0.140625 0.242188 0.742188 +v -0.140625 0.242188 0.742188 +v 0.242188 0.242188 0.796875 +v -0.242188 0.242188 0.796875 +v 0.273438 0.328125 0.796875 +v -0.273438 0.328125 0.796875 +v 0.203125 0.390625 0.742188 +v -0.203125 0.390625 0.742188 +v 0.156250 0.437500 0.648438 +v -0.156250 0.437500 0.648438 +v 0.351562 0.515625 0.617188 +v -0.351562 0.515625 0.617188 +v 0.351562 0.453125 0.718750 +v -0.351562 0.453125 0.718750 +v 0.351562 0.359375 0.781250 +v -0.351562 0.359375 0.781250 +v 0.437500 0.328125 0.765625 +v -0.437500 0.328125 0.765625 +v 0.500000 0.390625 0.687500 +v -0.500000 0.390625 0.687500 +v 0.546875 0.437500 0.578125 +v -0.546875 0.437500 0.578125 +v 0.625000 0.242188 0.562500 +v -0.625000 0.242188 0.562500 +v 0.562500 0.242188 0.671875 +v -0.562500 0.242188 0.671875 +v 0.468750 0.242188 0.757812 +v -0.468750 0.242188 0.757812 +v 0.476562 0.242188 0.773438 +v -0.476562 0.242188 0.773438 +v 0.445312 0.335938 0.781250 +v -0.445312 0.335938 0.781250 +v 0.351562 0.375000 0.804688 +v -0.351562 0.375000 0.804688 +v 0.265625 0.335938 0.820312 +v -0.265625 0.335938 0.820312 +v 0.226562 0.242188 0.820312 +v -0.226562 0.242188 0.820312 +v 0.265625 0.156250 0.820312 +v -0.265625 0.156250 0.820312 +v 0.351562 0.242188 0.828125 +v -0.351562 0.242188 0.828125 +v 0.351562 0.117188 0.804688 +v -0.351562 0.117188 0.804688 +v 0.445312 0.156250 0.781250 +v -0.445312 0.156250 0.781250 +v 0.000000 0.429688 0.742188 +v 0.000000 0.351562 0.820312 +v 0.000000 -0.679688 0.734375 +v 0.000000 -0.320312 0.781250 +v 0.000000 -0.187500 0.796875 +v 0.000000 -0.773438 0.718750 +v 0.000000 0.406250 0.601562 +v 0.000000 0.570312 0.570312 +v 0.000000 0.898438 -0.546875 +v 0.000000 0.562500 -0.851562 +v 0.000000 0.070312 -0.828125 +v 0.000000 -0.382812 -0.351562 +v 0.203125 -0.187500 0.562500 +v -0.203125 -0.187500 0.562500 +v 0.312500 -0.437500 0.570312 +v -0.312500 -0.437500 0.570312 +v 0.351562 -0.695312 0.570312 +v -0.351562 -0.695312 0.570312 +v 0.367188 -0.890625 0.531250 +v -0.367188 -0.890625 0.531250 +v 0.328125 -0.945312 0.523438 +v -0.328125 -0.945312 0.523438 +v 0.179688 -0.968750 0.554688 +v -0.179688 -0.968750 0.554688 +v 0.000000 -0.984375 0.578125 +v 0.437500 -0.140625 0.531250 +v -0.437500 -0.140625 0.531250 +v 0.632812 -0.039062 0.539062 +v -0.632812 -0.039062 0.539062 +v 0.828125 0.148438 0.445312 +v -0.828125 0.148438 0.445312 +v 0.859375 0.429688 0.593750 +v -0.859375 0.429688 0.593750 +v 0.710938 0.484375 0.625000 +v -0.710938 0.484375 0.625000 +v 0.492188 0.601562 0.687500 +v -0.492188 0.601562 0.687500 +v 0.320312 0.757812 0.734375 +v -0.320312 0.757812 0.734375 +v 0.156250 0.718750 0.757812 +v -0.156250 0.718750 0.757812 +v 0.062500 0.492188 0.750000 +v -0.062500 0.492188 0.750000 +v 0.164062 0.414062 0.773438 +v -0.164062 0.414062 0.773438 +v 0.125000 0.304688 0.765625 +v -0.125000 0.304688 0.765625 +v 0.203125 0.093750 0.742188 +v -0.203125 0.093750 0.742188 +v 0.375000 0.015625 0.703125 +v -0.375000 0.015625 0.703125 +v 0.492188 0.062500 0.671875 +v -0.492188 0.062500 0.671875 +v 0.625000 0.187500 0.648438 +v -0.625000 0.187500 0.648438 +v 0.640625 0.296875 0.648438 +v -0.640625 0.296875 0.648438 +v 0.601562 0.375000 0.664062 +v -0.601562 0.375000 0.664062 +v 0.429688 0.437500 0.718750 +v -0.429688 0.437500 0.718750 +v 0.250000 0.468750 0.757812 +v -0.250000 0.468750 0.757812 +v 0.000000 -0.765625 0.734375 +v 0.109375 -0.718750 0.734375 +v -0.109375 -0.718750 0.734375 +v 0.117188 -0.835938 0.710938 +v -0.117188 -0.835938 0.710938 +v 0.062500 -0.882812 0.695312 +v -0.062500 -0.882812 0.695312 +v 0.000000 -0.890625 0.687500 +v 0.000000 -0.195312 0.750000 +v 0.000000 -0.140625 0.742188 +v 0.101562 -0.148438 0.742188 +v -0.101562 -0.148438 0.742188 +v 0.125000 -0.226562 0.750000 +v -0.125000 -0.226562 0.750000 +v 0.085938 -0.289062 0.742188 +v -0.085938 -0.289062 0.742188 +v 0.398438 -0.046875 0.671875 +v -0.398438 -0.046875 0.671875 +v 0.617188 0.054688 0.625000 +v -0.617188 0.054688 0.625000 +v 0.726562 0.203125 0.601562 +v -0.726562 0.203125 0.601562 +v 0.742188 0.375000 0.656250 +v -0.742188 0.375000 0.656250 +v 0.687500 0.414062 0.726562 +v -0.687500 0.414062 0.726562 +v 0.437500 0.546875 0.796875 +v -0.437500 0.546875 0.796875 +v 0.312500 0.640625 0.835938 +v -0.312500 0.640625 0.835938 +v 0.203125 0.617188 0.851562 +v -0.203125 0.617188 0.851562 +v 0.101562 0.429688 0.843750 +v -0.101562 0.429688 0.843750 +v 0.125000 -0.101562 0.812500 +v -0.125000 -0.101562 0.812500 +v 0.210938 -0.445312 0.710938 +v -0.210938 -0.445312 0.710938 +v 0.250000 -0.703125 0.687500 +v -0.250000 -0.703125 0.687500 +v 0.265625 -0.820312 0.664062 +v -0.265625 -0.820312 0.664062 +v 0.234375 -0.914062 0.632812 +v -0.234375 -0.914062 0.632812 +v 0.164062 -0.929688 0.632812 +v -0.164062 -0.929688 0.632812 +v 0.000000 -0.945312 0.640625 +v 0.000000 0.046875 0.726562 +v 0.000000 0.210938 0.765625 +v 0.328125 0.476562 0.742188 +v -0.328125 0.476562 0.742188 +v 0.164062 0.140625 0.750000 +v -0.164062 0.140625 0.750000 +v 0.132812 0.210938 0.757812 +v -0.132812 0.210938 0.757812 +v 0.117188 -0.687500 0.734375 +v -0.117188 -0.687500 0.734375 +v 0.078125 -0.445312 0.750000 +v -0.078125 -0.445312 0.750000 +v 0.000000 -0.445312 0.750000 +v 0.000000 -0.328125 0.742188 +v 0.093750 -0.273438 0.781250 +v -0.093750 -0.273438 0.781250 +v 0.132812 -0.226562 0.796875 +v -0.132812 -0.226562 0.796875 +v 0.109375 -0.132812 0.781250 +v -0.109375 -0.132812 0.781250 +v 0.039062 -0.125000 0.781250 +v -0.039062 -0.125000 0.781250 +v 0.000000 -0.203125 0.828125 +v 0.046875 -0.148438 0.812500 +v -0.046875 -0.148438 0.812500 +v 0.093750 -0.156250 0.812500 +v -0.093750 -0.156250 0.812500 +v 0.109375 -0.226562 0.828125 +v -0.109375 -0.226562 0.828125 +v 0.078125 -0.250000 0.804688 +v -0.078125 -0.250000 0.804688 +v 0.000000 -0.289062 0.804688 +v 0.257812 -0.312500 0.554688 +v -0.257812 -0.312500 0.554688 +v 0.164062 -0.242188 0.710938 +v -0.164062 -0.242188 0.710938 +v 0.179688 -0.312500 0.710938 +v -0.179688 -0.312500 0.710938 +v 0.234375 -0.250000 0.554688 +v -0.234375 -0.250000 0.554688 +v 0.000000 -0.875000 0.687500 +v 0.046875 -0.867188 0.687500 +v -0.046875 -0.867188 0.687500 +v 0.093750 -0.820312 0.710938 +v -0.093750 -0.820312 0.710938 +v 0.093750 -0.742188 0.726562 +v -0.093750 -0.742188 0.726562 +v 0.000000 -0.781250 0.656250 +v 0.093750 -0.750000 0.664062 +v -0.093750 -0.750000 0.664062 +v 0.093750 -0.812500 0.640625 +v -0.093750 -0.812500 0.640625 +v 0.046875 -0.851562 0.632812 +v -0.046875 -0.851562 0.632812 +v 0.000000 -0.859375 0.632812 +v 0.171875 0.218750 0.781250 +v -0.171875 0.218750 0.781250 +v 0.187500 0.156250 0.773438 +v -0.187500 0.156250 0.773438 +v 0.335938 0.429688 0.757812 +v -0.335938 0.429688 0.757812 +v 0.273438 0.421875 0.773438 +v -0.273438 0.421875 0.773438 +v 0.421875 0.398438 0.773438 +v -0.421875 0.398438 0.773438 +v 0.562500 0.351562 0.695312 +v -0.562500 0.351562 0.695312 +v 0.585938 0.289062 0.687500 +v -0.585938 0.289062 0.687500 +v 0.578125 0.195312 0.679688 +v -0.578125 0.195312 0.679688 +v 0.476562 0.101562 0.718750 +v -0.476562 0.101562 0.718750 +v 0.375000 0.062500 0.742188 +v -0.375000 0.062500 0.742188 +v 0.226562 0.109375 0.781250 +v -0.226562 0.109375 0.781250 +v 0.179688 0.296875 0.781250 +v -0.179688 0.296875 0.781250 +v 0.210938 0.375000 0.781250 +v -0.210938 0.375000 0.781250 +v 0.234375 0.359375 0.757812 +v -0.234375 0.359375 0.757812 +v 0.195312 0.296875 0.757812 +v -0.195312 0.296875 0.757812 +v 0.242188 0.125000 0.757812 +v -0.242188 0.125000 0.757812 +v 0.375000 0.085938 0.726562 +v -0.375000 0.085938 0.726562 +v 0.460938 0.117188 0.703125 +v -0.460938 0.117188 0.703125 +v 0.546875 0.210938 0.671875 +v -0.546875 0.210938 0.671875 +v 0.554688 0.281250 0.671875 +v -0.554688 0.281250 0.671875 +v 0.531250 0.335938 0.679688 +v -0.531250 0.335938 0.679688 +v 0.414062 0.390625 0.750000 +v -0.414062 0.390625 0.750000 +v 0.281250 0.398438 0.765625 +v -0.281250 0.398438 0.765625 +v 0.335938 0.406250 0.750000 +v -0.335938 0.406250 0.750000 +v 0.203125 0.171875 0.750000 +v -0.203125 0.171875 0.750000 +v 0.195312 0.226562 0.750000 +v -0.195312 0.226562 0.750000 +v 0.109375 0.460938 0.609375 +v -0.109375 0.460938 0.609375 +v 0.195312 0.664062 0.617188 +v -0.195312 0.664062 0.617188 +v 0.335938 0.687500 0.593750 +v -0.335938 0.687500 0.593750 +v 0.484375 0.554688 0.554688 +v -0.484375 0.554688 0.554688 +v 0.679688 0.453125 0.492188 +v -0.679688 0.453125 0.492188 +v 0.796875 0.406250 0.460938 +v -0.796875 0.406250 0.460938 +v 0.773438 0.164062 0.375000 +v -0.773438 0.164062 0.375000 +v 0.601562 0.000000 0.414062 +v -0.601562 0.000000 0.414062 +v 0.437500 -0.093750 0.468750 +v -0.437500 -0.093750 0.468750 +v 0.000000 0.898438 0.289062 +v 0.000000 0.984375 -0.078125 +v 0.000000 -0.195312 -0.671875 +v 0.000000 -0.460938 0.187500 +v 0.000000 -0.976562 0.460938 +v 0.000000 -0.804688 0.343750 +v 0.000000 -0.570312 0.320312 +v 0.000000 -0.484375 0.281250 +v 0.851562 0.234375 0.054688 +v -0.851562 0.234375 0.054688 +v 0.859375 0.320312 -0.046875 +v -0.859375 0.320312 -0.046875 +v 0.773438 0.265625 -0.437500 +v -0.773438 0.265625 -0.437500 +v 0.460938 0.437500 -0.703125 +v -0.460938 0.437500 -0.703125 +v 0.734375 -0.046875 0.070312 +v -0.734375 -0.046875 0.070312 +v 0.593750 -0.125000 -0.164062 +v -0.593750 -0.125000 -0.164062 +v 0.640625 -0.007812 -0.429688 +v -0.640625 -0.007812 -0.429688 +v 0.335938 0.054688 -0.664062 +v -0.335938 0.054688 -0.664062 +v 0.234375 -0.351562 0.406250 +v -0.234375 -0.351562 0.406250 +v 0.179688 -0.414062 0.257812 +v -0.179688 -0.414062 0.257812 +v 0.289062 -0.710938 0.382812 +v -0.289062 -0.710938 0.382812 +v 0.250000 -0.500000 0.390625 +v -0.250000 -0.500000 0.390625 +v 0.328125 -0.914062 0.398438 +v -0.328125 -0.914062 0.398438 +v 0.140625 -0.757812 0.367188 +v -0.140625 -0.757812 0.367188 +v 0.125000 -0.539062 0.359375 +v -0.125000 -0.539062 0.359375 +v 0.164062 -0.945312 0.437500 +v -0.164062 -0.945312 0.437500 +v 0.218750 -0.281250 0.429688 +v -0.218750 -0.281250 0.429688 +v 0.210938 -0.226562 0.468750 +v -0.210938 -0.226562 0.468750 +v 0.203125 -0.171875 0.500000 +v -0.203125 -0.171875 0.500000 +v 0.210938 -0.390625 0.164062 +v -0.210938 -0.390625 0.164062 +v 0.296875 -0.312500 -0.265625 +v -0.296875 -0.312500 -0.265625 +v 0.343750 -0.148438 -0.539062 +v -0.343750 -0.148438 -0.539062 +v 0.453125 0.867188 -0.382812 +v -0.453125 0.867188 -0.382812 +v 0.453125 0.929688 -0.070312 +v -0.453125 0.929688 -0.070312 +v 0.453125 0.851562 0.234375 +v -0.453125 0.851562 0.234375 +v 0.460938 0.523438 0.429688 +v -0.460938 0.523438 0.429688 +v 0.726562 0.406250 0.335938 +v -0.726562 0.406250 0.335938 +v 0.632812 0.453125 0.281250 +v -0.632812 0.453125 0.281250 +v 0.640625 0.703125 0.054688 +v -0.640625 0.703125 0.054688 +v 0.796875 0.562500 0.125000 +v -0.796875 0.562500 0.125000 +v 0.796875 0.617188 -0.117188 +v -0.796875 0.617188 -0.117188 +v 0.640625 0.750000 -0.195312 +v -0.640625 0.750000 -0.195312 +v 0.640625 0.679688 -0.445312 +v -0.640625 0.679688 -0.445312 +v 0.796875 0.539062 -0.359375 +v -0.796875 0.539062 -0.359375 +v 0.617188 0.328125 -0.585938 +v -0.617188 0.328125 -0.585938 +v 0.484375 0.023438 -0.546875 +v -0.484375 0.023438 -0.546875 +v 0.820312 0.328125 -0.203125 +v -0.820312 0.328125 -0.203125 +v 0.406250 -0.171875 0.148438 +v -0.406250 -0.171875 0.148438 +v 0.429688 -0.195312 -0.210938 +v -0.429688 -0.195312 -0.210938 +v 0.890625 0.406250 -0.234375 +v -0.890625 0.406250 -0.234375 +v 0.773438 -0.140625 -0.125000 +v -0.773438 -0.140625 -0.125000 +v 1.039062 -0.101562 -0.328125 +v -1.039062 -0.101562 -0.328125 +v 1.281250 0.054688 -0.429688 +v -1.281250 0.054688 -0.429688 +v 1.351562 0.320312 -0.421875 +v -1.351562 0.320312 -0.421875 +v 1.234375 0.507812 -0.421875 +v -1.234375 0.507812 -0.421875 +v 1.023438 0.476562 -0.312500 +v -1.023438 0.476562 -0.312500 +v 1.015625 0.414062 -0.289062 +v -1.015625 0.414062 -0.289062 +v 1.187500 0.437500 -0.390625 +v -1.187500 0.437500 -0.390625 +v 1.265625 0.289062 -0.406250 +v -1.265625 0.289062 -0.406250 +v 1.210938 0.078125 -0.406250 +v -1.210938 0.078125 -0.406250 +v 1.031250 -0.039062 -0.304688 +v -1.031250 -0.039062 -0.304688 +v 0.828125 -0.070312 -0.132812 +v -0.828125 -0.070312 -0.132812 +v 0.921875 0.359375 -0.218750 +v -0.921875 0.359375 -0.218750 +v 0.945312 0.304688 -0.289062 +v -0.945312 0.304688 -0.289062 +v 0.882812 -0.023438 -0.210938 +v -0.882812 -0.023438 -0.210938 +v 1.039062 0.000000 -0.367188 +v -1.039062 0.000000 -0.367188 +v 1.187500 0.093750 -0.445312 +v -1.187500 0.093750 -0.445312 +v 1.234375 0.250000 -0.445312 +v -1.234375 0.250000 -0.445312 +v 1.171875 0.359375 -0.437500 +v -1.171875 0.359375 -0.437500 +v 1.023438 0.343750 -0.359375 +v -1.023438 0.343750 -0.359375 +v 0.843750 0.289062 -0.210938 +v -0.843750 0.289062 -0.210938 +v 0.835938 0.171875 -0.273438 +v -0.835938 0.171875 -0.273438 +v 0.757812 0.093750 -0.273438 +v -0.757812 0.093750 -0.273438 +v 0.820312 0.085938 -0.273438 +v -0.820312 0.085938 -0.273438 +v 0.843750 0.015625 -0.273438 +v -0.843750 0.015625 -0.273438 +v 0.812500 -0.015625 -0.273438 +v -0.812500 -0.015625 -0.273438 +v 0.726562 0.000000 -0.070312 +v -0.726562 0.000000 -0.070312 +v 0.718750 -0.023438 -0.171875 +v -0.718750 -0.023438 -0.171875 +v 0.718750 0.039062 -0.187500 +v -0.718750 0.039062 -0.187500 +v 0.796875 0.203125 -0.210938 +v -0.796875 0.203125 -0.210938 +v 0.890625 0.242188 -0.265625 +v -0.890625 0.242188 -0.265625 +v 0.890625 0.234375 -0.320312 +v -0.890625 0.234375 -0.320312 +v 0.812500 -0.015625 -0.320312 +v -0.812500 -0.015625 -0.320312 +v 0.851562 0.015625 -0.320312 +v -0.851562 0.015625 -0.320312 +v 0.828125 0.078125 -0.320312 +v -0.828125 0.078125 -0.320312 +v 0.765625 0.093750 -0.320312 +v -0.765625 0.093750 -0.320312 +v 0.843750 0.171875 -0.320312 +v -0.843750 0.171875 -0.320312 +v 1.039062 0.328125 -0.414062 +v -1.039062 0.328125 -0.414062 +v 1.187500 0.343750 -0.484375 +v -1.187500 0.343750 -0.484375 +v 1.257812 0.242188 -0.492188 +v -1.257812 0.242188 -0.492188 +v 1.210938 0.085938 -0.484375 +v -1.210938 0.085938 -0.484375 +v 1.046875 0.000000 -0.421875 +v -1.046875 0.000000 -0.421875 +v 0.882812 -0.015625 -0.265625 +v -0.882812 -0.015625 -0.265625 +v 0.953125 0.289062 -0.343750 +v -0.953125 0.289062 -0.343750 +v 0.890625 0.109375 -0.328125 +v -0.890625 0.109375 -0.328125 +v 0.937500 0.062500 -0.335938 +v -0.937500 0.062500 -0.335938 +v 1.000000 0.125000 -0.367188 +v -1.000000 0.125000 -0.367188 +v 0.960938 0.171875 -0.351562 +v -0.960938 0.171875 -0.351562 +v 1.015625 0.234375 -0.375000 +v -1.015625 0.234375 -0.375000 +v 1.054688 0.187500 -0.382812 +v -1.054688 0.187500 -0.382812 +v 1.109375 0.210938 -0.390625 +v -1.109375 0.210938 -0.390625 +v 1.085938 0.273438 -0.390625 +v -1.085938 0.273438 -0.390625 +v 1.023438 0.437500 -0.484375 +v -1.023438 0.437500 -0.484375 +v 1.250000 0.468750 -0.546875 +v -1.250000 0.468750 -0.546875 +v 1.367188 0.296875 -0.500000 +v -1.367188 0.296875 -0.500000 +v 1.312500 0.054688 -0.531250 +v -1.312500 0.054688 -0.531250 +v 1.039062 -0.085938 -0.492188 +v -1.039062 -0.085938 -0.492188 +v 0.789062 -0.125000 -0.328125 +v -0.789062 -0.125000 -0.328125 +v 0.859375 0.382812 -0.382812 +v -0.859375 0.382812 -0.382812 +v -0.000000 0.851580 -0.000000 +v 0.219652 1.019377 0.159585 +v -0.083898 1.019377 0.258216 +v -0.271504 1.019378 -0.000000 +v -0.083898 1.019377 -0.258216 +v 0.219652 1.019377 -0.159585 +v 0.083898 1.290885 0.258216 +v -0.219652 1.290885 0.159585 +v -0.219652 1.290885 -0.159585 +v 0.083898 1.290885 -0.258216 +v 0.271504 1.290884 -0.000000 +v -0.000000 1.458682 -0.000000 +v -0.049314 0.896914 0.151774 +v 0.129107 0.896914 0.093801 +v 0.079794 0.995543 0.245576 +v 0.258215 0.995543 -0.000000 +v 0.129107 0.896914 -0.093801 +v -0.159586 0.896914 -0.000000 +v -0.208901 0.995543 0.151775 +v -0.049314 0.896914 -0.151774 +v -0.208901 0.995543 -0.151775 +v 0.079794 0.995543 -0.245576 +v 0.288695 1.155131 0.093801 +v 0.288695 1.155131 -0.093801 +v -0.000000 1.155131 0.303551 +v 0.178423 1.155131 0.245578 +v -0.288695 1.155131 0.093801 +v -0.178423 1.155131 0.245578 +v -0.178423 1.155131 -0.245578 +v -0.288695 1.155131 -0.093801 +v 0.178423 1.155131 -0.245578 +v -0.000000 1.155131 -0.303551 +v 0.208901 1.314718 0.151775 +v -0.079794 1.314719 0.245576 +v -0.258215 1.314718 -0.000000 +v -0.079794 1.314719 -0.245576 +v 0.208901 1.314718 -0.151775 +v 0.049314 1.413348 0.151774 +v 0.159586 1.413347 -0.000000 +v -0.129107 1.413348 0.093801 +v -0.129107 1.413348 -0.093801 +v 0.049314 1.413348 -0.151774 +vn 0.6650 -0.2008 0.7194 +vn -0.6650 -0.2008 0.7194 +vn 0.8294 -0.3036 0.4689 +vn -0.8294 -0.3036 0.4689 +vn 0.4155 -0.7933 0.4449 +vn -0.4155 -0.7933 0.4449 +vn 0.3600 -0.5089 0.7820 +vn -0.3600 -0.5089 0.7820 +vn -0.0787 -0.5394 0.8384 +vn 0.0787 -0.5394 0.8384 +vn -0.2696 -0.8413 0.4685 +vn 0.2696 -0.8413 0.4685 +vn -0.7707 -0.3352 0.5420 +vn 0.7707 -0.3352 0.5420 +vn -0.4689 -0.1940 0.8617 +vn 0.4689 -0.1940 0.8617 +vn -0.4767 0.1907 0.8581 +vn 0.4767 0.1907 0.8581 +vn -0.7672 0.3264 0.5521 +vn 0.7672 0.3264 0.5521 +vn -0.2519 0.8173 0.5182 +vn 0.2519 0.8173 0.5182 +vn -0.0949 0.5696 0.8164 +vn 0.0949 0.5696 0.8164 +vn 0.3667 0.5370 0.7597 +vn -0.3667 0.5370 0.7597 +vn 0.4141 0.7672 0.4898 +vn -0.4141 0.7672 0.4898 +vn 0.8277 0.2952 0.4771 +vn -0.8277 0.2952 0.4771 +vn 0.6713 0.1971 0.7145 +vn -0.6713 0.1971 0.7145 +vn 0.8111 0.3244 -0.4867 +vn -0.8111 0.3244 -0.4867 +vn 0.2052 0.8206 -0.5334 +vn -0.2052 0.8206 -0.5334 +vn -0.4223 0.7806 -0.4607 +vn 0.4223 0.7806 -0.4607 +vn -0.8241 0.3225 -0.4658 +vn 0.8241 0.3225 -0.4658 +vn -0.8137 -0.3487 -0.4650 +vn 0.8137 -0.3487 -0.4650 +vn -0.4223 -0.7806 -0.4607 +vn 0.4223 -0.7806 -0.4607 +vn 0.2052 -0.8206 -0.5334 +vn -0.2052 -0.8206 -0.5334 +vn 0.7995 -0.3510 -0.4875 +vn -0.7995 -0.3510 -0.4875 +vn 0.4000 -0.0623 0.9144 +vn -0.4000 -0.0623 0.9144 +vn 0.3069 -0.1754 0.9354 +vn -0.3069 -0.1754 0.9354 +vn 0.0945 -0.1835 0.9785 +vn -0.0945 -0.1835 0.9785 +vn -0.0624 -0.0283 0.9977 +vn 0.0624 -0.0283 0.9977 +vn -0.0624 0.0260 0.9977 +vn 0.0624 0.0260 0.9977 +vn 0.0996 0.1729 0.9799 +vn -0.0996 0.1729 0.9799 +vn 0.3036 0.1656 0.9383 +vn -0.3036 0.1656 0.9383 +vn 0.4002 0.0572 0.9147 +vn -0.4002 0.0572 0.9147 +vn 0.1231 -0.8616 0.4924 +vn -0.1231 -0.8616 0.4924 +vn 0.2190 -0.8647 0.4520 +vn -0.2190 -0.8647 0.4520 +vn 0.5902 -0.4550 0.6668 +vn -0.5902 -0.4550 0.6668 +vn 0.7689 -0.0506 0.6374 +vn -0.7689 -0.0506 0.6374 +vn 0.7796 0.0900 0.6197 +vn -0.7796 0.0900 0.6197 +vn 0.3241 -0.8188 0.4739 +vn -0.3241 -0.8188 0.4739 +vn 0.3857 -0.6629 0.6417 +vn -0.3857 -0.6629 0.6417 +vn 0.6895 -0.4193 0.5906 +vn -0.6895 -0.4193 0.5906 +vn 0.6588 -0.3634 0.6588 +vn -0.6588 -0.3634 0.6588 +vn 0.5465 0.3707 0.7509 +vn -0.5465 0.3707 0.7509 +vn 0.5064 0.6464 0.5706 +vn -0.5064 0.6464 0.5706 +vn 0.6092 0.5167 0.6015 +vn -0.6092 0.5167 0.6015 +vn -0.0441 0.6610 0.7491 +vn 0.0441 0.6610 0.7491 +vn -0.7246 0.3187 0.6110 +vn 0.7246 0.3187 0.6110 +vn -0.5880 0.5554 0.5880 +vn 0.5880 0.5554 0.5880 +vn 0.5361 -0.3909 0.7482 +vn -0.5361 -0.3909 0.7482 +vn 0.2207 -0.4690 0.8552 +vn -0.2207 -0.4690 0.8552 +vn -0.0794 -0.5321 0.8429 +vn 0.0794 -0.5321 0.8429 +vn -0.0825 -0.6575 0.7490 +vn 0.0825 -0.6575 0.7490 +vn 0.0457 -0.5667 0.8226 +vn -0.0457 -0.5667 0.8226 +vn 0.2784 -0.2130 0.9365 +vn -0.2784 -0.2130 0.9365 +vn 0.3813 -0.1824 0.9063 +vn -0.3813 -0.1824 0.9063 +vn 0.3357 -0.2878 0.8969 +vn -0.3357 -0.2878 0.8969 +vn 0.3762 0.0603 0.9246 +vn -0.3762 0.0603 0.9246 +vn -0.1352 0.2680 0.9539 +vn 0.1352 0.2680 0.9539 +vn 0.3961 -0.4321 0.8102 +vn -0.3961 -0.4321 0.8102 +vn 0.1856 -0.2474 0.9510 +vn -0.1856 -0.2474 0.9510 +vn 0.0099 -0.1948 0.9808 +vn -0.0099 -0.1948 0.9808 +vn 0.0721 -0.6966 0.7138 +vn -0.0721 -0.6966 0.7138 +vn 0.1863 -0.5723 0.7986 +vn -0.1863 -0.5723 0.7986 +vn 0.3157 -0.2708 0.9094 +vn -0.3157 -0.2708 0.9094 +vn 0.3063 -0.0265 0.9516 +vn -0.3063 -0.0265 0.9516 +vn 0.3266 -0.1306 0.9361 +vn -0.3266 -0.1306 0.9361 +vn -0.0137 0.0574 0.9983 +vn 0.0137 0.0574 0.9983 +vn -0.0026 -0.0656 0.9978 +vn 0.0026 -0.0656 0.9978 +vn -0.0000 -0.0000 1.0000 +vn 0.8174 -0.5744 -0.0442 +vn -0.8174 -0.5744 -0.0442 +vn 0.9494 0.2297 -0.2144 +vn -0.9494 0.2297 -0.2144 +vn 0.0825 0.9073 -0.4124 +vn -0.0825 0.9073 -0.4124 +vn -0.8836 0.3555 0.3047 +vn 0.8836 0.3555 0.3047 +vn 0.4207 -0.8797 0.2218 +vn -0.4207 -0.8797 0.2218 +vn 0.2873 -0.5747 0.7663 +vn -0.2873 -0.5747 0.7663 +vn -0.6542 0.6019 0.4580 +vn 0.6542 0.6019 0.4580 +vn 0.1052 0.7892 0.6051 +vn -0.1052 0.7892 0.6051 +vn 0.7582 0.2916 0.5832 +vn -0.7582 0.2916 0.5832 +vn 0.3889 -0.7130 0.5834 +vn -0.3889 -0.7130 0.5834 +vn 0.0463 0.2314 0.9718 +vn -0.0463 0.2314 0.9718 +vn 0.0335 -0.4018 0.9151 +vn -0.0335 -0.4018 0.9151 +vn -0.4452 -0.1610 0.8809 +vn 0.4452 -0.1610 0.8809 +vn -0.2182 -0.4364 0.8729 +vn 0.2182 -0.4364 0.8729 +vn 0.4341 -0.1290 0.8916 +vn -0.4341 -0.1290 0.8916 +vn 0.3008 0.0501 0.9524 +vn -0.3008 0.0501 0.9524 +vn 0.8123 0.3010 0.4996 +vn -0.8123 0.3010 0.4996 +vn 0.8753 0.2574 0.4093 +vn -0.8753 0.2574 0.4093 +vn 0.9385 0.1601 0.3060 +vn -0.9385 0.1601 0.3060 +vn 0.2237 -0.6539 0.7227 +vn -0.2237 -0.6539 0.7227 +vn -0.1536 -0.1997 0.9677 +vn 0.1536 -0.1997 0.9677 +vn -0.2733 -0.1025 0.9565 +vn 0.2733 -0.1025 0.9565 +vn -0.0976 0.1952 0.9759 +vn 0.0976 0.1952 0.9759 +vn -0.1582 0.9494 0.2713 +vn 0.1582 0.9494 0.2713 +vn -0.6934 0.7082 0.1328 +vn 0.6934 0.7082 0.1328 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.3051 -0.9450 0.1181 +vn -0.3051 -0.9450 0.1181 +vn 0.0298 -0.2981 0.9541 +vn -0.0298 -0.2981 0.9541 +vn 0.1353 -0.3479 0.9277 +vn -0.1353 -0.3479 0.9277 +vn -0.5085 -0.2755 0.8158 +vn 0.5085 -0.2755 0.8158 +vn -0.3843 -0.0419 0.9223 +vn 0.3843 -0.0419 0.9223 +vn -0.2083 0.0374 0.9774 +vn 0.2083 0.0374 0.9774 +vn -0.5721 -0.4767 0.6674 +vn 0.5721 -0.4767 0.6674 +vn -0.1369 -0.7531 0.6435 +vn 0.1369 -0.7531 0.6435 +vn 0.4088 -0.6071 0.6814 +vn -0.4088 -0.6071 0.6814 +vn 0.5740 -0.4130 0.7070 +vn -0.5740 -0.4130 0.7070 +vn 0.5665 -0.0968 0.8183 +vn -0.5665 -0.0968 0.8183 +vn 0.5703 0.1180 0.8129 +vn -0.5703 0.1180 0.8129 +vn 0.4823 0.5621 0.6719 +vn -0.4823 0.5621 0.6719 +vn 0.2604 0.6114 0.7473 +vn -0.2604 0.6114 0.7473 +vn 0.1640 0.3607 0.9182 +vn -0.1640 0.3607 0.9182 +vn -0.0178 0.2495 0.9682 +vn 0.0178 0.2495 0.9682 +vn 0.3273 -0.4166 0.8481 +vn -0.3273 -0.4166 0.8481 +vn 0.2811 -0.2610 0.9235 +vn -0.2811 -0.2610 0.9235 +vn -0.2542 -0.6514 0.7149 +vn 0.2542 -0.6514 0.7149 +vn -0.0260 -0.8455 0.5333 +vn 0.0260 -0.8455 0.5333 +vn -0.3518 -0.2606 0.8991 +vn 0.3518 -0.2606 0.8991 +vn -0.3523 -0.0110 0.9358 +vn 0.3523 -0.0110 0.9358 +vn -0.1317 0.4608 0.8777 +vn 0.1317 0.4608 0.8777 +vn -0.0342 0.6159 0.7870 +vn 0.0342 0.6159 0.7870 +vn 0.3603 0.5836 0.7277 +vn -0.3603 0.5836 0.7277 +vn 0.4988 0.5300 0.6858 +vn -0.4988 0.5300 0.6858 +vn 0.6667 -0.3333 0.6667 +vn -0.6667 -0.3333 0.6667 +vn 0.8165 -0.0731 0.5727 +vn -0.8165 -0.0731 0.5727 +vn 0.7840 0.1161 0.6098 +vn -0.7840 0.1161 0.6098 +vn -0.5306 0.8111 -0.2461 +vn 0.5306 0.8111 -0.2461 +vn -0.8511 0.3695 -0.3730 +vn 0.8511 0.3695 -0.3730 +vn -0.2446 0.8675 -0.4331 +vn 0.2446 0.8675 -0.4331 +vn 0.5924 0.7465 -0.3030 +vn -0.5924 0.7465 -0.3030 +vn 0.3685 0.8758 -0.3118 +vn -0.3685 0.8758 -0.3118 +vn 0.2821 0.9151 -0.2880 +vn -0.2821 0.9151 -0.2880 +vn 0.8561 0.1340 -0.4991 +vn -0.8561 0.1340 -0.4991 +vn 0.5342 -0.7233 -0.4376 +vn -0.5342 -0.7233 -0.4376 +vn 0.3849 -0.8131 -0.4368 +vn -0.3849 -0.8131 -0.4368 +vn 0.2335 -0.5806 -0.7800 +vn -0.2335 -0.5806 -0.7800 +vn 0.2449 -0.0583 -0.9678 +vn -0.2449 -0.0583 -0.9678 +vn 0.1163 -0.4535 -0.8837 +vn -0.1163 -0.4535 -0.8837 +vn 0.1152 -0.9836 -0.1388 +vn -0.1152 -0.9836 -0.1388 +vn 0.1184 -0.9669 -0.2260 +vn -0.1184 -0.9669 -0.2260 +vn 0.9597 -0.0085 -0.2808 +vn -0.9597 -0.0085 -0.2808 +vn 0.9319 0.1629 -0.3242 +vn -0.9319 0.1629 -0.3242 +vn 0.1626 0.0207 -0.9865 +vn -0.1626 0.0207 -0.9865 +vn -0.0188 -0.2177 -0.9758 +vn 0.0188 -0.2177 -0.9758 +vn 0.7538 -0.2926 -0.5884 +vn -0.7538 -0.2926 -0.5884 +vn 0.9196 0.1379 -0.3678 +vn -0.9196 0.1379 -0.3678 +vn 0.9297 0.3127 -0.1944 +vn -0.9297 0.3127 -0.1944 +vn 0.9120 0.3376 -0.2329 +vn -0.9120 0.3376 -0.2329 +vn 0.9407 0.3338 -0.0607 +vn -0.9407 0.3338 -0.0607 +vn 0.1761 -0.8805 -0.4402 +vn -0.1761 -0.8805 -0.4402 +vn 0.3708 -0.4733 -0.7991 +vn -0.3708 -0.4733 -0.7991 +vn 0.3107 -0.8284 -0.4660 +vn -0.3107 -0.8284 -0.4660 +vn 0.2793 -0.9515 -0.1287 +vn -0.2793 -0.9515 -0.1287 +vn 0.3139 -0.9321 -0.1807 +vn -0.3139 -0.9321 -0.1807 +vn 0.9762 -0.2083 -0.0609 +vn -0.9762 -0.2083 -0.0609 +vn 0.8267 -0.5066 0.2447 +vn -0.8267 -0.5066 0.2447 +vn 0.3449 -0.1158 -0.9315 +vn -0.3449 -0.1158 -0.9315 +vn 0.1203 0.9644 0.2355 +vn -0.1203 0.9644 0.2355 +vn 0.1275 0.9744 -0.1851 +vn -0.1275 0.9744 -0.1851 +vn 0.3492 0.5947 -0.7241 +vn -0.3492 0.5947 -0.7241 +vn 0.4153 0.8981 -0.1449 +vn -0.4153 0.8981 -0.1449 +vn 0.1845 0.7036 0.6863 +vn -0.1845 0.7036 0.6863 +vn 0.6056 0.7794 0.1608 +vn -0.6056 0.7794 0.1608 +vn 0.7033 0.6806 -0.2053 +vn -0.7033 0.6806 -0.2053 +vn 0.6679 0.2007 -0.7166 +vn -0.6679 0.2007 -0.7166 +vn 0.4948 0.4342 -0.7528 +vn -0.4948 0.4342 -0.7528 +vn 0.6423 0.7459 -0.1761 +vn -0.6423 0.7459 -0.1761 +vn 0.7182 0.6788 0.1530 +vn -0.7182 0.6788 0.1530 +vn 0.7388 0.3972 0.5444 +vn -0.7388 0.3972 0.5444 +vn 0.3428 0.9261 -0.1579 +vn -0.3428 0.9261 -0.1579 +vn 0.2270 0.5740 0.7867 +vn -0.2270 0.5740 0.7867 +vn -0.1722 0.1046 -0.9795 +vn 0.1722 0.1046 -0.9795 +vn 0.0425 0.9150 0.4013 +vn -0.0425 0.9150 0.4013 +vn -0.1616 0.1847 0.9694 +vn 0.1616 0.1847 0.9694 +vn 0.9791 0.1973 0.0483 +vn -0.9791 0.1973 0.0483 +vn 0.9470 0.0918 0.3079 +vn -0.9470 0.0918 0.3079 +vn 0.9794 0.1905 -0.0661 +vn -0.9794 0.1905 -0.0661 +vn 0.9938 0.0312 -0.1070 +vn -0.9938 0.0312 -0.1070 +vn 0.7116 -0.7008 0.0501 +vn -0.7116 -0.7008 0.0501 +vn 0.3722 -0.9243 0.0847 +vn -0.3722 -0.9243 0.0847 +vn 0.4465 -0.8644 0.2310 +vn -0.4465 -0.8644 0.2310 +vn 0.6066 -0.7578 0.2405 +vn -0.6066 -0.7578 0.2405 +vn 0.7325 -0.6368 0.2407 +vn -0.7325 -0.6368 0.2407 +vn 0.2637 -0.4499 0.8533 +vn -0.2637 -0.4499 0.8533 +vn 0.5568 -0.3181 -0.7673 +vn -0.5568 -0.3181 -0.7673 +vn 0.5004 -0.2807 -0.8190 +vn -0.5004 -0.2807 -0.8190 +vn 0.3190 -0.8494 -0.4205 +vn -0.3190 -0.8494 -0.4205 +vn 0.7198 -0.6356 -0.2793 +vn -0.7198 -0.6356 -0.2793 +vn 0.4972 -0.4408 -0.7473 +vn -0.4972 -0.4408 -0.7473 +vn 0.3506 0.3807 0.8557 +vn -0.3506 0.3807 0.8557 +vn 0.4566 0.1715 0.8730 +vn -0.4566 0.1715 0.8730 +vn 0.2583 0.1055 0.9603 +vn -0.2583 0.1055 0.9603 +vn 0.2455 -0.0802 0.9661 +vn -0.2455 -0.0802 0.9661 +vn 0.4643 -0.0599 0.8837 +vn -0.4643 -0.0599 0.8837 +vn 0.6225 -0.3045 0.7210 +vn -0.6225 -0.3045 0.7210 +vn 0.4500 0.6590 0.6027 +vn -0.4500 0.6590 0.6027 +vn -0.2667 0.8309 0.4884 +vn 0.2667 0.8309 0.4884 +vn -0.8284 0.2291 0.5111 +vn 0.8284 0.2291 0.5111 +vn -0.5251 -0.3566 0.7727 +vn 0.5251 -0.3566 0.7727 +vn 0.4546 -0.5665 0.6873 +vn -0.4546 -0.5665 0.6873 +vn 0.6996 -0.4497 0.5552 +vn -0.6996 -0.4497 0.5552 +vn 0.7220 -0.6827 -0.1126 +vn -0.7220 -0.6827 -0.1126 +vn -0.1919 0.2860 0.9388 +vn 0.1919 0.2860 0.9388 +vn 0.9048 -0.3734 -0.2047 +vn -0.9048 -0.3734 -0.2047 +vn 0.1034 0.1551 0.9825 +vn -0.1034 0.1551 0.9825 +vn 0.0841 0.9318 0.3530 +vn -0.0841 0.9318 0.3530 +vn 0.6446 -0.0883 0.7594 +vn -0.6446 -0.0883 0.7594 +vn 0.4309 0.4740 0.7678 +vn -0.4309 0.4740 0.7678 +vn 0.8032 -0.4847 0.3462 +vn -0.8032 -0.4847 0.3462 +vn 0.5811 -0.4128 0.7014 +vn -0.5811 -0.4128 0.7014 +vn 0.5910 -0.4305 0.6822 +vn -0.5910 -0.4305 0.6822 +vn 0.9818 -0.1804 -0.0591 +vn -0.9818 -0.1804 -0.0591 +vn 0.9105 -0.3965 -0.1175 +vn -0.9105 -0.3965 -0.1175 +vn 0.9972 -0.0181 -0.0725 +vn -0.9972 -0.0181 -0.0725 +vn 0.7313 -0.6543 0.1925 +vn -0.7313 -0.6543 0.1925 +vn 0.7867 -0.6079 0.1073 +vn -0.7867 -0.6079 0.1073 +vn 0.7022 -0.7022 0.1170 +vn -0.7022 -0.7022 0.1170 +vn 0.1840 0.9816 -0.0511 +vn -0.1840 0.9816 -0.0511 +vn 0.9352 0.3301 0.1284 +vn -0.9352 0.3301 0.1284 +vn 0.6633 -0.7463 0.0553 +vn -0.6633 -0.7463 0.0553 +vn -0.0085 0.9970 0.0767 +vn 0.0085 0.9970 0.0767 +vn 0.6237 -0.7061 0.3354 +vn -0.6237 -0.7061 0.3354 +vn 0.2733 -0.8925 0.3587 +vn -0.2733 -0.8925 0.3587 +vn -0.8328 -0.5080 -0.2200 +vn 0.8328 -0.5080 -0.2200 +vn -0.8339 0.2377 -0.4981 +vn 0.8339 0.2377 -0.4981 +vn -0.5655 0.7847 -0.2539 +vn 0.5655 0.7847 -0.2539 +vn -0.0560 0.9962 0.0672 +vn 0.0560 0.9962 0.0672 +vn 0.1445 0.0222 0.9893 +vn -0.1445 0.0222 0.9893 +vn 0.3275 0.0645 0.9427 +vn -0.3275 0.0645 0.9427 +vn 0.3127 0.0232 0.9496 +vn -0.3127 0.0232 0.9496 +vn 0.1710 0.0274 0.9849 +vn -0.1710 0.0274 0.9849 +vn 0.3487 0.2849 0.8929 +vn -0.3487 0.2849 0.8929 +vn 0.4006 -0.0343 0.9156 +vn -0.4006 -0.0343 0.9156 +vn 0.2572 -0.0603 0.9645 +vn -0.2572 -0.0603 0.9645 +vn 0.0637 -0.0106 0.9979 +vn -0.0637 -0.0106 0.9979 +vn -0.3637 0.7039 0.6101 +vn 0.3637 0.7039 0.6101 +vn 0.6299 0.0355 0.7759 +vn -0.6299 0.0355 0.7759 +vn 0.4472 -0.2002 0.8717 +vn -0.4472 -0.2002 0.8717 +vn 0.5072 -0.2141 0.8348 +vn -0.5072 -0.2141 0.8348 +vn 0.5258 0.2619 0.8093 +vn -0.5258 0.2619 0.8093 +vn 0.2980 0.5802 0.7580 +vn -0.2980 0.5802 0.7580 +vn 0.0930 -0.9924 -0.0805 +vn -0.0930 -0.9924 -0.0805 +vn 0.5006 -0.8657 0.0080 +vn -0.5006 -0.8657 0.0080 +vn 0.9285 -0.2497 0.2748 +vn -0.9285 -0.2497 0.2748 +vn 0.8393 0.5424 -0.0378 +vn -0.8393 0.5424 -0.0378 +vn -0.2355 0.9367 -0.2589 +vn 0.2355 0.9367 -0.2589 +vn -0.4499 0.8838 -0.1285 +vn 0.4499 0.8838 -0.1285 +vn -0.5384 -0.0098 -0.8427 +vn 0.5384 -0.0098 -0.8427 +vn -0.1910 -0.0241 -0.9813 +vn 0.1910 -0.0241 -0.9813 +vn 0.4046 0.0266 -0.9141 +vn -0.4046 0.0266 -0.9141 +vn -0.7819 0.6231 0.0197 +vn 0.7819 0.6231 0.0197 +vn 0.5428 -0.2063 -0.8142 +vn -0.5428 -0.2063 -0.8142 +vn -0.2474 -0.9231 -0.2945 +vn 0.2474 -0.9231 -0.2945 +vn 0.1024 -0.9435 0.3151 +vn 0.7002 -0.6617 0.2680 +vn -0.2680 -0.9435 0.1947 +vn -0.2680 -0.9435 -0.1947 +vn 0.1024 -0.9435 -0.3151 +vn 0.9050 -0.3304 0.2680 +vn 0.0247 -0.3304 0.9435 +vn -0.8897 -0.3304 0.3151 +vn -0.5746 -0.3304 -0.7488 +vn 0.5346 -0.3304 -0.7779 +vn 0.8026 -0.1256 0.5831 +vn -0.3066 -0.1256 0.9435 +vn -0.9921 -0.1256 -0.0000 +vn -0.3066 -0.1256 -0.9435 +vn 0.8026 -0.1256 -0.5831 +vn 0.4089 0.6617 0.6284 +vn -0.4713 0.6617 0.5831 +vn -0.7002 0.6617 -0.2680 +vn 0.0385 0.6617 -0.7488 +vn 0.7240 0.6617 -0.1947 +vn 0.2680 0.9435 -0.1947 +vn 0.4911 0.7947 -0.3568 +vn 0.4089 0.6617 -0.6284 +vn -0.1024 0.9435 -0.3151 +vn -0.1876 0.7947 -0.5773 +vn -0.4713 0.6617 -0.5831 +vn -0.3313 0.9435 -0.0000 +vn -0.6071 0.7947 -0.0000 +vn -0.7002 0.6617 0.2680 +vn -0.1024 0.9435 0.3151 +vn -0.1876 0.7947 0.5773 +vn 0.0385 0.6617 0.7488 +vn 0.2680 0.9435 0.1947 +vn 0.4911 0.7947 0.3568 +vn 0.7240 0.6617 0.1947 +vn 0.8897 0.3304 -0.3151 +vn 0.7947 0.1876 -0.5773 +vn 0.5746 0.3304 -0.7488 +vn -0.0247 0.3304 -0.9435 +vn -0.3035 0.1876 -0.9342 +vn -0.5346 0.3304 -0.7779 +vn -0.9050 0.3304 -0.2680 +vn -0.9822 0.1876 -0.0000 +vn -0.9050 0.3304 0.2680 +vn -0.5346 0.3304 0.7779 +vn -0.3035 0.1876 0.9342 +vn -0.0247 0.3304 0.9435 +vn 0.5746 0.3304 0.7488 +vn 0.7947 0.1876 0.5773 +vn 0.8897 0.3304 0.3151 +vn 0.3066 0.1256 -0.9435 +vn 0.3035 -0.1876 -0.9342 +vn 0.0247 -0.3304 -0.9435 +vn -0.8026 0.1256 -0.5831 +vn -0.7947 -0.1876 -0.5773 +vn -0.8897 -0.3304 -0.3151 +vn -0.8026 0.1256 0.5831 +vn -0.7947 -0.1876 0.5773 +vn -0.5746 -0.3304 0.7488 +vn 0.3066 0.1256 0.9435 +vn 0.3035 -0.1876 0.9342 +vn 0.5346 -0.3304 0.7779 +vn 0.9921 0.1256 -0.0000 +vn 0.9822 -0.1876 -0.0000 +vn 0.9050 -0.3304 -0.2680 +vn 0.4713 -0.6617 -0.5831 +vn 0.1876 -0.7947 -0.5773 +vn -0.0385 -0.6617 -0.7488 +vn -0.4089 -0.6617 -0.6284 +vn -0.4911 -0.7947 -0.3568 +vn -0.7240 -0.6617 -0.1947 +vn -0.7240 -0.6617 0.1947 +vn -0.4911 -0.7947 0.3568 +vn -0.4089 -0.6617 0.6284 +vn 0.7002 -0.6617 -0.2680 +vn 0.6071 -0.7947 -0.0000 +vn 0.3313 -0.9435 -0.0000 +vn -0.0385 -0.6617 0.7488 +vn 0.1876 -0.7947 0.5773 +vn 0.4713 -0.6617 0.5831 +vt 0.870622 0.589649 +vt 0.868067 0.821510 +vt 0.860081 0.560115 +vt 0.856226 0.850547 +vt 0.853018 0.521562 +vt 0.847458 0.888748 +vt 0.798481 0.569535 +vt 0.795104 0.838402 +vt 0.828900 0.590771 +vt 0.826436 0.818537 +vt 0.854402 0.604754 +vt 0.852534 0.805700 +vt 0.854107 0.625459 +vt 0.853157 0.785002 +vt 0.828171 0.633354 +vt 0.827598 0.775964 +vt 0.791018 0.645443 +vt 0.791018 0.762238 +vt 0.842358 0.702491 +vt 0.844839 0.707525 +vt 0.855181 0.668527 +vt 0.856142 0.742025 +vt 0.867508 0.642291 +vt 0.867293 0.768782 +vt 0.890474 0.641909 +vt 0.890219 0.770183 +vt 0.900375 0.666964 +vt 0.901223 0.745592 +vt 0.918898 0.699697 +vt 0.921180 0.713713 +vt 0.968392 0.645333 +vt 0.968213 0.770220 +vt 0.931889 0.636832 +vt 0.931368 0.777093 +vt 0.905882 0.627902 +vt 0.904990 0.784860 +vt 0.906232 0.605742 +vt 0.904357 0.807013 +vt 0.933717 0.593037 +vt 0.931250 0.820926 +vt 0.968392 0.573812 +vt 0.965038 0.841671 +vt 0.920166 0.524546 +vt 0.914672 0.888748 +vt 0.904571 0.559404 +vt 0.900640 0.853232 +vt 0.890955 0.590063 +vt 0.888398 0.821999 +vt 0.889591 0.593275 +vt 0.887178 0.818729 +vt 0.902359 0.607909 +vt 0.900583 0.804677 +vt 0.899781 0.626257 +vt 0.898822 0.786233 +vt 0.887842 0.636527 +vt 0.887351 0.775442 +vt 0.870908 0.635245 +vt 0.870376 0.775972 +vt 0.859881 0.623942 +vt 0.858859 0.786774 +vt 0.879400 0.616512 +vt 0.878029 0.795063 +vt 0.859664 0.608186 +vt 0.857942 0.802505 +vt 0.871664 0.593961 +vt 0.869299 0.817249 +vt 0.521923 0.386009 +vt 0.521086 0.343868 +vt 0.518925 0.093952 +vt 0.518998 0.159028 +vt 0.519132 0.185382 +vt 0.518925 0.083865 +vt 0.523031 0.433628 +vt 0.819845 0.468071 +vt 0.215894 0.503605 +vt 0.845499 0.449967 +vt 0.185281 0.484099 +vt 0.999856 0.254640 +vt 0.000144 0.259113 +vt 0.994525 0.167705 +vt 0.011829 0.155367 +vt 0.945900 0.079569 +vt 0.078961 0.060719 +vt 0.805584 0.010786 +vt 0.232648 0.003484 +vt 0.605512 0.165134 +vt 0.432024 0.165644 +vt 0.583135 0.108495 +vt 0.454527 0.108481 +vt 0.563812 0.076586 +vt 0.474014 0.076511 +vt 0.555073 0.061900 +vt 0.482805 0.061829 +vt 0.551930 0.058338 +vt 0.485955 0.058273 +vt 0.540260 0.053805 +vt 0.497626 0.053770 +vt 0.518916 0.050294 +vt 0.647395 0.200502 +vt 0.389677 0.201890 +vt 0.676379 0.233241 +vt 0.360308 0.235899 +vt 0.715342 0.265392 +vt 0.320452 0.270303 +vt 0.707254 0.310054 +vt 0.330721 0.316853 +vt 0.697446 0.332673 +vt 0.341964 0.339667 +vt 0.662817 0.372521 +vt 0.379297 0.378686 +vt 0.626842 0.395792 +vt 0.416915 0.400552 +vt 0.604826 0.397804 +vt 0.439252 0.401540 +vt 0.553095 0.390512 +vt 0.490934 0.391862 +vt 0.577279 0.340156 +vt 0.464579 0.342230 +vt 0.558527 0.316594 +vt 0.482619 0.317843 +vt 0.572941 0.258564 +vt 0.466409 0.259709 +vt 0.613992 0.242662 +vt 0.424464 0.244473 +vt 0.639236 0.253047 +vt 0.398938 0.255633 +vt 0.664101 0.277872 +vt 0.374100 0.281778 +vt 0.668440 0.297958 +vt 0.370304 0.302644 +vt 0.662406 0.312804 +vt 0.377061 0.317685 +vt 0.634472 0.332311 +vt 0.406362 0.336480 +vt 0.599845 0.344815 +vt 0.441977 0.347815 +vt 0.518927 0.085180 +vt 0.531019 0.087431 +vt 0.506827 0.087416 +vt 0.531231 0.073829 +vt 0.506626 0.073811 +vt 0.525483 0.068967 +vt 0.512375 0.068956 +vt 0.518928 0.067899 +vt 0.517577 0.190607 +vt 0.519841 0.200843 +vt 0.544281 0.193366 +vt 0.493996 0.193428 +vt 0.548362 0.173560 +vt 0.489683 0.173693 +vt 0.538112 0.158382 +vt 0.499851 0.158434 +vt 0.621513 0.227818 +vt 0.416514 0.229490 +vt 0.664761 0.253225 +vt 0.372747 0.256357 +vt 0.683908 0.279995 +vt 0.353696 0.284606 +vt 0.687515 0.311539 +vt 0.351187 0.317440 +vt 0.676824 0.323937 +vt 0.362723 0.329722 +vt 0.639050 0.357330 +vt 0.402772 0.362131 +vt 0.618316 0.375151 +vt 0.424583 0.379267 +vt 0.600808 0.377857 +vt 0.442396 0.381222 +vt 0.559674 0.357011 +vt 0.482938 0.358497 +vt 0.553118 0.209599 +vt 0.485339 0.210053 +vt 0.555621 0.121749 +vt 0.482177 0.121781 +vt 0.548333 0.084893 +vt 0.489507 0.084858 +vt 0.546290 0.072669 +vt 0.491565 0.072625 +vt 0.542788 0.064089 +vt 0.495083 0.064047 +vt 0.536419 0.062072 +vt 0.501452 0.062043 +vt 0.518925 0.059681 +vt 0.519760 0.248864 +vt 0.520277 0.294764 +vt 0.615546 0.342005 +vt 0.425972 0.345582 +vt 0.563905 0.272007 +vt 0.475886 0.273078 +vt 0.556923 0.291214 +vt 0.483433 0.292249 +vt 0.532669 0.090920 +vt 0.505177 0.090908 +vt 0.532042 0.127713 +vt 0.505828 0.127728 +vt 0.518941 0.128358 +vt 0.518981 0.151749 +vt 0.535214 0.166808 +vt 0.502799 0.166857 +vt 0.537959 0.175966 +vt 0.500100 0.176033 +vt 0.537248 0.187577 +vt 0.500890 0.187571 +vt 0.528757 0.191785 +vt 0.509219 0.191626 +vt 0.519099 0.179457 +vt 0.528222 0.186316 +vt 0.509787 0.186260 +vt 0.533528 0.184215 +vt 0.504547 0.184206 +vt 0.533449 0.176739 +vt 0.504604 0.176791 +vt 0.531131 0.171631 +vt 0.506910 0.171667 +vt 0.519016 0.165599 +vt 0.596138 0.133426 +vt 0.441395 0.133592 +vt 0.561572 0.167779 +vt 0.476363 0.167996 +vt 0.559475 0.149319 +vt 0.478371 0.149447 +vt 0.601169 0.147885 +vt 0.436337 0.148194 +vt 0.518929 0.069468 +vt 0.523751 0.070508 +vt 0.514106 0.070501 +vt 0.529036 0.075429 +vt 0.508820 0.075415 +vt 0.528933 0.084957 +vt 0.508915 0.084945 +vt 0.518926 0.079331 +vt 0.524601 0.079886 +vt 0.513252 0.079879 +vt 0.524236 0.076691 +vt 0.513619 0.076684 +vt 0.521560 0.074970 +vt 0.516297 0.074966 +vt 0.518928 0.074259 +vt 0.568351 0.292904 +vt 0.471978 0.294282 +vt 0.571787 0.277295 +vt 0.468070 0.278617 +vt 0.614408 0.331972 +vt 0.426727 0.335361 +vt 0.601033 0.333624 +vt 0.440344 0.336537 +vt 0.629040 0.323864 +vt 0.411556 0.327673 +vt 0.652752 0.310186 +vt 0.386858 0.314615 +vt 0.656064 0.297636 +vt 0.383015 0.301864 +vt 0.653658 0.279971 +vt 0.384904 0.283634 +vt 0.632494 0.262853 +vt 0.406068 0.265508 +vt 0.611720 0.255725 +vt 0.427062 0.257728 +vt 0.580734 0.266620 +vt 0.458737 0.268049 +vt 0.573085 0.311386 +vt 0.467790 0.313081 +vt 0.584855 0.327708 +vt 0.456477 0.329961 +vt 0.590644 0.321516 +vt 0.450408 0.323919 +vt 0.579548 0.309340 +vt 0.461204 0.311233 +vt 0.585166 0.270991 +vt 0.454369 0.272583 +vt 0.612641 0.261560 +vt 0.426254 0.263693 +vt 0.629829 0.267263 +vt 0.408893 0.269959 +vt 0.647785 0.283486 +vt 0.391040 0.287071 +vt 0.649541 0.296225 +vt 0.389662 0.300183 +vt 0.646248 0.306421 +vt 0.393381 0.310510 +vt 0.626851 0.320513 +vt 0.413648 0.324175 +vt 0.601799 0.328453 +vt 0.439372 0.331331 +vt 0.613335 0.327083 +vt 0.427623 0.330358 +vt 0.578124 0.281900 +vt 0.461798 0.283441 +vt 0.577524 0.293776 +vt 0.462754 0.295432 +vt 0.553209 0.433063 +vt 0.815858 0.445381 +vt 0.492809 0.434538 +vt 0.219260 0.477186 +vt 0.609819 0.431516 +vt 0.770572 0.444261 +vt 0.435860 0.435740 +vt 0.271364 0.473316 +vt 0.648174 0.419316 +vt 0.755700 0.418603 +vt 0.396518 0.425416 +vt 0.287033 0.442912 +vt 0.692106 0.388274 +vt 0.770185 0.379538 +vt 0.350292 0.396229 +vt 0.268122 0.398737 +vt 0.726332 0.341754 +vt 0.749542 0.334683 +vt 0.312756 0.350588 +vt 0.288183 0.346496 +vt 0.735879 0.312112 +vt 0.301067 0.320593 +vt 0.729900 0.256393 +vt 0.304876 0.261087 +vt 0.698172 0.216906 +vt 0.337414 0.219179 +vt 0.663103 0.190671 +vt 0.373474 0.191872 +vt 0.911671 0.402429 +vt 0.106400 0.432652 +vt 0.962901 0.344752 +vt 0.043968 0.367038 +vt 0.891780 0.036916 +vt 0.142277 0.021467 +vt 0.672384 0.022201 +vt 0.365979 0.020991 +vt 0.518922 0.024886 +vt 0.567460 0.000144 +vt 0.470636 0.000144 +vt 0.626908 0.015608 +vt 0.411318 0.015131 +vt 0.649444 0.022378 +vt 0.388827 0.021586 +vt 0.789046 0.233323 +vt 0.241255 0.236977 +vt 0.809631 0.233887 +vt 0.219168 0.237388 +vt 0.842355 0.195160 +vt 0.620420 0.647706 +vt 0.176788 0.196179 +vt 0.145041 0.644626 +vt 0.909112 0.183261 +vt 0.107928 0.179083 +vt 0.760215 0.193244 +vt 0.271553 0.193871 +vt 0.785486 0.152330 +vt 0.391039 0.693922 +vt 0.245969 0.151002 +vt 0.369913 0.692227 +vt 0.837382 0.156361 +vt 0.498072 0.634346 +vt 0.196622 0.155241 +vt 0.264218 0.632171 +vt 0.886245 0.121777 +vt 0.141314 0.112482 +vt 0.626663 0.111357 +vt 0.410618 0.111244 +vt 0.660451 0.076084 +vt 0.376796 0.075296 +vt 0.576951 0.057998 +vt 0.460920 0.057845 +vt 0.611687 0.078268 +vt 0.425932 0.077985 +vt 0.558059 0.053871 +vt 0.479842 0.053785 +vt 0.577206 0.032801 +vt 0.460782 0.032656 +vt 0.621440 0.048089 +vt 0.416419 0.047631 +vt 0.547413 0.041724 +vt 0.490511 0.041669 +vt 0.629482 0.130456 +vt 0.407648 0.130594 +vt 0.623495 0.146796 +vt 0.413741 0.147158 +vt 0.619303 0.159841 +vt 0.418035 0.160361 +vt 0.687018 0.077204 +vt 0.349875 0.075955 +vt 0.788458 0.080826 +vt 0.246353 0.076510 +vt 0.849114 0.099732 +vt 0.183115 0.092127 +vt 0.915360 0.259804 +vt 0.098965 0.266968 +vt 0.894128 0.301884 +vt 0.123776 0.315519 +vt 0.862868 0.338556 +vt 0.160557 0.356821 +vt 0.794286 0.364062 +vt 0.239776 0.382592 +vt 0.766337 0.300809 +vt 0.267408 0.310142 +vt 0.789162 0.313727 +vt 0.242992 0.325552 +vt 0.846174 0.293397 +vt 0.178537 0.304983 +vt 0.815314 0.276388 +vt 0.213065 0.285164 +vt 0.845007 0.256352 +vt 0.179662 0.263312 +vt 0.873517 0.265922 +vt 0.147089 0.274284 +vt 0.886999 0.233769 +vt 0.131514 0.237587 +vt 0.859075 0.228168 +vt 0.162803 0.231720 +vt 0.875030 0.184705 +vt 0.145224 0.182749 +vt 0.858171 0.137775 +vt 0.171653 0.132294 +vt 0.391747 0.944128 +vt 0.829287 0.219562 +vt 0.363377 0.943339 +vt 0.199067 0.222464 +vt 0.051216 0.604690 +vt 0.715482 0.139727 +vt 0.319538 0.139409 +vt 0.786480 0.117591 +vt 0.246666 0.114850 +vt 0.432388 0.976974 +vt 0.740843 0.654459 +vt 0.834578 0.206879 +vt 0.321637 0.975256 +vt 0.033664 0.646434 +vt 0.434803 0.740913 +vt 0.325318 0.738255 +vt 0.508270 0.779724 +vt 0.250811 0.775280 +vt 0.563786 0.821242 +vt 0.194086 0.815272 +vt 0.619962 0.873646 +vt 0.136063 0.866124 +vt 0.604825 0.961977 +vt 0.707492 0.841915 +vt 0.148729 0.955380 +vt 0.049526 0.830855 +vt 0.506166 0.986882 +vt 0.745511 0.734131 +vt 0.247207 0.983190 +vt 0.019409 0.721780 +vt 0.491058 0.963745 +vt 0.263032 0.960352 +vt 0.572792 0.942515 +vt 0.181486 0.936724 +vt 0.586396 0.876008 +vt 0.169745 0.869505 +vt 0.549027 0.828443 +vt 0.208656 0.822910 +vt 0.500314 0.793760 +vt 0.258399 0.789528 +vt 0.438641 0.762714 +vt 0.320962 0.759990 +vt 0.438797 0.952260 +vt 0.315867 0.950240 +vt 0.457832 0.922071 +vt 0.297562 0.919389 +vt 0.452955 0.782054 +vt 0.306136 0.779007 +vt 0.505666 0.812975 +vt 0.252524 0.808623 +vt 0.542850 0.837784 +vt 0.214575 0.832445 +vt 0.568148 0.869398 +vt 0.188269 0.863406 +vt 0.555495 0.908383 +vt 0.199850 0.902920 +vt 0.501231 0.926387 +vt 0.253846 0.922533 +vt 0.401605 0.923491 +vt 0.825107 0.209762 +vt 0.354026 0.922328 +vt 0.199767 0.214827 +vt 0.418086 0.866977 +vt 0.338952 0.865104 +vt 0.410995 0.829693 +vt 0.347028 0.827847 +vt 0.427812 0.824859 +vt 0.330270 0.822567 +vt 0.433669 0.811692 +vt 0.324726 0.809208 +vt 0.435018 0.800311 +vt 0.323658 0.797762 +vt 0.783193 0.187449 +vt 0.246955 0.187075 +vt 0.394766 0.768156 +vt 0.796021 0.176969 +vt 0.364838 0.766476 +vt 0.233625 0.175620 +vt 0.384658 0.792330 +vt 0.802192 0.184609 +vt 0.374400 0.791000 +vt 0.226485 0.183086 +vt 0.384657 0.877454 +vt 0.816266 0.203086 +vt 0.372270 0.876503 +vt 0.209828 0.206161 +vt 0.431333 0.899566 +vt 0.324790 0.897491 +vt 0.448505 0.886652 +vt 0.307886 0.884062 +vt 0.440995 0.806414 +vt 0.317510 0.803728 +vt 0.445392 0.814028 +vt 0.312907 0.811253 +vt 0.437950 0.831808 +vt 0.319919 0.829281 +vt 0.423718 0.836222 +vt 0.334089 0.834076 +vt 0.435868 0.861600 +vt 0.321237 0.859239 +vt 0.512485 0.910842 +vt 0.242975 0.906605 +vt 0.550942 0.893845 +vt 0.204839 0.888448 +vt 0.552139 0.869713 +vt 0.204331 0.864187 +vt 0.539407 0.846570 +vt 0.217774 0.841350 +vt 0.508439 0.825166 +vt 0.249419 0.820763 +vt 0.455277 0.795762 +vt 0.303460 0.792688 +vt 0.473386 0.906731 +vt 0.282357 0.903556 +vt 0.454776 0.843696 +vt 0.302729 0.840773 +vt 0.470841 0.830439 +vt 0.286960 0.827051 +vt 0.488870 0.852495 +vt 0.268291 0.848692 +vt 0.475403 0.865935 +vt 0.281439 0.862542 +vt 0.494476 0.884501 +vt 0.261790 0.880657 +vt 0.503673 0.869593 +vt 0.252972 0.865441 +vt 0.518562 0.873633 +vt 0.237920 0.869076 +vt 0.516802 0.889370 +vt 0.239243 0.884922 +vt 0.677256 0.752467 +vt 0.083564 0.744069 +vt 0.660647 0.823198 +vt 0.097038 0.814083 +vt 0.616701 0.841996 +vt 0.140379 0.834408 +vt 0.581052 0.808964 +vt 0.177176 0.802457 +vt 0.543385 0.765569 +vt 0.216123 0.760151 +vt 0.484068 0.710807 +vt 0.276936 0.707098 +vt 0.834705 0.206959 +vt 0.671403 0.674687 +vt 0.092820 0.671893 +vt 0.369145 0.462438 +vt 0.595273 0.462438 +vt 0.538741 0.462438 +vt 0.482209 0.462438 +vt 0.425677 0.462438 +vt 0.397411 0.511397 +vt 0.623539 0.511397 +vt 0.340879 0.511397 +vt 0.567007 0.511397 +vt 0.510475 0.511397 +vt 0.453943 0.511397 +vt 0.369145 0.560355 +vt 0.312613 0.560355 +vt 0.595273 0.560355 +vt 0.538741 0.560355 +vt 0.482209 0.560355 +vt 0.425677 0.560355 +vt 0.453943 0.609314 +vt 0.510475 0.609314 +vt 0.567007 0.609314 +vt 0.340879 0.609314 +vt 0.397411 0.609314 +vt 0.609406 0.486917 +vt 0.355012 0.486917 +vt 0.411544 0.486917 +vt 0.383278 0.486917 +vt 0.369145 0.511397 +vt 0.425677 0.511397 +vt 0.468076 0.486917 +vt 0.439810 0.486917 +vt 0.552874 0.486917 +vt 0.581140 0.486917 +vt 0.595273 0.511397 +vt 0.496342 0.486917 +vt 0.524608 0.486917 +vt 0.538741 0.511397 +vt 0.482209 0.511397 +vt 0.411544 0.535876 +vt 0.439810 0.535876 +vt 0.355012 0.535876 +vt 0.383278 0.535876 +vt 0.581140 0.535876 +vt 0.326746 0.535876 +vt 0.609406 0.535876 +vt 0.524608 0.535876 +vt 0.552874 0.535876 +vt 0.468076 0.535876 +vt 0.496342 0.535876 +vt 0.397411 0.560355 +vt 0.340879 0.560355 +vt 0.567007 0.560355 +vt 0.510475 0.560355 +vt 0.453943 0.560355 +vt 0.355012 0.584834 +vt 0.383278 0.584834 +vt 0.439810 0.584834 +vt 0.411544 0.584834 +vt 0.581140 0.584834 +vt 0.326746 0.584834 +vt 0.524608 0.584834 +vt 0.552874 0.584834 +vt 0.468076 0.584834 +vt 0.496342 0.584834 +s 0 +f 47/47/1 1/1/1 3/3/1 45/45/1 +f 4/4/2 2/2/2 48/48/2 46/46/2 +f 45/45/3 3/3/3 5/5/3 43/43/3 +f 6/6/4 4/4/4 46/46/4 44/44/4 +f 3/3/5 9/9/5 7/7/5 5/5/5 +f 8/8/6 10/10/6 4/4/6 6/6/6 +f 1/1/7 11/11/7 9/9/7 3/3/7 +f 10/10/8 12/12/8 2/2/8 4/4/8 +f 11/11/9 13/13/9 15/15/9 9/9/9 +f 16/16/10 14/14/10 12/12/10 10/10/10 +f 9/9/11 15/15/11 17/17/11 7/7/11 +f 18/18/12 16/16/12 10/10/12 8/8/12 +f 15/15/13 21/21/13 19/19/13 17/17/13 +f 20/20/14 22/22/14 16/16/14 18/18/14 +f 13/13/15 23/23/15 21/21/15 15/15/15 +f 22/22/16 24/24/16 14/14/16 16/16/16 +f 23/23/17 25/25/17 27/27/17 21/21/17 +f 28/28/18 26/26/18 24/24/18 22/22/18 +f 21/21/19 27/27/19 29/29/19 19/19/19 +f 30/30/20 28/28/20 22/22/20 20/20/20 +f 27/27/21 33/33/21 31/31/21 29/29/21 +f 32/32/22 34/34/22 28/28/22 30/30/22 +f 25/25/23 35/35/23 33/33/23 27/27/23 +f 34/34/24 36/36/24 26/26/24 28/28/24 +f 35/35/25 37/37/25 39/39/25 33/33/25 +f 40/40/26 38/38/26 36/36/26 34/34/26 +f 33/33/27 39/39/27 41/41/27 31/31/27 +f 42/42/28 40/40/28 34/34/28 32/32/28 +f 39/39/29 45/45/29 43/43/29 41/41/29 +f 44/44/30 46/46/30 40/40/30 42/42/30 +f 37/37/31 47/47/31 45/45/31 39/39/31 +f 46/46/32 48/48/32 38/38/32 40/40/32 +f 47/47/33 37/37/33 51/51/33 49/49/33 +f 52/52/34 38/38/34 48/48/34 50/50/34 +f 37/37/35 35/35/35 53/53/35 51/51/35 +f 54/54/36 36/36/36 38/38/36 52/52/36 +f 35/35/37 25/25/37 55/55/37 53/53/37 +f 56/56/38 26/26/38 36/36/38 54/54/38 +f 25/25/39 23/23/39 57/57/39 55/55/39 +f 58/58/40 24/24/40 26/26/40 56/56/40 +f 23/23/41 13/13/41 59/59/41 57/57/41 +f 60/60/42 14/14/42 24/24/42 58/58/42 +f 13/13/43 11/11/43 63/63/43 59/59/43 +f 64/64/44 12/12/44 14/14/44 60/60/44 +f 11/11/45 1/1/45 65/65/45 63/63/45 +f 66/66/46 2/2/46 12/12/46 64/64/46 +f 1/1/47 47/47/47 49/49/47 65/65/47 +f 50/50/48 48/48/48 2/2/48 66/66/48 +f 61/61/49 65/65/49 49/49/49 +f 50/50/50 66/66/50 62/62/50 +f 63/63/51 65/65/51 61/61/51 +f 62/62/52 66/66/52 64/64/52 +f 61/61/53 59/59/53 63/63/53 +f 64/64/54 60/60/54 62/62/54 +f 61/61/55 57/57/55 59/59/55 +f 60/60/56 58/58/56 62/62/56 +f 61/61/57 55/55/57 57/57/57 +f 58/58/58 56/56/58 62/62/58 +f 61/61/59 53/53/59 55/55/59 +f 56/56/60 54/54/60 62/62/60 +f 61/61/61 51/51/61 53/53/61 +f 54/54/62 52/52/62 62/62/62 +f 61/61/63 49/49/63 51/51/63 +f 52/52/64 50/50/64 62/62/64 +f 89/96/65 174/181/65 176/183/65 91/98/65 +f 176/183/66 175/182/66 90/97/66 91/98/66 +f 87/94/67 172/179/67 174/181/67 89/96/67 +f 175/182/68 173/180/68 88/95/68 90/97/68 +f 85/92/69 170/177/69 172/179/69 87/94/69 +f 173/180/70 171/178/70 86/93/70 88/95/70 +f 83/90/71 168/175/71 170/177/71 85/92/71 +f 171/178/72 169/176/72 84/91/72 86/93/72 +f 81/88/73 166/173/73 168/175/73 83/90/73 +f 169/176/74 167/174/74 82/89/74 84/91/74 +f 79/86/75 92/99/75 146/153/75 164/171/75 +f 147/154/76 93/100/76 80/87/76 165/172/76 +f 92/99/77 94/101/77 148/155/77 146/153/77 +f 149/156/78 95/102/78 93/100/78 147/154/78 +f 94/101/79 96/103/79 150/157/79 148/155/79 +f 151/158/80 97/104/80 95/102/80 149/156/80 +f 96/103/81 98/105/81 152/159/81 150/157/81 +f 153/160/82 99/106/82 97/104/82 151/158/82 +f 98/105/83 100/107/83 154/161/83 152/159/83 +f 155/162/84 101/108/84 99/106/84 153/160/84 +f 100/107/85 102/109/85 156/163/85 154/161/85 +f 157/164/86 103/110/86 101/108/86 155/162/86 +f 102/109/87 104/111/87 158/165/87 156/163/87 +f 159/166/88 105/112/88 103/110/88 157/164/88 +f 104/111/89 106/113/89 160/167/89 158/165/89 +f 161/168/90 107/114/90 105/112/90 159/166/90 +f 106/113/91 108/115/91 162/169/91 160/167/91 +f 163/170/92 109/116/92 107/114/92 161/168/92 +f 108/115/93 67/67/93 68/68/93 162/169/93 +f 68/68/94 67/67/94 109/116/94 163/170/94 +f 110/117/95 128/135/95 160/167/95 162/169/95 +f 161/168/96 129/136/96 111/118/96 163/170/96 +f 128/135/97 179/186/97 158/165/97 160/167/97 +f 159/166/98 180/187/98 129/136/98 161/168/98 +f 126/133/99 156/163/99 158/165/99 179/186/99 +f 159/166/100 157/164/100 127/134/100 180/187/100 +f 124/131/101 154/161/101 156/163/101 126/133/101 +f 157/164/102 155/162/102 125/132/102 127/134/102 +f 122/129/103 152/159/103 154/161/103 124/131/103 +f 155/162/104 153/160/104 123/130/104 125/132/104 +f 120/127/105 150/157/105 152/159/105 122/129/105 +f 153/160/106 151/158/106 121/128/106 123/130/106 +f 118/125/107 148/155/107 150/157/107 120/127/107 +f 151/158/108 149/156/108 119/126/108 121/128/108 +f 116/123/109 146/153/109 148/155/109 118/125/109 +f 149/156/110 147/154/110 117/124/110 119/126/110 +f 114/121/111 164/171/111 146/153/111 116/123/111 +f 147/154/112 165/172/112 115/122/112 117/124/112 +f 114/121/113 181/188/113 177/184/113 164/171/113 +f 177/184/114 182/189/114 115/122/114 165/172/114 +f 110/117/115 162/169/115 68/68/115 112/119/115 +f 68/68/116 163/170/116 111/118/116 113/120/116 +f 112/119/117 68/68/117 178/185/117 183/190/117 +f 178/185/118 68/68/118 113/120/118 184/191/118 +f 177/184/119 181/188/119 183/190/119 178/185/119 +f 184/191/120 182/189/120 177/184/120 178/185/120 +f 135/142/121 137/144/121 176/183/121 174/181/121 +f 176/183/122 137/144/122 136/143/122 175/182/122 +f 133/140/123 135/142/123 174/181/123 172/179/123 +f 175/182/124 136/143/124 134/141/124 173/180/124 +f 131/138/125 133/140/125 172/179/125 170/177/125 +f 173/180/126 134/141/126 132/139/126 171/178/126 +f 166/173/127 187/194/127 185/192/127 168/175/127 +f 186/193/128 188/195/128 167/174/128 169/176/128 +f 131/138/129 170/177/129 168/175/129 185/192/129 +f 169/176/130 171/178/130 132/139/130 186/193/130 +f 144/151/131 190/197/131 189/196/131 187/194/131 +f 189/196/132 190/197/132 145/152/132 188/195/132 +f 185/192/133 187/194/133 189/196/133 69/69/133 +f 189/196/134 188/195/134 186/193/134 69/69/134 +f 130/137/135 131/138/135 185/192/135 69/69/135 +f 186/193/135 132/139/135 130/137/135 69/69/135 +f 142/149/136 193/200/136 191/198/136 144/151/136 +f 192/199/137 194/201/137 143/150/137 145/152/137 +f 140/147/138 195/202/138 193/200/138 142/149/138 +f 194/201/139 196/203/139 141/148/139 143/150/139 +f 139/146/140 197/204/140 195/202/140 140/147/140 +f 196/203/141 198/205/141 139/146/141 141/148/141 +f 138/145/142 71/71/142 197/204/142 139/146/142 +f 198/205/143 71/71/143 138/145/143 139/146/143 +f 190/197/144 144/151/144 191/198/144 70/70/144 +f 192/199/145 145/152/145 190/197/145 70/70/145 +f 70/70/146 191/198/146 206/213/146 208/215/146 +f 207/214/147 192/199/147 70/70/147 208/215/147 +f 71/71/148 199/206/148 200/207/148 197/204/148 +f 201/208/149 199/206/149 71/71/149 198/205/149 +f 197/204/150 200/207/150 202/209/150 195/202/150 +f 203/210/151 201/208/151 198/205/151 196/203/151 +f 195/202/152 202/209/152 204/211/152 193/200/152 +f 205/212/153 203/210/153 196/203/153 194/201/153 +f 193/200/154 204/211/154 206/213/154 191/198/154 +f 207/214/155 205/212/155 194/201/155 192/199/155 +f 199/206/156 204/211/156 202/209/156 200/207/156 +f 203/210/157 205/212/157 199/206/157 201/208/157 +f 199/206/158 208/215/158 206/213/158 204/211/158 +f 207/214/159 208/215/159 199/206/159 205/212/159 +f 139/146/160 140/147/160 164/171/160 177/184/160 +f 165/172/161 141/148/161 139/146/161 177/184/161 +f 140/147/162 142/149/162 211/218/162 164/171/162 +f 212/219/163 143/150/163 141/148/163 165/172/163 +f 142/149/164 144/151/164 213/220/164 211/218/164 +f 214/221/165 145/152/165 143/150/165 212/219/165 +f 144/151/166 187/194/166 166/173/166 213/220/166 +f 167/174/167 188/195/167 145/152/167 214/221/167 +f 81/88/168 209/216/168 213/220/168 166/173/168 +f 214/221/169 210/217/169 82/89/169 167/174/169 +f 209/216/170 215/222/170 211/218/170 213/220/170 +f 212/219/171 216/223/171 210/217/171 214/221/171 +f 79/86/172 164/171/172 211/218/172 215/222/172 +f 212/219/173 165/172/173 80/87/173 216/223/173 +f 131/138/174 130/137/174 72/72/174 222/229/174 +f 72/72/175 130/137/175 132/139/175 223/230/175 +f 133/140/176 131/138/176 222/229/176 220/227/176 +f 223/230/177 132/139/177 134/141/177 221/228/177 +f 135/142/178 133/140/178 220/227/178 218/225/178 +f 221/228/179 134/141/179 136/143/179 219/226/179 +f 137/144/180 135/142/180 218/225/180 217/224/180 +f 219/226/181 136/143/181 137/144/181 217/224/181 +f 217/224/182 218/225/182 229/236/182 231/238/182 +f 230/237/183 219/226/183 217/224/183 231/238/183 +f 218/225/184 220/227/184 227/234/184 229/236/184 +f 228/235/185 221/228/185 219/226/185 230/237/185 +f 220/227/186 222/229/186 225/232/186 227/234/186 +f 226/233/187 223/230/187 221/228/187 228/235/187 +f 222/229/188 72/72/188 224/231/188 225/232/188 +f 224/231/189 72/72/189 223/230/189 226/233/189 +f 224/231/190 231/238/190 229/236/190 225/232/190 +f 230/237/191 231/238/191 224/231/191 226/233/191 +f 225/232/192 229/236/192 227/234/192 +f 228/235/193 230/237/193 226/233/193 +f 183/190/194 181/188/194 234/241/194 232/239/194 +f 235/242/195 182/189/195 184/191/195 233/240/195 +f 112/119/196 183/190/196 232/239/196 254/261/196 +f 233/240/197 184/191/197 113/120/197 255/262/197 +f 110/117/198 112/119/198 254/261/198 256/263/198 +f 255/262/199 113/120/199 111/118/199 257/264/199 +f 181/188/200 114/121/200 252/259/200 234/241/200 +f 253/260/201 115/122/201 182/189/201 235/242/201 +f 114/121/202 116/123/202 250/257/202 252/259/202 +f 251/258/203 117/124/203 115/122/203 253/260/203 +f 116/123/204 118/125/204 248/255/204 250/257/204 +f 249/256/205 119/126/205 117/124/205 251/258/205 +f 118/125/206 120/127/206 246/253/206 248/255/206 +f 247/254/207 121/128/207 119/126/207 249/256/207 +f 120/127/208 122/129/208 244/251/208 246/253/208 +f 245/252/209 123/130/209 121/128/209 247/254/209 +f 122/129/210 124/131/210 242/249/210 244/251/210 +f 243/250/211 125/132/211 123/130/211 245/252/211 +f 124/131/212 126/133/212 240/247/212 242/249/212 +f 241/248/213 127/134/213 125/132/213 243/250/213 +f 126/133/214 179/186/214 236/243/214 240/247/214 +f 237/244/215 180/187/215 127/134/215 241/248/215 +f 179/186/216 128/135/216 238/245/216 236/243/216 +f 239/246/217 129/136/217 180/187/217 237/244/217 +f 128/135/218 110/117/218 256/263/218 238/245/218 +f 257/264/219 111/118/219 129/136/219 239/246/219 +f 238/245/220 256/263/220 258/265/220 276/283/220 +f 259/266/221 257/264/221 239/246/221 277/284/221 +f 236/243/222 238/245/222 276/283/222 278/285/222 +f 277/284/223 239/246/223 237/244/223 279/286/223 +f 240/247/224 236/243/224 278/285/224 274/281/224 +f 279/286/225 237/244/225 241/248/225 275/282/225 +f 242/249/226 240/247/226 274/281/226 272/279/226 +f 275/282/227 241/248/227 243/250/227 273/280/227 +f 244/251/228 242/249/228 272/279/228 270/277/228 +f 273/280/229 243/250/229 245/252/229 271/278/229 +f 246/253/230 244/251/230 270/277/230 268/275/230 +f 271/278/231 245/252/231 247/254/231 269/276/231 +f 248/255/232 246/253/232 268/275/232 266/273/232 +f 269/276/233 247/254/233 249/256/233 267/274/233 +f 250/257/234 248/255/234 266/273/234 264/271/234 +f 267/274/235 249/256/235 251/258/235 265/272/235 +f 252/259/236 250/257/236 264/271/236 262/269/236 +f 265/272/237 251/258/237 253/260/237 263/270/237 +f 234/241/238 252/259/238 262/269/238 280/287/238 +f 263/270/239 253/260/239 235/242/239 281/288/239 +f 256/263/240 254/261/240 260/267/240 258/265/240 +f 261/268/241 255/262/241 257/264/241 259/266/241 +f 254/261/242 232/239/242 282/289/242 260/267/242 +f 283/290/243 233/240/243 255/262/243 261/268/243 +f 232/239/244 234/241/244 280/287/244 282/289/244 +f 281/288/245 235/242/245 233/240/245 283/290/245 +f 67/67/246 108/115/246 284/291/246 73/73/246 +f 285/293/247 109/116/247 67/67/247 73/73/247 +f 108/115/248 106/113/248 286/295/248 284/291/248 +f 287/297/249 107/114/249 109/116/249 285/293/249 +f 106/113/250 104/111/250 288/299/250 286/295/250 +f 289/301/251 105/112/251 107/114/251 287/297/251 +f 104/111/252 102/109/252 290/303/252 288/299/252 +f 291/305/253 103/110/253 105/112/253 289/301/253 +f 102/109/254 100/107/254 292/307/254 290/303/254 +f 293/309/255 101/108/255 103/110/255 291/305/255 +f 100/107/256 98/105/256 294/311/256 292/307/256 +f 295/312/257 99/106/257 101/108/257 293/309/257 +f 98/105/258 96/103/258 296/313/258 294/311/258 +f 297/314/259 97/104/259 99/106/259 295/312/259 +f 96/103/260 94/101/260 298/315/260 296/313/260 +f 299/316/261 95/102/261 97/104/261 297/314/261 +f 94/101/262 92/99/262 300/317/262 298/315/262 +f 301/318/263 93/100/263 95/102/263 299/316/263 +f 308/330/264 309/332/264 328/358/264 338/368/264 +f 329/359/265 309/333/265 308/331/265 339/369/265 +f 307/328/266 308/330/266 338/368/266 336/366/266 +f 339/369/267 308/331/267 307/329/267 337/367/267 +f 306/327/268 307/328/268 336/366/268 340/370/268 +f 337/367/269 307/329/269 306/327/269 341/371/269 +f 89/96/270 91/98/270 306/327/270 340/370/270 +f 306/327/271 91/98/271 90/97/271 341/371/271 +f 87/94/272 89/96/272 340/370/272 334/364/272 +f 341/371/273 90/97/273 88/95/273 335/365/273 +f 85/92/274 87/94/274 334/364/274 330/360/274 +f 335/365/275 88/95/275 86/93/275 331/361/275 +f 83/90/276 85/92/276 330/360/276 332/362/276 +f 331/361/277 86/93/277 84/91/277 333/363/277 +f 330/360/278 336/366/278 338/368/278 332/362/278 +f 339/369/279 337/367/279 331/361/279 333/363/279 +f 330/360/280 334/364/280 340/370/280 336/366/280 +f 341/371/281 335/365/281 331/361/281 337/367/281 +f 326/356/282 332/362/282 338/368/282 328/358/282 +f 339/369/283 333/363/283 327/357/283 329/359/283 +f 81/88/284 83/90/284 332/362/284 326/356/284 +f 333/363/285 84/91/285 82/89/285 327/357/285 +f 209/216/286 342/372/286 344/374/286 215/222/286 +f 345/375/287 343/373/287 210/217/287 216/223/287 +f 81/88/288 326/356/288 342/372/288 209/216/288 +f 343/373/289 327/357/289 82/89/289 210/217/289 +f 79/86/290 215/222/290 344/374/290 346/376/290 +f 345/375/291 216/223/291 80/87/291 347/377/291 +f 79/86/292 346/376/292 300/317/292 92/99/292 +f 301/318/293 347/377/293 80/87/293 93/100/293 +f 77/82/294 324/354/294 352/382/294 304/323/294 +f 353/383/295 325/355/295 77/83/295 304/324/295 +f 304/323/296 352/382/296 350/380/296 78/84/296 +f 351/381/297 353/383/297 304/324/297 78/85/297 +f 78/84/298 350/380/298 348/378/298 305/325/298 +f 349/379/299 351/381/299 78/85/299 305/326/299 +f 305/325/300 348/378/300 328/358/300 309/332/300 +f 329/359/301 349/379/301 305/326/301 309/333/301 +f 326/356/302 328/358/302 348/378/302 342/372/302 +f 349/379/303 329/359/303 327/357/303 343/373/303 +f 296/313/304 298/315/304 318/344/304 310/334/304 +f 319/345/305 299/316/305 297/314/305 311/335/305 +f 76/80/306 316/342/306 324/354/306 77/82/306 +f 325/355/307 317/343/307 76/81/307 77/83/307 +f 302/319/308 358/388/308 356/386/308 303/321/308 +f 357/387/309 359/389/309 302/320/309 303/322/309 +f 303/321/310 356/386/310 354/384/310 75/78/310 +f 355/385/311 357/387/311 303/322/311 75/79/311 +f 75/78/312 354/384/312 316/342/312 76/80/312 +f 317/343/313 355/385/313 75/79/313 76/81/313 +f 292/308/314 294/311/314 362/392/314 364/394/314 +f 363/393/315 295/312/315 293/310/315 365/395/315 +f 364/394/316 362/392/316 368/398/316 366/396/316 +f 369/399/317 363/393/317 365/395/317 367/397/317 +f 366/396/318 368/398/318 370/400/318 372/402/318 +f 371/401/319 369/399/319 367/397/319 373/403/319 +f 372/402/320 370/400/320 376/406/320 374/404/320 +f 377/407/321 371/401/321 373/403/321 375/405/321 +f 314/338/322 378/408/322 374/404/322 376/406/322 +f 375/405/323 379/409/323 315/340/323 377/407/323 +f 316/342/324 354/384/324 374/404/324 378/408/324 +f 375/405/325 355/385/325 317/343/325 379/409/325 +f 354/384/326 356/386/326 372/402/326 374/404/326 +f 373/403/327 357/387/327 355/385/327 375/405/327 +f 356/386/328 358/388/328 366/396/328 372/402/328 +f 367/397/329 359/389/329 357/387/329 373/403/329 +f 358/388/330 360/390/330 364/394/330 366/396/330 +f 365/395/331 361/391/331 359/389/331 367/397/331 +f 290/304/332 292/308/332 364/394/332 360/390/332 +f 365/395/333 293/310/333 291/306/333 361/391/333 +f 74/76/334 360/390/334 358/388/334 302/319/334 +f 359/389/335 361/391/335 74/77/335 302/320/335 +f 284/292/336 286/296/336 288/300/336 290/304/336 +f 289/302/337 287/298/337 285/294/337 291/306/337 +f 284/292/338 290/304/338 360/390/338 74/76/338 +f 361/391/339 291/306/339 285/294/339 74/77/339 +f 73/74/340 284/292/340 74/76/340 +f 74/77/341 285/294/341 73/75/341 +f 294/311/342 296/313/342 310/334/342 362/392/342 +f 311/335/343 297/314/343 295/312/343 363/393/343 +f 310/334/344 312/336/344 368/398/344 362/392/344 +f 369/399/345 313/337/345 311/335/345 363/393/345 +f 312/336/346 382/413/346 370/400/346 368/398/346 +f 371/401/347 383/415/347 313/337/347 369/399/347 +f 314/338/348 376/406/348 370/400/348 382/413/348 +f 371/401/349 377/407/349 315/340/349 383/415/349 +f 348/378/350 350/380/350 386/419/350 384/417/350 +f 387/420/351 351/381/351 349/379/351 385/418/351 +f 318/344/352 384/417/352 386/419/352 320/346/352 +f 387/420/353 385/418/353 319/345/353 321/348/353 +f 298/315/354 300/317/354 384/417/354 318/344/354 +f 385/418/355 301/318/355 299/316/355 319/345/355 +f 300/317/356 344/374/356 342/372/356 384/417/356 +f 343/373/357 345/375/357 301/318/357 385/418/357 +f 342/372/358 348/378/358 384/417/358 +f 385/418/359 349/379/359 343/373/359 +f 300/317/360 346/376/360 344/374/360 +f 345/375/361 347/377/361 301/318/361 +f 314/338/362 322/350/362 380/410/362 378/408/362 +f 381/411/363 323/352/363 315/340/363 379/409/363 +f 316/342/364 378/408/364 380/410/364 324/354/364 +f 381/411/365 379/409/365 317/343/365 325/355/365 +f 320/346/366 386/419/366 380/410/366 322/350/366 +f 381/411/367 387/420/367 321/348/367 323/352/367 +f 350/380/368 352/382/368 380/410/368 386/419/368 +f 381/411/369 353/383/369 351/381/369 387/420/369 +f 324/354/370 380/410/370 352/382/370 +f 353/383/371 381/411/371 325/355/371 +f 400/438/372 388/421/372 414/454/372 402/442/372 +f 415/455/373 389/424/373 401/440/373 403/443/373 +f 400/438/374 402/442/374 404/444/374 398/434/374 +f 405/445/375 403/443/375 401/440/375 399/436/375 +f 398/434/376 404/444/376 406/446/376 396/432/376 +f 407/447/377 405/445/377 399/436/377 397/433/377 +f 396/432/378 406/446/378 408/448/378 394/430/378 +f 409/449/379 407/447/379 397/433/379 395/431/379 +f 394/430/380 408/448/380 410/450/380 392/428/380 +f 411/451/381 409/449/381 395/431/381 393/429/381 +f 392/428/382 410/450/382 412/452/382 390/426/382 +f 413/453/383 411/451/383 393/429/383 391/427/383 +f 410/450/384 420/460/384 418/458/384 412/452/384 +f 419/459/385 421/461/385 411/451/385 413/453/385 +f 408/448/386 422/462/386 420/460/386 410/450/386 +f 421/461/387 423/463/387 409/449/387 411/451/387 +f 406/446/388 424/464/388 422/462/388 408/448/388 +f 423/463/389 425/465/389 407/447/389 409/449/389 +f 404/444/390 426/466/390 424/464/390 406/446/390 +f 425/465/391 427/467/391 405/445/391 407/447/391 +f 402/442/392 428/468/392 426/466/392 404/444/392 +f 427/467/393 429/469/393 403/443/393 405/445/393 +f 402/442/394 414/454/394 416/456/394 428/468/394 +f 417/457/395 415/455/395 403/443/395 429/469/395 +f 318/344/396 320/346/396 444/487/396 442/484/396 +f 445/489/397 321/348/397 319/345/397 443/485/397 +f 320/347/398 390/426/398 412/452/398 444/486/398 +f 413/453/399 391/427/399 321/349/399 445/488/399 +f 310/334/400 318/344/400 442/484/400 312/336/400 +f 443/485/401 319/345/401 311/335/401 313/337/401 +f 382/412/402 430/470/402 414/454/402 388/421/402 +f 415/455/403 431/472/403 383/414/403 389/424/403 +f 412/452/404 418/458/404 440/482/404 444/486/404 +f 441/483/405 419/459/405 413/453/405 445/488/405 +f 438/480/406 446/490/406 444/486/406 440/482/406 +f 445/488/407 447/492/407 439/481/407 441/483/407 +f 434/476/408 446/490/408 438/480/408 436/478/408 +f 439/481/409 447/492/409 435/477/409 437/479/409 +f 432/474/410 448/494/410 446/490/410 434/476/410 +f 447/492/411 449/496/411 433/475/411 435/477/411 +f 430/470/412 448/494/412 432/474/412 450/498/412 +f 433/475/413 449/496/413 431/472/413 451/499/413 +f 414/454/414 430/470/414 450/498/414 416/456/414 +f 451/499/415 431/472/415 415/455/415 417/457/415 +f 312/336/416 448/495/416 430/471/416 382/413/416 +f 431/473/417 449/497/417 313/337/417 383/415/417 +f 312/336/418 442/484/418 446/491/418 448/495/418 +f 447/493/419 443/485/419 313/337/419 449/497/419 +f 442/484/420 444/487/420 446/491/420 +f 447/493/421 445/489/421 443/485/421 +f 416/456/422 450/498/422 452/500/422 476/524/422 +f 453/501/423 451/499/423 417/457/423 477/525/423 +f 450/498/424 432/474/424 462/510/424 452/500/424 +f 463/511/425 433/475/425 451/499/425 453/501/425 +f 432/474/426 434/476/426 460/508/426 462/510/426 +f 461/509/427 435/477/427 433/475/427 463/511/427 +f 434/476/428 436/478/428 458/506/428 460/508/428 +f 459/507/429 437/479/429 435/477/429 461/509/429 +f 436/478/430 438/480/430 456/504/430 458/506/430 +f 457/505/431 439/481/431 437/479/431 459/507/431 +f 438/480/432 440/482/432 454/502/432 456/504/432 +f 455/503/433 441/483/433 439/481/433 457/505/433 +f 440/482/434 418/458/434 474/522/434 454/502/434 +f 475/523/435 419/459/435 441/483/435 455/503/435 +f 428/468/436 416/456/436 476/524/436 464/512/436 +f 477/525/437 417/457/437 429/469/437 465/513/437 +f 426/466/438 428/468/438 464/512/438 466/514/438 +f 465/513/439 429/469/439 427/467/439 467/515/439 +f 424/464/440 426/466/440 466/514/440 468/516/440 +f 467/515/441 427/467/441 425/465/441 469/517/441 +f 422/462/442 424/464/442 468/516/442 470/518/442 +f 469/517/443 425/465/443 423/463/443 471/519/443 +f 420/460/444 422/462/444 470/518/444 472/520/444 +f 471/519/445 423/463/445 421/461/445 473/521/445 +f 418/458/446 420/460/446 472/520/446 474/522/446 +f 473/521/447 421/461/447 419/459/447 475/523/447 +f 458/506/448 456/504/448 480/528/448 478/526/448 +f 481/529/449 457/505/449 459/507/449 479/527/449 +f 478/526/450 480/528/450 482/530/450 484/532/450 +f 483/531/451 481/529/451 479/527/451 485/533/451 +f 484/532/452 482/530/452 488/536/452 486/534/452 +f 489/537/453 483/531/453 485/533/453 487/535/453 +f 486/534/454 488/536/454 490/538/454 492/540/454 +f 491/539/455 489/537/455 487/535/455 493/541/455 +f 464/512/456 476/524/456 486/534/456 492/540/456 +f 487/535/457 477/525/457 465/513/457 493/541/457 +f 452/500/458 484/532/458 486/534/458 476/524/458 +f 487/535/459 485/533/459 453/501/459 477/525/459 +f 452/500/460 462/510/460 478/526/460 484/532/460 +f 479/527/461 463/511/461 453/501/461 485/533/461 +f 458/506/462 478/526/462 462/510/462 460/508/462 +f 463/511/463 479/527/463 459/507/463 461/509/463 +f 454/502/464 474/522/464 480/528/464 456/504/464 +f 481/529/465 475/523/465 455/503/465 457/505/465 +f 472/520/466 482/530/466 480/528/466 474/522/466 +f 481/529/467 483/531/467 473/521/467 475/523/467 +f 470/518/468 488/536/468 482/530/468 472/520/468 +f 483/531/469 489/537/469 471/519/469 473/521/469 +f 468/516/470 490/538/470 488/536/470 470/518/470 +f 489/537/471 491/539/471 469/517/471 471/519/471 +f 466/514/472 492/540/472 490/538/472 468/516/472 +f 491/539/473 493/541/473 467/515/473 469/517/473 +f 464/512/474 492/540/474 466/514/474 +f 467/515/475 493/541/475 465/513/475 +f 392/428/476 390/426/476 504/552/476 502/550/476 +f 505/553/477 391/427/477 393/429/477 503/551/477 +f 394/430/478 392/428/478 502/550/478 500/548/478 +f 503/551/479 393/429/479 395/431/479 501/549/479 +f 396/432/480 394/430/480 500/548/480 498/546/480 +f 501/549/481 395/431/481 397/433/481 499/547/481 +f 398/435/482 396/432/482 498/546/482 496/544/482 +f 499/547/483 397/433/483 399/437/483 497/545/483 +f 400/439/484 398/435/484 496/544/484 494/542/484 +f 497/545/485 399/437/485 401/441/485 495/543/485 +f 388/422/486 400/439/486 494/542/486 506/555/486 +f 495/543/487 401/441/487 389/425/487 507/556/487 +f 494/542/488 502/550/488 504/552/488 506/555/488 +f 505/553/489 503/551/489 495/543/489 507/556/489 +f 494/542/490 496/544/490 500/548/490 502/550/490 +f 501/549/491 497/545/491 495/543/491 503/551/491 +f 496/544/492 498/546/492 500/548/492 +f 501/549/493 499/547/493 497/545/493 +f 314/338/494 382/413/494 388/423/494 506/554/494 +f 389/425/495 383/416/495 315/341/495 507/556/495 +f 314/339/496 506/555/496 504/552/496 322/351/496 +f 505/553/497 507/556/497 315/341/497 323/353/497 +f 320/347/498 322/351/498 504/552/498 390/426/498 +f 505/553/499 323/353/499 321/349/499 391/427/499 +f 508/557/500 521/582/500 520/580/500 +f 509/562/501 521/581/501 523/584/501 +f 508/558/502 520/579/502 525/588/502 +f 508/559/503 525/587/503 527/591/503 +f 508/560/504 527/590/504 524/585/504 +f 509/562/505 523/584/505 530/594/505 +f 510/564/506 522/583/506 532/596/506 +f 511/565/507 526/589/507 534/598/507 +f 512/566/508 528/592/508 536/601/508 +f 513/567/509 529/593/509 538/603/509 +f 509/562/510 530/594/510 533/597/510 +f 510/564/511 532/596/511 535/599/511 +f 511/565/512 534/598/512 537/602/512 +f 512/566/513 536/601/513 539/604/513 +f 513/567/514 538/603/514 531/595/514 +f 514/568/515 540/605/515 545/611/515 +f 515/569/516 541/606/516 547/615/516 +f 516/571/517 542/607/517 548/617/517 +f 517/572/518 543/608/518 549/619/518 +f 518/573/519 544/609/519 546/612/519 +f 546/612/520 549/618/520 519/574/520 +f 546/612/521 544/609/521 549/618/521 +f 544/609/522 517/572/522 549/618/522 +f 549/619/523 548/616/523 519/575/523 +f 549/619/524 543/608/524 548/616/524 +f 543/608/525 516/571/525 548/616/525 +f 548/617/526 547/614/526 519/576/526 +f 548/617/527 542/607/527 547/614/527 +f 542/607/528 515/570/528 547/614/528 +f 547/615/529 545/610/529 519/577/529 +f 547/615/530 541/606/530 545/610/530 +f 541/606/531 514/568/531 545/610/531 +f 545/611/532 546/613/532 519/578/532 +f 545/611/533 540/605/533 546/613/533 +f 540/605/534 518/573/534 546/613/534 +f 531/595/535 544/609/535 518/573/535 +f 531/595/536 538/603/536 544/609/536 +f 538/603/537 517/572/537 544/609/537 +f 539/604/538 543/608/538 517/572/538 +f 539/604/539 536/601/539 543/608/539 +f 536/601/540 516/571/540 543/608/540 +f 537/602/541 542/607/541 516/571/541 +f 537/602/542 534/598/542 542/607/542 +f 534/598/543 515/570/543 542/607/543 +f 535/599/544 541/606/544 515/569/544 +f 535/599/545 532/596/545 541/606/545 +f 532/596/546 514/568/546 541/606/546 +f 533/597/547 540/605/547 514/568/547 +f 533/597/548 530/594/548 540/605/548 +f 530/594/549 518/573/549 540/605/549 +f 538/603/550 539/604/550 517/572/550 +f 538/603/551 529/593/551 539/604/551 +f 529/593/552 512/566/552 539/604/552 +f 536/601/553 537/602/553 516/571/553 +f 536/601/554 528/592/554 537/602/554 +f 528/592/555 511/565/555 537/602/555 +f 534/598/556 535/600/556 515/570/556 +f 534/598/557 526/589/557 535/600/557 +f 526/589/558 510/563/558 535/600/558 +f 532/596/559 533/597/559 514/568/559 +f 532/596/560 522/583/560 533/597/560 +f 522/583/561 509/562/561 533/597/561 +f 530/594/562 531/595/562 518/573/562 +f 530/594/563 523/584/563 531/595/563 +f 523/584/564 513/567/564 531/595/564 +f 524/585/565 529/593/565 513/567/565 +f 524/585/566 527/590/566 529/593/566 +f 527/590/567 512/566/567 529/593/567 +f 527/591/568 528/592/568 512/566/568 +f 527/591/569 525/587/569 528/592/569 +f 525/587/570 511/565/570 528/592/570 +f 525/588/571 526/589/571 511/565/571 +f 525/588/572 520/579/572 526/589/572 +f 520/579/573 510/563/573 526/589/573 +f 523/584/574 524/586/574 513/567/574 +f 523/584/575 521/581/575 524/586/575 +f 521/581/576 508/561/576 524/586/576 +f 520/580/577 522/583/577 510/564/577 +f 520/580/578 521/582/578 522/583/578 +f 521/582/579 509/562/579 522/583/579 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj.import new file mode 100644 index 0000000..57fc5ae --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj.import @@ -0,0 +1,21 @@ +[remap] + +importer="wavefront_obj" +importer_version=1 +type="Mesh" +uid="uid://bcv4ug57hcmnt" +path="res://.godot/imported/suzanne.obj-704183cd3df458b1ed0d0b4b00aeb9fc.mesh" + +[deps] + +files=["res://.godot/imported/suzanne.obj-704183cd3df458b1ed0d0b4b00aeb9fc.mesh"] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj" +dest_files=["res://.godot/imported/suzanne.obj-704183cd3df458b1ed0d0b4b00aeb9fc.mesh", "res://.godot/imported/suzanne.obj-704183cd3df458b1ed0d0b4b00aeb9fc.mesh"] + +[params] + +generate_tangents=true +scale_mesh=Vector3(1, 1, 1) +offset_mesh=Vector3(0, 0, 0) +optimize_mesh=true diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj new file mode 100644 index 0000000..0d706bd --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj @@ -0,0 +1,8107 @@ +# Blender 3.3.0 +# www.blender.org +o Suzanne +v 0.439019 0.159939 0.756944 +v -0.439019 0.159939 0.756944 +v 0.483073 0.112847 0.684896 +v -0.483073 0.112847 0.684896 +v 0.527344 0.072917 0.582031 +v -0.527344 0.072917 0.582031 +v 0.351563 0.002604 0.615885 +v -0.351563 0.002604 0.615885 +v 0.351780 0.059028 0.711155 +v -0.351780 0.059028 0.711155 +v 0.352648 0.125868 0.774306 +v -0.352648 0.125868 0.774306 +v 0.269314 0.159939 0.788846 +v -0.269314 0.159939 0.788846 +v 0.221137 0.112847 0.731988 +v -0.221137 0.112847 0.731988 +v 0.175781 0.072917 0.644531 +v -0.175781 0.072917 0.644531 +v 0.104167 0.243490 0.653646 +v -0.104167 0.243490 0.653646 +v 0.167101 0.242622 0.736545 +v -0.167101 0.242622 0.736545 +v 0.235243 0.243273 0.791667 +v -0.235243 0.243273 0.791667 +v 0.269314 0.329861 0.788846 +v -0.269314 0.329861 0.788846 +v 0.221137 0.373698 0.731988 +v -0.221137 0.373698 0.731988 +v 0.175781 0.417969 0.644531 +v -0.175781 0.417969 0.644531 +v 0.351563 0.489583 0.615885 +v -0.351563 0.489583 0.615885 +v 0.351780 0.427951 0.711155 +v -0.351780 0.427951 0.711155 +v 0.352648 0.365017 0.774306 +v -0.352648 0.365017 0.774306 +v 0.439019 0.329861 0.756944 +v -0.439019 0.329861 0.756945 +v 0.483073 0.373698 0.684896 +v -0.483073 0.373698 0.684896 +v 0.527344 0.417969 0.582031 +v -0.527344 0.417969 0.582031 +v 0.598958 0.243490 0.567708 +v -0.598958 0.243490 0.567708 +v 0.537326 0.242622 0.672743 +v -0.537326 0.242622 0.672743 +v 0.473524 0.243273 0.749132 +v -0.473524 0.243273 0.749132 +v 0.449797 0.243345 0.780237 +v -0.449797 0.243345 0.780237 +v 0.422815 0.314381 0.786820 +v -0.422815 0.314381 0.786820 +v 0.352720 0.344039 0.802879 +v -0.352720 0.344039 0.802879 +v 0.285012 0.314381 0.815104 +v -0.285012 0.314381 0.815104 +v 0.256510 0.243345 0.817419 +v -0.256510 0.243345 0.817419 +v 0.285012 0.175637 0.815104 +v -0.285012 0.175637 0.815104 +v 0.352264 0.243239 0.818309 +v -0.352264 0.243239 0.818309 +v 0.352720 0.147135 0.802879 +v -0.352720 0.147135 0.802879 +v 0.422815 0.175637 0.786820 +v -0.422815 0.175637 0.786820 +v 0.000000 0.434028 0.735243 +v 0.000000 0.353456 0.803030 +v 0.000000 -0.654080 0.736979 +v 0.000000 -0.301649 0.778646 +v -0.000000 -0.171441 0.789497 +v 0.000000 -0.762153 0.713108 +v 0.000000 0.448061 0.623264 +v 0.000000 0.566604 0.532907 +v 0.000000 0.839844 -0.474392 +v 0.000000 0.506076 -0.745660 +v 0.000000 0.100260 -0.753906 +v 0.000000 -0.342448 -0.289931 +v 0.235026 -0.174045 0.580946 +v -0.235026 -0.174045 0.580946 +v 0.281033 -0.444878 0.564236 +v -0.281033 -0.444879 0.564236 +v 0.315104 -0.654948 0.555773 +v -0.315104 -0.654948 0.555773 +v 0.329861 -0.832465 0.532552 +v -0.329861 -0.832465 0.532552 +v 0.293620 -0.924479 0.526693 +v -0.293620 -0.924479 0.526693 +v 0.168403 -0.957465 0.547092 +v -0.168403 -0.957465 0.547092 +v 0.000000 -0.970486 0.562066 +v 0.423177 -0.109375 0.550564 +v -0.423177 -0.109375 0.550564 +v 0.622179 -0.004123 0.522352 +v -0.622179 -0.004123 0.522352 +v 0.777127 0.173394 0.492188 +v -0.777127 0.173394 0.492188 +v 0.803603 0.382378 0.567925 +v -0.803603 0.382378 0.567925 +v 0.686415 0.478516 0.624132 +v -0.686415 0.478516 0.624132 +v 0.491753 0.588759 0.680339 +v -0.491754 0.588759 0.680339 +v 0.323134 0.697266 0.724175 +v -0.323134 0.697266 0.724175 +v 0.180122 0.662326 0.745009 +v -0.180122 0.662326 0.745009 +v 0.079644 0.501953 0.741754 +v -0.079644 0.501953 0.741754 +v 0.167535 0.406250 0.783203 +v -0.167535 0.406250 0.783203 +v 0.121962 0.311198 0.776476 +v -0.121962 0.311198 0.776476 +v 0.215929 0.065972 0.749349 +v -0.215929 0.065972 0.749349 +v 0.370009 0.030599 0.708333 +v -0.370009 0.030599 0.708333 +v 0.509115 0.079210 0.672960 +v -0.509115 0.079210 0.672960 +v 0.615885 0.190321 0.651910 +v -0.615885 0.190321 0.651910 +v 0.639540 0.300564 0.658420 +v -0.639540 0.300564 0.658420 +v 0.585938 0.378038 0.685981 +v -0.585938 0.378038 0.685981 +v 0.442491 0.445096 0.733941 +v -0.442491 0.445096 0.733941 +v 0.245443 0.474826 0.775174 +v -0.245443 0.474826 0.775174 +v 0.000000 -0.740885 0.732205 +v 0.113750 -0.745313 0.722500 +v -0.113750 -0.745313 0.722500 +v 0.123481 -0.835504 0.699436 +v -0.123481 -0.835503 0.699436 +v 0.073351 -0.882596 0.685330 +v -0.073351 -0.882596 0.685330 +v 0.000000 -0.894097 0.680990 +v 0.000000 -0.167411 0.765625 +v -0.000000 -0.131629 0.751421 +v 0.094401 -0.148003 0.756511 +v -0.094401 -0.148003 0.756510 +v 0.123481 -0.224175 0.751519 +v -0.123481 -0.224175 0.751519 +v 0.091250 -0.305000 0.744844 +v -0.091250 -0.305000 0.744844 +v 0.392361 -0.041884 0.665365 +v -0.392361 -0.041884 0.665365 +v 0.587240 0.050130 0.618490 +v -0.587240 0.050130 0.618490 +v 0.708333 0.196181 0.599392 +v -0.708333 0.196181 0.599392 +v 0.730469 0.349175 0.643446 +v -0.730469 0.349175 0.643446 +v 0.649740 0.430990 0.701172 +v -0.649740 0.430990 0.701172 +v 0.462457 0.533854 0.760851 +v -0.462457 0.533854 0.760851 +v 0.319010 0.613064 0.799913 +v -0.319010 0.613064 0.799913 +v 0.205729 0.584635 0.816840 +v -0.205729 0.584635 0.816840 +v 0.107639 0.452691 0.814019 +v -0.107639 0.452691 0.814019 +v 0.153291 -0.093868 0.756155 +v -0.153291 -0.093868 0.756155 +v 0.207465 -0.463976 0.690321 +v -0.207465 -0.463976 0.690321 +v 0.240234 -0.675998 0.675130 +v -0.240234 -0.675998 0.675130 +v 0.250217 -0.810981 0.652995 +v -0.250217 -0.810981 0.652995 +v 0.221354 -0.894748 0.632379 +v -0.221354 -0.894748 0.632378 +v 0.138238 -0.927083 0.631076 +v -0.138238 -0.927083 0.631076 +v 0.000000 -0.937934 0.635417 +v 0.000000 0.039299 0.745028 +v 0.000000 0.209635 0.764757 +v 0.330512 0.486545 0.759766 +v -0.330512 0.486545 0.759766 +v 0.145616 0.131076 0.753906 +v -0.145616 0.131076 0.753906 +v 0.120443 0.214627 0.763238 +v -0.120443 0.214627 0.763238 +v 0.113932 -0.657335 0.728733 +v -0.113932 -0.657335 0.728733 +v 0.092665 -0.461589 0.739583 +v -0.092665 -0.461589 0.739583 +v 0.000000 -0.463108 0.746094 +v 0.000000 -0.335070 0.750000 +v 0.081163 -0.271918 0.781250 +v -0.081163 -0.271918 0.781250 +v 0.117622 -0.219618 0.789280 +v -0.117622 -0.219618 0.789280 +v 0.097222 -0.152561 0.782335 +v -0.097222 -0.152561 0.782335 +v 0.040148 -0.142795 0.782335 +v -0.040148 -0.142795 0.782335 +v 0.000000 -0.201231 0.820313 +v 0.048828 -0.159180 0.808594 +v -0.048828 -0.159180 0.808594 +v 0.086589 -0.166341 0.808594 +v -0.086589 -0.166341 0.808594 +v 0.089410 -0.217014 0.816623 +v -0.089410 -0.217014 0.816623 +v 0.068685 -0.256510 0.804362 +v -0.068685 -0.256510 0.804362 +v 0.000000 -0.269965 0.804688 +v 0.242405 -0.316406 0.562066 +v -0.242405 -0.316406 0.562066 +v 0.164714 -0.232639 0.702474 +v -0.164714 -0.232639 0.702474 +v 0.180556 -0.319879 0.690972 +v -0.180556 -0.319879 0.690972 +v 0.217231 -0.242839 0.569878 +v -0.217231 -0.242839 0.569879 +v 0.000000 -0.872396 0.678819 +v 0.049262 -0.860894 0.682726 +v -0.049262 -0.860894 0.682726 +v 0.089410 -0.815538 0.699002 +v -0.089410 -0.815538 0.699002 +v 0.080512 -0.758898 0.713325 +v -0.080512 -0.758898 0.713325 +v 0.000000 -0.783854 0.664931 +v 0.072483 -0.777995 0.665509 +v -0.072483 -0.777995 0.665509 +v 0.083333 -0.808919 0.660699 +v -0.083333 -0.808919 0.660699 +v 0.051649 -0.835069 0.647931 +v -0.051649 -0.835069 0.647931 +v 0.000000 -0.845052 0.646267 +v 0.172743 0.221571 0.771484 +v -0.172743 0.221571 0.771484 +v 0.189887 0.158854 0.767578 +v -0.189887 0.158854 0.767578 +v 0.338542 0.427300 0.757595 +v -0.338542 0.427300 0.757596 +v 0.270833 0.419271 0.768012 +v -0.270833 0.419271 0.768012 +v 0.430990 0.400174 0.747179 +v -0.430990 0.400174 0.747179 +v 0.544488 0.350694 0.698134 +v -0.544488 0.350695 0.698134 +v 0.583984 0.284288 0.679036 +v -0.583984 0.284288 0.679036 +v 0.564887 0.195530 0.679905 +v -0.564887 0.195530 0.679905 +v 0.476997 0.107639 0.706597 +v -0.476997 0.107639 0.706597 +v 0.366971 0.073568 0.735243 +v -0.366971 0.073568 0.735243 +v 0.243707 0.108724 0.763672 +v -0.243707 0.108724 0.763672 +v 0.178168 0.298394 0.774523 +v -0.178168 0.298394 0.774523 +v 0.212023 0.373264 0.774740 +v -0.212023 0.373264 0.774740 +v 0.235677 0.355469 0.759115 +v -0.235677 0.355469 0.759115 +v 0.201823 0.295573 0.756510 +v -0.201823 0.295573 0.756510 +v 0.257813 0.126302 0.751302 +v -0.257813 0.126302 0.751302 +v 0.367188 0.097656 0.727865 +v -0.367188 0.097656 0.727865 +v 0.460938 0.127604 0.701823 +v -0.460938 0.127604 0.701823 +v 0.533854 0.207031 0.677083 +v -0.533854 0.207031 0.677083 +v 0.549479 0.278646 0.673177 +v -0.549479 0.278646 0.673177 +v 0.515625 0.335938 0.690104 +v -0.515625 0.335938 0.690104 +v 0.420573 0.384115 0.738281 +v -0.420573 0.384115 0.738281 +v 0.282552 0.393229 0.761719 +v -0.282552 0.393229 0.761719 +v 0.339844 0.402344 0.752604 +v -0.339844 0.402344 0.752604 +v 0.208333 0.173177 0.751302 +v -0.208333 0.173177 0.751302 +v 0.196615 0.229167 0.751302 +v -0.196615 0.229167 0.751302 +v 0.133854 0.502240 0.614531 +v -0.133854 0.502240 0.614531 +v 0.209635 0.635417 0.643229 +v -0.209635 0.635417 0.643229 +v 0.324219 0.661458 0.625977 +v -0.324219 0.661458 0.625977 +v 0.445625 0.554063 0.558906 +v -0.445625 0.554063 0.558906 +v 0.664279 0.466797 0.489149 +v -0.664280 0.466797 0.489149 +v 0.775825 0.378689 0.443576 +v -0.775825 0.378689 0.443576 +v 0.767795 0.181424 0.362196 +v -0.767795 0.181424 0.362196 +v 0.623915 0.000217 0.378255 +v -0.623915 0.000217 0.378255 +v 0.408958 -0.118125 0.440990 +v -0.408958 -0.118125 0.440990 +v 0.000000 0.842014 0.255208 +v 0.000000 0.939236 -0.087240 +v 0.000000 -0.168837 -0.601128 +v 0.000000 -0.428385 0.111545 +v 0.000000 -0.938802 0.455729 +v 0.000000 -0.780382 0.365451 +v 0.000000 -0.581597 0.326389 +v 0.000000 -0.473524 0.267795 +v 0.803385 0.224826 0.131727 +v -0.803385 0.224826 0.131727 +v 0.825469 0.292500 -0.050000 +v -0.825469 0.292500 -0.050000 +v 0.757500 0.290469 -0.409063 +v -0.757500 0.290469 -0.409063 +v 0.392361 0.442274 -0.654297 +v -0.392361 0.442274 -0.654297 +v 0.685938 -0.025000 0.074063 +v -0.685938 -0.025000 0.074063 +v 0.625313 -0.102500 -0.170000 +v -0.625313 -0.102500 -0.170000 +v 0.652561 0.011285 -0.391276 +v -0.652561 0.011285 -0.391276 +v 0.320457 0.085503 -0.660735 +v -0.320457 0.085503 -0.660735 +v 0.237196 -0.391493 0.409505 +v -0.237196 -0.391493 0.409505 +v 0.156250 -0.430556 0.286024 +v -0.156250 -0.430556 0.286024 +v 0.276042 -0.743056 0.410156 +v -0.276042 -0.743056 0.410156 +v 0.250000 -0.546875 0.412543 +v -0.250000 -0.546875 0.412543 +v 0.281901 -0.885417 0.433919 +v -0.281901 -0.885417 0.433919 +v 0.142795 -0.752387 0.376085 +v -0.142795 -0.752387 0.376085 +v 0.133464 -0.554036 0.347439 +v -0.133464 -0.554036 0.347439 +v 0.162109 -0.917752 0.443142 +v -0.162109 -0.917752 0.443142 +v 0.243854 -0.286406 0.396198 +v -0.243854 -0.286406 0.396198 +v 0.247251 -0.212457 0.473814 +v -0.247251 -0.212457 0.473814 +v 0.257921 -0.172201 0.502713 +v -0.257921 -0.172201 0.502713 +v 0.212448 -0.360469 0.150104 +v -0.212448 -0.360469 0.150104 +v 0.266059 -0.285373 -0.246745 +v -0.266059 -0.285373 -0.246745 +v 0.299624 -0.128472 -0.533131 +v -0.299624 -0.128472 -0.533131 +v 0.409071 0.785590 -0.413845 +v -0.409071 0.785590 -0.413846 +v 0.408854 0.885200 -0.096137 +v -0.408854 0.885200 -0.096137 +v 0.409505 0.794488 0.198351 +v -0.409505 0.794488 0.198351 +v 0.419054 0.572483 0.413411 +v -0.419054 0.572483 0.413411 +v 0.746962 0.410156 0.276042 +v -0.746962 0.410156 0.276042 +v 0.630208 0.499132 0.309028 +v -0.630208 0.499132 0.309028 +v 0.632813 0.672092 0.089844 +v -0.632813 0.672092 0.089844 +v 0.771918 0.526476 0.078993 +v -0.771918 0.526476 0.078993 +v 0.774523 0.571181 -0.146701 +v -0.774523 0.571181 -0.146701 +v 0.635417 0.737196 -0.161675 +v -0.635417 0.737196 -0.161675 +v 0.632378 0.640625 -0.404080 +v -0.632378 0.640625 -0.404080 +v 0.753906 0.521159 -0.342448 +v -0.753906 0.521159 -0.342448 +v 0.598307 0.342448 -0.548394 +v -0.598307 0.342448 -0.548394 +v 0.481823 0.019062 -0.510885 +v -0.481823 0.019063 -0.510885 +v 0.826719 0.356875 -0.206250 +v -0.826719 0.356875 -0.206250 +v 0.405260 -0.185469 0.161979 +v -0.405260 -0.185469 0.161979 +v 0.442491 -0.168403 -0.206163 +v -0.442491 -0.168403 -0.206163 +v 0.900174 0.391493 -0.267795 +v -0.900174 0.391493 -0.267795 +v 0.800130 -0.113715 -0.200304 +v -0.800130 -0.113715 -0.200304 +v 1.035156 -0.070313 -0.334852 +v -1.035156 -0.070313 -0.334852 +v 1.246094 0.076172 -0.425781 +v -1.246094 0.076172 -0.425781 +v 1.310547 0.298828 -0.434896 +v -1.310547 0.298828 -0.434896 +v 1.213108 0.454861 -0.419922 +v -1.213108 0.454861 -0.419922 +v 1.034722 0.453776 -0.340495 +v -1.034722 0.453776 -0.340495 +v 1.031033 0.407552 -0.309245 +v -1.031033 0.407552 -0.309245 +v 1.177300 0.407552 -0.389106 +v -1.177300 0.407552 -0.389106 +v 1.251736 0.277344 -0.413628 +v -1.251736 0.277344 -0.413628 +v 1.197266 0.092014 -0.400174 +v -1.197266 0.092014 -0.400174 +v 1.030382 -0.028212 -0.306207 +v -1.030382 -0.028212 -0.306207 +v 0.843316 -0.063151 -0.180773 +v -0.843316 -0.063151 -0.180773 +v 0.924696 0.355469 -0.242622 +v -0.924696 0.355469 -0.242622 +v 0.946398 0.307726 -0.294705 +v -0.946398 0.307726 -0.294705 +v 0.888455 -0.023872 -0.243056 +v -0.888455 -0.023872 -0.243056 +v 1.037543 0.005642 -0.352648 +v -1.037543 0.005642 -0.352648 +v 1.177300 0.101345 -0.432292 +v -1.177300 0.101345 -0.432292 +v 1.224392 0.246745 -0.444879 +v -1.224393 0.246745 -0.444878 +v 1.162760 0.347873 -0.425564 +v -1.162760 0.347873 -0.425564 +v 1.036458 0.348741 -0.358507 +v -1.036458 0.348741 -0.358507 +v 0.854167 0.287760 -0.217014 +v -0.854167 0.287760 -0.217014 +v 0.826389 0.173611 -0.269314 +v -0.826389 0.173611 -0.269314 +v 0.777778 0.098090 -0.269965 +v -0.777778 0.098090 -0.269965 +v 0.809896 0.069661 -0.281576 +v -0.809896 0.069661 -0.281576 +v 0.817491 0.024523 -0.268880 +v -0.817491 0.024523 -0.268880 +v 0.814236 -0.013021 -0.255208 +v -0.814236 -0.013021 -0.255208 +v 0.742043 0.040943 -0.081453 +v -0.742043 0.040943 -0.081453 +v 0.732865 -0.029271 -0.165833 +v -0.732865 -0.029271 -0.165833 +v 0.747865 0.054010 -0.193958 +v -0.747865 0.054010 -0.193958 +v 0.804905 0.199870 -0.196181 +v -0.804905 0.199870 -0.196181 +v 0.884115 0.247179 -0.269965 +v -0.884115 0.247179 -0.269965 +v 0.903646 0.224175 -0.319878 +v -0.903646 0.224175 -0.319878 +v 0.840169 -0.006185 -0.297526 +v -0.840169 -0.006185 -0.297526 +v 0.853299 0.027127 -0.312934 +v -0.853299 0.027127 -0.312934 +v 0.831814 0.078125 -0.313802 +v -0.831814 0.078125 -0.313802 +v 0.798177 0.107747 -0.308919 +v -0.798177 0.107747 -0.308919 +v 0.846354 0.160373 -0.314019 +v -0.846354 0.160373 -0.314019 +v 1.051722 0.318432 -0.401910 +v -1.051722 0.318432 -0.401910 +v 1.158059 0.317564 -0.453125 +v -1.158059 0.317564 -0.453125 +v 1.210938 0.231988 -0.465278 +v -1.210938 0.231988 -0.465278 +v 1.165148 0.112630 -0.452474 +v -1.165148 0.112630 -0.452474 +v 1.037326 0.030599 -0.390625 +v -1.037326 0.030599 -0.390625 +v 0.904080 -0.000868 -0.298177 +v -0.904080 -0.000868 -0.298177 +v 0.965929 0.279514 -0.346137 +v -0.965929 0.279514 -0.346137 +v 0.889974 0.115451 -0.330295 +v -0.889974 0.115451 -0.330295 +v 0.920790 0.060330 -0.330946 +v -0.920790 0.060330 -0.330946 +v 1.000000 0.113932 -0.369358 +v -1.000000 0.113932 -0.369358 +v 0.954210 0.174262 -0.349175 +v -0.954210 0.174262 -0.349175 +v 1.014106 0.231554 -0.371311 +v -1.014106 0.231554 -0.371311 +v 1.071398 0.175347 -0.395833 +v -1.071398 0.175347 -0.395833 +v 1.124674 0.223958 -0.413411 +v -1.124675 0.223958 -0.413411 +v 1.087529 0.274378 -0.404297 +v -1.087529 0.274378 -0.404297 +v 1.035807 0.355903 -0.450087 +v -1.035807 0.355903 -0.450087 +v 1.235388 0.379774 -0.507017 +v -1.235388 0.379774 -0.507017 +v 1.324436 0.286784 -0.494900 +v -1.324436 0.286784 -0.494900 +v 1.263166 0.131727 -0.503762 +v -1.263166 0.131727 -0.503762 +v 1.040148 0.012587 -0.445747 +v -1.040148 0.012587 -0.445747 +v 0.814019 -0.025825 -0.343967 +v -0.814019 -0.025825 -0.343967 +v 0.866103 0.299262 -0.375000 +v -0.866102 0.299262 -0.375000 +v 0.501356 0.242866 0.716797 +v 0.464654 0.197862 0.751248 +v 0.458035 0.139079 0.726617 +v 0.523058 0.172363 0.676053 +v -0.523058 0.172363 0.676053 +v -0.458035 0.139079 0.726617 +v -0.464654 0.197862 0.751248 +v -0.501356 0.242866 0.716797 +v 0.569770 0.242893 0.621853 +v 0.506185 0.091092 0.635417 +v 0.580241 0.150879 0.571452 +v -0.580241 0.150879 0.571452 +v -0.506185 0.091092 0.635417 +v -0.569770 0.242893 0.621853 +v 0.422716 0.073242 0.697456 +v 0.351590 0.028212 0.665880 +v 0.446777 0.021159 0.597982 +v -0.446777 0.021159 0.597982 +v -0.351590 0.028212 0.665880 +v -0.422716 0.073242 0.697456 +v 0.399251 0.134847 0.765137 +v 0.352214 0.096354 0.747694 +v -0.352214 0.096354 0.747694 +v -0.399251 0.134847 0.765137 +v 0.307237 0.134847 0.782796 +v 0.248318 0.139079 0.764811 +v 0.281087 0.073242 0.723362 +v -0.281087 0.073242 0.723362 +v -0.248318 0.139079 0.764811 +v -0.307237 0.134847 0.782796 +v 0.197076 0.091092 0.690620 +v 0.256348 0.021159 0.632161 +v -0.256348 0.021159 0.632161 +v -0.197076 0.091092 0.690620 +v 0.181342 0.172363 0.735813 +v 0.133518 0.242893 0.697211 +v 0.122884 0.150879 0.651530 +v -0.122884 0.150879 0.651530 +v -0.133518 0.242893 0.697211 +v -0.181342 0.172363 0.735813 +v 0.244222 0.197862 0.791314 +v 0.205566 0.242866 0.768175 +v -0.205566 0.242866 0.768175 +v -0.244222 0.197862 0.791314 +v 0.244222 0.289903 0.791314 +v 0.248318 0.348687 0.764811 +v 0.181342 0.313368 0.735813 +v -0.181342 0.313368 0.735813 +v -0.248318 0.348687 0.764811 +v -0.244222 0.289903 0.791314 +v 0.197076 0.396810 0.690620 +v 0.122884 0.337565 0.651530 +v -0.122884 0.337565 0.651530 +v -0.197076 0.396810 0.690620 +v 0.281087 0.413683 0.723362 +v 0.351590 0.460395 0.665880 +v 0.256348 0.470866 0.632161 +v -0.256348 0.470866 0.632161 +v -0.351590 0.460395 0.665880 +v -0.281087 0.413683 0.723362 +v 0.307237 0.355903 0.782796 +v 0.352214 0.392090 0.747694 +v -0.352214 0.392090 0.747694 +v -0.307237 0.355903 0.782796 +v 0.399251 0.355903 0.765137 +v 0.458035 0.348687 0.726617 +v 0.422716 0.413683 0.697456 +v -0.422716 0.413683 0.697456 +v -0.458035 0.348687 0.726617 +v -0.399251 0.355903 0.765137 +v 0.506185 0.396810 0.635417 +v 0.446777 0.470866 0.597982 +v -0.446777 0.470866 0.597982 +v -0.506185 0.396810 0.635417 +v 0.523058 0.313368 0.676053 +v 0.580241 0.337565 0.571452 +v -0.580241 0.337565 0.571452 +v -0.523058 0.313368 0.676053 +v 0.464654 0.289903 0.751248 +v -0.464654 0.289903 0.751248 +v 0.462095 0.243444 0.767343 +v 0.431460 0.322718 0.774514 +v 0.444182 0.281901 0.781404 +v -0.444182 0.281901 0.781404 +v -0.431460 0.322718 0.774513 +v -0.462095 0.243444 0.767343 +v 0.352819 0.355234 0.791386 +v 0.391158 0.337475 0.794090 +v -0.391159 0.337475 0.794090 +v -0.352819 0.355234 0.791386 +v 0.277299 0.322718 0.804986 +v 0.315430 0.337475 0.810068 +v -0.315430 0.337475 0.810068 +v -0.277299 0.322718 0.804986 +v 0.246040 0.243444 0.807581 +v 0.263003 0.281901 0.817057 +v -0.263003 0.281901 0.817057 +v -0.246040 0.243444 0.807581 +v 0.277299 0.167924 0.804986 +v 0.263003 0.206055 0.817057 +v -0.263003 0.206055 0.817057 +v -0.277299 0.167924 0.804986 +v 0.352819 0.136665 0.791386 +v 0.315430 0.153628 0.810068 +v -0.315430 0.153628 0.810068 +v -0.352819 0.136665 0.791386 +v 0.431460 0.167924 0.774514 +v 0.391159 0.153628 0.794090 +v -0.391159 0.153628 0.794090 +v -0.431460 0.167924 0.774514 +v 0.444182 0.206055 0.781404 +v -0.444182 0.206055 0.781404 +v 0.417707 0.243141 0.796767 +v 0.399450 0.197315 0.801297 +v -0.417707 0.243141 0.796767 +v -0.399450 0.197315 0.801297 +v 0.352476 0.178001 0.812292 +v -0.352476 0.178001 0.812292 +v 0.306668 0.197315 0.820566 +v -0.306668 0.197315 0.820566 +v 0.287354 0.243141 0.822320 +v -0.287354 0.243141 0.822320 +v 0.306668 0.290939 0.820566 +v -0.306668 0.290939 0.820566 +v 0.352476 0.311085 0.812292 +v -0.352476 0.311085 0.812292 +v 0.399450 0.290939 0.801297 +v -0.399450 0.290939 0.801297 +v 0.086480 -0.966580 0.557590 +v 0.159424 -0.946994 0.592584 +v 0.073432 -0.934788 0.633898 +v -0.000000 -0.958279 0.602810 +v -0.073432 -0.934787 0.633898 +v -0.159424 -0.946994 0.592584 +v -0.086480 -0.966580 0.557590 +v 0.240370 -0.945204 0.535102 +v 0.266032 -0.917833 0.582872 +v 0.187527 -0.915717 0.629612 +v -0.187527 -0.915717 0.629612 +v -0.266032 -0.917833 0.582872 +v -0.240370 -0.945204 0.535102 +v 0.321587 -0.888563 0.525960 +v 0.303467 -0.836779 0.597900 +v 0.241564 -0.858724 0.641141 +v -0.241564 -0.858724 0.641140 +v -0.303467 -0.836779 0.597901 +v -0.321588 -0.888563 0.525960 +v 0.326226 -0.753310 0.544244 +v 0.292074 -0.678087 0.623101 +v 0.249295 -0.753744 0.664551 +v -0.249295 -0.753744 0.664551 +v -0.292074 -0.678087 0.623101 +v -0.326226 -0.753310 0.544244 +v 0.299615 -0.545682 0.562364 +v 0.256863 -0.460775 0.634847 +v 0.224908 -0.571208 0.684353 +v -0.224908 -0.571208 0.684353 +v -0.256863 -0.460775 0.634847 +v -0.299615 -0.545682 0.562364 +v 0.208736 -0.149290 0.665062 +v 0.315186 -0.143338 0.568197 +v 0.409559 -0.082872 0.611464 +v 0.276213 -0.067246 0.707379 +v -0.276213 -0.067246 0.707379 +v -0.409559 -0.082872 0.611464 +v -0.315186 -0.143338 0.568197 +v -0.208736 -0.149291 0.665062 +v 0.526666 -0.064480 0.537923 +v 0.613091 0.019911 0.574246 +v 0.497450 -0.003364 0.637533 +v -0.497450 -0.003364 0.637533 +v -0.613091 0.019911 0.574246 +v -0.526666 -0.064480 0.537923 +v 0.710070 0.074870 0.498888 +v 0.752577 0.185357 0.549045 +v 0.659017 0.117703 0.602919 +v -0.659017 0.117703 0.602919 +v -0.752577 0.185357 0.549045 +v -0.710070 0.074870 0.498888 +v 0.809408 0.285780 0.523139 +v 0.776720 0.370741 0.613824 +v 0.731608 0.279107 0.615804 +v -0.731608 0.279107 0.615804 +v -0.776720 0.370741 0.613824 +v -0.809408 0.285780 0.523139 +v 0.760471 0.439155 0.599691 +v 0.674832 0.460368 0.674452 +v 0.705729 0.393907 0.671983 +v -0.705729 0.393907 0.671983 +v -0.674832 0.460368 0.674452 +v -0.760471 0.439155 0.599691 +v 0.591119 0.527941 0.651828 +v 0.478651 0.570991 0.733860 +v 0.559923 0.479492 0.732069 +v -0.559923 0.479492 0.732069 +v -0.478651 0.570991 0.733860 +v -0.591119 0.527941 0.651828 +v 0.403130 0.652452 0.704861 +v 0.319038 0.668674 0.776449 +v 0.383328 0.582330 0.783474 +v -0.383328 0.582330 0.783474 +v -0.319038 0.668674 0.776449 +v -0.403130 0.652452 0.704861 +v 0.247477 0.702176 0.737847 +v 0.187880 0.634874 0.795329 +v 0.260417 0.615533 0.810981 +v -0.260417 0.615533 0.810981 +v -0.187880 0.634874 0.795329 +v -0.247477 0.702176 0.737847 +v 0.125244 0.584012 0.745416 +v 0.086887 0.482124 0.791151 +v 0.154894 0.522244 0.817627 +v -0.154894 0.522244 0.817627 +v -0.086887 0.482123 0.791151 +v -0.125244 0.584012 0.745416 +v 0.038764 0.450494 0.737359 +v -0.000000 0.410198 0.782401 +v 0.061944 0.399104 0.807711 +v -0.061944 0.399104 0.807711 +v -0.038764 0.450494 0.737359 +v 0.136936 0.427192 0.803657 +v 0.204454 0.446072 0.780735 +v 0.226318 0.526476 0.801053 +v -0.226318 0.526476 0.801053 +v -0.204454 0.446072 0.780735 +v -0.136936 0.427192 0.803657 +v 0.286838 0.488336 0.768039 +v 0.323866 0.546143 0.784804 +v -0.323866 0.546143 0.784804 +v -0.286838 0.488336 0.768039 +v 0.380317 0.470947 0.749702 +v 0.450521 0.487603 0.751302 +v -0.450521 0.487603 0.751302 +v -0.380317 0.470947 0.749702 +v 0.518202 0.412950 0.710205 +v 0.617350 0.401910 0.697320 +v -0.617350 0.401910 0.697320 +v -0.518202 0.412950 0.710205 +v 0.624864 0.342150 0.669027 +v 0.681993 0.322917 0.653944 +v -0.681993 0.322917 0.653944 +v -0.624864 0.342150 0.669027 +v 0.637885 0.248861 0.652073 +v 0.659180 0.195285 0.631510 +v -0.659180 0.195285 0.631510 +v -0.637885 0.248861 0.652072 +v 0.569824 0.130859 0.659749 +v 0.547201 0.067925 0.649713 +v -0.547201 0.067925 0.649713 +v -0.569824 0.130859 0.659749 +v 0.443387 0.044000 0.688775 +v 0.378499 -0.002387 0.693685 +v -0.378499 -0.002387 0.693685 +v -0.443386 0.044000 0.688775 +v 0.288086 0.040880 0.731527 +v 0.186885 0.005590 0.755652 +v -0.186885 0.005590 0.755651 +v -0.288086 0.040880 0.731527 +v 0.170681 0.096408 0.754313 +v 0.089274 0.094936 0.748690 +v 0.080060 -0.023837 0.759618 +v -0.080060 -0.023837 0.759618 +v -0.089274 0.094936 0.748690 +v -0.170681 0.096408 0.754313 +v 0.139214 0.360189 0.781386 +v 0.072361 0.325644 0.790241 +v -0.072361 0.325644 0.790241 +v -0.139214 0.360189 0.781386 +v 0.116726 0.262017 0.770101 +v 0.000000 0.274511 0.782998 +v 0.066325 0.211236 0.763265 +v -0.066325 0.211236 0.763265 +v -0.116726 0.262017 0.770101 +v 0.000000 0.141309 0.750060 +v 0.129937 0.170654 0.757026 +v -0.129937 0.170654 0.757026 +v 0.105062 -0.903456 0.663574 +v 0.037977 -0.891520 0.682021 +v 0.000000 -0.914551 0.662598 +v -0.037977 -0.891520 0.682020 +v -0.105062 -0.903456 0.663574 +v 0.168593 -0.863254 0.672825 +v 0.103217 -0.865153 0.691162 +v -0.103217 -0.865153 0.691162 +v -0.168593 -0.863254 0.672824 +v 0.184592 -0.775513 0.694359 +v 0.129647 -0.792508 0.709889 +v -0.129647 -0.792508 0.709889 +v -0.184592 -0.775513 0.694359 +v 0.149333 -0.462864 0.723660 +v 0.103461 -0.565158 0.734809 +v 0.177572 -0.666178 0.709663 +v -0.177572 -0.666179 0.709663 +v -0.103461 -0.565158 0.734809 +v -0.149333 -0.462864 0.723660 +v 0.117386 -0.712159 0.724877 +v -0.117386 -0.712159 0.724877 +v 0.088290 -0.375465 0.740570 +v 0.043300 -0.327329 0.749467 +v 0.000000 -0.384928 0.746582 +v 0.043810 -0.462267 0.745280 +v -0.043810 -0.462267 0.745280 +v -0.043300 -0.327329 0.749467 +v -0.088290 -0.375465 0.740570 +v 0.055257 -0.654161 0.735948 +v -0.000000 -0.562500 0.742025 +v -0.055257 -0.654161 0.735948 +v 0.000000 -0.711480 0.734429 +v 0.054262 -0.736464 0.731414 +v -0.054262 -0.736464 0.731414 +v 0.115566 -0.260462 0.747582 +v 0.119005 -0.221490 0.769748 +v 0.106391 -0.248454 0.786160 +v 0.082254 -0.281105 0.763627 +v -0.082254 -0.281105 0.763627 +v -0.106391 -0.248454 0.786160 +v -0.119005 -0.221490 0.769748 +v -0.115566 -0.260462 0.747582 +v 0.117079 -0.184218 0.755398 +v 0.095242 -0.152805 0.765110 +v 0.114258 -0.183729 0.786784 +v -0.114258 -0.183729 0.786784 +v -0.095242 -0.152805 0.765110 +v -0.117079 -0.184218 0.755398 +v 0.054782 -0.126551 0.753359 +v 0.028795 -0.142542 0.764481 +v 0.069417 -0.138482 0.780545 +v -0.069417 -0.138482 0.780545 +v -0.028795 -0.142542 0.764481 +v -0.054782 -0.126551 0.753359 +v 0.000000 -0.160093 0.760589 +v 0.000000 -0.170247 0.772135 +v 0.017714 -0.160373 0.786811 +v -0.017714 -0.160373 0.786811 +v 0.000000 -0.312012 0.762370 +v 0.043837 -0.292399 0.778971 +v -0.043837 -0.292399 0.778971 +v 0.000000 -0.289225 0.792643 +v 0.076622 -0.263310 0.795454 +v 0.040992 -0.264544 0.804636 +v -0.040992 -0.264544 0.804636 +v -0.076622 -0.263310 0.795454 +v -0.000000 -0.177786 0.806707 +v 0.033856 -0.176123 0.814812 +v 0.045371 -0.148837 0.798524 +v -0.045371 -0.148837 0.798524 +v -0.033856 -0.176123 0.814812 +v 0.068127 -0.160174 0.809450 +v 0.094073 -0.157740 0.798524 +v -0.094073 -0.157740 0.798524 +v -0.068127 -0.160174 0.809450 +v 0.090722 -0.187960 0.814366 +v 0.109863 -0.218642 0.805718 +v -0.109863 -0.218642 0.805718 +v -0.090722 -0.187960 0.814366 +v 0.080556 -0.240619 0.811432 +v -0.080556 -0.240619 0.811432 +v 0.052775 -0.212738 0.820894 +v -0.052775 -0.212738 0.820894 +v 0.000000 -0.241940 0.815605 +v -0.000000 -0.067368 0.748360 +v 0.103999 -0.128335 0.761687 +v -0.103999 -0.128335 0.761687 +v 0.139052 -0.227512 0.734972 +v 0.153017 -0.179116 0.726314 +v -0.153017 -0.179116 0.726314 +v -0.139052 -0.227512 0.734972 +v 0.136833 -0.313467 0.725257 +v 0.173041 -0.275119 0.692247 +v -0.173041 -0.275119 0.692247 +v -0.136833 -0.313467 0.725257 +v 0.192057 -0.380208 0.691705 +v -0.192057 -0.380208 0.691705 +v 0.260742 -0.369575 0.563151 +v 0.219862 -0.321723 0.632216 +v -0.219862 -0.321723 0.632216 +v -0.260742 -0.369575 0.563151 +v 0.228841 -0.276937 0.563856 +v 0.195204 -0.239610 0.640490 +v -0.195204 -0.239610 0.640490 +v -0.228841 -0.276937 0.563856 +v 0.209852 -0.207872 0.578912 +v -0.209852 -0.207872 0.578912 +v 0.087736 -0.753012 0.724524 +v 0.000000 -0.755263 0.726563 +v 0.046197 -0.757514 0.713949 +v -0.046197 -0.757514 0.713949 +v -0.087736 -0.753012 0.724524 +v 0.098877 -0.821126 0.708008 +v 0.093994 -0.782254 0.707791 +v -0.093994 -0.782254 0.707791 +v -0.098877 -0.821126 0.708008 +v 0.055854 -0.869303 0.691515 +v 0.072510 -0.842855 0.689806 +v -0.072510 -0.842855 0.689806 +v -0.055854 -0.869303 0.691515 +v 0.000000 -0.880968 0.686578 +v 0.024712 -0.869982 0.679471 +v -0.024712 -0.869982 0.679471 +v 0.000000 -0.863119 0.660753 +v 0.047770 -0.852132 0.663402 +v 0.026964 -0.842340 0.646638 +v -0.026964 -0.842339 0.646638 +v -0.047770 -0.852132 0.663402 +v 0.085907 -0.811881 0.677369 +v 0.071639 -0.823545 0.651694 +v -0.071639 -0.823545 0.651694 +v -0.085907 -0.811881 0.677369 +v 0.077718 -0.764377 0.690421 +v 0.085473 -0.790654 0.661853 +v -0.085473 -0.790654 0.661853 +v -0.077718 -0.764377 0.690421 +v 0.000000 -0.768446 0.689833 +v 0.041287 -0.779704 0.665817 +v -0.041287 -0.779704 0.665817 +v 0.000000 -0.813965 0.648275 +v 0.061523 -0.805691 0.649333 +v -0.061523 -0.805691 0.649333 +v 0.153836 0.218099 0.768501 +v 0.175727 0.150011 0.762451 +v 0.178630 0.188178 0.769043 +v -0.178630 0.188178 0.769043 +v -0.175727 0.150011 0.762451 +v -0.153836 0.218099 0.768501 +v 0.156169 0.302762 0.773953 +v 0.172282 0.258843 0.773329 +v -0.172282 0.258843 0.773329 +v -0.156169 0.302762 0.773953 +v 0.192952 0.387967 0.775798 +v 0.191352 0.337864 0.775201 +v -0.191352 0.337864 0.775201 +v -0.192952 0.387967 0.775798 +v 0.233724 0.096056 0.755534 +v 0.208496 0.133057 0.767578 +v -0.208496 0.133057 0.767578 +v -0.233724 0.096056 0.755534 +v 0.367025 0.055501 0.723904 +v 0.301432 0.085775 0.751329 +v -0.301432 0.085775 0.751329 +v -0.367025 0.055501 0.723904 +v 0.487522 0.093180 0.693441 +v 0.424832 0.081245 0.720758 +v -0.424832 0.081245 0.720757 +v -0.487522 0.093180 0.693441 +v 0.585585 0.190809 0.668918 +v 0.526720 0.148248 0.691379 +v -0.526720 0.148248 0.691379 +v -0.585585 0.190809 0.668918 +v 0.607530 0.288927 0.669135 +v 0.582574 0.242106 0.676704 +v -0.582574 0.242106 0.676704 +v -0.607530 0.288927 0.669135 +v 0.562202 0.361599 0.689616 +v 0.573676 0.320096 0.684353 +v -0.573676 0.320095 0.684353 +v -0.562202 0.361599 0.689616 +v 0.436334 0.416694 0.736898 +v 0.491564 0.377550 0.723633 +v -0.491564 0.377550 0.723633 +v -0.436334 0.416694 0.736898 +v 0.335585 0.448703 0.753635 +v 0.379883 0.417399 0.755968 +v -0.379883 0.417399 0.755968 +v -0.335585 0.448703 0.753635 +v 0.260335 0.440375 0.766629 +v 0.303223 0.428087 0.761990 +v -0.303223 0.428087 0.761990 +v -0.260335 0.440375 0.766629 +v 0.239556 0.400825 0.772434 +v -0.239556 0.400825 0.772434 +v 0.277669 0.404785 0.766412 +v 0.225396 0.363064 0.768880 +v 0.258138 0.377767 0.761393 +v -0.258138 0.377767 0.761393 +v -0.225396 0.363064 0.768880 +v -0.277669 0.404785 0.766412 +v 0.339681 0.413276 0.757134 +v 0.309245 0.401204 0.757650 +v -0.309245 0.401204 0.757650 +v -0.339681 0.413276 0.757134 +v 0.425781 0.390517 0.746718 +v 0.376302 0.397135 0.748861 +v -0.376302 0.397135 0.748861 +v -0.425781 0.390517 0.746718 +v 0.529487 0.342665 0.697456 +v 0.471517 0.362467 0.714681 +v -0.471517 0.362467 0.714681 +v -0.529487 0.342665 0.697456 +v 0.565511 0.281304 0.679281 +v 0.540365 0.308268 0.677246 +v -0.540365 0.308268 0.677246 +v -0.565511 0.281304 0.679281 +v 0.548476 0.201199 0.681342 +v 0.548503 0.245280 0.672689 +v -0.548503 0.245280 0.672689 +v -0.548476 0.201199 0.681342 +v 0.468804 0.118761 0.707791 +v 0.502279 0.164876 0.687988 +v -0.502279 0.164876 0.687988 +v -0.468804 0.118761 0.707791 +v 0.367160 0.086833 0.735135 +v 0.416992 0.104329 0.714844 +v -0.416992 0.104329 0.714844 +v -0.367160 0.086833 0.735135 +v 0.251166 0.117757 0.761149 +v 0.309570 0.107096 0.741537 +v -0.309570 0.107096 0.741537 +v -0.251166 0.117757 0.761149 +v 0.199680 0.166016 0.762614 +v 0.225260 0.148763 0.753255 +v -0.225260 0.148763 0.753255 +v -0.199680 0.166016 0.762614 +v 0.192030 0.296414 0.768039 +v 0.215820 0.327474 0.757813 +v -0.215820 0.327474 0.757813 +v -0.192030 0.296414 0.768039 +v 0.185818 0.225288 0.764567 +v 0.196289 0.261882 0.753906 +v -0.196289 0.261882 0.753906 +v -0.185818 0.225288 0.764567 +v 0.200033 0.199707 0.750326 +v -0.200033 0.199707 0.750326 +v -0.000000 0.438386 0.675673 +v 0.090738 0.502255 0.679807 +v 0.048995 0.458757 0.623451 +v -0.048995 0.458757 0.623451 +v -0.090738 0.502255 0.679807 +v 0.188874 0.657249 0.685140 +v 0.185040 0.577115 0.630477 +v -0.185040 0.577115 0.630477 +v -0.188874 0.657249 0.685140 +v 0.327697 0.689205 0.664414 +v 0.266490 0.654885 0.628294 +v -0.266490 0.654885 0.628295 +v -0.327697 0.689205 0.664414 +v 0.490532 0.581079 0.618404 +v 0.369838 0.618360 0.602181 +v -0.369838 0.618360 0.602181 +v -0.490532 0.581079 0.618404 +v 0.681044 0.477051 0.562012 +v 0.574476 0.508257 0.518944 +v -0.574476 0.508257 0.518944 +v -0.681044 0.477051 0.562012 +v 0.798503 0.382243 0.511203 +v 0.732259 0.431369 0.469618 +v -0.732259 0.431369 0.469618 +v -0.798503 0.382243 0.511203 +v 0.774170 0.172282 0.437364 +v 0.789632 0.288764 0.399061 +v -0.789632 0.288764 0.399061 +v -0.774170 0.172282 0.437364 +v 0.619141 -0.005371 0.464627 +v 0.708143 0.082275 0.359158 +v -0.708143 0.082275 0.359158 +v -0.619141 -0.005371 0.464627 +v 0.426048 -0.111362 0.500414 +v 0.528040 -0.062711 0.403472 +v -0.528040 -0.062711 0.403472 +v -0.426048 -0.111362 0.500414 +v 0.067952 -0.573107 0.332275 +v 0.000000 -0.514703 0.301812 +v 0.085449 -0.460178 0.268446 +v 0.142660 -0.480496 0.320882 +v -0.142660 -0.480496 0.320882 +v -0.085449 -0.460178 0.268446 +v -0.067952 -0.573107 0.332275 +v 0.071072 -0.771674 0.369059 +v 0.000000 -0.676107 0.343316 +v 0.134630 -0.649143 0.361925 +v -0.134630 -0.649143 0.361925 +v -0.071072 -0.771674 0.369059 +v 0.081299 -0.932265 0.452203 +v 0.000000 -0.873101 0.404405 +v 0.152859 -0.847439 0.402696 +v -0.152859 -0.847439 0.402696 +v -0.081299 -0.932265 0.452203 +v 0.168267 -0.951687 0.494385 +v 0.000000 -0.968153 0.511014 +v -0.168267 -0.951687 0.494385 +v 0.297704 -0.910123 0.469745 +v 0.237021 -0.901212 0.433368 +v -0.237021 -0.901212 0.433368 +v -0.297704 -0.910123 0.469745 +v 0.318414 -0.788249 0.464030 +v 0.285877 -0.831089 0.417661 +v -0.285877 -0.831089 0.417661 +v -0.318414 -0.788249 0.464030 +v 0.296224 -0.598470 0.479438 +v 0.262044 -0.644152 0.410455 +v -0.262044 -0.644152 0.410455 +v -0.296224 -0.598470 0.479438 +v 0.213976 -0.735270 0.384901 +v 0.194417 -0.537028 0.370877 +v -0.194417 -0.537028 0.370877 +v -0.213976 -0.735270 0.384901 +v 0.202989 -0.401096 0.336941 +v 0.242540 -0.460558 0.411838 +v -0.242540 -0.460558 0.411838 +v -0.202989 -0.401096 0.336941 +v 0.268880 -0.413629 0.487440 +v -0.268880 -0.413629 0.487440 +v 0.241671 -0.302922 0.492069 +v 0.252513 -0.240557 0.441998 +v 0.224564 -0.235623 0.514251 +v -0.224564 -0.235623 0.514251 +v -0.252513 -0.240557 0.441998 +v -0.241671 -0.302922 0.492069 +v 0.232932 -0.340750 0.406656 +v -0.232932 -0.340750 0.406656 +v 0.246408 -0.177480 0.527377 +v 0.241118 -0.190473 0.493333 +v -0.241118 -0.190473 0.493333 +v -0.246408 -0.177480 0.527377 +v 0.313356 -0.148515 0.489019 +v -0.313357 -0.148515 0.489019 +v 0.000000 -0.051541 -0.694770 +v 0.174335 0.095486 -0.722729 +v 0.302626 -0.036296 -0.614149 +v 0.162941 -0.158746 -0.576353 +v -0.162941 -0.158746 -0.576353 +v -0.302626 -0.036296 -0.614149 +v -0.174334 0.095486 -0.722729 +v 0.000000 -0.266059 -0.467828 +v 0.287996 -0.213840 -0.409985 +v 0.142144 -0.327013 -0.275092 +v -0.142144 -0.327013 -0.275092 +v -0.287996 -0.213840 -0.409984 +v 0.000000 -0.395182 -0.076009 +v 0.238980 -0.332279 -0.052839 +v 0.108573 -0.411733 0.114971 +v -0.108573 -0.411733 0.114971 +v -0.238980 -0.332279 -0.052839 +v 0.000000 -0.449653 0.217339 +v 0.171163 -0.399404 0.242788 +v -0.171163 -0.399404 0.242788 +v 0.234653 -0.324261 0.283142 +v -0.234653 -0.324261 0.283142 +v 0.781359 0.198242 0.249240 +v 0.652072 -0.006337 0.244161 +v 0.768825 0.102902 0.099752 +v -0.768825 0.102902 0.099752 +v -0.652072 -0.006337 0.244161 +v -0.781359 0.198242 0.249240 +v 0.000000 0.295519 -0.778266 +v 0.213596 0.486708 -0.715034 +v 0.357169 0.250543 -0.681957 +v -0.357169 0.250543 -0.681957 +v -0.213596 0.486708 -0.715034 +v 0.000000 0.916016 0.094238 +v 0.221598 0.830051 0.240777 +v 0.408936 0.863770 0.058187 +v 0.221029 0.926297 -0.085422 +v -0.221029 0.926297 -0.085422 +v -0.408936 0.863770 0.058187 +v -0.221598 0.830051 0.240777 +v 0.000000 0.917698 -0.283095 +v 0.408881 0.865099 -0.256131 +v 0.221544 0.826715 -0.449897 +v -0.221544 0.826715 -0.449897 +v -0.408881 0.865099 -0.256131 +v 0.000000 0.696560 -0.637858 +v 0.407308 0.633952 -0.556858 +v -0.407308 0.633952 -0.556858 +v 0.644233 0.465468 0.404460 +v 0.754801 0.383274 0.364366 +v 0.694119 0.461317 0.298231 +v -0.694119 0.461317 0.298231 +v -0.754801 0.383274 0.364366 +v -0.644233 0.465468 0.404460 +v 0.628581 0.581950 0.204156 +v 0.757243 0.466200 0.181098 +v 0.709771 0.605387 0.085069 +v -0.709771 0.605387 0.085069 +v -0.757243 0.466200 0.181098 +v -0.628581 0.581950 0.204156 +v 0.635091 0.724501 -0.033393 +v 0.776801 0.563477 -0.030924 +v 0.715305 0.660617 -0.155735 +v -0.715305 0.660617 -0.155735 +v -0.776801 0.563477 -0.030924 +v -0.635091 0.724501 -0.033393 +v 0.635037 0.714220 -0.288981 +v 0.768467 0.551491 -0.260986 +v 0.709331 0.571782 -0.377374 +v -0.709331 0.571782 -0.377374 +v -0.768467 0.551491 -0.260986 +v -0.635037 0.714220 -0.288981 +v 0.760505 0.426538 -0.377108 +v 0.676744 0.304273 -0.487514 +v 0.623562 0.506673 -0.494548 +v -0.623562 0.506673 -0.494548 +v -0.676744 0.304273 -0.487514 +v -0.760505 0.426538 -0.377108 +v 0.512994 0.391059 -0.600044 +v 0.539361 0.717828 -0.406440 +v -0.539361 0.717828 -0.406440 +v -0.512994 0.391059 -0.600043 +v 0.540690 0.816569 -0.132324 +v -0.540690 0.816569 -0.132324 +v 0.540446 0.738010 0.136122 +v -0.540446 0.738010 0.136122 +v 0.411675 0.678684 0.317193 +v 0.545708 0.538249 0.351535 +v -0.545709 0.538249 0.351535 +v -0.411675 0.678684 0.317193 +v 0.433566 0.530826 0.489118 +v -0.433566 0.530826 0.489118 +v -0.000000 0.716542 0.395399 +v 0.235130 0.589742 0.473158 +v -0.235130 0.589742 0.473158 +v 0.282537 0.539374 0.575229 +v -0.282537 0.539374 0.575229 +v 0.108633 0.512475 0.575030 +v -0.108633 0.512475 0.575030 +v 0.000000 0.486417 0.590088 +v 0.789985 0.330349 0.205756 +v -0.789985 0.330349 0.205756 +v 0.817860 0.261058 0.041852 +v 0.813818 0.423303 0.028153 +v -0.813818 0.423303 0.028153 +v -0.817860 0.261058 0.041852 +v 0.828772 0.349030 -0.119958 +v 0.805806 0.457859 -0.169039 +v -0.805806 0.457859 -0.169039 +v -0.828772 0.349030 -0.119958 +v 0.806308 0.352328 -0.305045 +v -0.806308 0.352328 -0.305045 +v 0.307366 -0.276005 0.129492 +v 0.360541 -0.226644 -0.224094 +v 0.430293 -0.190620 -0.034945 +v -0.430293 -0.190620 -0.034945 +v -0.360541 -0.226644 -0.224094 +v -0.307366 -0.276005 0.129492 +v 0.637655 -0.084141 -0.054912 +v 0.550699 -0.107208 0.115755 +v 0.530138 -0.126753 -0.188287 +v -0.530138 -0.126753 -0.188287 +v -0.550699 -0.107208 0.115755 +v -0.637655 -0.084141 -0.054912 +v 0.424266 -0.138150 0.316964 +v -0.424266 -0.138150 0.316964 +v 0.312364 -0.171068 0.445935 +v 0.306987 -0.234928 0.298853 +v -0.306987 -0.234928 0.298853 +v -0.312364 -0.171068 0.445935 +v 0.701375 0.139193 -0.432962 +v 0.574620 0.025146 -0.443816 +v 0.549279 0.181247 -0.556103 +v -0.549279 0.181247 -0.556103 +v -0.574620 0.025146 -0.443816 +v -0.701375 0.139193 -0.432962 +v 0.417832 0.069567 -0.600803 +v -0.417832 0.069567 -0.600803 +v 0.622559 -0.072351 -0.294881 +v 0.461334 -0.100016 -0.365700 +v -0.461334 -0.100016 -0.365700 +v -0.622559 -0.072351 -0.294881 +v 0.394028 -0.075033 -0.510376 +v -0.394028 -0.075033 -0.510376 +v 1.032634 0.437256 -0.310710 +v 0.959147 0.425971 -0.298692 +v 0.912679 0.379015 -0.240560 +v 0.971517 0.384440 -0.270643 +v -0.971517 0.384440 -0.270643 +v -0.912679 0.379015 -0.240560 +v -0.959147 0.425971 -0.298692 +v -1.032634 0.437256 -0.310710 +v 1.125217 0.469537 -0.385579 +v 1.105143 0.420247 -0.352919 +v 1.195285 0.437880 -0.393609 +v -1.195285 0.437880 -0.393609 +v -1.105143 0.420247 -0.352919 +v -1.125217 0.469537 -0.385579 +v 1.278836 0.394504 -0.433024 +v 1.228923 0.357096 -0.407471 +v 1.281711 0.291748 -0.416124 +v -1.281711 0.291748 -0.416124 +v -1.228923 0.357096 -0.407471 +v -1.278836 0.394504 -0.433024 +v 1.300049 0.185547 -0.435710 +v 1.241184 0.182888 -0.413737 +v 1.221436 0.083523 -0.403537 +v -1.221436 0.083523 -0.403537 +v -1.241184 0.182888 -0.413737 +v -1.300049 0.185547 -0.435710 +v 1.152344 -0.010498 -0.392931 +v 1.123183 0.020671 -0.364176 +v 1.031630 -0.052355 -0.306695 +v -1.031630 -0.052355 -0.306695 +v -1.123183 0.020671 -0.364176 +v -1.152344 -0.010498 -0.392931 +v 0.913005 -0.103570 -0.258789 +v 0.932455 -0.055366 -0.234701 +v 0.817247 -0.092909 -0.172635 +v -0.817247 -0.092909 -0.172635 +v -0.932454 -0.055366 -0.234701 +v -0.913005 -0.103570 -0.258789 +v 1.032905 -0.007704 -0.325033 +v 0.958035 -0.015951 -0.289307 +v 0.869303 -0.039198 -0.208740 +v -0.869303 -0.039198 -0.208740 +v -0.958035 -0.015951 -0.289307 +v -1.032905 -0.007704 -0.325033 +v 1.182075 0.098389 -0.412164 +v 1.114746 0.044623 -0.402317 +v -1.114746 0.044623 -0.402317 +v -1.182075 0.098389 -0.412164 +v 1.231879 0.260824 -0.425184 +v 1.214762 0.172906 -0.444119 +v -1.214762 0.172906 -0.444119 +v -1.231879 0.260824 -0.425184 +v 1.166043 0.374702 -0.402615 +v 1.206109 0.308702 -0.440348 +v -1.206109 0.308702 -0.440348 +v -1.166043 0.374702 -0.402615 +v 1.032362 0.375298 -0.329074 +v 1.100586 0.358073 -0.395861 +v -1.100586 0.358073 -0.395861 +v -1.032362 0.375298 -0.329074 +v 0.936524 0.329481 -0.264431 +v 0.985650 0.331082 -0.322862 +v -0.985650 0.331082 -0.322862 +v -0.936524 0.329481 -0.264431 +v 0.733787 0.016047 -0.022830 +v 0.689592 -0.070129 -0.140469 +v 0.718188 -0.012106 -0.118053 +v -0.718188 -0.012106 -0.118053 +v -0.689592 -0.070129 -0.140469 +v -0.733787 0.016047 -0.022830 +v 0.706517 -0.107399 -0.185872 +v 0.775267 -0.054265 -0.167971 +v -0.775267 -0.054265 -0.167971 +v -0.706517 -0.107399 -0.185872 +v 0.786348 0.147524 -0.062690 +v -0.786348 0.147524 -0.062690 +v 0.856045 0.357476 -0.247761 +v 0.843119 0.314860 -0.200343 +v 0.885444 0.322591 -0.226888 +v -0.885444 0.322591 -0.226888 +v -0.843119 0.314860 -0.200343 +v -0.856045 0.357476 -0.247761 +v 0.839301 -0.022190 -0.239041 +v 0.781104 -0.017350 -0.214796 +v -0.781104 -0.017350 -0.214796 +v -0.839301 -0.022190 -0.239041 +v 0.811876 0.002414 -0.264730 +v 0.780430 0.031715 -0.235542 +v 0.738369 0.007248 -0.181629 +v -0.738369 0.007248 -0.181629 +v -0.780430 0.031715 -0.235542 +v -0.811876 0.002414 -0.264730 +v 0.790377 0.079754 -0.274723 +v 0.766075 0.082378 -0.238019 +v 0.816527 0.051298 -0.274587 +v -0.816527 0.051298 -0.274587 +v -0.766076 0.082378 -0.238019 +v -0.790377 0.079754 -0.274723 +v 0.794271 0.132107 -0.269070 +v 0.812799 0.181939 -0.237874 +v 0.771546 0.129289 -0.189643 +v -0.771546 0.129289 -0.189643 +v -0.812798 0.181939 -0.237874 +v -0.794271 0.132107 -0.269070 +v 0.869629 0.264621 -0.242025 +v 0.830431 0.250407 -0.206435 +v 0.856391 0.212267 -0.268582 +v -0.856391 0.212267 -0.268582 +v -0.830431 0.250407 -0.206434 +v -0.869629 0.264621 -0.242025 +v 0.913384 0.279324 -0.277615 +v -0.913384 0.279324 -0.277615 +v 0.812340 0.232860 -0.138324 +v -0.812340 0.232860 -0.138324 +v 0.740802 0.053018 -0.134472 +v -0.740803 0.053018 -0.134472 +v 0.953885 0.293620 -0.323269 +v 0.892415 0.236654 -0.296875 +v 0.932916 0.253391 -0.329346 +v -0.932916 0.253391 -0.329346 +v -0.892415 0.236654 -0.296875 +v -0.953885 0.293620 -0.323269 +v 0.835558 0.169189 -0.295085 +v 0.875977 0.193088 -0.315565 +v -0.875977 0.193088 -0.315565 +v -0.835558 0.169189 -0.295085 +v 0.786380 0.104518 -0.295009 +v 0.815189 0.128240 -0.312547 +v -0.815189 0.128240 -0.312547 +v -0.786380 0.104518 -0.295009 +v 0.818263 0.072932 -0.296981 +v 0.809519 0.095322 -0.312520 +v -0.809519 0.095322 -0.312520 +v -0.818263 0.072932 -0.296981 +v 0.837267 0.022569 -0.295383 +v 0.848823 0.053684 -0.314182 +v -0.848823 0.053684 -0.314182 +v -0.837267 0.022569 -0.295383 +v 0.829805 -0.010515 -0.284293 +v 0.845268 0.005531 -0.307812 +v -0.845268 0.005531 -0.307812 +v -0.829805 -0.010515 -0.284293 +v 0.897407 -0.014811 -0.273221 +v 0.859794 -0.006147 -0.292010 +v -0.859794 -0.006147 -0.292010 +v -0.897407 -0.014811 -0.273221 +v 1.042761 0.332420 -0.385579 +v 1.004648 0.301306 -0.371338 +v -1.004648 0.301306 -0.371338 +v -1.042761 0.332420 -0.385579 +v 1.164614 0.331715 -0.447239 +v 1.106825 0.327908 -0.432292 +v -1.106825 0.327908 -0.432292 +v -1.164614 0.331715 -0.447239 +v 1.224826 0.238064 -0.463867 +v 1.195050 0.283538 -0.462945 +v -1.195050 0.283538 -0.462945 +v -1.224826 0.238064 -0.463867 +v 1.178548 0.102431 -0.450928 +v 1.200819 0.171495 -0.462864 +v -1.200819 0.171495 -0.462864 +v -1.178548 0.102431 -0.450928 +v 1.041097 0.013319 -0.378065 +v 1.107341 0.064779 -0.429606 +v -1.107341 0.064779 -0.429606 +v -1.041097 0.013319 -0.378065 +v 0.966309 0.010064 -0.338053 +v -0.966309 0.010064 -0.338053 +v 0.857313 0.092556 -0.323676 +v 0.882406 0.040229 -0.321696 +v 0.910916 0.089355 -0.333632 +v -0.910916 0.089355 -0.333632 +v -0.882406 0.040229 -0.321696 +v -0.857314 0.092556 -0.323676 +v 0.922906 0.143636 -0.338840 +v 0.960802 0.085259 -0.348769 +v 0.978163 0.147352 -0.358371 +v -0.978163 0.147352 -0.358371 +v -0.960802 0.085259 -0.348769 +v -0.922906 0.143636 -0.338840 +v 0.983833 0.204536 -0.360080 +v 1.037245 0.145047 -0.385200 +v 1.038032 0.205160 -0.379096 +v -1.038032 0.205160 -0.379096 +v -1.037245 0.145047 -0.385200 +v -0.983833 0.204536 -0.360080 +v 1.047861 0.253671 -0.384060 +v 1.101570 0.202231 -0.403783 +v 1.107968 0.246240 -0.406292 +v -1.107967 0.246240 -0.406292 +v -1.101570 0.202231 -0.403783 +v -1.047861 0.253671 -0.384060 +v 1.065511 0.298584 -0.404378 +v 0.988227 0.257731 -0.361654 +v -0.988227 0.257731 -0.361654 +v -1.065511 0.298584 -0.404378 +v 0.926568 0.201660 -0.337050 +v -0.926568 0.201660 -0.337050 +v 0.865967 0.140923 -0.324680 +v -0.865967 0.140923 -0.324680 +v 0.915120 0.026964 -0.318386 +v -0.915121 0.026964 -0.318387 +v 1.021756 0.069336 -0.384060 +v -1.021756 0.069336 -0.384060 +v 1.121853 0.140489 -0.427327 +v -1.121853 0.140489 -0.427328 +v 1.167190 0.226116 -0.439428 +v -1.167190 0.226116 -0.439428 +v 1.130507 0.296902 -0.433729 +v -1.130507 0.296902 -0.433729 +v 1.038710 -0.063856 -0.391032 +v 0.799425 -0.103868 -0.269694 +v 0.919759 -0.018256 -0.386312 +v -0.919759 -0.018256 -0.386312 +v -0.799425 -0.103868 -0.269694 +v -1.038710 -0.063856 -0.391032 +v 1.261900 0.080187 -0.465314 +v 1.162914 0.063938 -0.486364 +v -1.162914 0.063938 -0.486364 +v -1.261900 0.080187 -0.465314 +v 1.325935 0.295174 -0.467527 +v 1.316929 0.212057 -0.502927 +v -1.316929 0.212057 -0.502927 +v -1.325935 0.295174 -0.467527 +v 1.225007 0.444173 -0.465477 +v 1.299432 0.344639 -0.505653 +v -1.299432 0.344639 -0.505654 +v -1.225007 0.444173 -0.465477 +v 1.035183 0.440077 -0.397163 +v 1.140345 0.378092 -0.487314 +v -1.140345 0.378092 -0.487314 +v -1.035184 0.440077 -0.397163 +v 0.885824 0.377848 -0.324490 +v 0.942329 0.328966 -0.405382 +v -0.942329 0.328966 -0.405382 +v -0.885824 0.377848 -0.324490 +v 1.038303 0.182780 -0.467936 +v 0.839410 0.136719 -0.382840 +v -0.839410 0.136719 -0.382840 +v -1.038303 0.182780 -0.467936 +v 1.249566 0.252577 -0.520861 +v -1.249566 0.252577 -0.520860 +v 0.807793 0.272250 -0.377447 +v -0.807793 0.272250 -0.377447 +v 0.728244 -0.011095 -0.350694 +v -0.728244 -0.011095 -0.350694 +v 0.490041 0.186537 0.719489 +v -0.490041 0.186537 0.719489 +v 0.553073 0.160645 0.625482 +v -0.553074 0.160645 0.625482 +v 0.435225 0.044820 0.649906 +v -0.435225 0.044820 0.649906 +v 0.409326 0.107615 0.736657 +v -0.409326 0.107615 0.736657 +v 0.295831 0.107615 0.757728 +v -0.295831 0.107615 0.757728 +v 0.267985 0.044820 0.680183 +v -0.267985 0.044820 0.680183 +v 0.150211 0.160645 0.695879 +v -0.150211 0.160645 0.695879 +v 0.216831 0.186537 0.767734 +v -0.216831 0.186537 0.767734 +v 0.216831 0.299957 0.767734 +v -0.216831 0.299957 0.767734 +v 0.150211 0.325935 0.695879 +v -0.150211 0.325935 0.695879 +v 0.267985 0.443698 0.680183 +v -0.267985 0.443699 0.680183 +v 0.295831 0.380744 0.757728 +v -0.295831 0.380744 0.757728 +v 0.409326 0.380744 0.736657 +v -0.409326 0.380744 0.736657 +v 0.435225 0.443698 0.649906 +v -0.435225 0.443699 0.649906 +v 0.553073 0.325935 0.625482 +v -0.553073 0.325935 0.625481 +v 0.490041 0.299957 0.719489 +v -0.490041 0.299957 0.719489 +v 0.454486 0.286075 0.769157 +v -0.454486 0.286075 0.769157 +v 0.395371 0.346926 0.782428 +v -0.395371 0.346926 0.782428 +v 0.311598 0.346926 0.799389 +v -0.311598 0.346926 0.799389 +v 0.254199 0.286075 0.807248 +v -0.254199 0.286075 0.807248 +v 0.254199 0.202223 0.807248 +v -0.254199 0.202223 0.807248 +v 0.311598 0.144824 0.799389 +v -0.311598 0.144824 0.799389 +v 0.395371 0.144824 0.782428 +v -0.395371 0.144824 0.782428 +v 0.454486 0.202223 0.769157 +v -0.454486 0.202223 0.769157 +v 0.422494 0.214486 0.793859 +v -0.422494 0.214486 0.793859 +v 0.381936 0.174040 0.803802 +v -0.381936 0.174040 0.803802 +v 0.323853 0.174040 0.816225 +v -0.323853 0.174040 0.816225 +v 0.283407 0.214486 0.821614 +v -0.283407 0.214486 0.821615 +v 0.283407 0.272710 0.821615 +v -0.283407 0.272710 0.821615 +v 0.323853 0.315489 0.816225 +v -0.323853 0.315489 0.816225 +v 0.381936 0.315489 0.803802 +v -0.381936 0.315489 0.803803 +v 0.422494 0.272710 0.793859 +v -0.422494 0.272710 0.793859 +v 0.083466 -0.954895 0.599620 +v -0.083466 -0.954895 0.599620 +v 0.221273 -0.936290 0.585592 +v -0.221273 -0.936290 0.585592 +v 0.292562 -0.885708 0.587538 +v -0.292562 -0.885708 0.587538 +v 0.302226 -0.768521 0.610938 +v -0.302226 -0.768521 0.610938 +v 0.276076 -0.567773 0.631304 +v -0.276076 -0.567773 0.631304 +v 0.295484 -0.115736 0.642072 +v -0.295484 -0.115736 0.642072 +v 0.517541 -0.038876 0.591207 +v -0.517541 -0.038876 0.591207 +v 0.694146 0.094872 0.554169 +v -0.694146 0.094872 0.554169 +v 0.780457 0.285516 0.574741 +v -0.780457 0.285516 0.574741 +v 0.741747 0.421882 0.646203 +v -0.741747 0.421882 0.646203 +v 0.579671 0.510939 0.704603 +v -0.579671 0.510939 0.704603 +v 0.392802 0.629445 0.758063 +v -0.392802 0.629446 0.758064 +v 0.250315 0.672221 0.789002 +v -0.250315 0.672221 0.789001 +v 0.134016 0.561011 0.795417 +v -0.134016 0.561011 0.795417 +v 0.043345 0.429640 0.785332 +v -0.043345 0.429640 0.785332 +v 0.180050 0.481635 0.804287 +v -0.180050 0.481635 0.804287 +v 0.273790 0.548140 0.794607 +v -0.273790 0.548140 0.794607 +v 0.380001 0.523933 0.770993 +v -0.380001 0.523933 0.770993 +v 0.538025 0.444197 0.725023 +v -0.538025 0.444197 0.725023 +v 0.663761 0.365262 0.673547 +v -0.663761 0.365261 0.673547 +v 0.681257 0.263994 0.638526 +v -0.681257 0.263994 0.638526 +v 0.612651 0.127323 0.636410 +v -0.612651 0.127323 0.636410 +v 0.469045 0.023512 0.667803 +v -0.469045 0.023512 0.667803 +v 0.278078 -0.008243 0.728331 +v -0.278078 -0.008243 0.728331 +v 0.126433 0.044161 0.756531 +v -0.126433 0.044161 0.756531 +v 0.099575 0.376184 0.798777 +v -0.099575 0.376184 0.798777 +v 0.064185 0.269098 0.777106 +v -0.064185 0.269098 0.777106 +v 0.073018 0.153129 0.751911 +v -0.073018 0.153129 0.751911 +v 0.055613 -0.911699 0.662659 +v -0.055613 -0.911699 0.662659 +v 0.143155 -0.889113 0.666501 +v -0.143155 -0.889113 0.666501 +v 0.181429 -0.822323 0.683162 +v -0.181429 -0.822323 0.683162 +v 0.163971 -0.568682 0.717679 +v -0.163971 -0.568682 0.717678 +v 0.184159 -0.730225 0.702409 +v -0.184159 -0.730225 0.702409 +v 0.042190 -0.381135 0.745845 +v -0.042190 -0.381135 0.745845 +v 0.049554 -0.563076 0.741123 +v -0.049554 -0.563076 0.741123 +v 0.056704 -0.709154 0.733286 +v -0.056704 -0.709154 0.733286 +v 0.107932 -0.253500 0.767214 +v -0.107932 -0.253500 0.767214 +v 0.114855 -0.184421 0.768273 +v -0.114855 -0.184421 0.768273 +v 0.062276 -0.138042 0.763376 +v -0.062276 -0.138042 0.763376 +v 0.010488 -0.160480 0.768974 +v -0.010488 -0.160480 0.768974 +v 0.043889 -0.302908 0.762474 +v -0.043889 -0.302908 0.762474 +v 0.041939 -0.280865 0.792963 +v -0.041939 -0.280865 0.792963 +v 0.022556 -0.165962 0.803512 +v -0.022556 -0.165962 0.803512 +v 0.071031 -0.144960 0.796838 +v -0.071031 -0.144960 0.796838 +v 0.107679 -0.186123 0.803347 +v -0.107679 -0.186123 0.803347 +v 0.099407 -0.243606 0.801515 +v -0.099407 -0.243606 0.801515 +v 0.061994 -0.183869 0.818119 +v -0.061994 -0.183869 0.818119 +v 0.045519 -0.241289 0.815105 +v -0.045519 -0.241289 0.815105 +v 0.057840 -0.086147 0.755838 +v -0.057840 -0.086147 0.755838 +v 0.128620 -0.179667 0.750233 +v -0.128620 -0.179667 0.750233 +v 0.139633 -0.268207 0.727148 +v -0.139633 -0.268207 0.727148 +v 0.139840 -0.376985 0.725219 +v -0.139840 -0.376985 0.725219 +v 0.237081 -0.379429 0.634213 +v -0.237081 -0.379428 0.634213 +v 0.207096 -0.278907 0.632599 +v -0.207096 -0.278907 0.632599 +v 0.185647 -0.194688 0.657297 +v -0.185647 -0.194688 0.657297 +v 0.049291 -0.750197 0.726772 +v -0.049291 -0.750197 0.726772 +v 0.103148 -0.782484 0.717433 +v -0.103148 -0.782484 0.717433 +v 0.081109 -0.850769 0.698744 +v -0.081109 -0.850769 0.698744 +v 0.028283 -0.878513 0.687642 +v -0.028283 -0.878513 0.687642 +v 0.024038 -0.860708 0.661125 +v -0.024038 -0.860708 0.661125 +v 0.069962 -0.835803 0.669020 +v -0.069962 -0.835803 0.669020 +v 0.090552 -0.783635 0.685093 +v -0.090552 -0.783635 0.685093 +v 0.044627 -0.764052 0.690842 +v -0.044627 -0.764052 0.690842 +v 0.034058 -0.810489 0.648895 +v -0.034058 -0.810489 0.648895 +v 0.075754 -0.805564 0.649704 +v -0.075754 -0.805564 0.649704 +v 0.162228 0.181695 0.765038 +v -0.162228 0.181695 0.765038 +v 0.151299 0.258894 0.771481 +v -0.151299 0.258894 0.771481 +v 0.169922 0.347449 0.775872 +v -0.169922 0.347449 0.775872 +v 0.196018 0.122494 0.761037 +v -0.196018 0.122494 0.761037 +v 0.295980 0.069970 0.741570 +v -0.295980 0.069970 0.741570 +v 0.430122 0.063751 0.708052 +v -0.430122 0.063751 0.708052 +v 0.542769 0.138343 0.679145 +v -0.542769 0.138343 0.679145 +v 0.605804 0.242401 0.666280 +v -0.605804 0.242401 0.666280 +v 0.595435 0.328142 0.675520 +v -0.595435 0.328142 0.675520 +v 0.503174 0.391232 0.713776 +v -0.503174 0.391232 0.713776 +v 0.380547 0.436727 0.748450 +v -0.380547 0.436727 0.748450 +v 0.296719 0.450124 0.759735 +v -0.296719 0.450124 0.759735 +v 0.224508 0.419461 0.772454 +v -0.224508 0.419461 0.772454 +v 0.250078 0.387851 0.768633 +v -0.250078 0.387851 0.768633 +v 0.306966 0.413171 0.761366 +v -0.306966 0.413171 0.761366 +v 0.378337 0.405589 0.755548 +v -0.378337 0.405589 0.755547 +v 0.481286 0.368808 0.723002 +v -0.481286 0.368808 0.723002 +v 0.556064 0.313897 0.683994 +v -0.556064 0.313897 0.683994 +v 0.564358 0.243479 0.677646 +v -0.564358 0.243479 0.677646 +v 0.514001 0.157060 0.692868 +v -0.514001 0.157060 0.692868 +v 0.420902 0.094181 0.721442 +v -0.420902 0.094181 0.721442 +v 0.305745 0.097168 0.750085 +v -0.305745 0.097168 0.750085 +v 0.217367 0.140940 0.763835 +v -0.217367 0.140940 0.763835 +v 0.205499 0.331702 0.768714 +v -0.205499 0.331702 0.768714 +v 0.185964 0.260098 0.766527 +v -0.185964 0.260098 0.766527 +v 0.190094 0.193932 0.762858 +v -0.190094 0.193932 0.762858 +v 0.043606 0.453352 0.677093 +v -0.043606 0.453352 0.677093 +v 0.137575 0.582376 0.684231 +v -0.137575 0.582376 0.684231 +v 0.254262 0.694391 0.677066 +v -0.254262 0.694391 0.677066 +v 0.404027 0.644248 0.644554 +v -0.404027 0.644248 0.644554 +v 0.588823 0.523528 0.588971 +v -0.588823 0.523528 0.588971 +v 0.754218 0.438955 0.540036 +v -0.754218 0.438955 0.540036 +v 0.805776 0.285197 0.468363 +v -0.805776 0.285197 0.468363 +v 0.706635 0.073476 0.441973 +v -0.706635 0.073476 0.441973 +v 0.526385 -0.065442 0.483498 +v -0.526385 -0.065442 0.483498 +v 0.075328 -0.504039 0.305132 +v -0.075328 -0.504039 0.305132 +v 0.067244 -0.667792 0.349264 +v -0.067244 -0.667792 0.349264 +v 0.076236 -0.865092 0.404232 +v -0.076236 -0.865092 0.404233 +v 0.085181 -0.963125 0.506168 +v -0.085181 -0.963125 0.506168 +v 0.244266 -0.936729 0.480406 +v -0.244266 -0.936729 0.480406 +v 0.319113 -0.860920 0.463197 +v -0.319113 -0.860920 0.463197 +v 0.308946 -0.697937 0.471083 +v -0.308946 -0.697937 0.471083 +v 0.201257 -0.632792 0.377797 +v -0.201257 -0.632792 0.377797 +v 0.227200 -0.830694 0.401816 +v -0.227200 -0.830694 0.401816 +v 0.196649 -0.458635 0.356177 +v -0.196649 -0.458635 0.356177 +v 0.282979 -0.499498 0.484751 +v -0.282979 -0.499498 0.484751 +v 0.233118 -0.266116 0.502304 +v -0.233118 -0.266116 0.502304 +v 0.253903 -0.350128 0.488991 +v -0.253903 -0.350127 0.488991 +v 0.219944 -0.206557 0.524375 +v -0.219944 -0.206557 0.524375 +v 0.322432 -0.147040 0.517925 +v -0.322432 -0.147040 0.517925 +v 0.165880 -0.047906 -0.666301 +v -0.165880 -0.047906 -0.666301 +v 0.155384 -0.252370 -0.447129 +v -0.155384 -0.252370 -0.447129 +v 0.125203 -0.378636 -0.068659 +v -0.125203 -0.378636 -0.068659 +v 0.095147 -0.434554 0.217911 +v -0.095147 -0.434554 0.217911 +v 0.210631 -0.362224 0.315757 +v -0.210631 -0.362224 0.315757 +v 0.735134 0.090335 0.232339 +v -0.735134 0.090335 0.232339 +v 0.194060 0.281515 -0.746737 +v -0.194060 0.281514 -0.746737 +v 0.221100 0.903198 0.086985 +v -0.221100 0.903198 0.086985 +v 0.221093 0.905528 -0.269185 +v -0.221093 0.905528 -0.269185 +v 0.221324 0.679193 -0.608568 +v -0.221324 0.679192 -0.608568 +v 0.707960 0.431959 0.389194 +v -0.707960 0.431959 0.389194 +v 0.698558 0.530250 0.196350 +v -0.698558 0.530250 0.196350 +v 0.714939 0.650316 -0.033369 +v -0.714939 0.650316 -0.033369 +v 0.713998 0.637622 -0.275835 +v -0.713998 0.637622 -0.275835 +v 0.701191 0.452734 -0.447765 +v -0.701191 0.452734 -0.447765 +v 0.534071 0.571838 -0.523393 +v -0.534071 0.571838 -0.523393 +v 0.540524 0.795315 -0.272485 +v -0.540524 0.795315 -0.272485 +v 0.540660 0.799425 0.006395 +v -0.540660 0.799425 0.006395 +v 0.540738 0.633409 0.250960 +v -0.540738 0.633409 0.250960 +v 0.558380 0.501942 0.440154 +v -0.558380 0.501942 0.440154 +v 0.223789 0.707947 0.371260 +v -0.223789 0.707947 0.371260 +v 0.279076 0.594031 0.600035 +v -0.279076 0.594031 0.600035 +v 0.264055 0.533733 0.535880 +v -0.264055 0.533733 0.535880 +v 0.043831 0.482234 0.594812 +v -0.043831 0.482234 0.594812 +v 0.783878 0.301693 0.305827 +v -0.783878 0.301693 0.305827 +v 0.803067 0.376510 0.115901 +v -0.803067 0.376510 0.115901 +v 0.813537 0.453482 -0.065614 +v -0.813537 0.453482 -0.065614 +v 0.792182 0.441368 -0.278844 +v -0.792182 0.441368 -0.278844 +v 0.335332 -0.263090 -0.042816 +v -0.335332 -0.263090 -0.042816 +v 0.539466 -0.131719 -0.039594 +v -0.539466 -0.131719 -0.039594 +v 0.542417 -0.078372 0.273223 +v -0.542417 -0.078372 0.273223 +v 0.320816 -0.194374 0.377783 +v -0.320816 -0.194374 0.377783 +v 0.280628 -0.279938 0.242705 +v -0.280628 -0.279938 0.242705 +v 0.286245 -0.166731 0.477754 +v -0.286245 -0.166731 0.477755 +v 0.627542 0.156363 -0.492076 +v -0.627542 0.156363 -0.492076 +v 0.468543 0.215902 -0.618937 +v -0.468543 0.215902 -0.618937 +v 0.541211 -0.073111 -0.331983 +v -0.541211 -0.073111 -0.331983 +v 0.383582 -0.156565 -0.385386 +v -0.383582 -0.156565 -0.385386 +v 0.380666 -0.019135 -0.579610 +v -0.380666 -0.019135 -0.579610 +v 0.965332 0.411116 -0.270264 +v -0.965332 0.411116 -0.270264 +v 1.114977 0.451860 -0.356411 +v -1.114977 0.451860 -0.356411 +v 1.254327 0.381304 -0.411092 +v -1.254327 0.381304 -0.411092 +v 1.270840 0.185703 -0.416484 +v -1.270840 0.185703 -0.416484 +v 1.137224 0.002981 -0.367038 +v -1.137224 0.002981 -0.367038 +v 0.920197 -0.083160 -0.230876 +v -0.920197 -0.083160 -0.230876 +v 0.946455 -0.031742 -0.258128 +v -0.946455 -0.031742 -0.258128 +v 1.115618 0.035506 -0.378893 +v -1.115618 0.035506 -0.378893 +v 1.221788 0.178141 -0.424981 +v -1.221788 0.178141 -0.424981 +v 1.212216 0.330539 -0.419515 +v -1.212216 0.330539 -0.419515 +v 1.100179 0.386047 -0.369537 +v -1.100179 0.386047 -0.369537 +v 0.978533 0.355309 -0.292145 +v -0.978533 0.355309 -0.292145 +v 0.693917 -0.044363 -0.083945 +v -0.693917 -0.044363 -0.083945 +v 0.736002 -0.086328 -0.155783 +v -0.736002 -0.086328 -0.155783 +v 0.786423 0.128939 0.006842 +v -0.786423 0.128939 0.006842 +v 0.871194 0.344740 -0.221652 +v -0.871194 0.344740 -0.221652 +v 0.812723 -0.033223 -0.201427 +v -0.812724 -0.033223 -0.201427 +v 0.775182 0.004718 -0.225624 +v -0.775182 0.004718 -0.225624 +v 0.786391 0.059641 -0.253464 +v -0.786391 0.059641 -0.253464 +v 0.780888 0.128708 -0.235181 +v -0.780888 0.128708 -0.235181 +v 0.842017 0.226902 -0.239614 +v -0.842017 0.226902 -0.239614 +v 0.900696 0.298872 -0.248793 +v -0.900696 0.298872 -0.248793 +v 0.829524 0.285890 -0.167210 +v -0.829525 0.285890 -0.167210 +v 0.776391 0.140687 -0.129827 +v -0.776391 0.140687 -0.129827 +v 0.726315 0.010103 -0.144003 +v -0.726315 0.010103 -0.144003 +v 0.921217 0.266846 -0.305545 +v -0.921217 0.266846 -0.305545 +v 0.865167 0.204173 -0.294576 +v -0.865167 0.204173 -0.294576 +v 0.803637 0.133104 -0.295256 +v -0.803637 0.133104 -0.295256 +v 0.796292 0.087965 -0.296048 +v -0.796292 0.087965 -0.296048 +v 0.833621 0.049341 -0.296281 +v -0.833621 0.049341 -0.296281 +v 0.830491 0.002020 -0.293275 +v -0.830491 0.002020 -0.293275 +v 0.851281 -0.015924 -0.269400 +v -0.851281 -0.015924 -0.269400 +v 0.992867 0.315682 -0.351240 +v -0.992867 0.315682 -0.351240 +v 1.104784 0.341302 -0.420414 +v -1.104784 0.341302 -0.420414 +v 1.206761 0.295466 -0.460324 +v -1.206761 0.295466 -0.460324 +v 1.215461 0.169271 -0.462250 +v -1.215461 0.169271 -0.462250 +v 1.116811 0.049503 -0.423876 +v -1.116811 0.049503 -0.423876 +v 0.964054 -0.006595 -0.317739 +v -0.964054 -0.006595 -0.317739 +v 0.876095 0.067440 -0.324995 +v -0.876095 0.067440 -0.324995 +v 0.945608 0.116869 -0.345351 +v -0.945608 0.116869 -0.345350 +v 1.008433 0.177975 -0.369771 +v -1.008433 0.177975 -0.369771 +v 1.069495 0.226727 -0.388269 +v -1.069495 0.226727 -0.388269 +v 1.024601 0.279867 -0.380605 +v -1.024601 0.279867 -0.380605 +v 0.956207 0.231191 -0.347409 +v -0.956207 0.231191 -0.347409 +v 0.897040 0.171058 -0.329664 +v -0.897041 0.171058 -0.329664 +v 0.834039 0.113681 -0.320677 +v -0.834039 0.113681 -0.320677 +v 0.872938 0.013695 -0.310290 +v -0.872938 0.013695 -0.310290 +v 0.966475 0.044935 -0.347510 +v -0.966475 0.044935 -0.347510 +v 1.075691 0.101729 -0.411055 +v -1.075691 0.101729 -0.411055 +v 1.154072 0.183041 -0.435866 +v -1.154072 0.183041 -0.435866 +v 1.156218 0.265839 -0.437955 +v -1.156218 0.265839 -0.437955 +v 1.102712 0.311813 -0.426885 +v -1.102712 0.311813 -0.426885 +v 0.913177 -0.096832 -0.321604 +v -0.913178 -0.096832 -0.321604 +v 1.162332 -0.004612 -0.440722 +v -1.162332 -0.004612 -0.440722 +v 1.317280 0.186125 -0.469587 +v -1.317280 0.186125 -0.469587 +v 1.293320 0.387019 -0.470767 +v -1.293320 0.387019 -0.470767 +v 1.132316 0.456662 -0.438396 +v -1.132316 0.456662 -0.438396 +v 0.951796 0.412666 -0.354672 +v -0.951796 0.412666 -0.354672 +v 0.930637 0.154439 -0.417382 +v -0.930637 0.154439 -0.417382 +v 1.152805 0.218970 -0.504459 +v -1.152805 0.218970 -0.504459 +v 1.300265 0.271792 -0.518747 +v -1.300265 0.271792 -0.518747 +v 0.837139 0.343399 -0.314129 +v -0.837139 0.343399 -0.314129 +v 0.767063 0.131054 -0.391162 +v -0.767063 0.131054 -0.391162 +v 0.705187 -0.089275 -0.267168 +v -0.705187 -0.089275 -0.267168 +vn 0.8035 -0.0013 0.5953 +vn 0.7575 -0.2569 0.6002 +vn 0.7236 -0.2425 0.6463 +vn 0.7684 -0.0008 0.6400 +vn 0.6159 -0.4966 0.6116 +vn 0.5895 -0.4598 0.6642 +vn 0.6226 -0.5110 0.5927 +vn 0.7664 -0.2694 0.5831 +vn 0.8143 -0.0010 0.5805 +vn -0.6226 -0.5110 0.5927 +vn -0.5895 -0.4598 0.6642 +vn -0.7236 -0.2425 0.6463 +vn -0.7664 -0.2694 0.5831 +vn -0.6159 -0.4966 0.6116 +vn -0.7575 -0.2569 0.6002 +vn -0.8035 -0.0013 0.5953 +vn -0.7684 -0.0008 0.6400 +vn -0.8143 -0.0010 0.5805 +vn 0.8124 -0.2988 0.5007 +vn 0.8642 -0.0013 0.5031 +vn 0.6548 -0.5685 0.4980 +vn 0.6767 -0.5727 0.4627 +vn 0.8306 -0.2988 0.4699 +vn 0.8804 -0.0001 0.4742 +vn -0.6767 -0.5727 0.4627 +vn -0.6548 -0.5685 0.4980 +vn -0.8124 -0.2988 0.5007 +vn -0.8306 -0.2988 0.4699 +vn -0.8642 -0.0013 0.5031 +vn -0.8804 -0.0001 0.4742 +vn 0.3959 -0.6874 0.6089 +vn 0.4043 -0.7678 0.4971 +vn 0.1101 -0.7677 0.6313 +vn 0.0878 -0.8575 0.5069 +vn 0.0982 -0.8843 0.4565 +vn 0.4245 -0.7835 0.4538 +vn -0.0982 -0.8843 0.4565 +vn -0.0878 -0.8575 0.5069 +vn -0.4043 -0.7678 0.4971 +vn -0.4245 -0.7835 0.4538 +vn -0.1101 -0.7677 0.6313 +vn -0.3959 -0.6874 0.6089 +vn 0.3955 -0.6713 0.6268 +vn 0.3832 -0.6136 0.6904 +vn 0.1221 -0.7533 0.6463 +vn 0.1296 -0.6828 0.7190 +vn -0.1296 -0.6828 0.7190 +vn -0.3832 -0.6136 0.6904 +vn -0.1221 -0.7533 0.6463 +vn -0.3955 -0.6713 0.6268 +vn -0.1836 -0.7220 0.6671 +vn -0.1488 -0.6518 0.7436 +vn -0.4677 -0.5583 0.6852 +vn -0.4053 -0.5023 0.7639 +vn -0.4699 -0.5598 0.6826 +vn -0.1969 -0.7282 0.6565 +vn 0.4699 -0.5598 0.6826 +vn 0.4053 -0.5023 0.7639 +vn 0.1488 -0.6518 0.7436 +vn 0.1969 -0.7282 0.6565 +vn 0.4677 -0.5583 0.6852 +vn 0.1836 -0.7220 0.6671 +vn -0.2470 -0.8112 0.5301 +vn -0.5405 -0.6252 0.5630 +vn -0.5590 -0.6503 0.5143 +vn -0.2523 -0.8413 0.4781 +vn 0.5590 -0.6503 0.5143 +vn 0.5405 -0.6252 0.5630 +vn 0.2470 -0.8112 0.5301 +vn 0.2523 -0.8413 0.4781 +vn -0.6492 -0.2967 0.7004 +vn -0.7357 -0.3344 0.5891 +vn -0.7077 -0.0011 0.7065 +vn -0.8000 -0.0014 0.6001 +vn -0.8305 0.0001 0.5571 +vn -0.7633 -0.3484 0.5440 +vn 0.8305 0.0001 0.5571 +vn 0.8000 -0.0014 0.6001 +vn 0.7357 -0.3344 0.5891 +vn 0.7633 -0.3484 0.5440 +vn 0.7077 -0.0011 0.7065 +vn 0.6492 -0.2967 0.7004 +vn -0.6598 -0.2960 0.6907 +vn -0.5750 -0.2641 0.7744 +vn -0.7248 -0.0016 0.6890 +vn -0.6302 -0.0009 0.7764 +vn 0.6302 -0.0009 0.7764 +vn 0.5750 -0.2641 0.7744 +vn 0.7248 -0.0016 0.6890 +vn 0.6598 -0.2960 0.6907 +vn -0.6714 0.2897 0.6821 +vn -0.5828 0.2612 0.7695 +vn -0.4921 0.5599 0.6666 +vn -0.4218 0.5061 0.7523 +vn -0.4739 0.5539 0.6846 +vn -0.6507 0.2916 0.7011 +vn 0.4739 0.5539 0.6846 +vn 0.4218 0.5061 0.7523 +vn 0.5828 0.2612 0.7695 +vn 0.6507 0.2916 0.7011 +vn 0.4921 0.5599 0.6666 +vn 0.6714 0.2897 0.6821 +vn -0.7327 0.3263 0.5972 +vn -0.5356 0.6101 0.5838 +vn -0.5473 0.6362 0.5438 +vn -0.7573 0.3433 0.5555 +vn 0.5473 0.6362 0.5438 +vn 0.5356 0.6101 0.5838 +vn 0.7327 0.3263 0.5972 +vn 0.7573 0.3433 0.5555 +vn -0.1990 0.7251 0.6592 +vn -0.2392 0.7924 0.5612 +vn 0.1110 0.7652 0.6341 +vn 0.0940 0.8361 0.5404 +vn 0.1058 0.8574 0.5036 +vn -0.2383 0.8189 0.5222 +vn -0.1058 0.8574 0.5036 +vn -0.0940 0.8361 0.5404 +vn 0.2392 0.7924 0.5612 +vn 0.2383 0.8189 0.5222 +vn -0.1110 0.7652 0.6341 +vn 0.1990 0.7251 0.6592 +vn -0.2045 0.7422 0.6383 +vn -0.1630 0.6688 0.7254 +vn 0.1157 0.7811 0.6136 +vn 0.1259 0.7045 0.6984 +vn -0.1259 0.7045 0.6984 +vn 0.1630 0.6688 0.7254 +vn -0.1157 0.7811 0.6136 +vn 0.2045 0.7422 0.6383 +vn 0.4045 0.6910 0.5991 +vn 0.3900 0.6292 0.6724 +vn 0.6314 0.4987 0.5938 +vn 0.6001 0.4629 0.6524 +vn 0.6261 0.5049 0.5942 +vn 0.3988 0.6835 0.6113 +vn -0.6261 0.5049 0.5942 +vn -0.6001 0.4629 0.6524 +vn -0.3900 0.6292 0.6724 +vn -0.3988 0.6835 0.6113 +vn -0.6314 0.4987 0.5938 +vn -0.4045 0.6910 0.5991 +vn 0.4064 0.7474 0.5256 +vn 0.6547 0.5526 0.5158 +vn 0.6725 0.5580 0.4863 +vn 0.4236 0.7601 0.4928 +vn -0.6725 0.5580 0.4863 +vn -0.6547 0.5526 0.5158 +vn -0.4064 0.7474 0.5256 +vn -0.4236 0.7601 0.4928 +vn 0.7677 0.2648 0.5836 +vn 0.8111 0.2910 0.5074 +vn 0.8273 0.2938 0.4788 +vn -0.8111 0.2910 0.5074 +vn -0.8273 0.2938 0.4788 +vn -0.7677 0.2648 0.5836 +vn 0.7652 0.2519 0.5924 +vn 0.7288 0.2398 0.6413 +vn -0.7288 0.2398 0.6413 +vn -0.7652 0.2519 0.5924 +vn 0.7652 0.2475 0.5943 +vn 0.8025 -0.0012 0.5967 +vn 0.6357 0.4998 0.5883 +vn 0.5167 0.3244 0.7923 +vn 0.6010 0.1604 0.7830 +vn 0.6233 -0.0013 0.7820 +vn -0.5167 0.3244 0.7923 +vn -0.6357 0.4998 0.5883 +vn -0.7652 0.2475 0.5943 +vn -0.6010 0.1604 0.7830 +vn -0.8025 -0.0012 0.5967 +vn -0.6233 -0.0013 0.7820 +vn 0.4082 0.7024 0.5831 +vn 0.1105 0.8020 0.5870 +vn 0.1630 0.5384 0.8267 +vn 0.3670 0.4690 0.8033 +vn -0.1630 0.5384 0.8267 +vn -0.1105 0.8020 0.5870 +vn -0.4082 0.7024 0.5831 +vn -0.3670 0.4690 0.8033 +vn -0.2197 0.7602 0.6115 +vn -0.5168 0.5744 0.6348 +vn -0.2915 0.3803 0.8777 +vn -0.0781 0.5138 0.8543 +vn 0.2915 0.3803 0.8777 +vn 0.5168 0.5744 0.6348 +vn 0.2197 0.7602 0.6115 +vn 0.0781 0.5138 0.8543 +vn -0.7072 0.3019 0.6393 +vn -0.7724 -0.0015 0.6352 +vn -0.4828 -0.0018 0.8757 +vn -0.4353 0.1982 0.8782 +vn 0.4828 -0.0018 0.8757 +vn 0.7724 -0.0015 0.6352 +vn 0.7072 0.3019 0.6393 +vn 0.4353 0.1982 0.8782 +vn -0.7014 -0.3119 0.6409 +vn -0.5026 -0.5846 0.6369 +vn -0.2894 -0.4006 0.8694 +vn -0.4365 -0.2107 0.8747 +vn 0.2894 -0.4006 0.8694 +vn 0.5026 -0.5846 0.6369 +vn 0.7014 -0.3119 0.6409 +vn 0.4365 -0.2107 0.8747 +vn -0.2098 -0.7597 0.6155 +vn 0.1125 -0.7973 0.5930 +vn 0.1599 -0.5603 0.8127 +vn -0.0801 -0.5340 0.8417 +vn -0.1599 -0.5603 0.8127 +vn -0.1125 -0.7973 0.5930 +vn 0.2098 -0.7597 0.6155 +vn 0.0801 -0.5340 0.8417 +vn 0.4023 -0.7004 0.5896 +vn 0.6247 -0.5074 0.5936 +vn 0.5141 -0.3431 0.7861 +vn 0.3654 -0.4888 0.7922 +vn -0.5141 -0.3431 0.7861 +vn -0.6247 -0.5074 0.5936 +vn -0.4023 -0.7004 0.5896 +vn -0.3654 -0.4888 0.7922 +vn 0.7606 -0.2557 0.5967 +vn 0.6016 -0.1709 0.7803 +vn -0.7606 -0.2557 0.5967 +vn -0.6016 -0.1709 0.7803 +vn 0.1931 -0.0015 0.9812 +vn 0.3423 -0.1196 0.9320 +vn 0.4081 -0.0753 0.9098 +vn 0.3860 -0.0006 0.9225 +vn -0.4081 -0.0753 0.9098 +vn -0.3860 -0.0006 0.9225 +vn -0.3423 -0.1196 0.9320 +vn -0.1931 -0.0015 0.9812 +vn 0.2960 -0.2052 0.9329 +vn 0.1999 -0.1878 0.9616 +vn -0.2960 -0.2052 0.9329 +vn -0.1999 -0.1878 0.9616 +vn 0.0196 -0.1215 0.9924 +vn 0.0825 -0.2136 0.9734 +vn -0.0825 -0.2136 0.9734 +vn -0.0196 -0.1215 0.9924 +vn -0.0521 -0.0004 0.9986 +vn -0.0797 -0.0697 0.9944 +vn 0.0797 -0.0696 0.9944 +vn 0.0521 -0.0004 0.9986 +vn 0.0203 0.1143 0.9932 +vn -0.0787 0.0641 0.9948 +vn 0.0787 0.0641 0.9948 +vn -0.0203 0.1143 0.9932 +vn 0.2005 0.1764 0.9637 +vn 0.0834 0.2020 0.9758 +vn -0.0834 0.2020 0.9758 +vn -0.2005 0.1764 0.9637 +vn 0.3419 0.1127 0.9329 +vn 0.2961 0.1940 0.9352 +vn -0.2961 0.1940 0.9352 +vn -0.3420 0.1127 0.9329 +vn 0.4074 0.0699 0.9106 +vn -0.4074 0.0699 0.9106 +vn 0.1547 -0.9849 0.0775 +vn 0.1708 -0.9014 0.3979 +vn 0.0946 -0.9113 0.4006 +vn 0.0889 -0.9907 0.1034 +vn 0.1631 -0.7744 0.6114 +vn 0.0869 -0.8024 0.5905 +vn -0.0000 -0.8100 0.5865 +vn -0.0000 -0.9138 0.4062 +vn -0.0000 -0.9931 0.1176 +vn -0.0869 -0.8024 0.5905 +vn -0.0946 -0.9113 0.4006 +vn -0.1631 -0.7744 0.6114 +vn -0.1708 -0.9014 0.3979 +vn -0.1547 -0.9849 0.0775 +vn -0.0889 -0.9907 0.1034 +vn 0.6233 -0.7772 0.0863 +vn 0.5078 -0.7001 0.5020 +vn 0.2925 -0.8525 0.4332 +vn 0.2914 -0.9540 0.0699 +vn 0.3988 -0.5441 0.7382 +vn 0.2670 -0.6973 0.6651 +vn -0.2670 -0.6973 0.6651 +vn -0.2925 -0.8525 0.4332 +vn -0.3988 -0.5441 0.7382 +vn -0.5078 -0.7001 0.5020 +vn -0.6233 -0.7772 0.0863 +vn -0.2914 -0.9540 0.0699 +vn 0.9907 -0.0659 0.1192 +vn 0.8093 -0.1806 0.5590 +vn 0.7180 -0.4195 0.5554 +vn 0.9178 -0.3818 0.1086 +vn 0.5585 -0.2108 0.8023 +vn 0.4987 -0.3591 0.7889 +vn -0.4987 -0.3591 0.7889 +vn -0.7180 -0.4195 0.5554 +vn -0.5585 -0.2108 0.8023 +vn -0.8093 -0.1806 0.5590 +vn -0.9907 -0.0659 0.1192 +vn -0.9178 -0.3818 0.1086 +vn 0.9867 0.1152 0.1147 +vn 0.8400 0.0486 0.5404 +vn 0.8374 -0.0352 0.5454 +vn 0.9917 0.0635 0.1117 +vn 0.6026 -0.0082 0.7980 +vn 0.5914 -0.0920 0.8011 +vn -0.5915 -0.0920 0.8011 +vn -0.8374 -0.0352 0.5454 +vn -0.6026 -0.0082 0.7980 +vn -0.8400 0.0486 0.5404 +vn -0.9867 0.1152 0.1147 +vn -0.9917 0.0635 0.1117 +vn 0.9680 0.2055 0.1440 +vn 0.8415 0.1616 0.5156 +vn 0.8389 0.1019 0.5346 +vn 0.9809 0.1493 0.1247 +vn 0.6307 0.0856 0.7713 +vn 0.6097 0.0403 0.7916 +vn -0.6097 0.0403 0.7916 +vn -0.8389 0.1019 0.5346 +vn -0.6307 0.0856 0.7713 +vn -0.8415 0.1616 0.5156 +vn -0.9680 0.2055 0.1440 +vn -0.9809 0.1493 0.1247 +vn 0.6050 -0.7431 0.2859 +vn 0.3667 -0.8918 0.2651 +vn 0.3868 -0.7592 0.5235 +vn 0.6162 -0.5796 0.5333 +vn 0.3779 -0.8914 0.2503 +vn 0.3812 -0.7537 0.5354 +vn 0.3795 -0.5644 0.7331 +vn 0.3816 -0.4921 0.7824 +vn 0.3170 -0.2083 0.9253 +vn -0.3795 -0.5644 0.7331 +vn -0.3812 -0.7537 0.5354 +vn -0.3868 -0.7592 0.5235 +vn -0.3816 -0.4921 0.7824 +vn -0.3779 -0.8914 0.2503 +vn -0.3667 -0.8918 0.2651 +vn -0.6050 -0.7431 0.2859 +vn -0.6162 -0.5796 0.5333 +vn -0.3170 -0.2083 0.9253 +vn 0.4825 -0.8437 0.2354 +vn 0.4582 -0.6985 0.5497 +vn 0.6172 -0.7570 0.2147 +vn 0.5783 -0.6068 0.5454 +vn 0.5049 -0.4603 0.7302 +vn 0.4249 -0.5417 0.7253 +vn -0.5049 -0.4603 0.7302 +vn -0.5783 -0.6068 0.5454 +vn -0.4582 -0.6985 0.5497 +vn -0.4249 -0.5417 0.7253 +vn -0.6172 -0.7570 0.2147 +vn -0.4825 -0.8437 0.2354 +vn 0.7560 -0.6275 0.1862 +vn 0.6849 -0.4987 0.5313 +vn 0.8883 -0.4262 0.1709 +vn 0.7432 -0.3952 0.5399 +vn 0.5918 -0.3291 0.7359 +vn 0.5737 -0.3793 0.7260 +vn -0.5918 -0.3291 0.7359 +vn -0.7432 -0.3952 0.5399 +vn -0.6849 -0.4987 0.5313 +vn -0.5737 -0.3793 0.7260 +vn -0.8883 -0.4262 0.1709 +vn -0.7560 -0.6275 0.1862 +vn 0.9701 -0.1578 0.1842 +vn 0.7653 -0.2840 0.5776 +vn 0.9431 0.2555 0.2128 +vn 0.7746 -0.0353 0.6315 +vn 0.5130 -0.2538 0.8200 +vn 0.5569 -0.3031 0.7733 +vn -0.5130 -0.2538 0.8200 +vn -0.7746 -0.0353 0.6315 +vn -0.7653 -0.2840 0.5776 +vn -0.5569 -0.3031 0.7733 +vn -0.9431 0.2555 0.2128 +vn -0.9701 -0.1578 0.1842 +vn 0.7060 0.6714 0.2253 +vn 0.6674 0.3231 0.6710 +vn 0.5090 0.8413 0.1818 +vn 0.5433 0.5353 0.6468 +vn 0.3714 0.0003 0.9285 +vn 0.4520 -0.1101 0.8852 +vn -0.3714 0.0003 0.9285 +vn -0.5433 0.5353 0.6468 +vn -0.6674 0.3231 0.6710 +vn -0.4520 -0.1101 0.8852 +vn -0.5090 0.8413 0.1818 +vn -0.7060 0.6714 0.2253 +vn 0.5165 0.8429 0.1508 +vn 0.5224 0.5892 0.6163 +vn 0.5722 0.8069 0.1463 +vn 0.5411 0.5660 0.6220 +vn 0.3232 0.0706 0.9437 +vn 0.3322 0.0550 0.9416 +vn -0.3232 0.0706 0.9437 +vn -0.5411 0.5660 0.6220 +vn -0.5224 0.5892 0.6163 +vn -0.3322 0.0550 0.9416 +vn -0.5722 0.8069 0.1463 +vn -0.5165 0.8429 0.1508 +vn 0.5561 0.8152 0.1619 +vn 0.5107 0.5688 0.6447 +vn 0.2984 0.9373 0.1800 +vn 0.3163 0.6479 0.6930 +vn 0.2535 0.1240 0.9594 +vn 0.3127 0.0870 0.9459 +vn -0.2535 0.1240 0.9594 +vn -0.3163 0.6479 0.6930 +vn -0.5107 0.5688 0.6447 +vn -0.3127 0.0870 0.9459 +vn -0.2983 0.9373 0.1800 +vn -0.5561 0.8152 0.1619 +vn -0.2067 0.9604 0.1870 +vn -0.0771 0.6733 0.7353 +vn -0.6563 0.7388 0.1531 +vn -0.4537 0.5352 0.7126 +vn -0.0491 0.0966 0.9941 +vn 0.1039 0.1391 0.9848 +vn 0.0491 0.0966 0.9941 +vn 0.4537 0.5352 0.7126 +vn 0.0771 0.6733 0.7353 +vn -0.1039 0.1391 0.9848 +vn 0.6563 0.7388 0.1531 +vn 0.2067 0.9604 0.1870 +vn -0.8380 0.5355 0.1052 +vn -0.6382 0.4086 0.6525 +vn -0.8197 0.5621 0.1105 +vn -0.6598 0.4196 0.6234 +vn -0.1587 0.0433 0.9864 +vn -0.1248 0.0561 0.9906 +vn 0.1587 0.0433 0.9864 +vn 0.6598 0.4196 0.6234 +vn 0.6382 0.4086 0.6525 +vn 0.1248 0.0561 0.9906 +vn 0.8197 0.5621 0.1105 +vn 0.8380 0.5355 0.1052 +vn -0.5933 0.7828 0.1877 +vn -0.4976 0.5452 0.6747 +vn -0.0000 0.9672 0.2539 +vn -0.0000 0.6400 0.7683 +vn -0.0000 -0.0443 0.9990 +vn -0.1289 0.0505 0.9904 +vn 0.4976 0.5452 0.6747 +vn 0.1289 0.0505 0.9904 +vn 0.5933 0.7828 0.1877 +vn 0.2804 -0.2166 0.9351 +vn 0.3032 -0.2294 0.9249 +vn 0.2895 -0.2441 0.9255 +vn 0.2605 -0.2463 0.9335 +vn 0.2764 -0.2470 0.9288 +vn 0.2634 -0.2497 0.9318 +vn -0.2634 -0.2497 0.9318 +vn -0.2895 -0.2441 0.9255 +vn -0.2764 -0.2470 0.9288 +vn -0.3032 -0.2294 0.9249 +vn -0.2804 -0.2166 0.9351 +vn -0.2605 -0.2463 0.9335 +vn 0.2060 -0.2672 0.9414 +vn 0.2065 -0.2649 0.9419 +vn 0.1299 -0.2630 0.9560 +vn 0.1474 -0.2820 0.9480 +vn -0.1474 -0.2820 0.9480 +vn -0.2065 -0.2649 0.9419 +vn -0.1299 -0.2630 0.9560 +vn -0.2060 -0.2672 0.9414 +vn 0.1743 -0.2092 0.9622 +vn 0.1107 -0.3212 0.9405 +vn 0.1114 -0.2967 0.9485 +vn 0.1203 -0.2244 0.9671 +vn -0.1114 -0.2967 0.9485 +vn -0.1107 -0.3212 0.9405 +vn -0.1743 -0.2092 0.9622 +vn -0.1203 -0.2244 0.9671 +vn 0.1678 -0.3127 0.9349 +vn 0.1362 -0.3764 0.9164 +vn 0.1151 -0.3637 0.9244 +vn 0.1893 -0.2724 0.9434 +vn -0.1151 -0.3637 0.9244 +vn -0.1362 -0.3764 0.9164 +vn -0.1678 -0.3127 0.9349 +vn -0.1893 -0.2724 0.9434 +vn 0.2803 -0.1719 0.9444 +vn 0.3021 -0.2814 0.9108 +vn 0.2085 -0.3405 0.9168 +vn 0.1918 -0.2551 0.9477 +vn -0.2085 -0.3405 0.9168 +vn -0.3021 -0.2814 0.9108 +vn -0.2803 -0.1719 0.9444 +vn -0.1918 -0.2551 0.9477 +vn 0.4458 -0.2062 0.8710 +vn 0.4687 -0.2509 0.8470 +vn 0.4019 -0.2415 0.8833 +vn 0.3805 -0.1588 0.9110 +vn -0.4019 -0.2415 0.8833 +vn -0.4687 -0.2509 0.8470 +vn -0.4458 -0.2062 0.8710 +vn -0.3805 -0.1588 0.9110 +vn 0.4398 -0.3701 0.8183 +vn 0.4396 -0.3626 0.8217 +vn 0.4744 -0.2939 0.8298 +vn 0.4639 -0.2835 0.8393 +vn -0.4744 -0.2939 0.8298 +vn -0.4396 -0.3626 0.8217 +vn -0.4398 -0.3701 0.8183 +vn -0.4639 -0.2835 0.8393 +vn 0.2782 -0.3740 0.8847 +vn 0.3418 -0.3644 0.8663 +vn 0.3872 -0.4155 0.8230 +vn 0.3664 -0.4229 0.8288 +vn -0.3872 -0.4155 0.8230 +vn -0.3418 -0.3644 0.8663 +vn -0.2782 -0.3740 0.8847 +vn -0.3664 -0.4229 0.8288 +vn 0.1083 -0.1293 0.9857 +vn 0.1744 -0.0597 0.9829 +vn 0.3134 -0.2118 0.9257 +vn 0.2110 -0.2489 0.9453 +vn -0.3134 -0.2118 0.9257 +vn -0.1744 -0.0597 0.9829 +vn -0.1083 -0.1293 0.9857 +vn -0.2110 -0.2489 0.9453 +vn -0.0411 -0.0565 0.9976 +vn -0.0175 0.0472 0.9987 +vn -0.1122 -0.0771 0.9907 +vn -0.0556 0.0047 0.9984 +vn -0.0000 0.0264 0.9997 +vn -0.0576 0.0335 0.9978 +vn 0.0556 0.0047 0.9984 +vn 0.0175 0.0472 0.9987 +vn 0.0576 0.0335 0.9978 +vn 0.1122 -0.0771 0.9907 +vn 0.0411 -0.0565 0.9976 +vn 0.1953 -0.2365 0.9518 +vn 0.2152 -0.1926 0.9574 +vn 0.1354 -0.2253 0.9648 +vn 0.1287 -0.1629 0.9782 +vn -0.1953 -0.2365 0.9518 +vn -0.1354 -0.2253 0.9648 +vn -0.2152 -0.1926 0.9574 +vn -0.1287 -0.1629 0.9782 +vn 0.0838 -0.2222 0.9714 +vn 0.0330 -0.1528 0.9877 +vn -0.0000 -0.2467 0.9691 +vn -0.0000 -0.2263 0.9741 +vn 0.0274 -0.2038 0.9786 +vn -0.0512 -0.1592 0.9859 +vn -0.0838 -0.2222 0.9714 +vn -0.0274 -0.2038 0.9786 +vn -0.0330 -0.1528 0.9877 +vn 0.0512 -0.1592 0.9859 +vn -0.0150 -0.1246 0.9921 +vn -0.0000 -0.1195 0.9928 +vn -0.0996 -0.1399 0.9851 +vn 0.0996 -0.1399 0.9851 +vn 0.0150 -0.1246 0.9921 +vn 0.0800 -0.5235 0.8483 +vn 0.0325 -0.5455 0.8375 +vn 0.0712 -0.7085 0.7021 +vn 0.1423 -0.6644 0.7338 +vn -0.0000 -0.5476 0.8367 +vn -0.0000 -0.7205 0.6934 +vn -0.0712 -0.7085 0.7021 +vn -0.0325 -0.5455 0.8375 +vn -0.0800 -0.5235 0.8483 +vn -0.1423 -0.6644 0.7338 +vn 0.2270 -0.3367 0.9138 +vn 0.1522 -0.4518 0.8790 +vn 0.2318 -0.5680 0.7898 +vn 0.3233 -0.4195 0.8482 +vn -0.2318 -0.5680 0.7898 +vn -0.1522 -0.4518 0.8790 +vn -0.2270 -0.3367 0.9138 +vn -0.3233 -0.4195 0.8482 +vn 0.2138 -0.1500 0.9653 +vn 0.2593 -0.2280 0.9385 +vn 0.3697 -0.2842 0.8846 +vn 0.3818 -0.1849 0.9055 +vn -0.3697 -0.2842 0.8846 +vn -0.2593 -0.2280 0.9385 +vn -0.2138 -0.1500 0.9653 +vn -0.3818 -0.1849 0.9055 +vn 0.3915 0.0195 0.9200 +vn 0.3819 -0.0084 0.9242 +vn 0.1941 -0.0120 0.9809 +vn 0.1951 -0.0344 0.9802 +vn 0.2044 -0.0503 0.9776 +vn 0.3858 -0.0400 0.9217 +vn -0.2044 -0.0503 0.9776 +vn -0.1951 -0.0344 0.9802 +vn -0.3819 -0.0084 0.9242 +vn -0.3858 -0.0400 0.9217 +vn -0.1941 -0.0120 0.9809 +vn -0.3915 0.0195 0.9200 +vn 0.3878 -0.1028 0.9160 +vn 0.2176 -0.0831 0.9725 +vn -0.3878 -0.1028 0.9160 +vn -0.2176 -0.0831 0.9725 +vn 0.3661 -0.2600 0.8935 +vn 0.1287 -0.2665 0.9552 +vn 0.0699 -0.0364 0.9969 +vn 0.2124 -0.0253 0.9768 +vn -0.0000 -0.2546 0.9670 +vn -0.0000 -0.0355 0.9994 +vn -0.0000 -0.0237 0.9997 +vn 0.0664 -0.0216 0.9976 +vn -0.0699 -0.0364 0.9969 +vn -0.0664 -0.0216 0.9976 +vn -0.1287 -0.2665 0.9552 +vn -0.3661 -0.2600 0.8935 +vn -0.2124 -0.0253 0.9768 +vn 0.0672 -0.0451 0.9967 +vn 0.0711 -0.0512 0.9962 +vn -0.0000 -0.0479 0.9989 +vn -0.0000 -0.0507 0.9987 +vn -0.0672 -0.0451 0.9967 +vn -0.0711 -0.0512 0.9962 +vn -0.0000 -0.2200 0.9755 +vn 0.0711 -0.1732 0.9823 +vn 0.0779 -0.0636 0.9949 +vn -0.0000 -0.0599 0.9982 +vn -0.0779 -0.0636 0.9949 +vn -0.0711 -0.1732 0.9823 +vn 0.8150 -0.1124 0.5685 +vn 0.9770 -0.1030 0.1865 +vn 0.7923 -0.4755 0.3823 +vn 0.6547 -0.2892 0.6984 +vn 0.9539 -0.1324 0.2694 +vn 0.7615 -0.5428 0.3543 +vn 0.4951 -0.7314 0.4689 +vn 0.5048 -0.6264 0.5940 +vn -0.4951 -0.7314 0.4689 +vn -0.7615 -0.5428 0.3543 +vn -0.7923 -0.4755 0.3823 +vn -0.5048 -0.6264 0.5940 +vn -0.9539 -0.1324 0.2694 +vn -0.9770 -0.1030 0.1865 +vn -0.8150 -0.1124 0.5685 +vn -0.6547 -0.2892 0.6984 +vn 0.2920 0.3299 0.8977 +vn 0.6895 0.7131 0.1267 +vn 0.9417 0.3225 0.0956 +vn 0.7388 0.1334 0.6605 +vn 0.6775 0.7241 0.1287 +vn 0.9311 0.3098 0.1926 +vn -0.9311 0.3098 0.1926 +vn -0.9417 0.3225 0.0956 +vn -0.6775 0.7241 0.1287 +vn -0.6895 0.7131 0.1267 +vn -0.2920 0.3299 0.8977 +vn -0.7388 0.1334 0.6605 +vn -0.0000 0.2762 0.9611 +vn -0.3029 0.7439 0.5957 +vn 0.1603 0.9174 0.3642 +vn -0.0651 0.2901 0.9548 +vn -0.3199 0.9026 0.2881 +vn 0.1854 0.9700 0.1571 +vn -0.1854 0.9700 0.1571 +vn -0.1603 0.9174 0.3642 +vn 0.3199 0.9026 0.2881 +vn 0.3029 0.7439 0.5957 +vn 0.0651 0.2901 0.9548 +vn -0.0000 0.7509 0.6604 +vn -0.0000 0.9306 0.3662 +vn -0.5394 0.6674 0.5134 +vn -0.0000 0.5499 0.8353 +vn -0.0000 0.9526 0.3042 +vn -0.5225 0.7921 0.3156 +vn 0.5225 0.7921 0.3156 +vn 0.5394 0.6674 0.5134 +vn 0.2493 -0.6578 0.7107 +vn -0.0000 -0.6613 0.7501 +vn 0.2777 -0.7801 0.5606 +vn -0.0000 -0.8048 0.5935 +vn -0.2493 -0.6578 0.7107 +vn -0.2777 -0.7801 0.5606 +vn 0.2053 -0.6682 0.7151 +vn -0.0000 -0.6694 0.7429 +vn 0.3632 -0.6629 0.6547 +vn 0.2095 -0.5400 0.8152 +vn 0.1148 -0.5011 0.8577 +vn -0.0000 -0.4783 0.8782 +vn -0.2095 -0.5400 0.8152 +vn -0.3632 -0.6629 0.6547 +vn -0.2053 -0.6682 0.7151 +vn -0.1148 -0.5011 0.8577 +vn -0.0000 0.7126 0.7016 +vn -0.3654 0.6957 0.6185 +vn -0.0000 0.1476 0.9890 +vn -0.1294 0.3885 0.9123 +vn -0.1192 0.5351 0.8363 +vn -0.2444 0.7781 0.5787 +vn 0.1192 0.5351 0.8363 +vn 0.1294 0.3885 0.9123 +vn 0.3654 0.6957 0.6185 +vn 0.2444 0.7781 0.5787 +vn 0.1615 0.8204 0.5486 +vn 0.0982 0.4994 0.8608 +vn 0.3285 0.4195 0.8462 +vn 0.5604 0.6124 0.5576 +vn -0.3285 0.4195 0.8462 +vn -0.0982 0.4994 0.8608 +vn -0.1615 0.8204 0.5486 +vn -0.5604 0.6124 0.5576 +vn 0.7407 0.2542 0.6219 +vn 0.3456 0.1885 0.9192 +vn 0.3065 -0.1133 0.9451 +vn 0.7218 -0.1403 0.6777 +vn -0.3065 -0.1133 0.9451 +vn -0.3456 0.1885 0.9192 +vn -0.7407 0.2542 0.6219 +vn -0.7218 -0.1403 0.6777 +vn 0.5598 -0.5032 0.6583 +vn 0.2440 -0.4010 0.8830 +vn -0.2440 -0.4010 0.8830 +vn -0.5598 -0.5032 0.6583 +vn 0.0480 -0.0437 0.9979 +vn 0.0660 0.2118 0.9751 +vn -0.0660 0.2118 0.9751 +vn -0.0480 -0.0437 0.9979 +vn -0.0000 -0.2707 0.9627 +vn 0.0555 -0.3042 0.9510 +vn -0.0555 -0.3042 0.9510 +vn -0.0870 -0.0004 0.9962 +vn -0.0000 0.0134 0.9999 +vn 0.0883 -0.0878 0.9922 +vn -0.0883 -0.0878 0.9922 +vn 0.0870 -0.0004 0.9962 +vn 0.4840 -0.1160 0.8673 +vn 0.6963 -0.1051 0.7100 +vn 0.8327 -0.0082 0.5537 +vn 0.7309 -0.1703 0.6609 +vn -0.8327 -0.0082 0.5537 +vn -0.6963 -0.1051 0.7100 +vn -0.4840 -0.1160 0.8673 +vn -0.7309 -0.1703 0.6609 +vn 0.6345 -0.1038 0.7659 +vn 0.5143 -0.0322 0.8570 +vn 0.7303 0.1227 0.6720 +vn 0.7974 0.0689 0.5994 +vn -0.7303 0.1227 0.6720 +vn -0.5143 -0.0322 0.8570 +vn -0.6345 -0.1038 0.7659 +vn -0.7974 0.0689 0.5994 +vn 0.4307 0.0284 0.9021 +vn 0.6706 0.1267 0.7309 +vn -0.4307 0.0284 0.9021 +vn -0.6706 0.1267 0.7309 +vn 0.9489 0.2705 0.1626 +vn 0.8484 0.2255 0.4789 +vn 0.9409 0.2880 0.1782 +vn 0.8671 0.2461 0.4331 +vn -0.8671 0.2461 0.4331 +vn -0.8484 0.2255 0.4789 +vn -0.9409 0.2880 0.1782 +vn -0.9489 0.2705 0.1626 +vn 0.9434 0.2657 0.1984 +vn 0.8956 0.2131 0.3904 +vn 0.9567 0.1921 0.2187 +vn 0.9223 0.1235 0.3662 +vn -0.9223 0.1235 0.3662 +vn -0.8956 0.2131 0.3904 +vn -0.9567 0.1921 0.2187 +vn -0.9434 0.2657 0.1984 +vn 0.8800 -0.1921 0.4344 +vn 0.9355 -0.2286 0.2695 +vn -0.8800 -0.1921 0.4344 +vn -0.9355 -0.2286 0.2695 +vn 0.0412 -0.6198 0.7837 +vn -0.0621 -0.4239 0.9036 +vn -0.0000 -0.6728 0.7398 +vn -0.0000 -0.9312 0.3646 +vn 0.0337 -0.9268 0.3740 +vn -0.3736 -0.8039 0.4627 +vn -0.0412 -0.6198 0.7837 +vn -0.0337 -0.9268 0.3740 +vn 0.0621 -0.4239 0.9036 +vn 0.3736 -0.8039 0.4627 +vn -0.2084 -0.2728 0.9392 +vn -0.2459 -0.1700 0.9543 +vn -0.8263 -0.3036 0.4744 +vn -0.8477 0.1505 0.5087 +vn 0.2084 -0.2728 0.9392 +vn 0.8263 -0.3036 0.4744 +vn 0.2459 -0.1700 0.9543 +vn 0.8477 0.1505 0.5087 +vn -0.2479 -0.1076 0.9628 +vn -0.2114 -0.0057 0.9774 +vn -0.6929 0.4401 0.5711 +vn -0.4604 0.6510 0.6035 +vn 0.2479 -0.1076 0.9628 +vn 0.6929 0.4401 0.5711 +vn 0.2114 -0.0057 0.9774 +vn 0.4604 0.6510 0.6035 +vn -0.1139 0.0957 0.9889 +vn -0.0000 0.1376 0.9905 +vn -0.2098 0.7622 0.6124 +vn -0.0000 0.7913 0.6114 +vn 0.1139 0.0957 0.9889 +vn 0.2098 0.7622 0.6124 +vn -0.1964 0.7718 0.6047 +vn -0.0000 0.7795 0.6264 +vn -0.4427 0.7322 0.5176 +vn -0.2886 0.3768 0.8802 +vn -0.1123 0.3328 0.9363 +vn -0.0000 0.3200 0.9474 +vn 0.2886 0.3768 0.8802 +vn 0.4427 0.7322 0.5176 +vn 0.1964 0.7718 0.6047 +vn 0.1123 0.3328 0.9363 +vn -0.7168 0.6035 0.3493 +vn -0.9314 0.2981 0.2087 +vn -0.8885 0.2578 0.3796 +vn -0.5804 0.3746 0.7230 +vn 0.8885 0.2578 0.3796 +vn 0.9314 0.2981 0.2087 +vn 0.7168 0.6035 0.3493 +vn 0.5804 0.3746 0.7230 +vn -0.9167 -0.2944 0.2703 +vn -0.4126 -0.8382 0.3566 +vn -0.2334 -0.7105 0.6638 +vn -0.7396 -0.3064 0.5992 +vn 0.2334 -0.7105 0.6638 +vn 0.4126 -0.8382 0.3566 +vn 0.9167 -0.2944 0.2703 +vn 0.7396 -0.3064 0.5992 +vn 0.0423 -0.9214 0.3864 +vn -0.0000 -0.9151 0.4033 +vn -0.0000 -0.6806 0.7326 +vn 0.0496 -0.7021 0.7104 +vn -0.0423 -0.9214 0.3864 +vn -0.0496 -0.7021 0.7104 +vn -0.0000 -0.2692 0.9631 +vn 0.0118 -0.2787 0.9603 +vn -0.0551 -0.2685 0.9617 +vn -0.0118 -0.2787 0.9603 +vn 0.0551 -0.2685 0.9617 +vn -0.4563 -0.1209 0.8816 +vn 0.4563 -0.1209 0.8816 +vn -0.1806 -0.1443 0.9729 +vn -0.1343 -0.1149 0.9843 +vn -0.2024 -0.1620 0.9658 +vn 0.0278 -0.0197 0.9994 +vn 0.1121 -0.0372 0.9930 +vn 0.1567 -0.0549 0.9861 +vn -0.0278 -0.0197 0.9994 +vn 0.2024 -0.1620 0.9658 +vn 0.1806 -0.1443 0.9729 +vn -0.1121 -0.0372 0.9930 +vn 0.1343 -0.1149 0.9843 +vn -0.1567 -0.0549 0.9861 +vn -0.0676 -0.0804 0.9945 +vn 0.0075 -0.0674 0.9977 +vn 0.1743 -0.0620 0.9827 +vn 0.1796 -0.0780 0.9806 +vn 0.0676 -0.0804 0.9945 +vn -0.1743 -0.0620 0.9827 +vn -0.0075 -0.0674 0.9977 +vn -0.1796 -0.0780 0.9806 +vn 0.0741 -0.0681 0.9949 +vn 0.1248 -0.0612 0.9903 +vn 0.1715 -0.0910 0.9810 +vn 0.1500 -0.0776 0.9856 +vn -0.0741 -0.0681 0.9949 +vn -0.1715 -0.0910 0.9810 +vn -0.1248 -0.0612 0.9903 +vn -0.1500 -0.0776 0.9856 +vn -0.1485 -0.2343 0.9607 +vn -0.0246 -0.3585 0.9332 +vn 0.0530 -0.2067 0.9770 +vn -0.0102 -0.0938 0.9955 +vn -0.0530 -0.2067 0.9770 +vn 0.0246 -0.3585 0.9332 +vn 0.1485 -0.2343 0.9607 +vn 0.0102 -0.0938 0.9955 +vn 0.0911 -0.4476 0.8896 +vn 0.2096 -0.4968 0.8422 +vn 0.2164 -0.2935 0.9311 +vn 0.1340 -0.2773 0.9514 +vn -0.2164 -0.2935 0.9311 +vn -0.2096 -0.4968 0.8422 +vn -0.0911 -0.4476 0.8896 +vn -0.1340 -0.2773 0.9514 +vn 0.3527 -0.4857 0.7998 +vn 0.4586 -0.3994 0.7938 +vn 0.3643 -0.1722 0.9152 +vn 0.3109 -0.2559 0.9153 +vn -0.3643 -0.1722 0.9152 +vn -0.4586 -0.3994 0.7938 +vn -0.3527 -0.4857 0.7998 +vn -0.3109 -0.2559 0.9153 +vn 0.4853 -0.2874 0.8257 +vn 0.4636 -0.1858 0.8664 +vn 0.3070 -0.0538 0.9502 +vn 0.3540 -0.0916 0.9308 +vn -0.3070 -0.0538 0.9502 +vn -0.4636 -0.1858 0.8664 +vn -0.4853 -0.2874 0.8257 +vn -0.3540 -0.0916 0.9308 +vn 0.4212 -0.1121 0.9000 +vn 0.3706 -0.0759 0.9257 +vn 0.2372 -0.0701 0.9689 +vn 0.2599 -0.0545 0.9641 +vn -0.2372 -0.0701 0.9689 +vn -0.3706 -0.0759 0.9257 +vn -0.4212 -0.1121 0.9000 +vn -0.2599 -0.0545 0.9641 +vn 0.3325 -0.0802 0.9397 +vn 0.3488 -0.0572 0.9354 +vn 0.3200 -0.1244 0.9392 +vn 0.2626 -0.1035 0.9593 +vn -0.3200 -0.1244 0.9392 +vn -0.3488 -0.0572 0.9354 +vn -0.3325 -0.0802 0.9397 +vn -0.2626 -0.1035 0.9593 +vn 0.3782 0.0661 0.9234 +vn 0.3270 0.1793 0.9279 +vn 0.3008 0.0841 0.9500 +vn 0.3645 -0.0523 0.9297 +vn -0.3008 0.0841 0.9500 +vn -0.3270 0.1793 0.9279 +vn -0.3782 0.0661 0.9234 +vn -0.3645 -0.0523 0.9297 +vn 0.2049 0.1440 0.9681 +vn 0.1467 0.0377 0.9885 +vn 0.1182 0.1135 0.9865 +vn 0.1639 0.1469 0.9755 +vn -0.1182 0.1135 0.9865 +vn -0.1467 0.0377 0.9885 +vn -0.2049 0.1440 0.9681 +vn -0.1639 0.1469 0.9755 +vn 0.1706 -0.0129 0.9852 +vn 0.1780 -0.0235 0.9838 +vn 0.1451 0.0410 0.9886 +vn 0.1497 0.0800 0.9855 +vn -0.1451 0.0410 0.9886 +vn -0.1780 -0.0235 0.9838 +vn -0.1706 -0.0129 0.9852 +vn -0.1497 0.0800 0.9855 +vn 0.1569 -0.0412 0.9868 +vn 0.1327 -0.0263 0.9908 +vn -0.1569 -0.0412 0.9868 +vn -0.1327 -0.0263 0.9908 +vn 0.2514 -0.2491 0.9353 +vn 0.2052 -0.1682 0.9642 +vn 0.3610 -0.2844 0.8882 +vn 0.4572 -0.3968 0.7959 +vn 0.3140 -0.3812 0.8695 +vn 0.2402 -0.3071 0.9209 +vn -0.4572 -0.3968 0.7959 +vn -0.3610 -0.2844 0.8882 +vn -0.2514 -0.2491 0.9353 +vn -0.3140 -0.3812 0.8695 +vn -0.2052 -0.1682 0.9642 +vn -0.2402 -0.3071 0.9209 +vn 0.1703 -0.1424 0.9751 +vn 0.0725 -0.2089 0.9753 +vn 0.1852 -0.2948 0.9374 +vn 0.0543 -0.4198 0.9060 +vn -0.1703 -0.1424 0.9751 +vn -0.1852 -0.2948 0.9374 +vn -0.0725 -0.2089 0.9753 +vn -0.0543 -0.4198 0.9060 +vn 0.0307 -0.3317 0.9429 +vn 0.0875 -0.4751 0.8756 +vn -0.0445 -0.6076 0.7930 +vn -0.0505 -0.7391 0.6717 +vn -0.0307 -0.3317 0.9429 +vn 0.0445 -0.6076 0.7930 +vn -0.0875 -0.4751 0.8756 +vn 0.0505 -0.7391 0.6717 +vn 0.1155 -0.5578 0.8219 +vn 0.0453 -0.5047 0.8621 +vn -0.0427 -0.7571 0.6519 +vn -0.1025 -0.6509 0.7523 +vn -0.1155 -0.5578 0.8219 +vn 0.0427 -0.7571 0.6519 +vn -0.0453 -0.5047 0.8621 +vn 0.1025 -0.6509 0.7523 +vn -0.0672 -0.3070 0.9493 +vn -0.1305 -0.1099 0.9853 +vn -0.2433 -0.3930 0.8867 +vn -0.3230 -0.1187 0.9389 +vn 0.0673 -0.3070 0.9493 +vn 0.2433 -0.3930 0.8867 +vn 0.1305 -0.1099 0.9853 +vn 0.3230 -0.1187 0.9389 +vn -0.0996 0.0376 0.9943 +vn -0.0221 0.1712 0.9850 +vn -0.2843 0.0889 0.9546 +vn -0.1896 0.2728 0.9432 +vn 0.0996 0.0376 0.9943 +vn 0.2843 0.0889 0.9546 +vn 0.0221 0.1712 0.9850 +vn 0.1896 0.2728 0.9432 +vn 0.0458 0.2525 0.9665 +vn 0.0960 0.2811 0.9549 +vn -0.1214 0.4045 0.9064 +vn -0.0692 0.4961 0.8655 +vn -0.0458 0.2524 0.9665 +vn 0.1214 0.4045 0.9064 +vn -0.0960 0.2811 0.9549 +vn 0.0692 0.4961 0.8655 +vn 0.1653 0.2777 0.9463 +vn 0.2387 0.2715 0.9324 +vn 0.0457 0.5515 0.8329 +vn 0.2024 0.5582 0.8046 +vn -0.1653 0.2777 0.9463 +vn -0.0457 0.5515 0.8329 +vn -0.2387 0.2715 0.9324 +vn -0.2024 0.5582 0.8046 +vn 0.2862 0.2859 0.9145 +vn 0.3075 0.3145 0.8981 +vn 0.3130 0.5501 0.7742 +vn 0.3838 0.5457 0.7449 +vn -0.2862 0.2859 0.9145 +vn -0.3130 0.5501 0.7742 +vn -0.3075 0.3145 0.8981 +vn -0.3838 0.5457 0.7449 +vn 0.3566 0.3279 0.8748 +vn 0.4829 0.2547 0.8378 +vn 0.4884 0.4865 0.7244 +vn 0.6391 0.3261 0.6966 +vn -0.3566 0.3279 0.8748 +vn -0.4884 0.4865 0.7244 +vn -0.4829 0.2547 0.8378 +vn -0.6391 0.3261 0.6966 +vn 0.4789 -0.2529 0.8407 +vn 0.5676 -0.1781 0.8038 +vn 0.7192 -0.2340 0.6542 +vn 0.6071 -0.3407 0.7179 +vn -0.7192 -0.2340 0.6542 +vn -0.5676 -0.1781 0.8038 +vn -0.4789 -0.2529 0.8407 +vn -0.6071 -0.3407 0.7179 +vn 0.6154 -0.0872 0.7834 +vn 0.6256 0.0003 0.7801 +vn 0.7735 0.0093 0.6338 +vn 0.7708 -0.1055 0.6283 +vn -0.7735 0.0093 0.6338 +vn -0.6256 0.0003 0.7801 +vn -0.6154 -0.0872 0.7834 +vn -0.7708 -0.1055 0.6283 +vn 0.5905 0.1131 0.7991 +vn 0.7394 0.1429 0.6580 +vn -0.5905 0.1131 0.7991 +vn -0.7394 0.1429 0.6580 +vn -0.5000 0.8657 -0.0249 +vn -0.0000 0.9963 0.0863 +vn -0.7257 0.6447 -0.2401 +vn -0.4802 0.8614 -0.1655 +vn -0.3460 0.8915 0.2924 +vn -0.0000 0.9037 0.4282 +vn 0.4802 0.8614 -0.1655 +vn 0.7257 0.6447 -0.2401 +vn 0.5000 0.8657 -0.0249 +vn 0.3460 0.8915 0.2924 +vn -0.7720 0.5154 -0.3719 +vn -0.6350 0.6713 -0.3823 +vn -0.4871 0.4926 -0.7212 +vn -0.5097 0.4303 -0.7450 +vn 0.4871 0.4926 -0.7212 +vn 0.6350 0.6713 -0.3823 +vn 0.7720 0.5154 -0.3719 +vn 0.5097 0.4303 -0.7450 +vn -0.2463 0.8929 -0.3768 +vn 0.2102 0.9052 -0.3695 +vn 0.0589 0.6528 -0.7552 +vn -0.2361 0.5783 -0.7809 +vn -0.0589 0.6528 -0.7552 +vn -0.2102 0.9052 -0.3695 +vn 0.2463 0.8929 -0.3768 +vn 0.2361 0.5783 -0.7809 +vn 0.4367 0.8190 -0.3721 +vn 0.4165 0.8526 -0.3156 +vn 0.1443 0.8727 -0.4665 +vn 0.1022 0.6001 -0.7934 +vn -0.1443 0.8727 -0.4665 +vn -0.4165 0.8526 -0.3156 +vn -0.4367 0.8190 -0.3721 +vn -0.1022 0.6001 -0.7934 +vn 0.3907 0.8962 -0.2104 +vn 0.4139 0.8985 -0.1461 +vn 0.3906 0.9038 -0.1751 +vn 0.3007 0.9204 -0.2498 +vn -0.3906 0.9038 -0.1751 +vn -0.4139 0.8985 -0.1461 +vn -0.3907 0.8962 -0.2104 +vn -0.3007 0.9204 -0.2498 +vn 0.5969 0.7874 -0.1541 +vn 0.8890 0.4217 -0.1784 +vn 0.8439 0.4889 -0.2210 +vn 0.5616 0.8020 -0.2036 +vn -0.8439 0.4889 -0.2210 +vn -0.8890 0.4217 -0.1784 +vn -0.5969 0.7874 -0.1541 +vn -0.5616 0.8020 -0.2036 +vn 0.9881 -0.0271 -0.1511 +vn 0.9134 -0.3968 -0.0909 +vn 0.9413 -0.3367 -0.0241 +vn 0.9894 0.0550 -0.1342 +vn -0.9413 -0.3367 -0.0241 +vn -0.9134 -0.3968 -0.0909 +vn -0.9881 -0.0271 -0.1511 +vn -0.9894 0.0550 -0.1342 +vn 0.7541 -0.6552 -0.0444 +vn 0.6054 -0.7957 -0.0192 +vn 0.6357 -0.7692 0.0656 +vn 0.7936 -0.6072 0.0392 +vn -0.6357 -0.7692 0.0656 +vn -0.6054 -0.7957 -0.0192 +vn -0.7541 -0.6552 -0.0444 +vn -0.7936 -0.6072 0.0392 +vn 0.4774 -0.8787 -0.0017 +vn 0.3718 -0.9280 0.0225 +vn 0.4415 -0.8886 0.1244 +vn 0.5072 -0.8583 0.0772 +vn -0.4415 -0.8886 0.1244 +vn -0.3718 -0.9280 0.0225 +vn -0.4774 -0.8787 -0.0017 +vn -0.5072 -0.8583 0.0772 +vn -0.0000 -0.2643 -0.9644 +vn -0.0000 -0.5021 -0.8648 +vn 0.2377 -0.5060 -0.8291 +vn 0.1926 -0.2631 -0.9453 +vn -0.0000 -0.7857 -0.6186 +vn 0.2944 -0.7672 -0.5698 +vn 0.6284 -0.6181 -0.4723 +vn 0.4963 -0.4353 -0.7511 +vn 0.3470 -0.2260 -0.9102 +vn -0.6284 -0.6181 -0.4723 +vn -0.2944 -0.7672 -0.5698 +vn -0.2377 -0.5060 -0.8291 +vn -0.4963 -0.4353 -0.7511 +vn -0.1926 -0.2631 -0.9453 +vn -0.3470 -0.2260 -0.9102 +vn -0.0000 -0.2890 -0.9573 +vn -0.0000 -0.1870 -0.9824 +vn 0.1531 -0.1695 -0.9736 +vn 0.1092 -0.2576 -0.9600 +vn 0.2325 -0.1211 -0.9650 +vn 0.1467 -0.1855 -0.9716 +vn -0.1531 -0.1695 -0.9736 +vn -0.2325 -0.1211 -0.9650 +vn -0.1092 -0.2576 -0.9601 +vn -0.1467 -0.1855 -0.9716 +vn -0.0000 -0.7609 -0.6488 +vn -0.0000 -0.4941 -0.8694 +vn 0.0649 -0.4595 -0.8858 +vn 0.0496 -0.7371 -0.6740 +vn 0.0762 -0.3784 -0.9225 +vn 0.0608 -0.6821 -0.7287 +vn -0.0649 -0.4595 -0.8858 +vn -0.0762 -0.3784 -0.9225 +vn -0.0496 -0.7371 -0.6740 +vn -0.0608 -0.6821 -0.7287 +vn 0.0686 -0.9546 -0.2900 +vn 0.1082 -0.9353 -0.3368 +vn -0.0000 -0.9635 -0.2677 +vn -0.0686 -0.9546 -0.2900 +vn -0.1082 -0.9353 -0.3368 +vn 0.2316 -0.8966 -0.3774 +vn 0.6110 -0.6766 -0.4110 +vn 0.1463 -0.6107 -0.7782 +vn 0.4377 -0.4731 -0.7646 +vn -0.2316 -0.8966 -0.3774 +vn -0.1463 -0.6107 -0.7782 +vn -0.6110 -0.6766 -0.4110 +vn -0.4377 -0.4731 -0.7646 +vn 0.8915 -0.2121 -0.4003 +vn 0.9282 0.0533 -0.3683 +vn 0.5538 -0.1552 -0.8181 +vn 0.6229 0.0304 -0.7817 +vn -0.8915 -0.2121 -0.4003 +vn -0.5538 -0.1552 -0.8181 +vn -0.9282 0.0533 -0.3683 +vn -0.6229 0.0304 -0.7817 +vn 0.9311 0.1261 -0.3422 +vn 0.9377 0.1355 -0.3199 +vn 0.6836 0.0826 -0.7251 +vn 0.7551 0.0592 -0.6529 +vn -0.9311 0.1261 -0.3422 +vn -0.6836 0.0826 -0.7251 +vn -0.9377 0.1355 -0.3199 +vn -0.7551 0.0592 -0.6529 +vn 0.2689 -0.0825 -0.9596 +vn 0.3807 -0.0301 -0.9242 +vn 0.5331 -0.1024 -0.8398 +vn -0.3807 -0.0301 -0.9242 +vn -0.5331 -0.1024 -0.8398 +vn -0.2689 -0.0825 -0.9596 +vn 0.1695 -0.2653 -0.9491 +vn -0.1695 -0.2653 -0.9491 +vn 0.9281 0.0178 -0.3719 +vn 0.8463 0.0229 -0.5322 +vn 0.7177 -0.2166 -0.6618 +vn 0.8595 -0.2937 -0.4183 +vn -0.7177 -0.2166 -0.6618 +vn -0.8463 0.0229 -0.5322 +vn -0.9281 0.0178 -0.3719 +vn -0.8595 -0.2937 -0.4183 +vn 0.9503 0.1400 -0.2782 +vn 0.9625 0.1779 -0.2049 +vn -0.9503 0.1400 -0.2782 +vn -0.9625 0.1779 -0.2049 +vn 0.9933 0.1126 0.0252 +vn 0.9797 0.0957 0.1763 +vn 0.9232 -0.3730 0.0921 +vn 0.8822 -0.3677 0.2940 +vn 0.8059 -0.3343 0.4886 +vn 0.9551 0.0714 0.2875 +vn -0.8059 -0.3343 0.4886 +vn -0.8822 -0.3677 0.2940 +vn -0.9797 0.0957 0.1763 +vn -0.9551 0.0714 0.2875 +vn -0.9232 -0.3730 0.0921 +vn -0.9933 0.1126 0.0252 +vn 0.9779 0.1805 -0.1057 +vn 0.9804 -0.0901 -0.1750 +vn -0.9804 -0.0901 -0.1750 +vn -0.9779 0.1805 -0.1057 +vn 0.9210 -0.2834 0.2673 +vn 0.5870 -0.8005 0.1205 +vn 0.7439 -0.5114 0.4303 +vn 0.5124 -0.8417 0.1705 +vn -0.9210 -0.2834 0.2673 +vn -0.7439 -0.5114 0.4303 +vn -0.5870 -0.8005 0.1205 +vn -0.5124 -0.8417 0.1705 +vn 0.3445 -0.9379 0.0414 +vn 0.4025 -0.8981 0.1770 +vn -0.4025 -0.8981 0.1770 +vn -0.3445 -0.9379 0.0414 +vn -0.0000 -0.2479 -0.9688 +vn 0.2551 -0.2597 -0.9314 +vn 0.2511 -0.4973 -0.8304 +vn -0.0000 -0.4986 -0.8668 +vn 0.3984 -0.2872 -0.8711 +vn 0.4002 -0.5020 -0.7667 +vn 0.4289 -0.6941 -0.5782 +vn 0.2495 -0.7124 -0.6560 +vn -0.0000 -0.7221 -0.6918 +vn -0.4289 -0.6941 -0.5782 +vn -0.4002 -0.5020 -0.7667 +vn -0.2511 -0.4973 -0.8304 +vn -0.2495 -0.7124 -0.6560 +vn -0.3984 -0.2872 -0.8711 +vn -0.2551 -0.2597 -0.9314 +vn 0.2496 -0.8497 -0.4645 +vn -0.0000 -0.8683 -0.4960 +vn 0.4522 -0.8002 -0.3940 +vn 0.4640 -0.8567 -0.2254 +vn 0.2514 -0.9231 -0.2910 +vn -0.0000 -0.9481 -0.3181 +vn -0.4640 -0.8567 -0.2254 +vn -0.4522 -0.8002 -0.3940 +vn -0.2496 -0.8497 -0.4645 +vn -0.2514 -0.9231 -0.2910 +vn 0.2721 -0.9468 -0.1719 +vn -0.0000 -0.9791 -0.2034 +vn 0.5011 -0.8603 -0.0942 +vn 0.5904 -0.8066 -0.0277 +vn 0.3038 -0.9408 -0.1506 +vn -0.0000 -0.9831 -0.1832 +vn -0.5904 -0.8066 -0.0277 +vn -0.5011 -0.8603 -0.0942 +vn -0.2721 -0.9468 -0.1719 +vn -0.3038 -0.9408 -0.1506 +vn 0.3199 -0.9050 -0.2806 +vn -0.0000 -0.9479 -0.3186 +vn 0.6461 -0.7417 -0.1798 +vn -0.6461 -0.7417 -0.1798 +vn -0.3199 -0.9050 -0.2806 +vn 0.8892 -0.4329 -0.1481 +vn 0.7903 -0.6097 0.0611 +vn -0.8892 -0.4329 -0.1481 +vn -0.7903 -0.6097 0.0611 +vn 0.8402 -0.5210 0.1507 +vn 0.9639 -0.2439 0.1066 +vn 0.6688 -0.7228 0.1740 +vn 0.6925 -0.7044 0.1558 +vn 0.8885 -0.4392 0.1331 +vn 0.9779 -0.1643 0.1291 +vn -0.6925 -0.7044 0.1558 +vn -0.6688 -0.7228 0.1740 +vn -0.8402 -0.5210 0.1507 +vn -0.8885 -0.4392 0.1331 +vn -0.9639 -0.2439 0.1066 +vn -0.9779 -0.1643 0.1291 +vn -0.0000 0.3250 -0.9457 +vn 0.2646 0.2940 -0.9185 +vn 0.2605 -0.0139 -0.9654 +vn -0.0000 0.0119 -0.9999 +vn 0.4123 0.2265 -0.8824 +vn 0.4080 -0.0727 -0.9101 +vn -0.4080 -0.0727 -0.9101 +vn -0.2605 -0.0139 -0.9654 +vn -0.4123 0.2265 -0.8824 +vn -0.2646 0.2940 -0.9185 +vn -0.0000 0.8304 0.5572 +vn 0.1777 0.8131 0.5543 +vn 0.1527 0.9467 0.2838 +vn -0.0000 0.9596 0.2813 +vn 0.3991 0.7549 0.5205 +vn 0.3707 0.8884 0.2707 +vn 0.3413 0.9399 0.0092 +vn 0.1387 0.9903 0.0114 +vn -0.0000 1.0000 0.0089 +vn -0.3413 0.9399 0.0092 +vn -0.3707 0.8884 0.2707 +vn -0.1527 0.9467 0.2838 +vn -0.1387 0.9903 0.0114 +vn -0.3991 0.7549 0.5205 +vn -0.1777 0.8131 0.5543 +vn 0.1515 0.9542 -0.2579 +vn -0.0000 0.9667 -0.2561 +vn 0.3302 0.9065 -0.2629 +vn 0.3469 0.7600 -0.5496 +vn 0.1957 0.8175 -0.5416 +vn -0.0000 0.8404 -0.5419 +vn -0.3469 0.7600 -0.5496 +vn -0.3302 0.9065 -0.2629 +vn -0.1515 0.9542 -0.2579 +vn -0.1957 0.8175 -0.5416 +vn 0.2437 0.5898 -0.7699 +vn -0.0000 0.6208 -0.7839 +vn 0.3861 0.5223 -0.7604 +vn -0.3861 0.5223 -0.7604 +vn -0.2437 0.5898 -0.7699 +vn 0.6074 0.7944 0.0011 +vn 0.4599 0.8858 0.0625 +vn 0.8574 0.5139 -0.0262 +vn 0.8532 0.4730 0.2198 +vn 0.6358 0.7047 0.3149 +vn 0.5391 0.7470 0.3890 +vn -0.8532 0.4730 0.2198 +vn -0.8574 0.5139 -0.0262 +vn -0.6074 0.7944 0.0011 +vn -0.6358 0.7047 0.3149 +vn -0.4599 0.8858 0.0625 +vn -0.5391 0.7470 0.3890 +vn 0.6343 0.6138 0.4700 +vn 0.5841 0.6305 0.5112 +vn 0.8376 0.4183 0.3514 +vn 0.8551 0.4342 0.2834 +vn 0.6814 0.6273 0.3771 +vn 0.6353 0.6606 0.4000 +vn -0.8551 0.4342 0.2834 +vn -0.8376 0.4183 0.3514 +vn -0.6343 0.6138 0.4700 +vn -0.6814 0.6273 0.3771 +vn -0.5841 0.6305 0.5112 +vn -0.6353 0.6606 0.4000 +vn 0.7372 0.6553 0.1646 +vn 0.6636 0.7255 0.1825 +vn 0.8852 0.4530 0.1060 +vn 0.9017 0.4289 -0.0543 +vn 0.7643 0.6437 -0.0389 +vn 0.6643 0.7465 -0.0372 +vn -0.9017 0.4289 -0.0543 +vn -0.8852 0.4530 0.1060 +vn -0.7372 0.6553 0.1646 +vn -0.7643 0.6437 -0.0389 +vn -0.6636 0.7255 0.1825 +vn -0.6643 0.7465 -0.0372 +vn 0.7623 0.5936 -0.2578 +vn 0.6412 0.7086 -0.2946 +vn 0.8998 0.3810 -0.2126 +vn 0.8587 0.3156 -0.4038 +vn 0.7302 0.4453 -0.5182 +vn 0.5979 0.5576 -0.5759 +vn -0.8587 0.3156 -0.4038 +vn -0.8998 0.3810 -0.2126 +vn -0.7623 0.5936 -0.2578 +vn -0.7302 0.4453 -0.5182 +vn -0.6412 0.7086 -0.2946 +vn -0.5979 0.5576 -0.5759 +vn 0.6676 0.0944 -0.7385 +vn 0.6473 -0.0287 -0.7617 +vn 0.6943 0.2153 -0.6868 +vn 0.8444 0.1804 -0.5044 +vn 0.5727 0.0302 -0.8192 +vn 0.5770 0.3130 -0.7544 +vn -0.5770 0.3130 -0.7544 +vn -0.6943 0.2153 -0.6868 +vn -0.5727 0.0302 -0.8192 +vn -0.6473 -0.0287 -0.7617 +vn -0.6676 0.0944 -0.7385 +vn -0.8444 0.1804 -0.5044 +vn 0.4788 0.4285 -0.7662 +vn 0.4998 0.1334 -0.8558 +vn 0.4799 0.6679 -0.5688 +vn -0.4799 0.6679 -0.5688 +vn -0.4788 0.4285 -0.7662 +vn -0.4998 0.1334 -0.8558 +vn 0.5147 0.8099 -0.2812 +vn 0.5500 0.8350 -0.0136 +vn -0.5500 0.8350 -0.0136 +vn -0.5147 0.8099 -0.2812 +vn 0.5775 0.7855 0.2224 +vn 0.5880 0.6753 0.4452 +vn -0.5880 0.6753 0.4452 +vn -0.5775 0.7855 0.2224 +vn 0.4033 0.6517 0.6423 +vn 0.5657 0.6118 0.5529 +vn 0.3484 0.7561 0.5540 +vn 0.4996 0.7462 0.4400 +vn -0.4996 0.7462 0.4400 +vn -0.5657 0.6118 0.5529 +vn -0.3484 0.7561 0.5540 +vn -0.4033 0.6517 0.6423 +vn 0.3715 0.9258 0.0695 +vn 0.1916 0.9760 0.1032 +vn -0.3715 0.9258 0.0695 +vn -0.1916 0.9760 0.1032 +vn -0.0000 0.6621 0.7494 +vn 0.1717 0.7236 0.6685 +vn 0.1965 0.6891 0.6975 +vn -0.0000 0.7033 0.7109 +vn -0.1965 0.6891 0.6975 +vn -0.1717 0.7236 0.6685 +vn -0.2176 0.3981 -0.8912 +vn -0.1949 0.8115 -0.5509 +vn 0.2176 0.3981 -0.8912 +vn 0.1949 0.8115 -0.5509 +vn 0.0164 0.9515 0.3071 +vn -0.0872 0.8147 0.5733 +vn -0.0164 0.9515 0.3071 +vn 0.0872 0.8147 0.5733 +vn -0.1283 0.6960 0.7065 +vn -0.0000 0.6394 0.7689 +vn 0.1283 0.6960 0.7065 +vn 0.9921 0.1186 0.0406 +vn 0.9754 0.1402 0.1702 +vn -0.9921 0.1186 0.0406 +vn -0.9754 0.1402 0.1702 +vn 0.9905 -0.1123 0.0793 +vn 0.9676 0.1460 0.2058 +vn 0.9943 -0.0987 0.0402 +vn 0.9737 0.1750 0.1455 +vn -0.9737 0.1750 0.1455 +vn -0.9676 0.1460 0.2058 +vn -0.9943 -0.0987 0.0402 +vn -0.9905 -0.1123 0.0793 +vn 0.9973 0.0642 0.0368 +vn 0.9751 0.2196 0.0325 +vn 0.8847 0.4511 0.1173 +vn 0.9659 0.2438 -0.0870 +vn -0.9659 0.2438 -0.0870 +vn -0.9751 0.2196 0.0325 +vn -0.8847 0.4511 0.1173 +vn -0.9973 0.0642 0.0368 +vn 0.9437 0.2192 -0.2478 +vn 0.6933 0.5788 -0.4293 +vn -0.9437 0.2192 -0.2478 +vn -0.6933 0.5788 -0.4293 +vn 0.6079 -0.7937 -0.0223 +vn 0.6531 -0.7525 0.0851 +vn 0.5810 -0.7954 -0.1724 +vn 0.5341 -0.8274 -0.1735 +vn 0.5495 -0.8354 0.0096 +vn 0.5777 -0.8031 0.1457 +vn -0.5341 -0.8274 -0.1735 +vn -0.5810 -0.7954 -0.1724 +vn -0.6079 -0.7937 -0.0223 +vn -0.5495 -0.8354 0.0096 +vn -0.6531 -0.7525 0.0851 +vn -0.5777 -0.8031 0.1457 +vn 0.5175 -0.8421 0.1522 +vn 0.4546 -0.8894 0.0475 +vn 0.5178 -0.8478 0.1146 +vn 0.3757 -0.9118 -0.1657 +vn 0.2222 -0.9750 -0.0030 +vn -0.4546 -0.8894 0.0475 +vn -0.3757 -0.9118 -0.1657 +vn -0.5175 -0.8421 0.1522 +vn -0.5178 -0.8478 0.1146 +vn -0.2222 -0.9750 -0.0030 +vn 0.5322 -0.8277 0.1780 +vn 0.5299 -0.8242 0.2000 +vn -0.5299 -0.8242 0.2000 +vn -0.5322 -0.8277 0.1780 +vn 0.5553 -0.7280 0.4021 +vn 0.6461 -0.7127 0.2730 +vn 0.6916 -0.6947 0.1975 +vn -0.6461 -0.7127 0.2730 +vn -0.6916 -0.6947 0.1975 +vn -0.5553 -0.7280 0.4021 +vn 0.7022 -0.6971 0.1448 +vn -0.7022 -0.6971 0.1448 +vn 0.5121 -0.7082 0.4859 +vn -0.5121 -0.7082 0.4859 +vn 0.5194 -0.2753 -0.8090 +vn 0.5563 -0.3063 -0.7724 +vn 0.3264 -0.6042 -0.7269 +vn 0.4432 -0.6005 -0.6656 +vn 0.5626 -0.5387 -0.6271 +vn 0.5558 -0.2672 -0.7872 +vn -0.5626 -0.5387 -0.6271 +vn -0.4432 -0.6005 -0.6656 +vn -0.5563 -0.3063 -0.7724 +vn -0.5558 -0.2672 -0.7872 +vn -0.3264 -0.6042 -0.7269 +vn -0.5194 -0.2753 -0.8090 +vn 0.5072 -0.1654 -0.8458 +vn 0.5185 -0.3626 -0.7743 +vn -0.5072 -0.1654 -0.8458 +vn -0.5185 -0.3626 -0.7743 +vn 0.3583 -0.8245 -0.4379 +vn 0.1396 -0.8795 -0.4550 +vn 0.5435 -0.7484 -0.3802 +vn -0.5435 -0.7484 -0.3802 +vn -0.3583 -0.8245 -0.4379 +vn -0.1396 -0.8795 -0.4550 +vn 0.5823 -0.7371 -0.3429 +vn 0.5707 -0.6342 -0.5216 +vn -0.5707 -0.6342 -0.5216 +vn -0.5823 -0.7371 -0.3429 +vn 0.5159 -0.4971 -0.6976 +vn -0.5159 -0.4971 -0.6976 +vn -0.1641 0.9738 0.1574 +vn -0.3187 0.9294 0.1862 +vn 0.1734 0.5729 0.8011 +vn 0.2844 0.5417 0.7910 +vn -0.4461 0.8609 0.2445 +vn 0.0489 0.5321 0.8453 +vn 0.5149 -0.1142 0.8496 +vn 0.5638 -0.1233 0.8167 +vn 0.5489 -0.1863 0.8148 +vn -0.5149 -0.1142 0.8496 +vn -0.0489 0.5321 0.8453 +vn -0.1734 0.5729 0.8011 +vn -0.5638 -0.1233 0.8167 +vn 0.4461 0.8609 0.2445 +vn 0.3187 0.9294 0.1862 +vn 0.1641 0.9738 0.1574 +vn -0.2844 0.5417 0.7910 +vn -0.5489 -0.1863 0.8148 +vn 0.3607 0.4703 0.8054 +vn 0.0756 0.9797 0.1859 +vn 0.4613 -0.2319 0.8564 +vn 0.2860 -0.2225 0.9320 +vn 0.4307 0.3388 0.8365 +vn 0.4358 0.8568 0.2758 +vn -0.2860 -0.2225 0.9320 +vn -0.4613 -0.2319 0.8564 +vn -0.3607 0.4703 0.8054 +vn -0.4307 0.3388 0.8365 +vn -0.0756 0.9797 0.1859 +vn -0.4358 0.8568 0.2758 +vn 0.4253 0.1508 0.8924 +vn 0.7339 0.4879 0.4726 +vn 0.0465 -0.1638 0.9854 +vn -0.1340 -0.0599 0.9892 +vn 0.3748 0.0130 0.9270 +vn 0.7820 0.1011 0.6150 +vn 0.1340 -0.0599 0.9892 +vn -0.0465 -0.1638 0.9854 +vn -0.4253 0.1508 0.8924 +vn -0.3748 0.0130 0.9270 +vn -0.7339 0.4879 0.4726 +vn -0.7820 0.1011 0.6150 +vn 0.3751 -0.0704 0.9243 +vn 0.7641 -0.2042 0.6120 +vn -0.1901 0.1090 0.9757 +vn -0.0701 0.3285 0.9419 +vn 0.4450 -0.1314 0.8859 +vn 0.7263 -0.4892 0.4828 +vn 0.0701 0.3285 0.9419 +vn 0.1901 0.1090 0.9757 +vn -0.3751 -0.0704 0.9243 +vn -0.4450 -0.1314 0.8859 +vn -0.7641 -0.2042 0.6120 +vn -0.7263 -0.4892 0.4828 +vn 0.5404 -0.2353 0.8079 +vn 0.6075 -0.7262 0.3219 +vn 0.1960 0.4191 0.8865 +vn 0.4476 0.3134 0.8375 +vn 0.5852 -0.3889 0.7116 +vn 0.4415 -0.8709 0.2157 +vn -0.4476 0.3134 0.8375 +vn -0.1960 0.4191 0.8865 +vn -0.5404 -0.2353 0.8079 +vn -0.5852 -0.3889 0.7116 +vn -0.6075 -0.7262 0.3219 +vn -0.4415 -0.8709 0.2157 +vn 0.5074 -0.5042 0.6988 +vn 0.2692 -0.9441 0.1903 +vn 0.5229 0.1853 0.8320 +vn 0.3736 0.2697 0.8875 +vn 0.2805 -0.4555 0.8449 +vn 0.0634 -0.9713 0.2291 +vn -0.3736 0.2697 0.8875 +vn -0.5229 0.1853 0.8320 +vn -0.5074 -0.5042 0.6988 +vn -0.2805 -0.4555 0.8449 +vn -0.2692 -0.9441 0.1903 +vn -0.0634 -0.9713 0.2291 +vn 0.1151 0.7890 0.6035 +vn 0.3260 0.6939 0.6421 +vn -0.1165 0.9326 0.3417 +vn 0.1164 0.9080 0.4024 +vn 0.1410 0.9072 0.3964 +vn 0.2840 0.7138 0.6402 +vn -0.1410 0.9072 0.3964 +vn -0.1164 0.9080 0.4024 +vn -0.3260 0.6939 0.6421 +vn -0.2840 0.7138 0.6402 +vn 0.1165 0.9326 0.3417 +vn -0.1151 0.7890 0.6035 +vn -0.5723 0.6138 0.5438 +vn -0.2355 0.7933 0.5614 +vn -0.7578 0.6400 0.1269 +vn -0.4505 0.8595 0.2414 +vn 0.4505 0.8595 0.2414 +vn 0.2355 0.7933 0.5614 +vn 0.7578 0.6400 0.1269 +vn 0.5723 0.6138 0.5438 +vn -0.6953 -0.0864 0.7135 +vn -0.7615 0.2803 0.5845 +vn -0.9715 -0.0776 0.2240 +vn -0.9450 0.3152 0.0871 +vn 0.9450 0.3152 0.0871 +vn 0.7615 0.2803 0.5845 +vn 0.9715 -0.0776 0.2240 +vn 0.6953 -0.0864 0.7135 +vn 0.1007 -0.5302 0.8419 +vn -0.3575 -0.3885 0.8493 +vn -0.0803 -0.7280 0.6809 +vn -0.6796 -0.5173 0.5201 +vn 0.6796 -0.5173 0.5201 +vn 0.3575 -0.3885 0.8493 +vn 0.0803 -0.7280 0.6809 +vn -0.1007 -0.5302 0.8419 +vn 0.5569 -0.4946 0.6673 +vn 0.4060 -0.5372 0.7394 +vn 0.5237 -0.6319 0.5714 +vn 0.3339 -0.6988 0.6326 +vn -0.3339 -0.6988 0.6326 +vn -0.4060 -0.5372 0.7394 +vn -0.5237 -0.6319 0.5714 +vn -0.5569 -0.4946 0.6673 +vn 0.6373 -0.4343 0.6366 +vn 0.6457 -0.3977 0.6518 +vn 0.6830 -0.5161 0.5168 +vn 0.6353 -0.5621 0.5295 +vn -0.6830 -0.5161 0.5168 +vn -0.6457 -0.3977 0.6518 +vn -0.6373 -0.4343 0.6366 +vn -0.6353 -0.5621 0.5295 +vn 0.7257 -0.6726 0.1449 +vn 0.8400 -0.5400 0.0528 +vn 0.4702 -0.6997 0.5379 +vn 0.7190 0.1287 0.6830 +vn 0.9063 -0.4008 0.1342 +vn 0.9129 -0.4040 -0.0586 +vn -0.7190 0.1287 0.6830 +vn -0.4702 -0.6997 0.5379 +vn -0.7257 -0.6726 0.1449 +vn -0.9063 -0.4008 0.1342 +vn -0.8400 -0.5400 0.0528 +vn -0.9129 -0.4040 -0.0586 +vn -0.0479 -0.9738 0.2224 +vn 0.1606 -0.4179 0.8942 +vn 0.2647 0.4101 0.8728 +vn -0.1606 -0.4179 0.8942 +vn -0.2647 0.4101 0.8728 +vn 0.0479 -0.9738 0.2224 +vn 0.9356 -0.3524 0.0215 +vn 0.9461 -0.3200 -0.0499 +vn -0.9356 -0.3524 0.0215 +vn -0.9461 -0.3200 -0.0499 +vn 0.8413 0.0795 0.5347 +vn 0.2951 0.4027 0.8665 +vn -0.1732 0.9535 0.2465 +vn 0.7112 -0.2663 0.6506 +vn 0.5289 -0.1788 0.8296 +vn -0.5289 -0.1788 0.8296 +vn -0.2951 0.4027 0.8665 +vn -0.7112 -0.2663 0.6506 +vn -0.8413 0.0795 0.5347 +vn 0.1732 0.9535 0.2465 +vn 0.2187 0.8007 0.5577 +vn 0.1337 0.9365 0.3243 +vn 0.4764 0.7564 0.4482 +vn 0.5017 0.6236 0.5995 +vn -0.4764 0.7564 0.4482 +vn -0.1337 0.9365 0.3243 +vn -0.2187 0.8007 0.5577 +vn -0.5017 0.6236 0.5995 +vn 0.7523 0.0644 0.6557 +vn 0.7458 0.1408 0.6511 +vn 0.7255 0.2185 0.6526 +vn 0.7686 0.1973 0.6086 +vn 0.9326 -0.1456 0.3303 +vn 0.8810 0.0292 0.4721 +vn -0.8810 0.0292 0.4721 +vn -0.7255 0.2185 0.6526 +vn -0.9326 -0.1456 0.3303 +vn -0.7458 0.1408 0.6511 +vn -0.7523 0.0644 0.6557 +vn -0.7686 0.1973 0.6086 +vn 0.9288 -0.0157 0.3702 +vn 0.9224 -0.0194 0.3858 +vn 0.7150 0.3398 0.6110 +vn 0.6943 0.5129 0.5049 +vn 0.6969 0.3399 0.6315 +vn 0.6038 0.5866 0.5397 +vn -0.7150 0.3398 0.6110 +vn -0.6969 0.3399 0.6315 +vn -0.9224 -0.0194 0.3858 +vn -0.9288 -0.0157 0.3702 +vn -0.6943 0.5129 0.5049 +vn -0.6038 0.5866 0.5397 +vn 0.7355 -0.5522 0.3925 +vn 0.7948 -0.4662 0.3885 +vn 0.8787 -0.4009 0.2591 +vn 0.8222 -0.4906 0.2886 +vn 0.8908 -0.3952 0.2242 +vn 0.9205 -0.3672 0.1335 +vn -0.9205 -0.3672 0.1335 +vn -0.8787 -0.4009 0.2591 +vn -0.8908 -0.3952 0.2242 +vn -0.7948 -0.4662 0.3885 +vn -0.7355 -0.5522 0.3925 +vn -0.8222 -0.4906 0.2886 +vn 0.8493 -0.3396 0.4042 +vn 0.7228 -0.4366 0.5358 +vn 0.6500 -0.4103 0.6397 +vn 0.6992 -0.5271 0.4831 +vn 0.6837 -0.5079 0.5240 +vn -0.7228 -0.4366 0.5358 +vn -0.6992 -0.5271 0.4831 +vn -0.8493 -0.3396 0.4042 +vn -0.6500 -0.4103 0.6397 +vn -0.6837 -0.5079 0.5240 +vn 0.6233 -0.3979 0.6732 +vn 0.6852 -0.5036 0.5263 +vn -0.6233 -0.3979 0.6732 +vn -0.6852 -0.5036 0.5263 +vn 0.9558 -0.2884 0.0574 +vn 0.9729 -0.1417 0.1826 +vn -0.9729 -0.1417 0.1826 +vn -0.9558 -0.2884 0.0574 +vn 0.9356 -0.3531 -0.0084 +vn 0.9436 -0.3308 0.0104 +vn -0.9436 -0.3308 0.0104 +vn -0.9356 -0.3531 -0.0084 +vn 0.9699 -0.1924 0.1495 +vn -0.9699 -0.1924 0.1495 +vn 0.6900 -0.5086 0.5149 +vn 0.6788 -0.5033 0.5347 +vn 0.6863 -0.5212 0.5073 +vn 0.5666 -0.3556 0.7433 +vn 0.5968 -0.3219 0.7349 +vn 0.6057 -0.2638 0.7507 +vn -0.5666 -0.3556 0.7433 +vn -0.6863 -0.5212 0.5073 +vn -0.6900 -0.5086 0.5149 +vn -0.5968 -0.3219 0.7349 +vn -0.6788 -0.5033 0.5347 +vn -0.6057 -0.2638 0.7507 +vn 0.6744 -0.5436 0.4996 +vn 0.6717 -0.5709 0.4721 +vn 0.4732 -0.3899 0.7900 +vn 0.5174 -0.3778 0.7678 +vn -0.4732 -0.3899 0.7900 +vn -0.6717 -0.5709 0.4721 +vn -0.6744 -0.5436 0.4996 +vn -0.5174 -0.3778 0.7678 +vn 0.7363 -0.5288 0.4221 +vn 0.8717 -0.0322 0.4890 +vn 0.6350 -0.0644 0.7698 +vn 0.4998 -0.3344 0.7990 +vn -0.6350 -0.0644 0.7698 +vn -0.8717 -0.0322 0.4890 +vn -0.7363 -0.5288 0.4221 +vn -0.4998 -0.3344 0.7990 +vn 0.6411 0.5509 0.5343 +vn 0.5956 0.5678 0.5682 +vn 0.4178 0.3398 0.8426 +vn 0.4452 0.3038 0.8423 +vn -0.4178 0.3398 0.8426 +vn -0.5956 0.5678 0.5682 +vn -0.6411 0.5509 0.5343 +vn -0.4452 0.3038 0.8423 +vn 0.7279 0.2866 0.6228 +vn 0.7697 -0.0146 0.6382 +vn 0.4169 0.1648 0.8939 +vn 0.4712 0.2155 0.8553 +vn -0.4169 0.1648 0.8939 +vn -0.7697 -0.0146 0.6382 +vn -0.7280 0.2866 0.6228 +vn -0.4712 0.2155 0.8553 +vn 0.7589 0.1352 0.6370 +vn 0.4584 0.7549 0.4690 +vn 0.2412 0.7286 0.6411 +vn 0.3485 0.3618 0.8647 +vn -0.2412 0.7286 0.6411 +vn -0.4584 0.7549 0.4690 +vn -0.7589 0.1352 0.6370 +vn -0.3485 0.3618 0.8647 +vn 0.0426 0.9537 0.2976 +vn 0.0740 0.9218 0.3806 +vn 0.1537 0.7195 0.6772 +vn -0.0670 0.8325 0.5499 +vn -0.1537 0.7195 0.6772 +vn -0.0740 0.9218 0.3806 +vn -0.0426 0.9537 0.2976 +vn 0.0670 0.8325 0.5499 +vn 0.6301 -0.5240 0.5731 +vn 0.5230 -0.5887 0.6164 +vn 0.5828 -0.2013 0.7873 +vn 0.5250 -0.1935 0.8288 +vn -0.6301 -0.5240 0.5731 +vn -0.5828 -0.2013 0.7873 +vn -0.5230 -0.5887 0.6164 +vn -0.5250 -0.1935 0.8288 +vn 0.3170 -0.6756 0.6657 +vn -0.1027 -0.6680 0.7371 +vn 0.4032 -0.2088 0.8909 +vn 0.2651 -0.1542 0.9518 +vn -0.3170 -0.6756 0.6657 +vn -0.4032 -0.2088 0.8909 +vn 0.1027 -0.6680 0.7371 +vn -0.2651 -0.1542 0.9518 +vn -0.5679 -0.4139 0.7114 +vn -0.7658 -0.0395 0.6418 +vn 0.1756 -0.0386 0.9837 +vn 0.1739 0.0074 0.9847 +vn 0.5679 -0.4139 0.7114 +vn -0.1756 -0.0386 0.9837 +vn 0.7658 -0.0395 0.6418 +vn -0.1739 0.0074 0.9847 +vn -0.7202 0.2947 0.6281 +vn -0.5241 0.5807 0.6229 +vn 0.1997 0.0224 0.9796 +vn 0.2334 0.0931 0.9679 +vn 0.7202 0.2947 0.6281 +vn -0.1997 0.0224 0.9796 +vn 0.5241 0.5807 0.6229 +vn -0.2334 0.0931 0.9679 +vn -0.2410 0.7725 0.5876 +vn 0.0218 0.8514 0.5241 +vn 0.3012 0.2151 0.9290 +vn 0.3923 0.3543 0.8488 +vn 0.2410 0.7725 0.5876 +vn -0.3012 0.2151 0.9290 +vn -0.0218 0.8514 0.5241 +vn -0.3923 0.3543 0.8488 +vn 0.1458 0.8754 0.4609 +vn 0.4030 0.5006 0.7661 +vn -0.1458 0.8754 0.4609 +vn -0.4030 0.5006 0.7661 +vn 0.2142 0.1257 0.9687 +vn 0.2169 0.0905 0.9720 +vn 0.1387 0.2465 0.9592 +vn 0.2589 0.1805 0.9489 +vn 0.2325 0.0869 0.9687 +vn 0.2162 0.0100 0.9763 +vn -0.2589 0.1805 0.9489 +vn -0.1387 0.2465 0.9592 +vn -0.2142 0.1257 0.9687 +vn -0.2325 0.0869 0.9687 +vn -0.2169 0.0905 0.9720 +vn -0.2162 0.0100 0.9763 +vn 0.3294 0.0444 0.9432 +vn 0.2915 -0.0103 0.9565 +vn 0.4082 0.0763 0.9097 +vn 0.4499 -0.0211 0.8928 +vn 0.3771 -0.0051 0.9262 +vn 0.3477 -0.0212 0.9374 +vn -0.4499 -0.0211 0.8928 +vn -0.4082 0.0763 0.9097 +vn -0.3294 0.0444 0.9432 +vn -0.3771 -0.0051 0.9262 +vn -0.2915 -0.0103 0.9565 +vn -0.3477 -0.0212 0.9374 +vn 0.3690 -0.0399 0.9286 +vn 0.3615 -0.0148 0.9322 +vn 0.4244 -0.0969 0.9003 +vn 0.4014 -0.1418 0.9049 +vn 0.3396 -0.0436 0.9396 +vn 0.3429 0.0348 0.9387 +vn -0.4014 -0.1418 0.9049 +vn -0.4244 -0.0969 0.9003 +vn -0.3690 -0.0399 0.9286 +vn -0.3396 -0.0436 0.9396 +vn -0.3615 -0.0148 0.9322 +vn -0.3429 0.0348 0.9387 +vn 0.3549 0.0190 0.9347 +vn 0.3433 0.1473 0.9276 +vn 0.4274 -0.1097 0.8974 +vn 0.4874 -0.0052 0.8731 +vn 0.4354 0.1345 0.8901 +vn 0.3912 0.2643 0.8815 +vn -0.4875 -0.0052 0.8731 +vn -0.4274 -0.1097 0.8974 +vn -0.3549 0.0190 0.9347 +vn -0.4354 0.1345 0.8901 +vn -0.3433 0.1473 0.9276 +vn -0.3912 0.2643 0.8815 +vn 0.4280 0.1277 0.8947 +vn 0.4204 0.2350 0.8764 +vn 0.4447 -0.0071 0.8956 +vn -0.4447 -0.0071 0.8956 +vn -0.4280 0.1277 0.8947 +vn -0.4204 0.2350 0.8764 +vn 0.4001 -0.1245 0.9080 +vn 0.4398 -0.0910 0.8935 +vn -0.4398 -0.0910 0.8935 +vn -0.4001 -0.1245 0.9080 +vn 0.3299 -0.1328 0.9346 +vn 0.2559 -0.1197 0.9593 +vn -0.2559 -0.1197 0.9593 +vn -0.3299 -0.1328 0.9346 +vn 0.2509 -0.0242 0.9677 +vn -0.2509 -0.0242 0.9677 +vn 0.0087 0.4996 0.8662 +vn 0.2446 0.3657 0.8980 +vn -0.2446 0.3657 0.8980 +vn -0.0087 0.4996 0.8662 +vn 0.4971 0.0223 0.8674 +vn 0.4715 0.1606 0.8671 +vn -0.4715 0.1606 0.8671 +vn -0.4971 0.0223 0.8674 +vn 0.4384 -0.1465 0.8867 +vn 0.4513 -0.0851 0.8883 +vn -0.4513 -0.0851 0.8883 +vn -0.4384 -0.1465 0.8867 +vn 0.5058 0.0135 0.8625 +vn 0.4748 -0.1225 0.8715 +vn -0.4748 -0.1225 0.8715 +vn -0.5058 0.0135 0.8625 +vn 0.4209 0.2692 0.8662 +vn 0.4769 0.1791 0.8605 +vn -0.4769 0.1791 0.8605 +vn -0.4209 0.2692 0.8662 +vn 0.4146 0.2707 0.8688 +vn -0.4146 0.2707 0.8688 +vn -0.0639 -0.8857 -0.4599 +vn 0.0923 -0.8636 -0.4956 +vn -0.1065 -0.9002 -0.4223 +vn -0.1672 -0.4827 -0.8597 +vn -0.3212 -0.3945 -0.8609 +vn -0.2395 -0.3714 -0.8970 +vn 0.1672 -0.4827 -0.8597 +vn 0.1065 -0.9002 -0.4223 +vn 0.0639 -0.8857 -0.4599 +vn 0.3212 -0.3945 -0.8609 +vn -0.0923 -0.8636 -0.4956 +vn 0.2395 -0.3714 -0.8970 +vn 0.3794 -0.8071 -0.4524 +vn 0.7109 -0.6445 -0.2816 +vn -0.0174 -0.3740 -0.9272 +vn 0.3559 -0.3679 -0.8590 +vn -0.3794 -0.8071 -0.4524 +vn 0.0174 -0.3740 -0.9272 +vn -0.7109 -0.6445 -0.2816 +vn -0.3559 -0.3679 -0.8590 +vn 0.9474 -0.3196 0.0159 +vn 0.9819 0.1370 0.1305 +vn 0.7376 -0.1930 -0.6471 +vn 0.9073 0.0932 -0.4101 +vn -0.9474 -0.3196 0.0159 +vn -0.7376 -0.1930 -0.6471 +vn -0.9819 0.1370 0.1305 +vn -0.9073 0.0932 -0.4101 +vn 0.7795 0.5859 -0.2216 +vn 0.2790 0.8212 -0.4978 +vn 0.5868 0.3405 -0.7346 +vn 0.0473 0.3824 -0.9228 +vn -0.7795 0.5859 -0.2215 +vn -0.5868 0.3405 -0.7346 +vn -0.2790 0.8212 -0.4978 +vn -0.0473 0.3824 -0.9228 +vn -0.1932 0.8031 -0.5637 +vn -0.4152 0.7458 -0.5209 +vn -0.2824 0.3057 -0.9093 +vn -0.4283 0.2876 -0.8567 +vn 0.1932 0.8031 -0.5637 +vn 0.2824 0.3057 -0.9093 +vn 0.4152 0.7458 -0.5209 +vn 0.4283 0.2876 -0.8567 +vn -0.5146 0.7343 -0.4427 +vn -0.5589 0.7450 -0.3641 +vn -0.4825 0.3098 -0.8193 +vn -0.3762 0.3767 -0.8465 +vn 0.5146 0.7343 -0.4427 +vn 0.4825 0.3098 -0.8193 +vn 0.5589 0.7450 -0.3641 +vn 0.3762 0.3767 -0.8465 +vn -0.3624 -0.0235 -0.9317 +vn -0.3971 -0.0257 -0.9174 +vn -0.1497 -0.0726 -0.9861 +vn 0.3971 -0.0257 -0.9174 +vn 0.1497 -0.0726 -0.9861 +vn 0.3624 -0.0235 -0.9317 +vn -0.2247 -0.0248 -0.9741 +vn -0.0188 -0.0188 -0.9996 +vn 0.0188 -0.0188 -0.9996 +vn 0.2247 -0.0248 -0.9741 +vn 0.3738 0.0414 -0.9266 +vn -0.3738 0.0414 -0.9266 +vn -0.1736 0.8642 -0.4722 +vn 0.2271 0.3033 -0.9254 +vn 0.1736 0.8642 -0.4722 +vn -0.2271 0.3033 -0.9254 +vn 0.2882 -0.1866 -0.9392 +vn 0.1160 -0.5685 -0.8144 +vn -0.2882 -0.1866 -0.9392 +vn -0.1160 -0.5685 -0.8144 +vn -0.0693 -0.8966 -0.4374 +vn 0.0693 -0.8966 -0.4374 +vt 0.870030 0.588378 +vt 0.867419 0.822754 +vt 0.862604 0.563786 +vt 0.858909 0.846992 +vt 0.853018 0.521562 +vt 0.847458 0.888748 +vt 0.798481 0.569535 +vt 0.795104 0.838402 +vt 0.833214 0.591819 +vt 0.830792 0.817682 +vt 0.853983 0.603992 +vt 0.852082 0.806443 +vt 0.853339 0.625762 +vt 0.852404 0.784665 +vt 0.831397 0.632598 +vt 0.830788 0.776862 +vt 0.791018 0.645443 +vt 0.791018 0.762238 +vt 0.842358 0.702491 +vt 0.844839 0.707525 +vt 0.858085 0.663593 +vt 0.858824 0.747083 +vt 0.867752 0.642278 +vt 0.867536 0.768806 +vt 0.890327 0.642560 +vt 0.890101 0.769527 +vt 0.899331 0.663258 +vt 0.900015 0.749248 +vt 0.918898 0.699697 +vt 0.921180 0.713713 +vt 0.968392 0.645333 +vt 0.968213 0.770220 +vt 0.928547 0.634539 +vt 0.927927 0.779235 +vt 0.906442 0.627606 +vt 0.905536 0.785180 +vt 0.907144 0.605091 +vt 0.905239 0.807704 +vt 0.929700 0.593878 +vt 0.927275 0.819908 +vt 0.968392 0.573812 +vt 0.965038 0.841671 +vt 0.920166 0.524546 +vt 0.914672 0.888748 +vt 0.902530 0.564230 +vt 0.898815 0.848320 +vt 0.891866 0.588564 +vt 0.889242 0.823537 +vt 0.887736 0.598020 +vt 0.885535 0.813907 +vt 0.897747 0.609290 +vt 0.896037 0.803092 +vt 0.896611 0.624069 +vt 0.895558 0.788278 +vt 0.886375 0.633061 +vt 0.885732 0.778841 +vt 0.872419 0.632307 +vt 0.871755 0.778974 +vt 0.863131 0.622588 +vt 0.862045 0.788271 +vt 0.879691 0.616207 +vt 0.878306 0.795381 +vt 0.863259 0.609033 +vt 0.861571 0.801818 +vt 0.873321 0.598226 +vt 0.871144 0.813061 +vt 0.521999 0.388854 +vt 0.521048 0.341672 +vt 0.518927 0.097638 +vt 0.519000 0.161350 +vt 0.518956 0.187619 +vt 0.518925 0.083725 +vt 0.523031 0.433628 +vt 0.819845 0.468071 +vt 0.215894 0.503605 +vt 0.845499 0.449967 +vt 0.185281 0.484099 +vt 0.999856 0.254640 +vt 0.000144 0.259113 +vt 0.994525 0.167705 +vt 0.011829 0.155367 +vt 0.945900 0.079569 +vt 0.078961 0.060719 +vt 0.805584 0.010786 +vt 0.232648 0.003484 +vt 0.606717 0.173514 +vt 0.430834 0.174134 +vt 0.584669 0.109759 +vt 0.452964 0.109753 +vt 0.569984 0.081205 +vt 0.467794 0.081119 +vt 0.558277 0.064830 +vt 0.479585 0.064749 +vt 0.550630 0.058404 +vt 0.487254 0.058341 +vt 0.538932 0.053142 +vt 0.498948 0.053107 +vt 0.518927 0.049466 +vt 0.643325 0.203196 +vt 0.393824 0.204661 +vt 0.678421 0.234190 +vt 0.358185 0.237010 +vt 0.706155 0.268300 +vt 0.330224 0.273117 +vt 0.707715 0.306939 +vt 0.330119 0.313546 +vt 0.694628 0.335697 +vt 0.344965 0.342624 +vt 0.663792 0.369910 +vt 0.378142 0.376063 +vt 0.630772 0.392967 +vt 0.412793 0.397883 +vt 0.600524 0.398114 +vt 0.443592 0.401663 +vt 0.557300 0.392517 +vt 0.486806 0.394072 +vt 0.576224 0.338715 +vt 0.465581 0.340746 +vt 0.557863 0.319011 +vt 0.483365 0.320242 +vt 0.576079 0.253063 +vt 0.463102 0.254240 +vt 0.612128 0.245986 +vt 0.426389 0.247827 +vt 0.641666 0.256631 +vt 0.396520 0.259390 +vt 0.662428 0.278197 +vt 0.375833 0.282102 +vt 0.667848 0.298912 +vt 0.370958 0.303610 +vt 0.659448 0.315356 +vt 0.380180 0.320164 +vt 0.636056 0.333395 +vt 0.404781 0.337637 +vt 0.598707 0.346762 +vt 0.443209 0.349734 +vt 0.518925 0.086813 +vt 0.531314 0.084364 +vt 0.506536 0.084348 +vt 0.531900 0.073754 +vt 0.505958 0.073734 +vt 0.526631 0.068594 +vt 0.511228 0.068581 +vt 0.518928 0.067217 +vt 0.518870 0.192196 +vt 0.519447 0.200524 +vt 0.541412 0.193460 +vt 0.497011 0.193556 +vt 0.546848 0.174229 +vt 0.491210 0.174349 +vt 0.538444 0.155781 +vt 0.499510 0.155839 +vt 0.620982 0.227195 +vt 0.416967 0.228884 +vt 0.660032 0.250401 +vt 0.377513 0.253407 +vt 0.682242 0.277954 +vt 0.355371 0.282451 +vt 0.685701 0.306143 +vt 0.352843 0.311772 +vt 0.673551 0.326478 +vt 0.366172 0.332164 +vt 0.644354 0.353229 +vt 0.397170 0.358172 +vt 0.620111 0.370606 +vt 0.422568 0.374743 +vt 0.597676 0.372592 +vt 0.445326 0.375785 +vt 0.562472 0.360194 +vt 0.480243 0.361830 +vt 0.562261 0.209532 +vt 0.476187 0.210070 +vt 0.555906 0.119138 +vt 0.481895 0.119167 +vt 0.549116 0.088653 +vt 0.488718 0.088625 +vt 0.545254 0.073767 +vt 0.492603 0.073725 +vt 0.541665 0.065699 +vt 0.496204 0.065659 +vt 0.533709 0.061936 +vt 0.504158 0.061911 +vt 0.518928 0.060267 +vt 0.519740 0.246803 +vt 0.520283 0.294459 +vt 0.616301 0.344493 +vt 0.425312 0.348127 +vt 0.559184 0.269993 +vt 0.480589 0.270949 +vt 0.553909 0.292942 +vt 0.486519 0.293897 +vt 0.532882 0.095518 +vt 0.504966 0.095508 +vt 0.534438 0.125582 +vt 0.503434 0.125599 +vt 0.518944 0.126582 +vt 0.518977 0.150942 +vt 0.533001 0.166572 +vt 0.505014 0.166616 +vt 0.538097 0.176161 +vt 0.499967 0.176220 +vt 0.536221 0.186667 +vt 0.501933 0.186664 +vt 0.527566 0.190463 +vt 0.510592 0.190387 +vt 0.519068 0.179757 +vt 0.527890 0.185349 +vt 0.510174 0.185302 +vt 0.532635 0.183653 +vt 0.505436 0.183644 +vt 0.531715 0.177200 +vt 0.506355 0.177233 +vt 0.529456 0.170655 +vt 0.508586 0.170688 +vt 0.519024 0.168442 +vt 0.594406 0.134087 +vt 0.443132 0.134237 +vt 0.564380 0.168228 +vt 0.473555 0.168461 +vt 0.561724 0.146447 +vt 0.476096 0.146568 +vt 0.597971 0.151887 +vt 0.439580 0.152198 +vt 0.518929 0.070334 +vt 0.523705 0.071560 +vt 0.514152 0.071552 +vt 0.527773 0.076168 +vt 0.510082 0.076156 +vt 0.526960 0.082800 +vt 0.510890 0.082790 +vt 0.518926 0.079464 +vt 0.523850 0.079242 +vt 0.514003 0.079236 +vt 0.524794 0.076834 +vt 0.513061 0.076826 +vt 0.522261 0.075175 +vt 0.515595 0.075171 +vt 0.518928 0.074552 +vt 0.569194 0.293361 +vt 0.471148 0.294767 +vt 0.572378 0.277916 +vt 0.467491 0.279257 +vt 0.614703 0.331776 +vt 0.426416 0.335172 +vt 0.600471 0.333348 +vt 0.440897 0.336238 +vt 0.631003 0.323613 +vt 0.409536 0.327484 +vt 0.649955 0.310358 +vt 0.389715 0.314674 +vt 0.655976 0.296670 +vt 0.383076 0.300866 +vt 0.651315 0.280039 +vt 0.387310 0.283651 +vt 0.633228 0.263757 +vt 0.405337 0.266471 +vt 0.610393 0.257673 +vt 0.428436 0.259678 +vt 0.584080 0.265954 +vt 0.455329 0.267445 +vt 0.573246 0.311528 +vt 0.467637 0.313233 +vt 0.585155 0.326924 +vt 0.456147 0.329185 +vt 0.590644 0.321516 +vt 0.450408 0.323919 +vt 0.579548 0.309340 +vt 0.461204 0.311233 +vt 0.585166 0.270991 +vt 0.454369 0.272583 +vt 0.612641 0.261560 +vt 0.426254 0.263693 +vt 0.629829 0.267263 +vt 0.408893 0.269959 +vt 0.647785 0.283486 +vt 0.391040 0.287071 +vt 0.649541 0.296225 +vt 0.389662 0.300183 +vt 0.646248 0.306421 +vt 0.393381 0.310510 +vt 0.626851 0.320513 +vt 0.413648 0.324175 +vt 0.601799 0.328453 +vt 0.439372 0.331331 +vt 0.613335 0.327083 +vt 0.427623 0.330358 +vt 0.578124 0.281900 +vt 0.461798 0.283441 +vt 0.577524 0.293776 +vt 0.462754 0.295432 +vt 0.553209 0.433063 +vt 0.815858 0.445381 +vt 0.492809 0.434538 +vt 0.219260 0.477186 +vt 0.609819 0.431516 +vt 0.770572 0.444261 +vt 0.435860 0.435740 +vt 0.271364 0.473316 +vt 0.648174 0.419316 +vt 0.755700 0.418603 +vt 0.396518 0.425416 +vt 0.287033 0.442912 +vt 0.692106 0.388274 +vt 0.770185 0.379538 +vt 0.350292 0.396229 +vt 0.268122 0.398737 +vt 0.726332 0.341754 +vt 0.749542 0.334683 +vt 0.312756 0.350588 +vt 0.288183 0.346496 +vt 0.735879 0.312112 +vt 0.301067 0.320593 +vt 0.731732 0.256960 +vt 0.303021 0.261732 +vt 0.704345 0.216768 +vt 0.330844 0.219066 +vt 0.661997 0.182194 +vt 0.374475 0.183225 +vt 0.911671 0.402429 +vt 0.106400 0.432652 +vt 0.962901 0.344752 +vt 0.043968 0.367038 +vt 0.891780 0.036916 +vt 0.142277 0.021467 +vt 0.672384 0.022201 +vt 0.365979 0.020991 +vt 0.518922 0.024886 +vt 0.567460 0.000144 +vt 0.470636 0.000144 +vt 0.626908 0.015608 +vt 0.411318 0.015131 +vt 0.649444 0.022378 +vt 0.388827 0.021586 +vt 0.775601 0.240649 +vt 0.255850 0.244822 +vt 0.807441 0.229424 +vt 0.221295 0.233026 +vt 0.842355 0.195160 +vt 0.620420 0.565675 +vt 0.176788 0.196179 +vt 0.145041 0.562595 +vt 0.914482 0.182608 +vt 0.102735 0.178481 +vt 0.757521 0.190511 +vt 0.274623 0.191243 +vt 0.785486 0.152330 +vt 0.391039 0.611891 +vt 0.245969 0.151002 +vt 0.369913 0.610196 +vt 0.837382 0.156361 +vt 0.498072 0.552315 +vt 0.196622 0.155241 +vt 0.264218 0.550140 +vt 0.890415 0.123857 +vt 0.135898 0.114680 +vt 0.623168 0.102506 +vt 0.414200 0.102306 +vt 0.651276 0.069444 +vt 0.386183 0.068753 +vt 0.575664 0.057224 +vt 0.462196 0.057073 +vt 0.603287 0.075214 +vt 0.434381 0.074971 +vt 0.558344 0.052733 +vt 0.479556 0.052645 +vt 0.577887 0.035813 +vt 0.460069 0.035651 +vt 0.618571 0.049232 +vt 0.419250 0.048811 +vt 0.548657 0.041550 +vt 0.489258 0.041490 +vt 0.638348 0.126687 +vt 0.398640 0.126669 +vt 0.627238 0.151895 +vt 0.409904 0.152326 +vt 0.626085 0.165130 +vt 0.411126 0.165771 +vt 0.691720 0.082104 +vt 0.344998 0.080731 +vt 0.785165 0.079197 +vt 0.249731 0.074555 +vt 0.852414 0.095350 +vt 0.179441 0.087122 +vt 0.919781 0.250393 +vt 0.094028 0.256004 +vt 0.900259 0.301403 +vt 0.116648 0.315086 +vt 0.862833 0.339954 +vt 0.160617 0.358419 +vt 0.808408 0.367445 +vt 0.223795 0.387323 +vt 0.775396 0.290931 +vt 0.257300 0.299594 +vt 0.789894 0.319390 +vt 0.242397 0.331861 +vt 0.838944 0.297106 +vt 0.186723 0.308849 +vt 0.816518 0.272015 +vt 0.211626 0.280144 +vt 0.844835 0.250500 +vt 0.179686 0.256768 +vt 0.869948 0.269424 +vt 0.151188 0.278189 +vt 0.882625 0.234204 +vt 0.136353 0.238288 +vt 0.858623 0.227701 +vt 0.162853 0.231387 +vt 0.874586 0.186701 +vt 0.146523 0.185305 +vt 0.851624 0.137928 +vt 0.177710 0.133044 +vt 0.391747 0.862097 +vt 0.829287 0.219562 +vt 0.363377 0.861308 +vt 0.199067 0.222464 +vt 0.051216 0.522659 +vt 0.711304 0.140850 +vt 0.323756 0.140459 +vt 0.786328 0.123629 +vt 0.246719 0.120879 +vt 0.432388 0.894943 +vt 0.740843 0.572428 +vt 0.834578 0.206879 +vt 0.321637 0.893225 +vt 0.033664 0.564403 +vt 0.449485 0.657000 +vt 0.310643 0.654046 +vt 0.509841 0.697759 +vt 0.249234 0.693240 +vt 0.563906 0.739644 +vt 0.193912 0.733664 +vt 0.619962 0.791615 +vt 0.136063 0.784093 +vt 0.604825 0.879946 +vt 0.707492 0.759884 +vt 0.148729 0.873349 +vt 0.049526 0.748824 +vt 0.506166 0.904851 +vt 0.745511 0.652100 +vt 0.247207 0.901159 +vt 0.019409 0.639749 +vt 0.499539 0.874122 +vt 0.254720 0.870450 +vt 0.564202 0.850664 +vt 0.190405 0.845065 +vt 0.580250 0.795789 +vt 0.175863 0.789490 +vt 0.548885 0.748691 +vt 0.208705 0.743163 +vt 0.500162 0.712902 +vt 0.258509 0.708654 +vt 0.444156 0.685466 +vt 0.315307 0.682602 +vt 0.443966 0.866254 +vt 0.310781 0.864072 +vt 0.459943 0.839570 +vt 0.295454 0.836826 +vt 0.456395 0.706675 +vt 0.302521 0.703548 +vt 0.502535 0.728973 +vt 0.255704 0.724688 +vt 0.541163 0.756823 +vt 0.216222 0.751532 +vt 0.562502 0.789894 +vt 0.193863 0.784084 +vt 0.550068 0.825831 +vt 0.205318 0.820519 +vt 0.503419 0.844016 +vt 0.251660 0.840096 +vt 0.401605 0.841460 +vt 0.825107 0.209762 +vt 0.354026 0.840297 +vt 0.199767 0.214827 +vt 0.416647 0.784180 +vt 0.340415 0.782343 +vt 0.413477 0.749613 +vt 0.344485 0.747713 +vt 0.426439 0.741264 +vt 0.331688 0.739001 +vt 0.427637 0.727671 +vt 0.330829 0.725330 +vt 0.432605 0.713610 +vt 0.326197 0.711102 +vt 0.788553 0.192382 +vt 0.241315 0.192476 +vt 0.394766 0.686125 +vt 0.796021 0.176969 +vt 0.364838 0.684445 +vt 0.233625 0.175620 +vt 0.384658 0.710299 +vt 0.802192 0.184609 +vt 0.374400 0.708969 +vt 0.226485 0.183086 +vt 0.384657 0.795423 +vt 0.816266 0.203086 +vt 0.372270 0.794472 +vt 0.209828 0.206161 +vt 0.431615 0.817632 +vt 0.324502 0.815550 +vt 0.451811 0.802386 +vt 0.304625 0.799698 +vt 0.444549 0.723066 +vt 0.313980 0.720287 +vt 0.445360 0.734927 +vt 0.312864 0.732161 +vt 0.437927 0.749013 +vt 0.319962 0.746483 +vt 0.427225 0.757716 +vt 0.330479 0.755494 +vt 0.436386 0.777602 +vt 0.320766 0.775220 +vt 0.511215 0.824963 +vt 0.244360 0.820741 +vt 0.541040 0.811919 +vt 0.214780 0.806804 +vt 0.546147 0.788922 +vt 0.210310 0.783576 +vt 0.531671 0.766931 +vt 0.225460 0.761934 +vt 0.501728 0.744462 +vt 0.256098 0.740235 +vt 0.462564 0.723199 +vt 0.295912 0.719956 +vt 0.476448 0.820892 +vt 0.279386 0.817614 +vt 0.454532 0.763737 +vt 0.302918 0.760827 +vt 0.465931 0.746865 +vt 0.291922 0.743601 +vt 0.488869 0.767274 +vt 0.268377 0.763461 +vt 0.473242 0.784433 +vt 0.283593 0.781099 +vt 0.493253 0.801362 +vt 0.263049 0.797547 +vt 0.507689 0.784426 +vt 0.249030 0.780152 +vt 0.522598 0.793066 +vt 0.233828 0.788400 +vt 0.517518 0.807560 +vt 0.238518 0.803091 +vt 0.662037 0.669246 +vt 0.099330 0.661402 +vt 0.650797 0.733263 +vt 0.107361 0.724567 +vt 0.620321 0.755014 +vt 0.136930 0.747279 +vt 0.590552 0.728580 +vt 0.167610 0.721786 +vt 0.556316 0.682330 +vt 0.203366 0.676789 +vt 0.514798 0.626547 +vt 0.246506 0.622959 +vt 0.834705 0.206959 +vt 0.671403 0.592656 +vt 0.116470 0.596802 +vt 0.896347 0.578250 +vt 0.881001 0.586218 +vt 0.866682 0.578023 +vt 0.882727 0.559995 +vt 0.878844 0.851672 +vt 0.863615 0.832949 +vt 0.878283 0.825398 +vt 0.893260 0.834040 +vt 0.909840 0.547939 +vt 0.858573 0.546708 +vt 0.886592 0.523054 +vt 0.881065 0.888748 +vt 0.854123 0.863874 +vt 0.905395 0.864920 +vt 0.845255 0.575016 +vt 0.819402 0.582969 +vt 0.825750 0.545549 +vt 0.821281 0.863575 +vt 0.816601 0.825909 +vt 0.842076 0.835003 +vt 0.860527 0.594711 +vt 0.845037 0.598894 +vt 0.842917 0.811139 +vt 0.858207 0.816005 +vt 0.851581 0.614788 +vt 0.844036 0.628645 +vt 0.828470 0.611908 +vt 0.826944 0.797402 +vt 0.843238 0.781373 +vt 0.850161 0.795550 +vt 0.815815 0.637531 +vt 0.794750 0.607489 +vt 0.793061 0.800320 +vt 0.815439 0.771243 +vt 0.841710 0.650974 +vt 0.852019 0.678441 +vt 0.816688 0.673967 +vt 0.817929 0.734882 +vt 0.853423 0.731981 +vt 0.841906 0.758962 +vt 0.858924 0.635509 +vt 0.863472 0.651419 +vt 0.863666 0.759484 +vt 0.858416 0.775176 +vt 0.878900 0.644609 +vt 0.893948 0.651418 +vt 0.878518 0.667628 +vt 0.879417 0.743958 +vt 0.894112 0.760838 +vt 0.878776 0.766972 +vt 0.906773 0.677500 +vt 0.880628 0.701094 +vt 0.883010 0.710619 +vt 0.908082 0.735350 +vt 0.916779 0.651601 +vt 0.944430 0.638750 +vt 0.943645 0.672515 +vt 0.944697 0.741967 +vt 0.943982 0.775733 +vt 0.916928 0.761668 +vt 0.899928 0.636635 +vt 0.915741 0.630680 +vt 0.914963 0.782522 +vt 0.899430 0.775872 +vt 0.908961 0.616500 +vt 0.916674 0.600453 +vt 0.932989 0.614319 +vt 0.931467 0.799633 +vt 0.914553 0.812760 +vt 0.907560 0.796387 +vt 0.945268 0.585710 +vt 0.968392 0.609573 +vt 0.966626 0.805946 +vt 0.942464 0.828758 +vt 0.918960 0.576259 +vt 0.944279 0.549179 +vt 0.939855 0.865210 +vt 0.915763 0.837033 +vt 0.901063 0.595260 +vt 0.898727 0.817256 +vt 0.889516 0.593986 +vt 0.901897 0.607554 +vt 0.894036 0.602422 +vt 0.892025 0.809789 +vt 0.900106 0.805011 +vt 0.887135 0.818016 +vt 0.900979 0.625755 +vt 0.898815 0.616899 +vt 0.897441 0.795538 +vt 0.899997 0.786788 +vt 0.888172 0.637293 +vt 0.892510 0.629815 +vt 0.891716 0.782355 +vt 0.887714 0.774693 +vt 0.870394 0.636697 +vt 0.879335 0.634158 +vt 0.878747 0.777432 +vt 0.869928 0.774499 +vt 0.858836 0.624049 +vt 0.866648 0.628442 +vt 0.865819 0.782580 +vt 0.857819 0.786621 +vt 0.859189 0.606926 +vt 0.861665 0.615920 +vt 0.860285 0.794867 +vt 0.857412 0.803743 +vt 0.871904 0.593995 +vt 0.867135 0.602587 +vt 0.865157 0.808431 +vt 0.869540 0.817225 +vt 0.880515 0.596288 +vt 0.878245 0.815317 +vt 0.884844 0.604522 +vt 0.875527 0.604704 +vt 0.882935 0.807283 +vt 0.873635 0.806688 +vt 0.869125 0.611719 +vt 0.867551 0.799396 +vt 0.869080 0.620377 +vt 0.867890 0.790744 +vt 0.875045 0.626475 +vt 0.874120 0.784917 +vt 0.883862 0.627033 +vt 0.882953 0.784751 +vt 0.890426 0.621326 +vt 0.889258 0.790744 +vt 0.891241 0.611825 +vt 0.889650 0.800271 +vt 0.529631 0.050623 +vt 0.536535 0.057879 +vt 0.526890 0.060774 +vt 0.518927 0.055691 +vt 0.510970 0.060761 +vt 0.501338 0.057849 +vt 0.508233 0.050605 +vt 0.545785 0.055839 +vt 0.546344 0.061772 +vt 0.538530 0.063428 +vt 0.499341 0.063394 +vt 0.491532 0.061722 +vt 0.492101 0.055788 +vt 0.554370 0.061003 +vt 0.551211 0.068711 +vt 0.543713 0.069216 +vt 0.494151 0.069174 +vt 0.486651 0.068653 +vt 0.483508 0.060931 +vt 0.563458 0.071240 +vt 0.557931 0.084403 +vt 0.546863 0.079495 +vt 0.490984 0.079456 +vt 0.479886 0.084355 +vt 0.474372 0.071151 +vt 0.577462 0.094907 +vt 0.568996 0.113937 +vt 0.552345 0.102867 +vt 0.485469 0.102860 +vt 0.468739 0.113956 +vt 0.460245 0.094849 +vt 0.588058 0.187766 +vt 0.623047 0.187743 +vt 0.631501 0.214704 +vt 0.594357 0.218252 +vt 0.443837 0.219371 +vt 0.406048 0.216285 +vt 0.414343 0.188719 +vt 0.449840 0.188379 +vt 0.661634 0.218648 +vt 0.669352 0.243047 +vt 0.642758 0.238051 +vt 0.394962 0.240367 +vt 0.367747 0.246009 +vt 0.375257 0.220712 +vt 0.694549 0.250377 +vt 0.694356 0.273882 +vt 0.673393 0.263696 +vt 0.364084 0.267449 +vt 0.342672 0.278583 +vt 0.341787 0.254143 +vt 0.709708 0.288269 +vt 0.696214 0.307158 +vt 0.686045 0.292850 +vt 0.351971 0.298013 +vt 0.342024 0.313257 +vt 0.327263 0.294105 +vt 0.703127 0.321595 +vt 0.683130 0.331390 +vt 0.681963 0.316290 +vt 0.357108 0.322086 +vt 0.356562 0.337640 +vt 0.335540 0.328548 +vt 0.680763 0.352705 +vt 0.652699 0.362077 +vt 0.659778 0.339674 +vt 0.380834 0.345038 +vt 0.389068 0.367559 +vt 0.359988 0.359341 +vt 0.646588 0.383692 +vt 0.624369 0.382277 +vt 0.631130 0.363764 +vt 0.411090 0.368295 +vt 0.418777 0.386757 +vt 0.396305 0.389243 +vt 0.616649 0.397524 +vt 0.598554 0.385158 +vt 0.609946 0.373678 +vt 0.432989 0.377406 +vt 0.444987 0.388508 +vt 0.427300 0.401819 +vt 0.579428 0.395873 +vt 0.558704 0.375066 +vt 0.581079 0.367396 +vt 0.461826 0.369847 +vt 0.484640 0.376617 +vt 0.464721 0.398442 +vt 0.538479 0.389775 +vt 0.521556 0.367820 +vt 0.544171 0.352749 +vt 0.498315 0.353629 +vt 0.505556 0.390492 +vt 0.569092 0.348101 +vt 0.587796 0.344190 +vt 0.597887 0.358983 +vt 0.444540 0.362048 +vt 0.454122 0.346710 +vt 0.473112 0.349926 +vt 0.607884 0.346775 +vt 0.617653 0.356946 +vt 0.424468 0.360799 +vt 0.433930 0.350106 +vt 0.625350 0.340085 +vt 0.639250 0.342857 +vt 0.401924 0.347395 +vt 0.415948 0.344013 +vt 0.648512 0.324580 +vt 0.665775 0.320611 +vt 0.373904 0.325811 +vt 0.391720 0.329150 +vt 0.665696 0.307180 +vt 0.676135 0.302669 +vt 0.362572 0.307806 +vt 0.373470 0.312032 +vt 0.666991 0.289167 +vt 0.671333 0.278721 +vt 0.366673 0.282920 +vt 0.371500 0.293541 +vt 0.653522 0.266836 +vt 0.650181 0.254219 +vt 0.387724 0.257119 +vt 0.384642 0.270171 +vt 0.628187 0.249231 +vt 0.614893 0.237670 +vt 0.423379 0.239439 +vt 0.410114 0.251496 +vt 0.593202 0.247673 +vt 0.568739 0.237235 +vt 0.470159 0.238137 +vt 0.445633 0.249136 +vt 0.565207 0.260673 +vt 0.543818 0.260934 +vt 0.540998 0.229554 +vt 0.498061 0.229884 +vt 0.495841 0.261492 +vt 0.474279 0.261694 +vt 0.565631 0.330152 +vt 0.543500 0.327712 +vt 0.498076 0.328478 +vt 0.475936 0.331730 +vt 0.554259 0.306129 +vt 0.520594 0.314908 +vt 0.538779 0.293753 +vt 0.501737 0.294276 +vt 0.486569 0.307165 +vt 0.520025 0.274574 +vt 0.555605 0.280786 +vt 0.484474 0.281720 +vt 0.530010 0.065670 +vt 0.522924 0.067551 +vt 0.518928 0.064208 +vt 0.514934 0.067544 +vt 0.507853 0.065651 +vt 0.536401 0.070107 +vt 0.529745 0.070499 +vt 0.508115 0.070482 +vt 0.501461 0.070079 +vt 0.538634 0.079398 +vt 0.532695 0.078622 +vt 0.505158 0.078602 +vt 0.499218 0.079369 +vt 0.544371 0.123175 +vt 0.533457 0.109105 +vt 0.540811 0.092572 +vt 0.497031 0.092555 +vt 0.504398 0.109107 +vt 0.493474 0.123201 +vt 0.532234 0.088149 +vt 0.505613 0.088134 +vt 0.536201 0.141054 +vt 0.527931 0.152199 +vt 0.518960 0.140483 +vt 0.526211 0.126476 +vt 0.511673 0.126484 +vt 0.510024 0.152222 +vt 0.501703 0.141090 +vt 0.525683 0.097155 +vt 0.518933 0.110934 +vt 0.512170 0.097151 +vt 0.518925 0.090132 +vt 0.524936 0.086729 +vt 0.512913 0.086722 +vt 0.544497 0.165579 +vt 0.541877 0.175314 +vt 0.536621 0.171055 +vt 0.534975 0.162976 +vt 0.503019 0.163027 +vt 0.501413 0.171114 +vt 0.496189 0.175396 +vt 0.493497 0.165677 +vt 0.546062 0.184000 +vt 0.538519 0.189136 +vt 0.538068 0.181732 +vt 0.500037 0.181769 +vt 0.499767 0.189164 +vt 0.492116 0.184122 +vt 0.532432 0.200255 +vt 0.525612 0.194282 +vt 0.532342 0.189778 +vt 0.505854 0.189727 +vt 0.512801 0.194237 +vt 0.506363 0.200300 +vt 0.518962 0.193962 +vt 0.518813 0.190611 +vt 0.523084 0.188878 +vt 0.514925 0.188826 +vt 0.518991 0.157386 +vt 0.526756 0.162909 +vt 0.511248 0.162933 +vt 0.519010 0.164691 +vt 0.531195 0.169102 +vt 0.525292 0.169323 +vt 0.512753 0.169343 +vt 0.506835 0.169140 +vt 0.519060 0.184477 +vt 0.525012 0.183260 +vt 0.527986 0.187509 +vt 0.510081 0.187439 +vt 0.513089 0.183233 +vt 0.530394 0.184704 +vt 0.534295 0.184896 +vt 0.503793 0.184884 +vt 0.507667 0.184674 +vt 0.532439 0.180950 +vt 0.535149 0.176736 +vt 0.502913 0.176781 +vt 0.505636 0.180964 +vt 0.530712 0.173517 +vt 0.507344 0.173554 +vt 0.526578 0.177856 +vt 0.511521 0.177871 +vt 0.519046 0.173265 +vt 0.519598 0.218434 +vt 0.546187 0.200433 +vt 0.492308 0.200655 +vt 0.553574 0.172559 +vt 0.563121 0.183615 +vt 0.474979 0.183937 +vt 0.484455 0.172734 +vt 0.549340 0.151608 +vt 0.563761 0.156937 +vt 0.474094 0.157109 +vt 0.488561 0.151700 +vt 0.559067 0.133966 +vt 0.478736 0.134039 +vt 0.590405 0.123016 +vt 0.577263 0.139872 +vt 0.460433 0.140014 +vt 0.447168 0.123084 +vt 0.596750 0.143221 +vt 0.580619 0.160023 +vt 0.457137 0.160301 +vt 0.440780 0.143450 +vt 0.599599 0.161681 +vt 0.437984 0.162099 +vt 0.528347 0.083894 +vt 0.518925 0.085125 +vt 0.523542 0.083760 +vt 0.514308 0.083755 +vt 0.509503 0.083882 +vt 0.529350 0.075546 +vt 0.528277 0.079832 +vt 0.509575 0.079820 +vt 0.508505 0.075531 +vt 0.524733 0.070302 +vt 0.526038 0.073354 +vt 0.511818 0.073344 +vt 0.513124 0.070293 +vt 0.518929 0.068969 +vt 0.521305 0.070612 +vt 0.516552 0.070608 +vt 0.518929 0.072226 +vt 0.522769 0.073202 +vt 0.520659 0.074723 +vt 0.517198 0.074720 +vt 0.515088 0.073196 +vt 0.526063 0.076553 +vt 0.523661 0.075890 +vt 0.514195 0.075883 +vt 0.511792 0.076543 +vt 0.525430 0.081173 +vt 0.524718 0.078155 +vt 0.513136 0.078148 +vt 0.512422 0.081165 +vt 0.518926 0.081802 +vt 0.521750 0.079521 +vt 0.516102 0.079517 +vt 0.518927 0.077006 +vt 0.522657 0.077229 +vt 0.515198 0.077224 +vt 0.563413 0.292898 +vt 0.567802 0.275146 +vt 0.570011 0.285140 +vt 0.470084 0.286490 +vt 0.472034 0.276343 +vt 0.476959 0.294129 +vt 0.567255 0.314061 +vt 0.570197 0.302366 +vt 0.470416 0.303888 +vt 0.473757 0.315586 +vt 0.581486 0.331822 +vt 0.578410 0.320055 +vt 0.462715 0.322014 +vt 0.460026 0.333994 +vt 0.581026 0.261654 +vt 0.576446 0.271679 +vt 0.463208 0.273055 +vt 0.458308 0.263019 +vt 0.610831 0.252622 +vt 0.596469 0.260651 +vt 0.442639 0.262363 +vt 0.427869 0.254545 +vt 0.636261 0.260038 +vt 0.622487 0.258857 +vt 0.416164 0.261188 +vt 0.402142 0.262744 +vt 0.655922 0.278709 +vt 0.643415 0.271285 +vt 0.395135 0.274453 +vt 0.382539 0.282425 +vt 0.661161 0.297148 +vt 0.655209 0.288712 +vt 0.383597 0.292669 +vt 0.377767 0.301543 +vt 0.654216 0.312197 +vt 0.654610 0.303672 +vt 0.384718 0.308001 +vt 0.385419 0.316721 +vt 0.633330 0.327230 +vt 0.641191 0.317262 +vt 0.398913 0.321395 +vt 0.407308 0.331256 +vt 0.615388 0.336441 +vt 0.622213 0.328502 +vt 0.418665 0.332128 +vt 0.425906 0.339930 +vt 0.599622 0.338489 +vt 0.607665 0.333437 +vt 0.433616 0.336594 +vt 0.441953 0.341405 +vt 0.592773 0.331301 +vt 0.448607 0.333883 +vt 0.601197 0.329954 +vt 0.588067 0.323500 +vt 0.596222 0.324985 +vt 0.444890 0.327625 +vt 0.453083 0.325833 +vt 0.440035 0.332830 +vt 0.614125 0.328738 +vt 0.607567 0.327768 +vt 0.433498 0.330845 +vt 0.426884 0.332067 +vt 0.629167 0.321287 +vt 0.620093 0.323798 +vt 0.420636 0.327267 +vt 0.411317 0.325045 +vt 0.646757 0.308666 +vt 0.636550 0.313467 +vt 0.403515 0.317343 +vt 0.392929 0.312821 +vt 0.652083 0.296313 +vt 0.647895 0.301323 +vt 0.391522 0.305347 +vt 0.387058 0.300363 +vt 0.648131 0.281529 +vt 0.648663 0.289856 +vt 0.390351 0.293627 +vt 0.390622 0.285083 +vt 0.631331 0.266526 +vt 0.638807 0.275375 +vt 0.399967 0.278515 +vt 0.407344 0.269254 +vt 0.610662 0.261063 +vt 0.621235 0.264412 +vt 0.417574 0.266826 +vt 0.428244 0.263138 +vt 0.586165 0.268811 +vt 0.598904 0.266276 +vt 0.440312 0.268138 +vt 0.453294 0.270393 +vt 0.575821 0.280051 +vt 0.581645 0.276446 +vt 0.458084 0.278012 +vt 0.464073 0.281506 +vt 0.577406 0.310010 +vt 0.585096 0.315428 +vt 0.455806 0.317576 +vt 0.463390 0.311840 +vt 0.573736 0.293833 +vt 0.578536 0.301558 +vt 0.461979 0.303333 +vt 0.466582 0.295378 +vt 0.577824 0.287838 +vt 0.462276 0.289437 +vt 0.522495 0.410845 +vt 0.556798 0.412144 +vt 0.538120 0.433346 +vt 0.817852 0.456726 +vt 0.507920 0.434083 +vt 0.217577 0.490396 +vt 0.488206 0.413736 +vt 0.603660 0.413378 +vt 0.581514 0.432290 +vt 0.793215 0.444821 +vt 0.464335 0.435139 +vt 0.245312 0.475251 +vt 0.441155 0.417188 +vt 0.639259 0.404564 +vt 0.628997 0.425416 +vt 0.763136 0.431432 +vt 0.416189 0.430578 +vt 0.279199 0.458114 +vt 0.404768 0.410036 +vt 0.676825 0.377960 +vt 0.670140 0.403795 +vt 0.762943 0.399071 +vt 0.373405 0.410823 +vt 0.277578 0.420825 +vt 0.365271 0.384915 +vt 0.708272 0.339840 +vt 0.709219 0.365014 +vt 0.759864 0.357111 +vt 0.331524 0.373409 +vt 0.278153 0.372617 +vt 0.331161 0.347596 +vt 0.720519 0.307457 +vt 0.731106 0.326933 +vt 0.742711 0.323398 +vt 0.306912 0.335591 +vt 0.294625 0.333545 +vt 0.316865 0.314726 +vt 0.717152 0.263123 +vt 0.736095 0.282280 +vt 0.299384 0.288753 +vt 0.318582 0.267986 +vt 0.688717 0.225966 +vt 0.720339 0.235366 +vt 0.314404 0.238732 +vt 0.347339 0.228601 +vt 0.653282 0.194646 +vt 0.686267 0.199822 +vt 0.349511 0.201381 +vt 0.383529 0.195983 +vt 0.620926 0.032182 +vt 0.638176 0.018993 +vt 0.400073 0.018359 +vt 0.653051 0.046239 +vt 0.636373 0.060103 +vt 0.401276 0.059549 +vt 0.384754 0.045446 +vt 0.417076 0.031729 +vt 0.574078 0.021154 +vt 0.597184 0.007876 +vt 0.440977 0.007638 +vt 0.598157 0.040354 +vt 0.439766 0.040074 +vt 0.463939 0.021033 +vt 0.538109 0.033597 +vt 0.543191 0.012515 +vt 0.494779 0.012515 +vt 0.560810 0.036858 +vt 0.477134 0.036765 +vt 0.499793 0.033565 +vt 0.542106 0.047431 +vt 0.518930 0.040271 +vt 0.495787 0.047387 +vt 0.554901 0.055359 +vt 0.555160 0.048398 +vt 0.482750 0.048319 +vt 0.482991 0.055283 +vt 0.567592 0.061923 +vt 0.564923 0.053872 +vt 0.472970 0.053762 +vt 0.470263 0.061806 +vt 0.586898 0.079500 +vt 0.589374 0.064332 +vt 0.448411 0.064127 +vt 0.450813 0.079348 +vt 0.578896 0.048201 +vt 0.613594 0.064535 +vt 0.424111 0.064192 +vt 0.459003 0.048033 +vt 0.640436 0.089230 +vt 0.614697 0.088950 +vt 0.422820 0.088712 +vt 0.396893 0.088778 +vt 0.603499 0.107667 +vt 0.433994 0.107606 +vt 0.612348 0.130817 +vt 0.632314 0.142577 +vt 0.612469 0.148446 +vt 0.424899 0.148790 +vt 0.404708 0.142842 +vt 0.424994 0.130947 +vt 0.629477 0.113643 +vt 0.407758 0.113503 +vt 0.618892 0.166495 +vt 0.624256 0.158448 +vt 0.412968 0.158979 +vt 0.418443 0.167115 +vt 0.638168 0.173282 +vt 0.398840 0.174104 +vt 0.918840 0.058243 +vt 0.110619 0.041093 +vt 0.915321 0.106557 +vt 0.874172 0.106280 +vt 0.867162 0.069120 +vt 0.165455 0.057945 +vt 0.155459 0.096940 +vt 0.109722 0.093613 +vt 0.848682 0.023851 +vt 0.187463 0.012476 +vt 0.822966 0.085900 +vt 0.790796 0.049165 +vt 0.245424 0.043159 +vt 0.210591 0.079375 +vt 0.738984 0.016494 +vt 0.299314 0.012238 +vt 0.740019 0.077670 +vt 0.692735 0.049429 +vt 0.344751 0.047620 +vt 0.295904 0.074797 +vt 0.660914 0.022290 +vt 0.377403 0.021289 +vt 0.665509 0.074986 +vt 0.371751 0.074100 +vt 0.662974 0.106001 +vt 0.373850 0.105458 +vt 0.753191 0.248572 +vt 0.728270 0.204812 +vt 0.767740 0.216745 +vt 0.263803 0.219071 +vt 0.305536 0.206502 +vt 0.279982 0.253072 +vt 0.970213 0.123637 +vt 0.045395 0.108043 +vt 0.948445 0.176259 +vt 0.904053 0.150177 +vt 0.117619 0.142732 +vt 0.064606 0.169112 +vt 0.937286 0.373591 +vt 0.075184 0.399845 +vt 0.883895 0.369265 +vt 0.884277 0.321936 +vt 0.927663 0.320667 +vt 0.085021 0.337833 +vt 0.135491 0.338458 +vt 0.137281 0.392982 +vt 0.981379 0.299696 +vt 0.022056 0.313076 +vt 0.912582 0.278089 +vt 0.953507 0.254112 +vt 0.054903 0.259502 +vt 0.102189 0.288134 +vt 0.997191 0.211173 +vt 0.005987 0.207240 +vt 0.920177 0.217443 +vt 0.094363 0.217999 +vt 0.768822 0.328799 +vt 0.755701 0.299466 +vt 0.781218 0.305960 +vt 0.251365 0.316433 +vt 0.279093 0.308055 +vt 0.266340 0.341244 +vt 0.814864 0.308831 +vt 0.796528 0.281813 +vt 0.826931 0.284637 +vt 0.200016 0.294492 +vt 0.233856 0.290350 +vt 0.214073 0.321143 +vt 0.857117 0.283970 +vt 0.832662 0.261797 +vt 0.856952 0.260042 +vt 0.165917 0.267485 +vt 0.193587 0.269178 +vt 0.165962 0.294498 +vt 0.878799 0.253264 +vt 0.853506 0.237939 +vt 0.868810 0.229589 +vt 0.151642 0.233304 +vt 0.169275 0.242806 +vt 0.140919 0.259872 +vt 0.852996 0.214930 +vt 0.859205 0.189996 +vt 0.880527 0.211381 +vt 0.138699 0.212655 +vt 0.162328 0.189770 +vt 0.168233 0.217287 +vt 0.891342 0.185226 +vt 0.897877 0.242454 +vt 0.119168 0.247402 +vt 0.128411 0.182764 +vt 0.882650 0.283650 +vt 0.136794 0.294508 +vt 0.849426 0.315471 +vt 0.175293 0.329981 +vt 0.835225 0.355299 +vt 0.797448 0.339438 +vt 0.234928 0.354874 +vt 0.192710 0.374776 +vt 0.788609 0.375951 +vt 0.246761 0.395909 +vt 0.878585 0.426198 +vt 0.145841 0.458376 +vt 0.826781 0.402975 +vt 0.204444 0.429023 +vt 0.792533 0.414220 +vt 0.244366 0.439983 +vt 0.822977 0.439153 +vt 0.210684 0.470420 +vt 0.832672 0.459019 +vt 0.200588 0.493852 +vt 0.775891 0.267404 +vt 0.256196 0.273846 +vt 0.792774 0.235534 +vt 0.811114 0.253581 +vt 0.217610 0.259562 +vt 0.237289 0.239443 +vt 0.820866 0.228877 +vt 0.835785 0.236203 +vt 0.190191 0.240759 +vt 0.206986 0.232834 +vt 0.837930 0.212198 +vt 0.187928 0.209322 +vt 0.098129 0.542627 +vt 0.705994 0.109885 +vt 0.784533 0.103360 +vt 0.751909 0.128786 +vt 0.282068 0.127232 +vt 0.249322 0.099756 +vt 0.329798 0.108802 +vt 0.772103 0.167966 +vt 0.735926 0.167047 +vt 0.787839 0.141361 +vt 0.244560 0.139450 +vt 0.297723 0.167123 +vt 0.259645 0.167397 +vt 0.685759 0.166244 +vt 0.349935 0.166770 +vt 0.645105 0.163152 +vt 0.670538 0.133859 +vt 0.365713 0.133752 +vt 0.391711 0.163784 +vt 0.839869 0.175761 +vt 0.559246 0.558995 +vt 0.840186 0.151312 +vt 0.866488 0.162447 +vt 0.158421 0.158956 +vt 0.190061 0.148630 +vt 0.186705 0.175710 +vt 0.204630 0.556368 +vt 0.872606 0.134179 +vt 0.154902 0.127387 +vt 0.811434 0.154346 +vt 0.444556 0.582103 +vt 0.819475 0.126995 +vt 0.212383 0.123090 +vt 0.221296 0.153122 +vt 0.317066 0.580168 +vt 0.847824 0.115848 +vt 0.183180 0.109416 +vt 0.503242 0.887871 +vt 0.469277 0.899897 +vt 0.743177 0.612264 +vt 0.439482 0.879416 +vt 0.469003 0.873295 +vt 0.285428 0.870463 +vt 0.314929 0.877422 +vt 0.284422 0.897192 +vt 0.026537 0.602076 +vt 0.250616 0.884165 +vt 0.555496 0.892399 +vt 0.726502 0.705992 +vt 0.534413 0.867117 +vt 0.577677 0.861753 +vt 0.176544 0.855826 +vt 0.219872 0.862437 +vt 0.197968 0.887254 +vt 0.034468 0.694287 +vt 0.612394 0.835781 +vt 0.663727 0.775750 +vt 0.579630 0.824752 +vt 0.594213 0.796642 +vt 0.161805 0.789933 +vt 0.175648 0.818593 +vt 0.142396 0.828721 +vt 0.092795 0.766459 +vt 0.589345 0.762975 +vt 0.568419 0.770279 +vt 0.555736 0.744636 +vt 0.201951 0.738903 +vt 0.188483 0.764240 +vt 0.167695 0.756291 +vt 0.538094 0.718190 +vt 0.526002 0.729959 +vt 0.502537 0.705262 +vt 0.256334 0.700942 +vt 0.232165 0.725040 +vt 0.220390 0.712918 +vt 0.478584 0.677534 +vt 0.471634 0.697120 +vt 0.442215 0.671914 +vt 0.317561 0.669089 +vt 0.287492 0.693586 +vt 0.281043 0.673819 +vt 0.500799 0.721082 +vt 0.478438 0.715278 +vt 0.450203 0.697137 +vt 0.308967 0.694144 +vt 0.280208 0.711599 +vt 0.257653 0.716829 +vt 0.544258 0.752732 +vt 0.523665 0.742762 +vt 0.234156 0.737931 +vt 0.213232 0.747344 +vt 0.570240 0.792859 +vt 0.554893 0.772408 +vt 0.202003 0.766764 +vt 0.186005 0.786839 +vt 0.555533 0.837984 +vt 0.561374 0.808768 +vt 0.194452 0.803063 +vt 0.199480 0.832573 +vt 0.499999 0.858604 +vt 0.528822 0.837834 +vt 0.226317 0.833175 +vt 0.254690 0.854846 +vt 0.451223 0.852362 +vt 0.479919 0.844388 +vt 0.275256 0.841120 +vt 0.303868 0.849915 +vt 0.778217 0.192871 +vt 0.790754 0.164650 +vt 0.392903 0.649008 +vt 0.789259 0.181741 +vt 0.240716 0.180943 +vt 0.239797 0.163311 +vt 0.367376 0.647321 +vt 0.252507 0.193316 +vt 0.425767 0.635650 +vt 0.420671 0.680947 +vt 0.338943 0.678648 +vt 0.334793 0.633335 +vt 0.795563 0.208848 +vt 0.233810 0.210443 +vt 0.412068 0.878520 +vt 0.831933 0.213221 +vt 0.396676 0.851779 +vt 0.827197 0.214662 +vt 0.423074 0.854730 +vt 0.332089 0.853056 +vt 0.358702 0.850803 +vt 0.199417 0.218646 +vt 0.342507 0.877267 +vt 0.042440 0.543531 +vt 0.441223 0.707419 +vt 0.418054 0.702412 +vt 0.341073 0.700226 +vt 0.317711 0.704681 +vt 0.428815 0.720446 +vt 0.410785 0.720996 +vt 0.389712 0.698212 +vt 0.799107 0.180789 +vt 0.369619 0.696707 +vt 0.230055 0.179353 +vt 0.347908 0.719053 +vt 0.329828 0.718052 +vt 0.419760 0.742959 +vt 0.403090 0.738535 +vt 0.427059 0.735523 +vt 0.331211 0.733225 +vt 0.355190 0.736855 +vt 0.338348 0.740872 +vt 0.412842 0.764844 +vt 0.402753 0.787081 +vt 0.384658 0.752861 +vt 0.809229 0.193848 +vt 0.373335 0.751721 +vt 0.218157 0.194624 +vt 0.354294 0.785622 +vt 0.344732 0.763023 +vt 0.418795 0.827665 +vt 0.393131 0.818442 +vt 0.820687 0.206424 +vt 0.422802 0.802164 +vt 0.333764 0.800245 +vt 0.363148 0.817385 +vt 0.204798 0.210494 +vt 0.337116 0.825974 +vt 0.443879 0.830357 +vt 0.311841 0.828006 +vt 0.811969 0.213107 +vt 0.215610 0.215928 +vt 0.796242 0.189981 +vt 0.232899 0.189619 +vt 0.468201 0.829700 +vt 0.441961 0.809870 +vt 0.462696 0.812987 +vt 0.293411 0.810050 +vt 0.314317 0.807477 +vt 0.287428 0.826686 +vt 0.427277 0.781602 +vt 0.443343 0.790299 +vt 0.313449 0.787786 +vt 0.329807 0.779475 +vt 0.421352 0.755005 +vt 0.430475 0.765576 +vt 0.327013 0.763300 +vt 0.336442 0.752924 +vt 0.431514 0.744595 +vt 0.431645 0.753908 +vt 0.326140 0.751558 +vt 0.326511 0.742215 +vt 0.437751 0.731694 +vt 0.442940 0.742346 +vt 0.315103 0.739666 +vt 0.320580 0.729112 +vt 0.440439 0.719987 +vt 0.445047 0.728140 +vt 0.313350 0.725362 +vt 0.318179 0.717305 +vt 0.460060 0.714469 +vt 0.450206 0.721480 +vt 0.308347 0.718553 +vt 0.298648 0.711268 +vt 0.507612 0.833346 +vt 0.493072 0.824997 +vt 0.262579 0.821280 +vt 0.247746 0.829260 +vt 0.546373 0.817274 +vt 0.528587 0.820584 +vt 0.227039 0.815856 +vt 0.209273 0.812030 +vt 0.555446 0.788518 +vt 0.546607 0.800770 +vt 0.209509 0.795453 +vt 0.200986 0.782905 +vt 0.538068 0.761113 +vt 0.540941 0.777680 +vt 0.215856 0.772448 +vt 0.219206 0.755920 +vt 0.503465 0.736077 +vt 0.518703 0.756138 +vt 0.238766 0.751476 +vt 0.254583 0.731782 +vt 0.481361 0.732039 +vt 0.276841 0.728324 +vt 0.445728 0.755340 +vt 0.454782 0.739673 +vt 0.461938 0.756103 +vt 0.295687 0.752972 +vt 0.303291 0.736677 +vt 0.311972 0.752630 +vt 0.463772 0.773855 +vt 0.477646 0.756638 +vt 0.481568 0.776312 +vt 0.275457 0.772726 +vt 0.279916 0.753093 +vt 0.293379 0.770737 +vt 0.482934 0.794027 +vt 0.498813 0.776847 +vt 0.499632 0.792813 +vt 0.256881 0.788791 +vt 0.258143 0.772794 +vt 0.273607 0.790467 +vt 0.504672 0.805610 +vt 0.515891 0.789667 +vt 0.520259 0.799106 +vt 0.236004 0.794528 +vt 0.240654 0.785180 +vt 0.251468 0.801494 +vt 0.513928 0.816510 +vt 0.485253 0.811116 +vt 0.270813 0.807558 +vt 0.241872 0.812178 +vt 0.462765 0.793509 +vt 0.293866 0.790492 +vt 0.445624 0.771257 +vt 0.311660 0.768608 +vt 0.465322 0.734917 +vt 0.292842 0.731633 +vt 0.496227 0.755757 +vt 0.261310 0.751711 +vt 0.519941 0.775250 +vt 0.236995 0.770605 +vt 0.533132 0.790820 +vt 0.223318 0.785848 +vt 0.531027 0.808817 +vt 0.224920 0.803973 +vt 0.525165 0.689932 +vt 0.471551 0.641448 +vt 0.533986 0.655417 +vt 0.226531 0.650851 +vt 0.289024 0.638180 +vt 0.234153 0.685031 +vt 0.573537 0.733365 +vt 0.575090 0.707013 +vt 0.183790 0.700745 +vt 0.184467 0.727088 +vt 0.621437 0.765901 +vt 0.605312 0.745594 +vt 0.152269 0.738340 +vt 0.135450 0.758162 +vt 0.677691 0.741010 +vt 0.635808 0.749981 +vt 0.121624 0.741714 +vt 0.080357 0.731271 +vt 0.705113 0.662631 +vt 0.659670 0.704618 +vt 0.099876 0.695964 +vt 0.057959 0.653021 +vt 0.706123 0.582542 +vt 0.834642 0.206919 +vt 0.660188 0.632224 +vt 0.105204 0.626959 +vt 0.069112 0.583140 +vt 0.607278 0.675536 +vt 0.582707 0.612627 +vt 0.182120 0.609508 +vt 0.153007 0.669026 +vt 0.619125 0.728415 +vt 0.139081 0.720753 +vt 0.838530 0.201060 +vt 0.645912 0.579166 +vt 0.131457 0.574067 +vt 0.504604 0.594956 +vt 0.257354 0.592122 +vt 0.881611 0.575125 +vt 0.878400 0.836507 +vt 0.884449 0.542614 +vt 0.879793 0.869113 +vt 0.835972 0.561317 +vt 0.832194 0.848276 +vt 0.853847 0.586450 +vt 0.851167 0.823962 +vt 0.841739 0.613574 +vt 0.840274 0.796326 +vt 0.812824 0.609855 +vt 0.811223 0.798759 +vt 0.830128 0.661567 +vt 0.830805 0.747866 +vt 0.851551 0.642107 +vt 0.851343 0.768258 +vt 0.878517 0.654471 +vt 0.878831 0.757103 +vt 0.879318 0.683121 +vt 0.880903 0.728516 +vt 0.929099 0.661362 +vt 0.929670 0.752463 +vt 0.906939 0.643081 +vt 0.906720 0.769743 +vt 0.919103 0.615721 +vt 0.917657 0.797616 +vt 0.949468 0.612185 +vt 0.947836 0.802496 +vt 0.930860 0.563528 +vt 0.927087 0.850279 +vt 0.908631 0.587254 +vt 0.905932 0.825590 +vt 0.897029 0.599464 +vt 0.894883 0.812876 +vt 0.903212 0.616842 +vt 0.901832 0.795790 +vt 0.895762 0.632844 +vt 0.895100 0.779473 +vt 0.879189 0.638681 +vt 0.878802 0.772907 +vt 0.863335 0.631517 +vt 0.862645 0.779360 +vt 0.857327 0.615518 +vt 0.855933 0.795076 +vt 0.864322 0.599298 +vt 0.862202 0.811591 +vt 0.880719 0.592082 +vt 0.878262 0.819528 +vt 0.880250 0.601545 +vt 0.878214 0.810053 +vt 0.870420 0.606296 +vt 0.868604 0.804870 +vt 0.866481 0.616122 +vt 0.865106 0.794879 +vt 0.870170 0.625153 +vt 0.869191 0.786021 +vt 0.879396 0.629307 +vt 0.878593 0.782281 +vt 0.888953 0.626244 +vt 0.888004 0.785765 +vt 0.893657 0.616800 +vt 0.892285 0.795408 +vt 0.890242 0.606081 +vt 0.888398 0.805965 +vt 0.528376 0.056369 +vt 0.509485 0.056353 +vt 0.542425 0.059639 +vt 0.495453 0.059597 +vt 0.548969 0.064623 +vt 0.488903 0.064568 +vt 0.553979 0.074793 +vt 0.483867 0.074736 +vt 0.563317 0.098370 +vt 0.474459 0.098347 +vt 0.607783 0.201317 +vt 0.429985 0.202349 +vt 0.652025 0.228651 +vt 0.385294 0.230871 +vt 0.684216 0.257873 +vt 0.352716 0.261687 +vt 0.697734 0.291262 +vt 0.339803 0.296775 +vt 0.691800 0.319376 +vt 0.347111 0.325707 +vt 0.669060 0.346556 +vt 0.371656 0.352492 +vt 0.637539 0.374296 +vt 0.405052 0.379277 +vt 0.612565 0.385848 +vt 0.430882 0.389829 +vt 0.579528 0.380831 +vt 0.463955 0.383313 +vt 0.539646 0.370138 +vt 0.503550 0.370878 +vt 0.584222 0.354838 +vt 0.458148 0.357313 +vt 0.608513 0.359610 +vt 0.433834 0.363117 +vt 0.627448 0.351385 +vt 0.414294 0.355570 +vt 0.653248 0.331731 +vt 0.387172 0.336643 +vt 0.673229 0.311613 +vt 0.365902 0.316900 +vt 0.675648 0.291443 +vt 0.362661 0.296196 +vt 0.662642 0.265966 +vt 0.375235 0.269520 +vt 0.634514 0.244436 +vt 0.403531 0.246741 +vt 0.591326 0.234859 +vt 0.447238 0.236147 +vt 0.553314 0.247169 +vt 0.485963 0.247850 +vt 0.554699 0.339520 +vt 0.487253 0.340746 +vt 0.539226 0.311235 +vt 0.501819 0.311809 +vt 0.539936 0.277011 +vt 0.500127 0.277528 +vt 0.524838 0.064612 +vt 0.513021 0.064602 +vt 0.533857 0.067317 +vt 0.504007 0.067292 +vt 0.537842 0.074443 +vt 0.500015 0.074414 +vt 0.542399 0.106568 +vt 0.495440 0.106568 +vt 0.539593 0.084350 +vt 0.498254 0.084324 +vt 0.527150 0.140957 +vt 0.510768 0.140974 +vt 0.525817 0.110508 +vt 0.512046 0.110509 +vt 0.525410 0.089838 +vt 0.512439 0.089832 +vt 0.539743 0.168694 +vt 0.498278 0.168768 +vt 0.541629 0.182581 +vt 0.496512 0.182646 +vt 0.532398 0.193396 +vt 0.506083 0.193379 +vt 0.521441 0.192080 +vt 0.516430 0.192047 +vt 0.527560 0.158945 +vt 0.510424 0.158970 +vt 0.525878 0.166063 +vt 0.512144 0.166083 +vt 0.523785 0.185847 +vt 0.514311 0.185800 +vt 0.531658 0.187170 +vt 0.506414 0.187119 +vt 0.535327 0.181109 +vt 0.502754 0.181133 +vt 0.534025 0.172707 +vt 0.504018 0.172755 +vt 0.528580 0.181687 +vt 0.509504 0.181682 +vt 0.525563 0.173411 +vt 0.512515 0.173431 +vt 0.534465 0.212776 +vt 0.504480 0.212913 +vt 0.551985 0.185724 +vt 0.486203 0.185938 +vt 0.552239 0.162029 +vt 0.485708 0.162163 +vt 0.546685 0.138563 +vt 0.491182 0.138620 +vt 0.573726 0.128028 +vt 0.463980 0.128105 +vt 0.579591 0.149773 +vt 0.458115 0.149978 +vt 0.581324 0.172904 +vt 0.456525 0.173290 +vt 0.524245 0.085168 +vt 0.513604 0.085161 +vt 0.529899 0.080034 +vt 0.507954 0.080019 +vt 0.527413 0.072283 +vt 0.510444 0.072271 +vt 0.521856 0.069271 +vt 0.516002 0.069266 +vt 0.520844 0.072458 +vt 0.517013 0.072455 +vt 0.524641 0.074536 +vt 0.513215 0.074528 +vt 0.526471 0.079118 +vt 0.511382 0.079109 +vt 0.522672 0.081831 +vt 0.515179 0.081826 +vt 0.521002 0.077116 +vt 0.516853 0.077113 +vt 0.523568 0.077141 +vt 0.514287 0.077134 +vt 0.564823 0.283411 +vt 0.475265 0.284604 +vt 0.564043 0.303370 +vt 0.476646 0.304705 +vt 0.573336 0.323987 +vt 0.467968 0.325800 +vt 0.572444 0.268073 +vt 0.467157 0.269314 +vt 0.595063 0.255785 +vt 0.443944 0.257390 +vt 0.624401 0.254227 +vt 0.414100 0.256508 +vt 0.647340 0.268750 +vt 0.391043 0.271964 +vt 0.660267 0.288391 +vt 0.378390 0.292508 +vt 0.659519 0.304805 +vt 0.379722 0.309349 +vt 0.644524 0.319999 +vt 0.395613 0.324317 +vt 0.623647 0.332753 +vt 0.417377 0.336501 +vt 0.607684 0.338383 +vt 0.433791 0.341604 +vt 0.590625 0.336522 +vt 0.450972 0.339077 +vt 0.594577 0.327670 +vt 0.446650 0.330280 +vt 0.607641 0.330160 +vt 0.433514 0.333272 +vt 0.621105 0.325749 +vt 0.419683 0.329287 +vt 0.638600 0.315216 +vt 0.401484 0.319206 +vt 0.650826 0.302565 +vt 0.388560 0.306727 +vt 0.651467 0.289241 +vt 0.387455 0.293089 +vt 0.640733 0.273509 +vt 0.397943 0.276657 +vt 0.621576 0.262193 +vt 0.417172 0.264571 +vt 0.597758 0.263913 +vt 0.441413 0.265710 +vt 0.579378 0.274220 +vt 0.460314 0.275701 +vt 0.582116 0.317393 +vt 0.458883 0.319456 +vt 0.574762 0.301887 +vt 0.465797 0.303547 +vt 0.574109 0.286567 +vt 0.465990 0.288047 +vt 0.538281 0.411091 +vt 0.506719 0.411819 +vt 0.580281 0.413307 +vt 0.464672 0.416006 +vt 0.622306 0.410754 +vt 0.422223 0.415451 +vt 0.657775 0.393384 +vt 0.385426 0.399631 +vt 0.694311 0.358834 +vt 0.346443 0.366300 +vt 0.716338 0.324076 +vt 0.322025 0.331806 +vt 0.721595 0.285733 +vt 0.314788 0.291912 +vt 0.705055 0.243279 +vt 0.330657 0.246922 +vt 0.671765 0.210086 +vt 0.364677 0.211973 +vt 0.638598 0.040073 +vt 0.399313 0.039452 +vt 0.597999 0.024656 +vt 0.440036 0.024385 +vt 0.553265 0.025336 +vt 0.484696 0.025281 +vt 0.531703 0.042785 +vt 0.506172 0.042762 +vt 0.549446 0.051869 +vt 0.488452 0.051807 +vt 0.560473 0.058029 +vt 0.477409 0.057935 +vt 0.576860 0.068910 +vt 0.460937 0.068767 +vt 0.596099 0.054317 +vt 0.441733 0.054062 +vt 0.564925 0.046689 +vt 0.472992 0.046578 +vt 0.628541 0.077349 +vt 0.408979 0.076944 +vt 0.596047 0.093310 +vt 0.441554 0.093187 +vt 0.612957 0.140296 +vt 0.424379 0.140539 +vt 0.608900 0.120064 +vt 0.428506 0.120089 +vt 0.612925 0.156464 +vt 0.424469 0.156911 +vt 0.633655 0.179673 +vt 0.403478 0.180592 +vt 0.893515 0.084702 +vt 0.135967 0.071959 +vt 0.833205 0.057037 +vt 0.201549 0.048328 +vt 0.739247 0.047944 +vt 0.297791 0.044340 +vt 0.667604 0.048991 +vt 0.370099 0.047937 +vt 0.650342 0.097629 +vt 0.386807 0.097126 +vt 0.743544 0.225522 +vt 0.289648 0.228397 +vt 0.934162 0.138519 +vt 0.084748 0.127507 +vt 0.908042 0.346695 +vt 0.108509 0.367723 +vt 0.943355 0.289411 +vt 0.066438 0.301142 +vt 0.954767 0.215703 +vt 0.054806 0.214456 +vt 0.760983 0.314960 +vt 0.274091 0.325343 +vt 0.804507 0.295772 +vt 0.225226 0.306116 +vt 0.844362 0.272860 +vt 0.180310 0.281734 +vt 0.865486 0.245712 +vt 0.155943 0.251381 +vt 0.865654 0.210853 +vt 0.154542 0.212543 +vt 0.896975 0.214875 +vt 0.120596 0.216031 +vt 0.892698 0.264948 +vt 0.125101 0.273140 +vt 0.868843 0.300471 +vt 0.152856 0.313492 +vt 0.823563 0.328376 +vt 0.204988 0.343582 +vt 0.776953 0.348941 +vt 0.258476 0.364482 +vt 0.854618 0.388654 +vt 0.171808 0.413975 +vt 0.778037 0.422134 +vt 0.261505 0.448254 +vt 0.806998 0.409096 +vt 0.227454 0.434955 +vt 0.825908 0.453176 +vt 0.208078 0.486741 +vt 0.755260 0.275192 +vt 0.278660 0.281719 +vt 0.794685 0.260478 +vt 0.235624 0.266753 +vt 0.824924 0.245952 +vt 0.202485 0.251470 +vt 0.844367 0.224985 +vt 0.179307 0.228068 +vt 0.744857 0.104270 +vt 0.290077 0.102066 +vt 0.761887 0.150943 +vt 0.270998 0.149983 +vt 0.709166 0.184863 +vt 0.325569 0.185815 +vt 0.658117 0.151769 +vt 0.378355 0.152110 +vt 0.678473 0.116165 +vt 0.357848 0.115642 +vt 0.635572 0.165415 +vt 0.401462 0.166095 +vt 0.852504 0.169021 +vt 0.173307 0.167243 +vt 0.882750 0.157347 +vt 0.140836 0.152190 +vt 0.816039 0.142025 +vt 0.215949 0.139452 +vt 0.819803 0.108584 +vt 0.212732 0.103516 +vt 0.864662 0.119320 +vt 0.164991 0.111832 +vt 0.468363 0.886808 +vt 0.285700 0.884061 +vt 0.543312 0.879960 +vt 0.210565 0.875093 +vt 0.593993 0.830799 +vt 0.161038 0.824252 +vt 0.578670 0.768161 +vt 0.178252 0.761815 +vt 0.530449 0.724075 +vt 0.227874 0.719024 +vt 0.471787 0.687538 +vt 0.287581 0.683989 +vt 0.474743 0.706583 +vt 0.284136 0.702984 +vt 0.524153 0.736382 +vt 0.233842 0.731524 +vt 0.560742 0.771353 +vt 0.196162 0.765539 +vt 0.569104 0.816662 +vt 0.186459 0.810770 +vt 0.529970 0.852091 +vt 0.224761 0.847465 +vt 0.473352 0.858317 +vt 0.281470 0.855294 +vt 0.781750 0.177204 +vt 0.249003 0.176615 +vt 0.417018 0.659387 +vt 0.343047 0.657161 +vt 0.784738 0.212595 +vt 0.245585 0.214535 +vt 0.416800 0.866760 +vt 0.338070 0.865317 +vt 0.431196 0.696570 +vt 0.328035 0.694049 +vt 0.411919 0.710833 +vt 0.347022 0.708824 +vt 0.414613 0.733330 +vt 0.343757 0.731337 +vt 0.400080 0.760071 +vt 0.357667 0.758561 +vt 0.409092 0.809450 +vt 0.347346 0.807928 +vt 0.433115 0.841909 +vt 0.322345 0.839902 +vt 0.820116 0.216249 +vt 0.206857 0.219915 +vt 0.803000 0.201945 +vt 0.225405 0.203129 +vt 0.794268 0.183563 +vt 0.235195 0.182579 +vt 0.453337 0.821327 +vt 0.302584 0.818678 +vt 0.433605 0.796402 +vt 0.323065 0.794172 +vt 0.422490 0.766652 +vt 0.335000 0.764588 +vt 0.425510 0.748812 +vt 0.332428 0.746600 +vt 0.435649 0.738566 +vt 0.322514 0.736060 +vt 0.438459 0.725659 +vt 0.320022 0.723042 +vt 0.446842 0.714794 +vt 0.311890 0.711935 +vt 0.486622 0.833925 +vt 0.268810 0.830424 +vt 0.529168 0.827618 +vt 0.226257 0.822904 +vt 0.554987 0.803516 +vt 0.201017 0.797971 +vt 0.549316 0.774269 +vt 0.207549 0.768790 +vt 0.522834 0.748764 +vt 0.234825 0.743969 +vt 0.480694 0.722970 +vt 0.277748 0.719250 +vt 0.451875 0.748121 +vt 0.305990 0.745228 +vt 0.471966 0.765952 +vt 0.285367 0.762588 +vt 0.490661 0.785658 +vt 0.266079 0.781857 +vt 0.509097 0.797073 +vt 0.247264 0.792802 +vt 0.499239 0.815328 +vt 0.256653 0.811401 +vt 0.473131 0.803520 +vt 0.283190 0.800263 +vt 0.453735 0.782360 +vt 0.303227 0.779540 +vt 0.438194 0.761384 +vt 0.319375 0.758892 +vt 0.453412 0.730198 +vt 0.304908 0.727211 +vt 0.480566 0.744291 +vt 0.277314 0.740632 +vt 0.509422 0.766252 +vt 0.247795 0.761875 +vt 0.528067 0.783052 +vt 0.228623 0.778200 +vt 0.533892 0.799710 +vt 0.222302 0.794749 +vt 0.525734 0.815686 +vt 0.230041 0.811018 +vt 0.496540 0.666735 +vt 0.263421 0.662656 +vt 0.550671 0.711970 +vt 0.208001 0.706345 +vt 0.596168 0.753465 +vt 0.161163 0.746532 +vt 0.650635 0.761168 +vt 0.106424 0.752371 +vt 0.695537 0.704955 +vt 0.064692 0.694847 +vt 0.706712 0.622096 +vt 0.060335 0.614941 +vt 0.594906 0.643849 +vt 0.167097 0.638884 +vt 0.615479 0.704842 +vt 0.143648 0.697517 +vt 0.619743 0.742110 +vt 0.137953 0.734378 +vt 0.835440 0.207619 +vt 0.082566 0.560285 +vt 0.570415 0.585463 +vt 0.194407 0.582356 +vt 0.455879 0.613165 +vt 0.305248 0.610596 +s 1 +f 47/47/1 509/558/2 1513/1612/3 508/557/4 +f 509/558/2 1/1/5 510/559/6 1513/1612/3 +f 1513/1612/3 510/559/6 3/3/7 511/560/8 +f 508/557/4 1513/1612/3 511/560/8 45/45/9 +f 4/4/10 513/562/11 1514/1613/12 512/561/13 +f 513/562/11 2/2/14 514/563/15 1514/1613/12 +f 1514/1613/12 514/563/15 48/48/16 515/564/17 +f 512/561/13 1514/1613/12 515/564/17 46/46/18 +f 45/45/9 511/560/8 1515/1614/19 516/565/20 +f 511/560/8 3/3/7 517/566/21 1515/1614/19 +f 1515/1614/19 517/566/21 5/5/22 518/567/23 +f 516/565/20 1515/1614/19 518/567/23 43/43/24 +f 6/6/25 520/569/26 1516/1615/27 519/568/28 +f 520/569/26 4/4/10 512/561/13 1516/1615/27 +f 1516/1615/27 512/561/13 46/46/18 521/570/29 +f 519/568/28 1516/1615/27 521/570/29 44/44/30 +f 3/3/7 522/571/31 1517/1616/32 517/566/21 +f 522/571/31 9/9/33 523/572/34 1517/1616/32 +f 1517/1616/32 523/572/34 7/7/35 524/573/36 +f 517/566/21 1517/1616/32 524/573/36 5/5/22 +f 8/8/37 526/575/38 1518/1617/39 525/574/40 +f 526/575/38 10/10/41 527/576/42 1518/1617/39 +f 1518/1617/39 527/576/42 4/4/10 520/569/26 +f 525/574/40 1518/1617/39 520/569/26 6/6/25 +f 1/1/5 528/577/43 1519/1618/44 510/559/6 +f 528/577/43 11/11/45 529/578/46 1519/1618/44 +f 1519/1618/44 529/578/46 9/9/33 522/571/31 +f 510/559/6 1519/1618/44 522/571/31 3/3/7 +f 10/10/41 530/579/47 1520/1619/48 527/576/42 +f 530/579/47 12/12/49 531/580/50 1520/1619/48 +f 1520/1619/48 531/580/50 2/2/14 513/562/11 +f 527/576/42 1520/1619/48 513/562/11 4/4/10 +f 11/11/45 532/581/51 1521/1620/52 529/578/46 +f 532/581/51 13/13/53 533/582/54 1521/1620/52 +f 1521/1620/52 533/582/54 15/15/55 534/583/56 +f 529/578/46 1521/1620/52 534/583/56 9/9/33 +f 16/16/57 536/585/58 1522/1621/59 535/584/60 +f 536/585/58 14/14/61 537/586/62 1522/1621/59 +f 1522/1621/59 537/586/62 12/12/49 530/579/47 +f 535/584/60 1522/1621/59 530/579/47 10/10/41 +f 9/9/33 534/583/56 1523/1622/63 523/572/34 +f 534/583/56 15/15/55 538/587/64 1523/1622/63 +f 1523/1622/63 538/587/64 17/17/65 539/588/66 +f 523/572/34 1523/1622/63 539/588/66 7/7/35 +f 18/18/67 541/590/68 1524/1623/69 540/589/70 +f 541/590/68 16/16/57 535/584/60 1524/1623/69 +f 1524/1623/69 535/584/60 10/10/41 526/575/38 +f 540/589/70 1524/1623/69 526/575/38 8/8/37 +f 15/15/55 542/591/71 1525/1624/72 538/587/64 +f 542/591/71 21/21/73 543/592/74 1525/1624/72 +f 1525/1624/72 543/592/74 19/19/75 544/593/76 +f 538/587/64 1525/1624/72 544/593/76 17/17/65 +f 20/20/77 546/595/78 1526/1625/79 545/594/80 +f 546/595/78 22/22/81 547/596/82 1526/1625/79 +f 1526/1625/79 547/596/82 16/16/57 541/590/68 +f 545/594/80 1526/1625/79 541/590/68 18/18/67 +f 13/13/53 548/597/83 1527/1626/84 533/582/54 +f 548/597/83 23/23/85 549/598/86 1527/1626/84 +f 1527/1626/84 549/598/86 21/21/73 542/591/71 +f 533/582/54 1527/1626/84 542/591/71 15/15/55 +f 22/22/81 550/599/87 1528/1627/88 547/596/82 +f 550/599/87 24/24/89 551/600/90 1528/1627/88 +f 1528/1627/88 551/600/90 14/14/61 536/585/58 +f 547/596/82 1528/1627/88 536/585/58 16/16/57 +f 23/23/85 552/601/91 1529/1628/92 549/598/86 +f 552/601/91 25/25/93 553/602/94 1529/1628/92 +f 1529/1628/92 553/602/94 27/27/95 554/603/96 +f 549/598/86 1529/1628/92 554/603/96 21/21/73 +f 28/28/97 556/605/98 1530/1629/99 555/604/100 +f 556/605/98 26/26/101 557/606/102 1530/1629/99 +f 1530/1629/99 557/606/102 24/24/89 550/599/87 +f 555/604/100 1530/1629/99 550/599/87 22/22/81 +f 21/21/73 554/603/96 1531/1630/103 543/592/74 +f 554/603/96 27/27/95 558/607/104 1531/1630/103 +f 1531/1630/103 558/607/104 29/29/105 559/608/106 +f 543/592/74 1531/1630/103 559/608/106 19/19/75 +f 30/30/107 561/610/108 1532/1631/109 560/609/110 +f 561/610/108 28/28/97 555/604/100 1532/1631/109 +f 1532/1631/109 555/604/100 22/22/81 546/595/78 +f 560/609/110 1532/1631/109 546/595/78 20/20/77 +f 27/27/95 562/611/111 1533/1632/112 558/607/104 +f 562/611/111 33/33/113 563/612/114 1533/1632/112 +f 1533/1632/112 563/612/114 31/31/115 564/613/116 +f 558/607/104 1533/1632/112 564/613/116 29/29/105 +f 32/32/117 566/615/118 1534/1633/119 565/614/120 +f 566/615/118 34/34/121 567/616/122 1534/1633/119 +f 1534/1633/119 567/616/122 28/28/97 561/610/108 +f 565/614/120 1534/1633/119 561/610/108 30/30/107 +f 25/25/93 568/617/123 1535/1634/124 553/602/94 +f 568/617/123 35/35/125 569/618/126 1535/1634/124 +f 1535/1634/124 569/618/126 33/33/113 562/611/111 +f 553/602/94 1535/1634/124 562/611/111 27/27/95 +f 34/34/121 570/619/127 1536/1635/128 567/616/122 +f 570/619/127 36/36/129 571/620/130 1536/1635/128 +f 1536/1635/128 571/620/130 26/26/101 556/605/98 +f 567/616/122 1536/1635/128 556/605/98 28/28/97 +f 35/35/125 572/621/131 1537/1636/132 569/618/126 +f 572/621/131 37/37/133 573/622/134 1537/1636/132 +f 1537/1636/132 573/622/134 39/39/135 574/623/136 +f 569/618/126 1537/1636/132 574/623/136 33/33/113 +f 40/40/137 576/625/138 1538/1637/139 575/624/140 +f 576/625/138 38/38/141 577/626/142 1538/1637/139 +f 1538/1637/139 577/626/142 36/36/129 570/619/127 +f 575/624/140 1538/1637/139 570/619/127 34/34/121 +f 33/33/113 574/623/136 1539/1638/143 563/612/114 +f 574/623/136 39/39/135 578/627/144 1539/1638/143 +f 1539/1638/143 578/627/144 41/41/145 579/628/146 +f 563/612/114 1539/1638/143 579/628/146 31/31/115 +f 42/42/147 581/630/148 1540/1639/149 580/629/150 +f 581/630/148 40/40/137 575/624/140 1540/1639/149 +f 1540/1639/149 575/624/140 34/34/121 566/615/118 +f 580/629/150 1540/1639/149 566/615/118 32/32/117 +f 39/39/135 582/631/151 1541/1640/152 578/627/144 +f 582/631/151 45/45/9 516/565/20 1541/1640/152 +f 1541/1640/152 516/565/20 43/43/24 583/632/153 +f 578/627/144 1541/1640/152 583/632/153 41/41/145 +f 44/44/30 521/570/29 1542/1641/154 584/633/155 +f 521/570/29 46/46/18 585/634/156 1542/1641/154 +f 1542/1641/154 585/634/156 40/40/137 581/630/148 +f 584/633/155 1542/1641/154 581/630/148 42/42/147 +f 37/37/133 586/635/157 1543/1642/158 573/622/134 +f 586/635/157 47/47/1 508/557/4 1543/1642/158 +f 1543/1642/158 508/557/4 45/45/9 582/631/151 +f 573/622/134 1543/1642/158 582/631/151 39/39/135 +f 46/46/18 515/564/17 1544/1643/159 585/634/156 +f 515/564/17 48/48/16 587/636/160 1544/1643/159 +f 1544/1643/159 587/636/160 38/38/141 576/625/138 +f 585/634/156 1544/1643/159 576/625/138 40/40/137 +f 47/47/1 586/635/157 1545/1644/161 588/637/162 +f 586/635/157 37/37/133 589/638/163 1545/1644/161 +f 1545/1644/161 589/638/163 51/51/164 590/639/165 +f 588/637/162 1545/1644/161 590/639/165 49/49/166 +f 52/52/167 592/641/168 1546/1645/169 591/640/170 +f 592/641/168 38/38/141 587/636/160 1546/1645/169 +f 1546/1645/169 587/636/160 48/48/16 593/642/171 +f 591/640/170 1546/1645/169 593/642/171 50/50/172 +f 37/37/133 572/621/131 1547/1646/173 589/638/163 +f 572/621/131 35/35/125 594/643/174 1547/1646/173 +f 1547/1646/173 594/643/174 53/53/175 595/644/176 +f 589/638/163 1547/1646/173 595/644/176 51/51/164 +f 54/54/177 597/646/178 1548/1647/179 596/645/180 +f 597/646/178 36/36/129 577/626/142 1548/1647/179 +f 1548/1647/179 577/626/142 38/38/141 592/641/168 +f 596/645/180 1548/1647/179 592/641/168 52/52/167 +f 35/35/125 568/617/123 1549/1648/181 594/643/174 +f 568/617/123 25/25/93 598/647/182 1549/1648/181 +f 1549/1648/181 598/647/182 55/55/183 599/648/184 +f 594/643/174 1549/1648/181 599/648/184 53/53/175 +f 56/56/185 601/650/186 1550/1649/187 600/649/188 +f 601/650/186 26/26/101 571/620/130 1550/1649/187 +f 1550/1649/187 571/620/130 36/36/129 597/646/178 +f 600/649/188 1550/1649/187 597/646/178 54/54/177 +f 25/25/93 552/601/91 1551/1650/189 598/647/182 +f 552/601/91 23/23/85 602/651/190 1551/1650/189 +f 1551/1650/189 602/651/190 57/57/191 603/652/192 +f 598/647/182 1551/1650/189 603/652/192 55/55/183 +f 58/58/193 605/654/194 1552/1651/195 604/653/196 +f 605/654/194 24/24/89 557/606/102 1552/1651/195 +f 1552/1651/195 557/606/102 26/26/101 601/650/186 +f 604/653/196 1552/1651/195 601/650/186 56/56/185 +f 23/23/85 548/597/83 1553/1652/197 602/651/190 +f 548/597/83 13/13/53 606/655/198 1553/1652/197 +f 1553/1652/197 606/655/198 59/59/199 607/656/200 +f 602/651/190 1553/1652/197 607/656/200 57/57/191 +f 60/60/201 609/658/202 1554/1653/203 608/657/204 +f 609/658/202 14/14/61 551/600/90 1554/1653/203 +f 1554/1653/203 551/600/90 24/24/89 605/654/194 +f 608/657/204 1554/1653/203 605/654/194 58/58/193 +f 13/13/53 532/581/51 1555/1654/205 606/655/198 +f 532/581/51 11/11/45 610/659/206 1555/1654/205 +f 1555/1654/205 610/659/206 63/63/207 611/660/208 +f 606/655/198 1555/1654/205 611/660/208 59/59/199 +f 64/64/209 613/662/210 1556/1655/211 612/661/212 +f 613/662/210 12/12/49 537/586/62 1556/1655/211 +f 1556/1655/211 537/586/62 14/14/61 609/658/202 +f 612/661/212 1556/1655/211 609/658/202 60/60/201 +f 11/11/45 528/577/43 1557/1656/213 610/659/206 +f 528/577/43 1/1/5 614/663/214 1557/1656/213 +f 1557/1656/213 614/663/214 65/65/215 615/664/216 +f 610/659/206 1557/1656/213 615/664/216 63/63/207 +f 66/66/217 617/666/218 1558/1657/219 616/665/220 +f 617/666/218 2/2/14 531/580/50 1558/1657/219 +f 1558/1657/219 531/580/50 12/12/49 613/662/210 +f 616/665/220 1558/1657/219 613/662/210 64/64/209 +f 1/1/5 509/558/2 1559/1658/221 614/663/214 +f 509/558/2 47/47/1 588/637/162 1559/1658/221 +f 1559/1658/221 588/637/162 49/49/166 618/667/222 +f 614/663/214 1559/1658/221 618/667/222 65/65/215 +f 50/50/172 593/642/171 1560/1659/223 619/668/224 +f 593/642/171 48/48/16 514/563/15 1560/1659/223 +f 1560/1659/223 514/563/15 2/2/14 617/666/218 +f 619/668/224 1560/1659/223 617/666/218 66/66/217 +f 61/61/225 621/670/226 1561/1660/227 620/669/228 +f 65/65/215 618/667/222 1561/1660/227 621/670/226 +f 49/49/166 620/669/228 1561/1660/227 618/667/222 +f 50/50/172 619/668/224 1562/1661/229 622/671/230 +f 66/66/217 623/672/231 1562/1661/229 619/668/224 +f 62/62/232 622/671/230 1562/1661/229 623/672/231 +f 63/63/207 615/664/216 1563/1662/233 624/673/234 +f 65/65/215 621/670/226 1563/1662/233 615/664/216 +f 61/61/225 624/673/234 1563/1662/233 621/670/226 +f 62/62/232 623/672/231 1564/1663/235 625/674/236 +f 66/66/217 616/665/220 1564/1663/235 623/672/231 +f 64/64/209 625/674/236 1564/1663/235 616/665/220 +f 61/61/225 626/675/237 1565/1664/238 624/673/234 +f 59/59/199 611/660/208 1565/1664/238 626/675/237 +f 63/63/207 624/673/234 1565/1664/238 611/660/208 +f 64/64/209 612/661/212 1566/1665/239 625/674/236 +f 60/60/201 627/676/240 1566/1665/239 612/661/212 +f 62/62/232 625/674/236 1566/1665/239 627/676/240 +f 61/61/225 628/677/241 1567/1666/242 626/675/237 +f 57/57/191 607/656/200 1567/1666/242 628/677/241 +f 59/59/199 626/675/237 1567/1666/242 607/656/200 +f 60/60/201 608/657/204 1568/1667/243 627/676/240 +f 58/58/193 629/678/244 1568/1667/243 608/657/204 +f 62/62/232 627/676/240 1568/1667/243 629/678/244 +f 61/61/225 630/679/245 1569/1668/246 628/677/241 +f 55/55/183 603/652/192 1569/1668/246 630/679/245 +f 57/57/191 628/677/241 1569/1668/246 603/652/192 +f 58/58/193 604/653/196 1570/1669/247 629/678/244 +f 56/56/185 631/680/248 1570/1669/247 604/653/196 +f 62/62/232 629/678/244 1570/1669/247 631/680/248 +f 61/61/225 632/681/249 1571/1670/250 630/679/245 +f 53/53/175 599/648/184 1571/1670/250 632/681/249 +f 55/55/183 630/679/245 1571/1670/250 599/648/184 +f 56/56/185 600/649/188 1572/1671/251 631/680/248 +f 54/54/177 633/682/252 1572/1671/251 600/649/188 +f 62/62/232 631/680/248 1572/1671/251 633/682/252 +f 61/61/225 634/683/253 1573/1672/254 632/681/249 +f 51/51/164 595/644/176 1573/1672/254 634/683/253 +f 53/53/175 632/681/249 1573/1672/254 595/644/176 +f 54/54/177 596/645/180 1574/1673/255 633/682/252 +f 52/52/167 635/684/256 1574/1673/255 596/645/180 +f 62/62/232 633/682/252 1574/1673/255 635/684/256 +f 61/61/225 620/669/228 1575/1674/257 634/683/253 +f 49/49/166 590/639/165 1575/1674/257 620/669/228 +f 51/51/164 634/683/253 1575/1674/257 590/639/165 +f 52/52/167 591/640/170 1576/1675/258 635/684/256 +f 50/50/172 622/671/230 1576/1675/258 591/640/170 +f 62/62/232 635/684/256 1576/1675/258 622/671/230 +f 89/96/259 637/686/260 1577/1676/261 636/685/262 +f 637/686/260 174/181/263 638/687/264 1577/1676/261 +f 1577/1676/261 638/687/264 176/183/265 639/688/266 +f 636/685/262 1577/1676/261 639/688/266 91/98/267 +f 176/183/265 640/689/268 1578/1677/269 639/688/266 +f 640/689/268 175/182/270 641/690/271 1578/1677/269 +f 1578/1677/269 641/690/271 90/97/272 642/691/273 +f 639/688/266 1578/1677/269 642/691/273 91/98/267 +f 87/94/274 644/693/275 1579/1678/276 643/692/277 +f 644/693/275 172/179/278 645/694/279 1579/1678/276 +f 1579/1678/276 645/694/279 174/181/263 637/686/260 +f 643/692/277 1579/1678/276 637/686/260 89/96/259 +f 175/182/270 646/695/280 1580/1679/281 641/690/271 +f 646/695/280 173/180/282 647/696/283 1580/1679/281 +f 1580/1679/281 647/696/283 88/95/284 648/697/285 +f 641/690/271 1580/1679/281 648/697/285 90/97/272 +f 85/92/286 650/699/287 1581/1680/288 649/698/289 +f 650/699/287 170/177/290 651/700/291 1581/1680/288 +f 1581/1680/288 651/700/291 172/179/278 644/693/275 +f 649/698/289 1581/1680/288 644/693/275 87/94/274 +f 173/180/282 652/701/292 1582/1681/293 647/696/283 +f 652/701/292 171/178/294 653/702/295 1582/1681/293 +f 1582/1681/293 653/702/295 86/93/296 654/703/297 +f 647/696/283 1582/1681/293 654/703/297 88/95/284 +f 83/90/298 656/705/299 1583/1682/300 655/704/301 +f 656/705/299 168/175/302 657/706/303 1583/1682/300 +f 1583/1682/300 657/706/303 170/177/290 650/699/287 +f 655/704/301 1583/1682/300 650/699/287 85/92/286 +f 171/178/294 658/707/304 1584/1683/305 653/702/295 +f 658/707/304 169/176/306 659/708/307 1584/1683/305 +f 1584/1683/305 659/708/307 84/91/308 660/709/309 +f 653/702/295 1584/1683/305 660/709/309 86/93/296 +f 81/88/310 662/711/311 1585/1684/312 661/710/313 +f 662/711/311 166/173/314 663/712/315 1585/1684/312 +f 1585/1684/312 663/712/315 168/175/302 656/705/299 +f 661/710/313 1585/1684/312 656/705/299 83/90/298 +f 169/176/306 664/713/316 1586/1685/317 659/708/307 +f 664/713/316 167/174/318 665/714/319 1586/1685/317 +f 1586/1685/317 665/714/319 82/89/320 666/715/321 +f 659/708/307 1586/1685/317 666/715/321 84/91/308 +f 79/86/322 668/717/323 1587/1686/324 667/716/325 +f 668/717/323 92/99/326 669/718/327 1587/1686/324 +f 1587/1686/324 669/718/327 146/153/328 670/719/329 +f 667/716/325 1587/1686/324 670/719/329 164/171/330 +f 147/154/331 672/721/332 1588/1687/333 671/720/334 +f 672/721/332 93/100/335 673/722/336 1588/1687/333 +f 1588/1687/333 673/722/336 80/87/337 674/723/338 +f 671/720/334 1588/1687/333 674/723/338 165/172/339 +f 92/99/326 675/724/340 1589/1688/341 669/718/327 +f 675/724/340 94/101/342 676/725/343 1589/1688/341 +f 1589/1688/341 676/725/343 148/155/344 677/726/345 +f 669/718/327 1589/1688/341 677/726/345 146/153/328 +f 149/156/346 679/728/347 1590/1689/348 678/727/349 +f 679/728/347 95/102/350 680/729/351 1590/1689/348 +f 1590/1689/348 680/729/351 93/100/335 672/721/332 +f 678/727/349 1590/1689/348 672/721/332 147/154/331 +f 94/101/342 681/730/352 1591/1690/353 676/725/343 +f 681/730/352 96/103/354 682/731/355 1591/1690/353 +f 1591/1690/353 682/731/355 150/157/356 683/732/357 +f 676/725/343 1591/1690/353 683/732/357 148/155/344 +f 151/158/358 685/734/359 1592/1691/360 684/733/361 +f 685/734/359 97/104/362 686/735/363 1592/1691/360 +f 1592/1691/360 686/735/363 95/102/350 679/728/347 +f 684/733/361 1592/1691/360 679/728/347 149/156/346 +f 96/103/354 687/736/364 1593/1692/365 682/731/355 +f 687/736/364 98/105/366 688/737/367 1593/1692/365 +f 1593/1692/365 688/737/367 152/159/368 689/738/369 +f 682/731/355 1593/1692/365 689/738/369 150/157/356 +f 153/160/370 691/740/371 1594/1693/372 690/739/373 +f 691/740/371 99/106/374 692/741/375 1594/1693/372 +f 1594/1693/372 692/741/375 97/104/362 685/734/359 +f 690/739/373 1594/1693/372 685/734/359 151/158/358 +f 98/105/366 693/742/376 1595/1694/377 688/737/367 +f 693/742/376 100/107/378 694/743/379 1595/1694/377 +f 1595/1694/377 694/743/379 154/161/380 695/744/381 +f 688/737/367 1595/1694/377 695/744/381 152/159/368 +f 155/162/382 697/746/383 1596/1695/384 696/745/385 +f 697/746/383 101/108/386 698/747/387 1596/1695/384 +f 1596/1695/384 698/747/387 99/106/374 691/740/371 +f 696/745/385 1596/1695/384 691/740/371 153/160/370 +f 100/107/378 699/748/388 1597/1696/389 694/743/379 +f 699/748/388 102/109/390 700/749/391 1597/1696/389 +f 1597/1696/389 700/749/391 156/163/392 701/750/393 +f 694/743/379 1597/1696/389 701/750/393 154/161/380 +f 157/164/394 703/752/395 1598/1697/396 702/751/397 +f 703/752/395 103/110/398 704/753/399 1598/1697/396 +f 1598/1697/396 704/753/399 101/108/386 697/746/383 +f 702/751/397 1598/1697/396 697/746/383 155/162/382 +f 102/109/390 705/754/400 1599/1698/401 700/749/391 +f 705/754/400 104/111/402 706/755/403 1599/1698/401 +f 1599/1698/401 706/755/403 158/165/404 707/756/405 +f 700/749/391 1599/1698/401 707/756/405 156/163/392 +f 159/166/406 709/758/407 1600/1699/408 708/757/409 +f 709/758/407 105/112/410 710/759/411 1600/1699/408 +f 1600/1699/408 710/759/411 103/110/398 703/752/395 +f 708/757/409 1600/1699/408 703/752/395 157/164/394 +f 104/111/402 711/760/412 1601/1700/413 706/755/403 +f 711/760/412 106/113/414 712/761/415 1601/1700/413 +f 1601/1700/413 712/761/415 160/167/416 713/762/417 +f 706/755/403 1601/1700/413 713/762/417 158/165/404 +f 161/168/418 715/764/419 1602/1701/420 714/763/421 +f 715/764/419 107/114/422 716/765/423 1602/1701/420 +f 1602/1701/420 716/765/423 105/112/410 709/758/407 +f 714/763/421 1602/1701/420 709/758/407 159/166/406 +f 106/113/414 717/766/424 1603/1702/425 712/761/415 +f 717/766/424 108/115/426 718/767/427 1603/1702/425 +f 1603/1702/425 718/767/427 162/169/428 719/768/429 +f 712/761/415 1603/1702/425 719/768/429 160/167/416 +f 163/170/430 721/770/431 1604/1703/432 720/769/433 +f 721/770/431 109/116/434 722/771/435 1604/1703/432 +f 1604/1703/432 722/771/435 107/114/422 715/764/419 +f 720/769/433 1604/1703/432 715/764/419 161/168/418 +f 108/115/426 723/772/436 1605/1704/437 718/767/427 +f 723/772/436 67/67/438 724/773/439 1605/1704/437 +f 1605/1704/437 724/773/439 68/68/440 725/774/441 +f 718/767/427 1605/1704/437 725/774/441 162/169/428 +f 68/68/440 724/773/439 1606/1705/442 726/775/443 +f 724/773/439 67/67/438 727/776/444 1606/1705/442 +f 1606/1705/442 727/776/444 109/116/434 721/770/431 +f 726/775/443 1606/1705/442 721/770/431 163/170/430 +f 110/117/445 729/778/446 1607/1706/447 728/777/448 +f 729/778/446 128/135/449 730/779/450 1607/1706/447 +f 1607/1706/447 730/779/450 160/167/416 719/768/429 +f 728/777/448 1607/1706/447 719/768/429 162/169/428 +f 161/168/418 731/780/451 1608/1707/452 720/769/433 +f 731/780/451 129/136/453 732/781/454 1608/1707/452 +f 1608/1707/452 732/781/454 111/118/455 733/782/456 +f 720/769/433 1608/1707/452 733/782/456 163/170/430 +f 128/135/449 734/783/457 1609/1708/458 730/779/450 +f 734/783/457 179/186/459 735/784/460 1609/1708/458 +f 1609/1708/458 735/784/460 158/165/404 713/762/417 +f 730/779/450 1609/1708/458 713/762/417 160/167/416 +f 159/166/406 736/785/461 1610/1709/462 714/763/421 +f 736/785/461 180/187/463 737/786/464 1610/1709/462 +f 1610/1709/462 737/786/464 129/136/453 731/780/451 +f 714/763/421 1610/1709/462 731/780/451 161/168/418 +f 126/133/465 739/788/466 1611/1710/467 738/787/468 +f 739/788/466 156/163/392 707/756/405 1611/1710/467 +f 1611/1710/467 707/756/405 158/165/404 735/784/460 +f 738/787/468 1611/1710/467 735/784/460 179/186/459 +f 159/166/406 708/757/409 1612/1711/469 736/785/461 +f 708/757/409 157/164/394 740/789/470 1612/1711/469 +f 1612/1711/469 740/789/470 127/134/471 741/790/472 +f 736/785/461 1612/1711/469 741/790/472 180/187/463 +f 124/131/473 743/792/474 1613/1712/475 742/791/476 +f 743/792/474 154/161/380 701/750/393 1613/1712/475 +f 1613/1712/475 701/750/393 156/163/392 739/788/466 +f 742/791/476 1613/1712/475 739/788/466 126/133/465 +f 157/164/394 702/751/397 1614/1713/477 740/789/470 +f 702/751/397 155/162/382 744/793/478 1614/1713/477 +f 1614/1713/477 744/793/478 125/132/479 745/794/480 +f 740/789/470 1614/1713/477 745/794/480 127/134/471 +f 122/129/481 747/796/482 1615/1714/483 746/795/484 +f 747/796/482 152/159/368 695/744/381 1615/1714/483 +f 1615/1714/483 695/744/381 154/161/380 743/792/474 +f 746/795/484 1615/1714/483 743/792/474 124/131/473 +f 155/162/382 696/745/385 1616/1715/485 744/793/478 +f 696/745/385 153/160/370 748/797/486 1616/1715/485 +f 1616/1715/485 748/797/486 123/130/487 749/798/488 +f 744/793/478 1616/1715/485 749/798/488 125/132/479 +f 120/127/489 751/800/490 1617/1716/491 750/799/492 +f 751/800/490 150/157/356 689/738/369 1617/1716/491 +f 1617/1716/491 689/738/369 152/159/368 747/796/482 +f 750/799/492 1617/1716/491 747/796/482 122/129/481 +f 153/160/370 690/739/373 1618/1717/493 748/797/486 +f 690/739/373 151/158/358 752/801/494 1618/1717/493 +f 1618/1717/493 752/801/494 121/128/495 753/802/496 +f 748/797/486 1618/1717/493 753/802/496 123/130/487 +f 118/125/497 755/804/498 1619/1718/499 754/803/500 +f 755/804/498 148/155/344 683/732/357 1619/1718/499 +f 1619/1718/499 683/732/357 150/157/356 751/800/490 +f 754/803/500 1619/1718/499 751/800/490 120/127/489 +f 151/158/358 684/733/361 1620/1719/501 752/801/494 +f 684/733/361 149/156/346 756/805/502 1620/1719/501 +f 1620/1719/501 756/805/502 119/126/503 757/806/504 +f 752/801/494 1620/1719/501 757/806/504 121/128/495 +f 116/123/505 759/808/506 1621/1720/507 758/807/508 +f 759/808/506 146/153/328 677/726/345 1621/1720/507 +f 1621/1720/507 677/726/345 148/155/344 755/804/498 +f 758/807/508 1621/1720/507 755/804/498 118/125/497 +f 149/156/346 678/727/349 1622/1721/509 756/805/502 +f 678/727/349 147/154/331 760/809/510 1622/1721/509 +f 1622/1721/509 760/809/510 117/124/511 761/810/512 +f 756/805/502 1622/1721/509 761/810/512 119/126/503 +f 114/121/513 763/812/514 1623/1722/515 762/811/516 +f 763/812/514 164/171/330 670/719/329 1623/1722/515 +f 1623/1722/515 670/719/329 146/153/328 759/808/506 +f 762/811/516 1623/1722/515 759/808/506 116/123/505 +f 147/154/331 671/720/334 1624/1723/517 760/809/510 +f 671/720/334 165/172/339 764/813/518 1624/1723/517 +f 1624/1723/517 764/813/518 115/122/519 765/814/520 +f 760/809/510 1624/1723/517 765/814/520 117/124/511 +f 114/121/513 766/815/521 1625/1724/522 763/812/514 +f 766/815/521 181/188/523 767/816/524 1625/1724/522 +f 1625/1724/522 767/816/524 177/184/525 768/817/526 +f 763/812/514 1625/1724/522 768/817/526 164/171/330 +f 177/184/525 770/819/527 1626/1725/528 769/818/529 +f 770/819/527 182/189/530 771/820/531 1626/1725/528 +f 1626/1725/528 771/820/531 115/122/519 764/813/518 +f 769/818/529 1626/1725/528 764/813/518 165/172/339 +f 110/117/445 728/777/448 1627/1726/532 772/821/533 +f 728/777/448 162/169/428 725/774/441 1627/1726/532 +f 1627/1726/532 725/774/441 68/68/440 773/822/534 +f 772/821/533 1627/1726/532 773/822/534 112/119/535 +f 68/68/440 726/775/443 1628/1727/536 774/823/537 +f 726/775/443 163/170/430 733/782/456 1628/1727/536 +f 1628/1727/536 733/782/456 111/118/455 775/824/538 +f 774/823/537 1628/1727/536 775/824/538 113/120/539 +f 112/119/535 773/822/534 1629/1728/540 776/825/541 +f 773/822/534 68/68/440 777/826/542 1629/1728/540 +f 1629/1728/540 777/826/542 178/185/543 778/827/544 +f 776/825/541 1629/1728/540 778/827/544 183/190/545 +f 178/185/543 777/826/542 1630/1729/546 779/828/547 +f 777/826/542 68/68/440 774/823/537 1630/1729/546 +f 1630/1729/546 774/823/537 113/120/539 780/829/548 +f 779/828/547 1630/1729/546 780/829/548 184/191/549 +f 177/184/525 767/816/524 1631/1730/550 781/830/551 +f 767/816/524 181/188/523 782/831/552 1631/1730/550 +f 1631/1730/550 782/831/552 183/190/545 778/827/544 +f 781/830/551 1631/1730/550 778/827/544 178/185/543 +f 184/191/549 783/832/553 1632/1731/554 779/828/547 +f 783/832/553 182/189/530 770/819/527 1632/1731/554 +f 1632/1731/554 770/819/527 177/184/525 781/830/551 +f 779/828/547 1632/1731/554 781/830/551 178/185/543 +f 135/142/555 785/834/556 1633/1732/557 784/833/558 +f 785/834/556 137/144/559 786/835/560 1633/1732/557 +f 1633/1732/557 786/835/560 176/183/265 638/687/264 +f 784/833/558 1633/1732/557 638/687/264 174/181/263 +f 176/183/265 786/835/560 1634/1733/561 640/689/268 +f 786/835/560 137/144/559 787/836/562 1634/1733/561 +f 1634/1733/561 787/836/562 136/143/563 788/837/564 +f 640/689/268 1634/1733/561 788/837/564 175/182/270 +f 133/140/565 790/839/566 1635/1734/567 789/838/568 +f 790/839/566 135/142/555 784/833/558 1635/1734/567 +f 1635/1734/567 784/833/558 174/181/263 645/694/279 +f 789/838/568 1635/1734/567 645/694/279 172/179/278 +f 175/182/270 788/837/564 1636/1735/569 646/695/280 +f 788/837/564 136/143/563 791/840/570 1636/1735/569 +f 1636/1735/569 791/840/570 134/141/571 792/841/572 +f 646/695/280 1636/1735/569 792/841/572 173/180/282 +f 131/138/573 794/843/574 1637/1736/575 793/842/576 +f 794/843/574 133/140/565 789/838/568 1637/1736/575 +f 1637/1736/575 789/838/568 172/179/278 651/700/291 +f 793/842/576 1637/1736/575 651/700/291 170/177/290 +f 173/180/282 792/841/572 1638/1737/577 652/701/292 +f 792/841/572 134/141/571 795/844/578 1638/1737/577 +f 1638/1737/577 795/844/578 132/139/579 796/845/580 +f 652/701/292 1638/1737/577 796/845/580 171/178/294 +f 166/173/314 797/846/581 1639/1738/582 663/712/315 +f 797/846/581 187/194/583 798/847/584 1639/1738/582 +f 1639/1738/582 798/847/584 185/192/585 799/848/586 +f 663/712/315 1639/1738/582 799/848/586 168/175/302 +f 186/193/587 801/850/588 1640/1739/589 800/849/590 +f 801/850/588 188/195/591 802/851/592 1640/1739/589 +f 1640/1739/589 802/851/592 167/174/318 664/713/316 +f 800/849/590 1640/1739/589 664/713/316 169/176/306 +f 131/138/573 793/842/576 1641/1740/593 803/852/594 +f 793/842/576 170/177/290 657/706/303 1641/1740/593 +f 1641/1740/593 657/706/303 168/175/302 799/848/586 +f 803/852/594 1641/1740/593 799/848/586 185/192/585 +f 169/176/306 658/707/304 1642/1741/595 800/849/590 +f 658/707/304 171/178/294 796/845/580 1642/1741/595 +f 1642/1741/595 796/845/580 132/139/579 804/853/596 +f 800/849/590 1642/1741/595 804/853/596 186/193/587 +f 144/151/597 806/855/598 1643/1742/599 805/854/600 +f 806/855/598 190/197/601 807/856/602 1643/1742/599 +f 1643/1742/599 807/856/602 189/196/603 808/857/604 +f 805/854/600 1643/1742/599 808/857/604 187/194/583 +f 189/196/603 807/856/602 1644/1743/605 809/858/606 +f 807/856/602 190/197/601 810/859/607 1644/1743/605 +f 1644/1743/605 810/859/607 145/152/608 811/860/609 +f 809/858/606 1644/1743/605 811/860/609 188/195/591 +f 185/192/585 798/847/584 1645/1744/610 812/861/611 +f 798/847/584 187/194/583 808/857/604 1645/1744/610 +f 1645/1744/610 808/857/604 189/196/603 813/862/612 +f 812/861/611 1645/1744/610 813/862/612 69/69/613 +f 189/196/603 809/858/606 1646/1745/614 813/862/612 +f 809/858/606 188/195/591 801/850/588 1646/1745/614 +f 1646/1745/614 801/850/588 186/193/587 814/863/615 +f 813/862/612 1646/1745/614 814/863/615 69/69/613 +f 130/137/616 816/865/617 1647/1746/618 815/864/619 +f 816/865/617 131/138/573 803/852/594 1647/1746/618 +f 1647/1746/618 803/852/594 185/192/585 812/861/611 +f 815/864/619 1647/1746/618 812/861/611 69/69/613 +f 186/193/587 804/853/596 1648/1747/620 814/863/615 +f 804/853/596 132/139/579 817/866/621 1648/1747/620 +f 1648/1747/620 817/866/621 130/137/616 815/864/619 +f 814/863/615 1648/1747/620 815/864/619 69/69/613 +f 142/149/622 819/868/623 1649/1748/624 818/867/625 +f 819/868/623 193/200/626 820/869/627 1649/1748/624 +f 1649/1748/624 820/869/627 191/198/628 821/870/629 +f 818/867/625 1649/1748/624 821/870/629 144/151/597 +f 192/199/630 823/872/631 1650/1749/632 822/871/633 +f 823/872/631 194/201/634 824/873/635 1650/1749/632 +f 1650/1749/632 824/873/635 143/150/636 825/874/637 +f 822/871/633 1650/1749/632 825/874/637 145/152/608 +f 140/147/638 827/876/639 1651/1750/640 826/875/641 +f 827/876/639 195/202/642 828/877/643 1651/1750/640 +f 1651/1750/640 828/877/643 193/200/626 819/868/623 +f 826/875/641 1651/1750/640 819/868/623 142/149/622 +f 194/201/634 829/878/644 1652/1751/645 824/873/635 +f 829/878/644 196/203/646 830/879/647 1652/1751/645 +f 1652/1751/645 830/879/647 141/148/648 831/880/649 +f 824/873/635 1652/1751/645 831/880/649 143/150/636 +f 139/146/650 833/882/651 1653/1752/652 832/881/653 +f 833/882/651 197/204/654 834/883/655 1653/1752/652 +f 1653/1752/652 834/883/655 195/202/642 827/876/639 +f 832/881/653 1653/1752/652 827/876/639 140/147/638 +f 196/203/646 835/884/656 1654/1753/657 830/879/647 +f 835/884/656 198/205/658 836/885/659 1654/1753/657 +f 1654/1753/657 836/885/659 139/146/650 837/886/660 +f 830/879/647 1654/1753/657 837/886/660 141/148/648 +f 138/145/661 839/888/662 1655/1754/663 838/887/664 +f 839/888/662 71/71/665 840/889/666 1655/1754/663 +f 1655/1754/663 840/889/666 197/204/654 833/882/651 +f 838/887/664 1655/1754/663 833/882/651 139/146/650 +f 198/205/658 841/890/667 1656/1755/668 836/885/659 +f 841/890/667 71/71/665 839/888/662 1656/1755/668 +f 1656/1755/668 839/888/662 138/145/661 838/887/664 +f 836/885/659 1656/1755/668 838/887/664 139/146/650 +f 190/197/601 806/855/598 1657/1756/669 842/891/670 +f 806/855/598 144/151/597 821/870/629 1657/1756/669 +f 1657/1756/669 821/870/629 191/198/628 843/892/671 +f 842/891/670 1657/1756/669 843/892/671 70/70/672 +f 192/199/630 822/871/633 1658/1757/673 844/893/674 +f 822/871/633 145/152/608 810/859/607 1658/1757/673 +f 1658/1757/673 810/859/607 190/197/601 842/891/670 +f 844/893/674 1658/1757/673 842/891/670 70/70/672 +f 70/70/672 843/892/671 1659/1758/675 845/894/676 +f 843/892/671 191/198/628 846/895/677 1659/1758/675 +f 1659/1758/675 846/895/677 206/213/678 847/896/679 +f 845/894/676 1659/1758/675 847/896/679 208/215/680 +f 207/214/681 849/898/682 1660/1759/683 848/897/684 +f 849/898/682 192/199/630 844/893/674 1660/1759/683 +f 1660/1759/683 844/893/674 70/70/672 845/894/676 +f 848/897/684 1660/1759/683 845/894/676 208/215/680 +f 71/71/665 850/899/685 1661/1760/686 840/889/666 +f 850/899/685 199/206/687 851/900/688 1661/1760/686 +f 1661/1760/686 851/900/688 200/207/689 852/901/690 +f 840/889/666 1661/1760/686 852/901/690 197/204/654 +f 201/208/691 854/903/692 1662/1761/693 853/902/694 +f 854/903/692 199/206/687 850/899/685 1662/1761/693 +f 1662/1761/693 850/899/685 71/71/665 841/890/667 +f 853/902/694 1662/1761/693 841/890/667 198/205/658 +f 197/204/654 852/901/690 1663/1762/695 834/883/655 +f 852/901/690 200/207/689 855/904/696 1663/1762/695 +f 1663/1762/695 855/904/696 202/209/697 856/905/698 +f 834/883/655 1663/1762/695 856/905/698 195/202/642 +f 203/210/699 858/907/700 1664/1763/701 857/906/702 +f 858/907/700 201/208/691 853/902/694 1664/1763/701 +f 1664/1763/701 853/902/694 198/205/658 835/884/656 +f 857/906/702 1664/1763/701 835/884/656 196/203/646 +f 195/202/642 856/905/698 1665/1764/703 828/877/643 +f 856/905/698 202/209/697 859/908/704 1665/1764/703 +f 1665/1764/703 859/908/704 204/211/705 860/909/706 +f 828/877/643 1665/1764/703 860/909/706 193/200/626 +f 205/212/707 862/911/708 1666/1765/709 861/910/710 +f 862/911/708 203/210/699 857/906/702 1666/1765/709 +f 1666/1765/709 857/906/702 196/203/646 829/878/644 +f 861/910/710 1666/1765/709 829/878/644 194/201/634 +f 193/200/626 860/909/706 1667/1766/711 820/869/627 +f 860/909/706 204/211/705 863/912/712 1667/1766/711 +f 1667/1766/711 863/912/712 206/213/678 846/895/677 +f 820/869/627 1667/1766/711 846/895/677 191/198/628 +f 207/214/681 864/913/713 1668/1767/714 849/898/682 +f 864/913/713 205/212/707 861/910/710 1668/1767/714 +f 1668/1767/714 861/910/710 194/201/634 823/872/631 +f 849/898/682 1668/1767/714 823/872/631 192/199/630 +f 199/206/687 865/914/715 1669/1768/716 851/900/688 +f 865/914/715 204/211/705 859/908/704 1669/1768/716 +f 1669/1768/716 859/908/704 202/209/697 855/904/696 +f 851/900/688 1669/1768/716 855/904/696 200/207/689 +f 203/210/699 862/911/708 1670/1769/717 858/907/700 +f 862/911/708 205/212/707 866/915/718 1670/1769/717 +f 1670/1769/717 866/915/718 199/206/687 854/903/692 +f 858/907/700 1670/1769/717 854/903/692 201/208/691 +f 199/206/687 867/916/719 1671/1770/720 865/914/715 +f 867/916/719 208/215/680 847/896/679 1671/1770/720 +f 1671/1770/720 847/896/679 206/213/678 863/912/712 +f 865/914/715 1671/1770/720 863/912/712 204/211/705 +f 207/214/681 848/897/684 1672/1771/721 864/913/713 +f 848/897/684 208/215/680 867/916/719 1672/1771/721 +f 1672/1771/721 867/916/719 199/206/687 866/915/718 +f 864/913/713 1672/1771/721 866/915/718 205/212/707 +f 139/146/650 832/881/653 1673/1772/722 868/917/723 +f 832/881/653 140/147/638 869/918/724 1673/1772/722 +f 1673/1772/722 869/918/724 164/171/330 768/817/526 +f 868/917/723 1673/1772/722 768/817/526 177/184/525 +f 165/172/339 870/919/725 1674/1773/726 769/818/529 +f 870/919/725 141/148/648 837/886/660 1674/1773/726 +f 1674/1773/726 837/886/660 139/146/650 868/917/723 +f 769/818/529 1674/1773/726 868/917/723 177/184/525 +f 140/147/638 826/875/641 1675/1774/727 869/918/724 +f 826/875/641 142/149/622 871/920/728 1675/1774/727 +f 1675/1774/727 871/920/728 211/218/729 872/921/730 +f 869/918/724 1675/1774/727 872/921/730 164/171/330 +f 212/219/731 874/923/732 1676/1775/733 873/922/734 +f 874/923/732 143/150/636 831/880/649 1676/1775/733 +f 1676/1775/733 831/880/649 141/148/648 870/919/725 +f 873/922/734 1676/1775/733 870/919/725 165/172/339 +f 142/149/622 818/867/625 1677/1776/735 871/920/728 +f 818/867/625 144/151/597 875/924/736 1677/1776/735 +f 1677/1776/735 875/924/736 213/220/737 876/925/738 +f 871/920/728 1677/1776/735 876/925/738 211/218/729 +f 214/221/739 878/927/740 1678/1777/741 877/926/742 +f 878/927/740 145/152/608 825/874/637 1678/1777/741 +f 1678/1777/741 825/874/637 143/150/636 874/923/732 +f 877/926/742 1678/1777/741 874/923/732 212/219/731 +f 144/151/597 805/854/600 1679/1778/743 875/924/736 +f 805/854/600 187/194/583 797/846/581 1679/1778/743 +f 1679/1778/743 797/846/581 166/173/314 879/928/744 +f 875/924/736 1679/1778/743 879/928/744 213/220/737 +f 167/174/318 802/851/592 1680/1779/745 880/929/746 +f 802/851/592 188/195/591 811/860/609 1680/1779/745 +f 1680/1779/745 811/860/609 145/152/608 878/927/740 +f 880/929/746 1680/1779/745 878/927/740 214/221/739 +f 81/88/310 881/930/747 1681/1780/748 662/711/311 +f 881/930/747 209/216/749 882/931/750 1681/1780/748 +f 1681/1780/748 882/931/750 213/220/737 879/928/744 +f 662/711/311 1681/1780/748 879/928/744 166/173/314 +f 214/221/739 883/932/751 1682/1781/752 880/929/746 +f 883/932/751 210/217/753 884/933/754 1682/1781/752 +f 1682/1781/752 884/933/754 82/89/320 665/714/319 +f 880/929/746 1682/1781/752 665/714/319 167/174/318 +f 209/216/749 885/934/755 1683/1782/756 882/931/750 +f 885/934/755 215/222/757 886/935/758 1683/1782/756 +f 1683/1782/756 886/935/758 211/218/729 876/925/738 +f 882/931/750 1683/1782/756 876/925/738 213/220/737 +f 212/219/731 887/936/759 1684/1783/760 877/926/742 +f 887/936/759 216/223/761 888/937/762 1684/1783/760 +f 1684/1783/760 888/937/762 210/217/753 883/932/751 +f 877/926/742 1684/1783/760 883/932/751 214/221/739 +f 79/86/322 667/716/325 1685/1784/763 889/938/764 +f 667/716/325 164/171/330 872/921/730 1685/1784/763 +f 1685/1784/763 872/921/730 211/218/729 886/935/758 +f 889/938/764 1685/1784/763 886/935/758 215/222/757 +f 212/219/731 873/922/734 1686/1785/765 887/936/759 +f 873/922/734 165/172/339 674/723/338 1686/1785/765 +f 1686/1785/765 674/723/338 80/87/337 890/939/766 +f 887/936/759 1686/1785/765 890/939/766 216/223/761 +f 131/138/573 816/865/617 1687/1786/767 891/940/768 +f 816/865/617 130/137/616 892/941/769 1687/1786/767 +f 1687/1786/767 892/941/769 72/72/770 893/942/771 +f 891/940/768 1687/1786/767 893/942/771 222/229/772 +f 72/72/770 892/941/769 1688/1787/773 894/943/774 +f 892/941/769 130/137/616 817/866/621 1688/1787/773 +f 1688/1787/773 817/866/621 132/139/579 895/944/775 +f 894/943/774 1688/1787/773 895/944/775 223/230/776 +f 133/140/565 794/843/574 1689/1788/777 896/945/778 +f 794/843/574 131/138/573 891/940/768 1689/1788/777 +f 1689/1788/777 891/940/768 222/229/772 897/946/779 +f 896/945/778 1689/1788/777 897/946/779 220/227/780 +f 223/230/776 895/944/775 1690/1789/781 898/947/782 +f 895/944/775 132/139/579 795/844/578 1690/1789/781 +f 1690/1789/781 795/844/578 134/141/571 899/948/783 +f 898/947/782 1690/1789/781 899/948/783 221/228/784 +f 135/142/555 790/839/566 1691/1790/785 900/949/786 +f 790/839/566 133/140/565 896/945/778 1691/1790/785 +f 1691/1790/785 896/945/778 220/227/780 901/950/787 +f 900/949/786 1691/1790/785 901/950/787 218/225/788 +f 221/228/784 899/948/783 1692/1791/789 902/951/790 +f 899/948/783 134/141/571 791/840/570 1692/1791/789 +f 1692/1791/789 791/840/570 136/143/563 903/952/791 +f 902/951/790 1692/1791/789 903/952/791 219/226/792 +f 137/144/559 785/834/556 1693/1792/793 904/953/794 +f 785/834/556 135/142/555 900/949/786 1693/1792/793 +f 1693/1792/793 900/949/786 218/225/788 905/954/795 +f 904/953/794 1693/1792/793 905/954/795 217/224/796 +f 219/226/792 903/952/791 1694/1793/797 906/955/798 +f 903/952/791 136/143/563 787/836/562 1694/1793/797 +f 1694/1793/797 787/836/562 137/144/559 904/953/794 +f 906/955/798 1694/1793/797 904/953/794 217/224/796 +f 217/224/796 905/954/795 1695/1794/799 907/956/800 +f 905/954/795 218/225/788 908/957/801 1695/1794/799 +f 1695/1794/799 908/957/801 229/236/802 909/958/803 +f 907/956/800 1695/1794/799 909/958/803 231/238/804 +f 230/237/805 911/960/806 1696/1795/807 910/959/808 +f 911/960/806 219/226/792 906/955/798 1696/1795/807 +f 1696/1795/807 906/955/798 217/224/796 907/956/800 +f 910/959/808 1696/1795/807 907/956/800 231/238/804 +f 218/225/788 901/950/787 1697/1796/809 908/957/801 +f 901/950/787 220/227/780 912/961/810 1697/1796/809 +f 1697/1796/809 912/961/810 227/234/811 913/962/812 +f 908/957/801 1697/1796/809 913/962/812 229/236/802 +f 228/235/813 915/964/814 1698/1797/815 914/963/816 +f 915/964/814 221/228/784 902/951/790 1698/1797/815 +f 1698/1797/815 902/951/790 219/226/792 911/960/806 +f 914/963/816 1698/1797/815 911/960/806 230/237/805 +f 220/227/780 897/946/779 1699/1798/817 912/961/810 +f 897/946/779 222/229/772 916/965/818 1699/1798/817 +f 1699/1798/817 916/965/818 225/232/819 917/966/820 +f 912/961/810 1699/1798/817 917/966/820 227/234/811 +f 226/233/821 919/968/822 1700/1799/823 918/967/824 +f 919/968/822 223/230/776 898/947/782 1700/1799/823 +f 1700/1799/823 898/947/782 221/228/784 915/964/814 +f 918/967/824 1700/1799/823 915/964/814 228/235/813 +f 222/229/772 893/942/771 1701/1800/825 916/965/818 +f 893/942/771 72/72/770 920/969/826 1701/1800/825 +f 1701/1800/825 920/969/826 224/231/827 921/970/828 +f 916/965/818 1701/1800/825 921/970/828 225/232/819 +f 224/231/827 920/969/826 1702/1801/829 922/971/830 +f 920/969/826 72/72/770 894/943/774 1702/1801/829 +f 1702/1801/829 894/943/774 223/230/776 919/968/822 +f 922/971/830 1702/1801/829 919/968/822 226/233/821 +f 224/231/827 923/972/831 1703/1802/832 921/970/828 +f 923/972/831 231/238/804 909/958/803 1703/1802/832 +f 1703/1802/832 909/958/803 229/236/802 924/973/833 +f 921/970/828 1703/1802/832 924/973/833 225/232/819 +f 230/237/805 910/959/808 1704/1803/834 925/974/835 +f 910/959/808 231/238/804 923/972/831 1704/1803/834 +f 1704/1803/834 923/972/831 224/231/827 922/971/830 +f 925/974/835 1704/1803/834 922/971/830 226/233/821 +f 225/232/819 924/973/833 1705/1804/836 917/966/820 +f 229/236/802 913/962/812 1705/1804/836 924/973/833 +f 227/234/811 917/966/820 1705/1804/836 913/962/812 +f 228/235/813 914/963/816 1706/1805/837 918/967/824 +f 230/237/805 925/974/835 1706/1805/837 914/963/816 +f 226/233/821 918/967/824 1706/1805/837 925/974/835 +f 183/190/545 782/831/552 1707/1806/838 926/975/839 +f 782/831/552 181/188/523 927/976/840 1707/1806/838 +f 1707/1806/838 927/976/840 234/241/841 928/977/842 +f 926/975/839 1707/1806/838 928/977/842 232/239/843 +f 235/242/844 930/979/845 1708/1807/846 929/978/847 +f 930/979/845 182/189/530 783/832/553 1708/1807/846 +f 1708/1807/846 783/832/553 184/191/549 931/980/848 +f 929/978/847 1708/1807/846 931/980/848 233/240/849 +f 112/119/535 776/825/541 1709/1808/850 932/981/851 +f 776/825/541 183/190/545 926/975/839 1709/1808/850 +f 1709/1808/850 926/975/839 232/239/843 933/982/852 +f 932/981/851 1709/1808/850 933/982/852 254/261/853 +f 233/240/849 931/980/848 1710/1809/854 934/983/855 +f 931/980/848 184/191/549 780/829/548 1710/1809/854 +f 1710/1809/854 780/829/548 113/120/539 935/984/856 +f 934/983/855 1710/1809/854 935/984/856 255/262/857 +f 110/117/445 772/821/533 1711/1810/858 936/985/859 +f 772/821/533 112/119/535 932/981/851 1711/1810/858 +f 1711/1810/858 932/981/851 254/261/853 937/986/860 +f 936/985/859 1711/1810/858 937/986/860 256/263/861 +f 255/262/857 935/984/856 1712/1811/862 938/987/863 +f 935/984/856 113/120/539 775/824/538 1712/1811/862 +f 1712/1811/862 775/824/538 111/118/455 939/988/864 +f 938/987/863 1712/1811/862 939/988/864 257/264/865 +f 181/188/523 766/815/521 1713/1812/866 927/976/840 +f 766/815/521 114/121/513 940/989/867 1713/1812/866 +f 1713/1812/866 940/989/867 252/259/868 941/990/869 +f 927/976/840 1713/1812/866 941/990/869 234/241/841 +f 253/260/870 943/992/871 1714/1813/872 942/991/873 +f 943/992/871 115/122/519 771/820/531 1714/1813/872 +f 1714/1813/872 771/820/531 182/189/530 930/979/845 +f 942/991/873 1714/1813/872 930/979/845 235/242/844 +f 114/121/513 762/811/516 1715/1814/874 940/989/867 +f 762/811/516 116/123/505 944/993/875 1715/1814/874 +f 1715/1814/874 944/993/875 250/257/876 945/994/877 +f 940/989/867 1715/1814/874 945/994/877 252/259/868 +f 251/258/878 947/996/879 1716/1815/880 946/995/881 +f 947/996/879 117/124/511 765/814/520 1716/1815/880 +f 1716/1815/880 765/814/520 115/122/519 943/992/871 +f 946/995/881 1716/1815/880 943/992/871 253/260/870 +f 116/123/505 758/807/508 1717/1816/882 944/993/875 +f 758/807/508 118/125/497 948/997/883 1717/1816/882 +f 1717/1816/882 948/997/883 248/255/884 949/998/885 +f 944/993/875 1717/1816/882 949/998/885 250/257/876 +f 249/256/886 951/1000/887 1718/1817/888 950/999/889 +f 951/1000/887 119/126/503 761/810/512 1718/1817/888 +f 1718/1817/888 761/810/512 117/124/511 947/996/879 +f 950/999/889 1718/1817/888 947/996/879 251/258/878 +f 118/125/497 754/803/500 1719/1818/890 948/997/883 +f 754/803/500 120/127/489 952/1001/891 1719/1818/890 +f 1719/1818/890 952/1001/891 246/253/892 953/1002/893 +f 948/997/883 1719/1818/890 953/1002/893 248/255/884 +f 247/254/894 955/1004/895 1720/1819/896 954/1003/897 +f 955/1004/895 121/128/495 757/806/504 1720/1819/896 +f 1720/1819/896 757/806/504 119/126/503 951/1000/887 +f 954/1003/897 1720/1819/896 951/1000/887 249/256/886 +f 120/127/489 750/799/492 1721/1820/898 952/1001/891 +f 750/799/492 122/129/481 956/1005/899 1721/1820/898 +f 1721/1820/898 956/1005/899 244/251/900 957/1006/901 +f 952/1001/891 1721/1820/898 957/1006/901 246/253/892 +f 245/252/902 959/1008/903 1722/1821/904 958/1007/905 +f 959/1008/903 123/130/487 753/802/496 1722/1821/904 +f 1722/1821/904 753/802/496 121/128/495 955/1004/895 +f 958/1007/905 1722/1821/904 955/1004/895 247/254/894 +f 122/129/481 746/795/484 1723/1822/906 956/1005/899 +f 746/795/484 124/131/473 960/1009/907 1723/1822/906 +f 1723/1822/906 960/1009/907 242/249/908 961/1010/909 +f 956/1005/899 1723/1822/906 961/1010/909 244/251/900 +f 243/250/910 963/1012/911 1724/1823/912 962/1011/913 +f 963/1012/911 125/132/479 749/798/488 1724/1823/912 +f 1724/1823/912 749/798/488 123/130/487 959/1008/903 +f 962/1011/913 1724/1823/912 959/1008/903 245/252/902 +f 124/131/473 742/791/476 1725/1824/914 960/1009/907 +f 742/791/476 126/133/465 964/1013/915 1725/1824/914 +f 1725/1824/914 964/1013/915 240/247/916 965/1014/917 +f 960/1009/907 1725/1824/914 965/1014/917 242/249/908 +f 241/248/918 967/1016/919 1726/1825/920 966/1015/921 +f 967/1016/919 127/134/471 745/794/480 1726/1825/920 +f 1726/1825/920 745/794/480 125/132/479 963/1012/911 +f 966/1015/921 1726/1825/920 963/1012/911 243/250/910 +f 126/133/465 738/787/468 1727/1826/922 964/1013/915 +f 738/787/468 179/186/459 968/1017/923 1727/1826/922 +f 1727/1826/922 968/1017/923 236/243/924 969/1018/925 +f 964/1013/915 1727/1826/922 969/1018/925 240/247/916 +f 237/244/926 971/1020/927 1728/1827/928 970/1019/929 +f 971/1020/927 180/187/463 741/790/472 1728/1827/928 +f 1728/1827/928 741/790/472 127/134/471 967/1016/919 +f 970/1019/929 1728/1827/928 967/1016/919 241/248/918 +f 179/186/459 734/783/457 1729/1828/930 968/1017/923 +f 734/783/457 128/135/449 972/1021/931 1729/1828/930 +f 1729/1828/930 972/1021/931 238/245/932 973/1022/933 +f 968/1017/923 1729/1828/930 973/1022/933 236/243/924 +f 239/246/934 975/1024/935 1730/1829/936 974/1023/937 +f 975/1024/935 129/136/453 737/786/464 1730/1829/936 +f 1730/1829/936 737/786/464 180/187/463 971/1020/927 +f 974/1023/937 1730/1829/936 971/1020/927 237/244/926 +f 128/135/449 729/778/446 1731/1830/938 972/1021/931 +f 729/778/446 110/117/445 936/985/859 1731/1830/938 +f 1731/1830/938 936/985/859 256/263/861 976/1025/939 +f 972/1021/931 1731/1830/938 976/1025/939 238/245/932 +f 257/264/865 939/988/864 1732/1831/940 977/1026/941 +f 939/988/864 111/118/455 732/781/454 1732/1831/940 +f 1732/1831/940 732/781/454 129/136/453 975/1024/935 +f 977/1026/941 1732/1831/940 975/1024/935 239/246/934 +f 238/245/932 976/1025/939 1733/1832/942 978/1027/943 +f 976/1025/939 256/263/861 979/1028/944 1733/1832/942 +f 1733/1832/942 979/1028/944 258/265/945 980/1029/946 +f 978/1027/943 1733/1832/942 980/1029/946 276/283/947 +f 259/266/948 982/1031/949 1734/1833/950 981/1030/951 +f 982/1031/949 257/264/865 977/1026/941 1734/1833/950 +f 1734/1833/950 977/1026/941 239/246/934 983/1032/952 +f 981/1030/951 1734/1833/950 983/1032/952 277/284/953 +f 236/243/924 973/1022/933 1735/1834/954 984/1033/955 +f 973/1022/933 238/245/932 978/1027/943 1735/1834/954 +f 1735/1834/954 978/1027/943 276/283/947 985/1034/956 +f 984/1033/955 1735/1834/954 985/1034/956 278/285/957 +f 277/284/953 983/1032/952 1736/1835/958 986/1035/959 +f 983/1032/952 239/246/934 974/1023/937 1736/1835/958 +f 1736/1835/958 974/1023/937 237/244/926 987/1036/960 +f 986/1035/959 1736/1835/958 987/1036/960 279/286/961 +f 240/247/916 969/1018/925 1737/1836/962 988/1037/963 +f 969/1018/925 236/243/924 984/1033/955 1737/1836/962 +f 1737/1836/962 984/1033/955 278/285/957 989/1038/964 +f 988/1037/963 1737/1836/962 989/1038/964 274/281/965 +f 279/286/961 987/1036/960 1738/1837/966 990/1039/967 +f 987/1036/960 237/244/926 970/1019/929 1738/1837/966 +f 1738/1837/966 970/1019/929 241/248/918 991/1040/968 +f 990/1039/967 1738/1837/966 991/1040/968 275/282/969 +f 242/249/908 965/1014/917 1739/1838/970 992/1041/971 +f 965/1014/917 240/247/916 988/1037/963 1739/1838/970 +f 1739/1838/970 988/1037/963 274/281/965 993/1042/972 +f 992/1041/971 1739/1838/970 993/1042/972 272/279/973 +f 275/282/969 991/1040/968 1740/1839/974 994/1043/975 +f 991/1040/968 241/248/918 966/1015/921 1740/1839/974 +f 1740/1839/974 966/1015/921 243/250/910 995/1044/976 +f 994/1043/975 1740/1839/974 995/1044/976 273/280/977 +f 244/251/900 961/1010/909 1741/1840/978 996/1045/979 +f 961/1010/909 242/249/908 992/1041/971 1741/1840/978 +f 1741/1840/978 992/1041/971 272/279/973 997/1046/980 +f 996/1045/979 1741/1840/978 997/1046/980 270/277/981 +f 273/280/977 995/1044/976 1742/1841/982 998/1047/983 +f 995/1044/976 243/250/910 962/1011/913 1742/1841/982 +f 1742/1841/982 962/1011/913 245/252/902 999/1048/984 +f 998/1047/983 1742/1841/982 999/1048/984 271/278/985 +f 246/253/892 957/1006/901 1743/1842/986 1000/1049/987 +f 957/1006/901 244/251/900 996/1045/979 1743/1842/986 +f 1743/1842/986 996/1045/979 270/277/981 1001/1050/988 +f 1000/1049/987 1743/1842/986 1001/1050/988 268/275/989 +f 271/278/985 999/1048/984 1744/1843/990 1002/1051/991 +f 999/1048/984 245/252/902 958/1007/905 1744/1843/990 +f 1744/1843/990 958/1007/905 247/254/894 1003/1052/992 +f 1002/1051/991 1744/1843/990 1003/1052/992 269/276/993 +f 248/255/884 953/1002/893 1745/1844/994 1004/1053/995 +f 953/1002/893 246/253/892 1000/1049/987 1745/1844/994 +f 1745/1844/994 1000/1049/987 268/275/989 1005/1054/996 +f 1004/1053/995 1745/1844/994 1005/1054/996 266/273/997 +f 269/276/993 1003/1052/992 1746/1845/998 1006/1055/999 +f 1003/1052/992 247/254/894 954/1003/897 1746/1845/998 +f 1746/1845/998 954/1003/897 249/256/886 1007/1056/1000 +f 1006/1055/999 1746/1845/998 1007/1056/1000 267/274/1001 +f 250/257/876 949/998/885 1747/1846/1002 1008/1057/1003 +f 949/998/885 248/255/884 1004/1053/995 1747/1846/1002 +f 1747/1846/1002 1004/1053/995 266/273/997 1009/1058/1004 +f 1008/1057/1003 1747/1846/1002 1009/1058/1004 264/271/1005 +f 267/274/1001 1007/1056/1000 1748/1847/1006 1010/1059/1007 +f 1007/1056/1000 249/256/886 950/999/889 1748/1847/1006 +f 1748/1847/1006 950/999/889 251/258/878 1011/1060/1008 +f 1010/1059/1007 1748/1847/1006 1011/1060/1008 265/272/1009 +f 252/259/868 945/994/877 1749/1848/1010 1012/1061/1011 +f 945/994/877 250/257/876 1008/1057/1003 1749/1848/1010 +f 1749/1848/1010 1008/1057/1003 264/271/1005 1013/1062/1012 +f 1012/1061/1011 1749/1848/1010 1013/1062/1012 262/269/1013 +f 265/272/1009 1011/1060/1008 1750/1849/1014 1014/1063/1015 +f 1011/1060/1008 251/258/878 946/995/881 1750/1849/1014 +f 1750/1849/1014 946/995/881 253/260/870 1015/1064/1016 +f 1014/1063/1015 1750/1849/1014 1015/1064/1016 263/270/1017 +f 234/241/841 941/990/869 1751/1850/1018 1016/1065/1019 +f 941/990/869 252/259/868 1012/1061/1011 1751/1850/1018 +f 1751/1850/1018 1012/1061/1011 262/269/1013 1017/1066/1020 +f 1016/1065/1019 1751/1850/1018 1017/1066/1020 280/287/1021 +f 263/270/1017 1015/1064/1016 1752/1851/1022 1018/1067/1023 +f 1015/1064/1016 253/260/870 942/991/873 1752/1851/1022 +f 1752/1851/1022 942/991/873 235/242/844 1019/1068/1024 +f 1018/1067/1023 1752/1851/1022 1019/1068/1024 281/288/1025 +f 256/263/861 937/986/860 1753/1852/1026 979/1028/944 +f 937/986/860 254/261/853 1020/1069/1027 1753/1852/1026 +f 1753/1852/1026 1020/1069/1027 260/267/1028 1021/1070/1029 +f 979/1028/944 1753/1852/1026 1021/1070/1029 258/265/945 +f 261/268/1030 1023/1072/1031 1754/1853/1032 1022/1071/1033 +f 1023/1072/1031 255/262/857 938/987/863 1754/1853/1032 +f 1754/1853/1032 938/987/863 257/264/865 982/1031/949 +f 1022/1071/1033 1754/1853/1032 982/1031/949 259/266/948 +f 254/261/853 933/982/852 1755/1854/1034 1020/1069/1027 +f 933/982/852 232/239/843 1024/1073/1035 1755/1854/1034 +f 1755/1854/1034 1024/1073/1035 282/289/1036 1025/1074/1037 +f 1020/1069/1027 1755/1854/1034 1025/1074/1037 260/267/1028 +f 283/290/1038 1027/1076/1039 1756/1855/1040 1026/1075/1041 +f 1027/1076/1039 233/240/849 934/983/855 1756/1855/1040 +f 1756/1855/1040 934/983/855 255/262/857 1023/1072/1031 +f 1026/1075/1041 1756/1855/1040 1023/1072/1031 261/268/1030 +f 232/239/843 928/977/842 1757/1856/1042 1024/1073/1035 +f 928/977/842 234/241/841 1016/1065/1019 1757/1856/1042 +f 1757/1856/1042 1016/1065/1019 280/287/1021 1028/1077/1043 +f 1024/1073/1035 1757/1856/1042 1028/1077/1043 282/289/1036 +f 281/288/1025 1019/1068/1024 1758/1857/1044 1029/1078/1045 +f 1019/1068/1024 235/242/844 929/978/847 1758/1857/1044 +f 1758/1857/1044 929/978/847 233/240/849 1027/1076/1039 +f 1029/1078/1045 1758/1857/1044 1027/1076/1039 283/290/1038 +f 67/67/438 723/772/436 1759/1858/1046 1030/1079/1047 +f 723/772/436 108/115/426 1031/1080/1048 1759/1858/1046 +f 1759/1858/1046 1031/1080/1048 284/291/1049 1032/1081/1050 +f 1030/1079/1047 1759/1858/1046 1032/1081/1050 73/73/1051 +f 285/293/1052 1034/1085/1053 1760/1859/1054 1033/1083/1055 +f 1034/1085/1053 109/116/434 727/776/444 1760/1859/1054 +f 1760/1859/1054 727/776/444 67/67/438 1030/1079/1047 +f 1033/1083/1055 1760/1859/1054 1030/1079/1047 73/73/1051 +f 108/115/426 717/766/424 1761/1860/1056 1031/1080/1048 +f 717/766/424 106/113/414 1035/1086/1057 1761/1860/1056 +f 1761/1860/1056 1035/1086/1057 286/295/1058 1036/1087/1059 +f 1031/1080/1048 1761/1860/1056 1036/1087/1059 284/291/1049 +f 287/297/1060 1038/1091/1061 1762/1861/1062 1037/1089/1063 +f 1038/1091/1061 107/114/422 722/771/435 1762/1861/1062 +f 1762/1861/1062 722/771/435 109/116/434 1034/1085/1053 +f 1037/1089/1063 1762/1861/1062 1034/1085/1053 285/293/1052 +f 106/113/414 711/760/412 1763/1862/1064 1035/1086/1057 +f 711/760/412 104/111/402 1039/1092/1065 1763/1862/1064 +f 1763/1862/1064 1039/1092/1065 288/299/1066 1040/1093/1067 +f 1035/1086/1057 1763/1862/1064 1040/1093/1067 286/295/1058 +f 289/301/1068 1042/1097/1069 1764/1863/1070 1041/1095/1071 +f 1042/1097/1069 105/112/410 716/765/423 1764/1863/1070 +f 1764/1863/1070 716/765/423 107/114/422 1038/1091/1061 +f 1041/1095/1071 1764/1863/1070 1038/1091/1061 287/297/1060 +f 104/111/402 705/754/400 1765/1864/1072 1039/1092/1065 +f 705/754/400 102/109/390 1043/1098/1073 1765/1864/1072 +f 1765/1864/1072 1043/1098/1073 290/303/1074 1044/1099/1075 +f 1039/1092/1065 1765/1864/1072 1044/1099/1075 288/299/1066 +f 291/305/1076 1046/1103/1077 1766/1865/1078 1045/1101/1079 +f 1046/1103/1077 103/110/398 710/759/411 1766/1865/1078 +f 1766/1865/1078 710/759/411 105/112/410 1042/1097/1069 +f 1045/1101/1079 1766/1865/1078 1042/1097/1069 289/301/1068 +f 102/109/390 699/748/388 1767/1866/1080 1043/1098/1073 +f 699/748/388 100/107/378 1047/1104/1081 1767/1866/1080 +f 1767/1866/1080 1047/1104/1081 292/307/1082 1048/1105/1083 +f 1043/1098/1073 1767/1866/1080 1048/1105/1083 290/303/1074 +f 293/309/1084 1050/1109/1085 1768/1867/1086 1049/1107/1087 +f 1050/1109/1085 101/108/386 704/753/399 1768/1867/1086 +f 1768/1867/1086 704/753/399 103/110/398 1046/1103/1077 +f 1049/1107/1087 1768/1867/1086 1046/1103/1077 291/305/1076 +f 100/107/378 693/742/376 1769/1868/1088 1047/1104/1081 +f 693/742/376 98/105/366 1051/1110/1089 1769/1868/1088 +f 1769/1868/1088 1051/1110/1089 294/311/1090 1052/1111/1091 +f 1047/1104/1081 1769/1868/1088 1052/1111/1091 292/307/1082 +f 295/312/1092 1054/1115/1093 1770/1869/1094 1053/1113/1095 +f 1054/1115/1093 99/106/374 698/747/387 1770/1869/1094 +f 1770/1869/1094 698/747/387 101/108/386 1050/1109/1085 +f 1053/1113/1095 1770/1869/1094 1050/1109/1085 293/309/1084 +f 98/105/366 687/736/364 1771/1870/1096 1051/1110/1089 +f 687/736/364 96/103/354 1055/1116/1097 1771/1870/1096 +f 1771/1870/1096 1055/1116/1097 296/313/1098 1056/1117/1099 +f 1051/1110/1089 1771/1870/1096 1056/1117/1099 294/311/1090 +f 297/314/1100 1058/1119/1101 1772/1871/1102 1057/1118/1103 +f 1058/1119/1101 97/104/362 692/741/375 1772/1871/1102 +f 1772/1871/1102 692/741/375 99/106/374 1054/1115/1093 +f 1057/1118/1103 1772/1871/1102 1054/1115/1093 295/312/1092 +f 96/103/354 681/730/352 1773/1872/1104 1055/1116/1097 +f 681/730/352 94/101/342 1059/1120/1105 1773/1872/1104 +f 1773/1872/1104 1059/1120/1105 298/315/1106 1060/1121/1107 +f 1055/1116/1097 1773/1872/1104 1060/1121/1107 296/313/1098 +f 299/316/1108 1062/1123/1109 1774/1873/1110 1061/1122/1111 +f 1062/1123/1109 95/102/350 686/735/363 1774/1873/1110 +f 1774/1873/1110 686/735/363 97/104/362 1058/1119/1101 +f 1061/1122/1111 1774/1873/1110 1058/1119/1101 297/314/1100 +f 94/101/342 675/724/340 1775/1874/1112 1059/1120/1105 +f 675/724/340 92/99/326 1063/1124/1113 1775/1874/1112 +f 1775/1874/1112 1063/1124/1113 300/317/1114 1064/1125/1115 +f 1059/1120/1105 1775/1874/1112 1064/1125/1115 298/315/1106 +f 301/318/1116 1066/1127/1117 1776/1875/1118 1065/1126/1119 +f 1066/1127/1117 93/100/335 680/729/351 1776/1875/1118 +f 1776/1875/1118 680/729/351 95/102/350 1062/1123/1109 +f 1065/1126/1119 1776/1875/1118 1062/1123/1109 299/316/1108 +f 308/330/1120 1068/1129/1121 1777/1876/1122 1067/1128/1123 +f 1068/1129/1121 309/332/1124 1069/1131/1125 1777/1876/1122 +f 1777/1876/1122 1069/1131/1125 328/358/1126 1070/1132/1127 +f 1067/1128/1123 1777/1876/1122 1070/1132/1127 338/368/1128 +f 329/359/1129 1072/1134/1130 1778/1877/1131 1071/1133/1132 +f 1072/1134/1130 309/333/1124 1068/1130/1121 1778/1877/1131 +f 1778/1877/1131 1068/1130/1121 308/331/1120 1073/1135/1133 +f 1071/1133/1132 1778/1877/1131 1073/1135/1133 339/369/1134 +f 307/328/1135 1075/1137/1136 1779/1878/1137 1074/1136/1138 +f 1075/1137/1136 308/330/1120 1067/1128/1123 1779/1878/1137 +f 1779/1878/1137 1067/1128/1123 338/368/1128 1076/1139/1139 +f 1074/1136/1138 1779/1878/1137 1076/1139/1139 336/366/1140 +f 339/369/1134 1073/1135/1133 1780/1879/1141 1077/1140/1142 +f 1073/1135/1133 308/331/1120 1075/1138/1136 1780/1879/1141 +f 1780/1879/1141 1075/1138/1136 307/329/1135 1078/1141/1143 +f 1077/1140/1142 1780/1879/1141 1078/1141/1143 337/367/1144 +f 306/327/1145 1080/1143/1146 1781/1880/1147 1079/1142/1148 +f 1080/1143/1146 307/328/1135 1074/1136/1138 1781/1880/1147 +f 1781/1880/1147 1074/1136/1138 336/366/1140 1081/1145/1149 +f 1079/1142/1148 1781/1880/1147 1081/1145/1149 340/370/1150 +f 337/367/1144 1078/1141/1143 1782/1881/1151 1082/1146/1152 +f 1078/1141/1143 307/329/1135 1080/1144/1146 1782/1881/1151 +f 1782/1881/1151 1080/1144/1146 306/327/1145 1083/1147/1153 +f 1082/1146/1152 1782/1881/1151 1083/1147/1153 341/371/1154 +f 89/96/259 636/685/262 1783/1882/1155 1084/1148/1156 +f 636/685/262 91/98/267 1085/1149/1157 1783/1882/1155 +f 1783/1882/1155 1085/1149/1157 306/327/1145 1079/1142/1148 +f 1084/1148/1156 1783/1882/1155 1079/1142/1148 340/370/1150 +f 306/327/1145 1085/1149/1157 1784/1883/1158 1083/1147/1153 +f 1085/1149/1157 91/98/267 642/691/273 1784/1883/1158 +f 1784/1883/1158 642/691/273 90/97/272 1086/1150/1159 +f 1083/1147/1153 1784/1883/1158 1086/1150/1159 341/371/1154 +f 87/94/274 643/692/277 1785/1884/1160 1087/1151/1161 +f 643/692/277 89/96/259 1084/1148/1156 1785/1884/1160 +f 1785/1884/1160 1084/1148/1156 340/370/1150 1088/1152/1162 +f 1087/1151/1161 1785/1884/1160 1088/1152/1162 334/364/1163 +f 341/371/1154 1086/1150/1159 1786/1885/1164 1089/1153/1165 +f 1086/1150/1159 90/97/272 648/697/285 1786/1885/1164 +f 1786/1885/1164 648/697/285 88/95/284 1090/1154/1166 +f 1089/1153/1165 1786/1885/1164 1090/1154/1166 335/365/1167 +f 85/92/286 649/698/289 1787/1886/1168 1091/1155/1169 +f 649/698/289 87/94/274 1087/1151/1161 1787/1886/1168 +f 1787/1886/1168 1087/1151/1161 334/364/1163 1092/1156/1170 +f 1091/1155/1169 1787/1886/1168 1092/1156/1170 330/360/1171 +f 335/365/1167 1090/1154/1166 1788/1887/1172 1093/1157/1173 +f 1090/1154/1166 88/95/284 654/703/297 1788/1887/1172 +f 1788/1887/1172 654/703/297 86/93/296 1094/1158/1174 +f 1093/1157/1173 1788/1887/1172 1094/1158/1174 331/361/1175 +f 83/90/298 655/704/301 1789/1888/1176 1095/1159/1177 +f 655/704/301 85/92/286 1091/1155/1169 1789/1888/1176 +f 1789/1888/1176 1091/1155/1169 330/360/1171 1096/1160/1178 +f 1095/1159/1177 1789/1888/1176 1096/1160/1178 332/362/1179 +f 331/361/1175 1094/1158/1174 1790/1889/1180 1097/1161/1181 +f 1094/1158/1174 86/93/296 660/709/309 1790/1889/1180 +f 1790/1889/1180 660/709/309 84/91/308 1098/1162/1182 +f 1097/1161/1181 1790/1889/1180 1098/1162/1182 333/363/1183 +f 330/360/1171 1099/1163/1184 1791/1890/1185 1096/1160/1178 +f 1099/1163/1184 336/366/1140 1076/1139/1139 1791/1890/1185 +f 1791/1890/1185 1076/1139/1139 338/368/1128 1100/1164/1186 +f 1096/1160/1178 1791/1890/1185 1100/1164/1186 332/362/1179 +f 339/369/1134 1077/1140/1142 1792/1891/1187 1101/1165/1188 +f 1077/1140/1142 337/367/1144 1102/1166/1189 1792/1891/1187 +f 1792/1891/1187 1102/1166/1189 331/361/1175 1097/1161/1181 +f 1101/1165/1188 1792/1891/1187 1097/1161/1181 333/363/1183 +f 330/360/1171 1092/1156/1170 1793/1892/1190 1099/1163/1184 +f 1092/1156/1170 334/364/1163 1088/1152/1162 1793/1892/1190 +f 1793/1892/1190 1088/1152/1162 340/370/1150 1081/1145/1149 +f 1099/1163/1184 1793/1892/1190 1081/1145/1149 336/366/1140 +f 341/371/1154 1089/1153/1165 1794/1893/1191 1082/1146/1152 +f 1089/1153/1165 335/365/1167 1093/1157/1173 1794/1893/1191 +f 1794/1893/1191 1093/1157/1173 331/361/1175 1102/1166/1189 +f 1082/1146/1152 1794/1893/1191 1102/1166/1189 337/367/1144 +f 326/356/1192 1104/1168/1193 1795/1894/1194 1103/1167/1195 +f 1104/1168/1193 332/362/1179 1100/1164/1186 1795/1894/1194 +f 1795/1894/1194 1100/1164/1186 338/368/1128 1070/1132/1127 +f 1103/1167/1195 1795/1894/1194 1070/1132/1127 328/358/1126 +f 339/369/1134 1101/1165/1188 1796/1895/1196 1071/1133/1132 +f 1101/1165/1188 333/363/1183 1105/1169/1197 1796/1895/1196 +f 1796/1895/1196 1105/1169/1197 327/357/1198 1106/1170/1199 +f 1071/1133/1132 1796/1895/1196 1106/1170/1199 329/359/1129 +f 81/88/310 661/710/313 1797/1896/1200 1107/1171/1201 +f 661/710/313 83/90/298 1095/1159/1177 1797/1896/1200 +f 1797/1896/1200 1095/1159/1177 332/362/1179 1104/1168/1193 +f 1107/1171/1201 1797/1896/1200 1104/1168/1193 326/356/1192 +f 333/363/1183 1098/1162/1182 1798/1897/1202 1105/1169/1197 +f 1098/1162/1182 84/91/308 666/715/321 1798/1897/1202 +f 1798/1897/1202 666/715/321 82/89/320 1108/1172/1203 +f 1105/1169/1197 1798/1897/1202 1108/1172/1203 327/357/1198 +f 209/216/749 1109/1173/1204 1799/1898/1205 885/934/755 +f 1109/1173/1204 342/372/1206 1110/1174/1207 1799/1898/1205 +f 1799/1898/1205 1110/1174/1207 344/374/1208 1111/1175/1209 +f 885/934/755 1799/1898/1205 1111/1175/1209 215/222/757 +f 345/375/1210 1113/1177/1211 1800/1899/1212 1112/1176/1213 +f 1113/1177/1211 343/373/1214 1114/1178/1215 1800/1899/1212 +f 1800/1899/1212 1114/1178/1215 210/217/753 888/937/762 +f 1112/1176/1213 1800/1899/1212 888/937/762 216/223/761 +f 81/88/310 1107/1171/1201 1801/1900/1216 881/930/747 +f 1107/1171/1201 326/356/1192 1115/1179/1217 1801/1900/1216 +f 1801/1900/1216 1115/1179/1217 342/372/1206 1109/1173/1204 +f 881/930/747 1801/1900/1216 1109/1173/1204 209/216/749 +f 343/373/1214 1116/1180/1218 1802/1901/1219 1114/1178/1215 +f 1116/1180/1218 327/357/1198 1108/1172/1203 1802/1901/1219 +f 1802/1901/1219 1108/1172/1203 82/89/320 884/933/754 +f 1114/1178/1215 1802/1901/1219 884/933/754 210/217/753 +f 79/86/322 889/938/764 1803/1902/1220 1117/1181/1221 +f 889/938/764 215/222/757 1111/1175/1209 1803/1902/1220 +f 1803/1902/1220 1111/1175/1209 344/374/1208 1118/1182/1222 +f 1117/1181/1221 1803/1902/1220 1118/1182/1222 346/376/1223 +f 345/375/1210 1112/1176/1213 1804/1903/1224 1119/1183/1225 +f 1112/1176/1213 216/223/761 890/939/766 1804/1903/1224 +f 1804/1903/1224 890/939/766 80/87/337 1120/1184/1226 +f 1119/1183/1225 1804/1903/1224 1120/1184/1226 347/377/1227 +f 79/86/322 1117/1181/1221 1805/1904/1228 668/717/323 +f 1117/1181/1221 346/376/1223 1121/1185/1229 1805/1904/1228 +f 1805/1904/1228 1121/1185/1229 300/317/1114 1063/1124/1113 +f 668/717/323 1805/1904/1228 1063/1124/1113 92/99/326 +f 301/318/1116 1122/1186/1230 1806/1905/1231 1066/1127/1117 +f 1122/1186/1230 347/377/1227 1120/1184/1226 1806/1905/1231 +f 1806/1905/1231 1120/1184/1226 80/87/337 673/722/336 +f 1066/1127/1117 1806/1905/1231 673/722/336 93/100/335 +f 77/82/1232 1124/1189/1233 1807/1906/1234 1123/1187/1235 +f 1124/1189/1233 324/354/1236 1125/1190/1237 1807/1906/1234 +f 1807/1906/1234 1125/1190/1237 352/382/1238 1126/1191/1239 +f 1123/1187/1235 1807/1906/1234 1126/1191/1239 304/323/1240 +f 353/383/1241 1128/1193/1242 1808/1907/1243 1127/1192/1244 +f 1128/1193/1242 325/355/1245 1129/1194/1246 1808/1907/1243 +f 1808/1907/1243 1129/1194/1246 77/83/1232 1123/1188/1235 +f 1127/1192/1244 1808/1907/1243 1123/1188/1235 304/324/1240 +f 304/323/1240 1126/1191/1239 1809/1908/1247 1130/1195/1248 +f 1126/1191/1239 352/382/1238 1131/1197/1249 1809/1908/1247 +f 1809/1908/1247 1131/1197/1249 350/380/1250 1132/1198/1251 +f 1130/1195/1248 1809/1908/1247 1132/1198/1251 78/84/1252 +f 351/381/1253 1134/1200/1254 1810/1909/1255 1133/1199/1256 +f 1134/1200/1254 353/383/1241 1127/1192/1244 1810/1909/1255 +f 1810/1909/1255 1127/1192/1244 304/324/1240 1130/1196/1248 +f 1133/1199/1256 1810/1909/1255 1130/1196/1248 78/85/1252 +f 78/84/1252 1132/1198/1251 1811/1910/1257 1135/1201/1258 +f 1132/1198/1251 350/380/1250 1136/1203/1259 1811/1910/1257 +f 1811/1910/1257 1136/1203/1259 348/378/1260 1137/1204/1261 +f 1135/1201/1258 1811/1910/1257 1137/1204/1261 305/325/1262 +f 349/379/1263 1139/1206/1264 1812/1911/1265 1138/1205/1266 +f 1139/1206/1264 351/381/1253 1133/1199/1256 1812/1911/1265 +f 1812/1911/1265 1133/1199/1256 78/85/1252 1135/1202/1258 +f 1138/1205/1266 1812/1911/1265 1135/1202/1258 305/326/1262 +f 305/325/1262 1137/1204/1261 1813/1912/1267 1140/1207/1268 +f 1137/1204/1261 348/378/1260 1141/1209/1269 1813/1912/1267 +f 1813/1912/1267 1141/1209/1269 328/358/1126 1069/1131/1125 +f 1140/1207/1268 1813/1912/1267 1069/1131/1125 309/332/1124 +f 329/359/1129 1142/1210/1270 1814/1913/1271 1072/1134/1130 +f 1142/1210/1270 349/379/1263 1138/1205/1266 1814/1913/1271 +f 1814/1913/1271 1138/1205/1266 305/326/1262 1140/1208/1268 +f 1072/1134/1130 1814/1913/1271 1140/1208/1268 309/333/1124 +f 326/356/1192 1103/1167/1195 1815/1914/1272 1115/1179/1217 +f 1103/1167/1195 328/358/1126 1141/1209/1269 1815/1914/1272 +f 1815/1914/1272 1141/1209/1269 348/378/1260 1143/1211/1273 +f 1115/1179/1217 1815/1914/1272 1143/1211/1273 342/372/1206 +f 349/379/1263 1142/1210/1270 1816/1915/1274 1144/1212/1275 +f 1142/1210/1270 329/359/1129 1106/1170/1199 1816/1915/1274 +f 1816/1915/1274 1106/1170/1199 327/357/1198 1116/1180/1218 +f 1144/1212/1275 1816/1915/1274 1116/1180/1218 343/373/1214 +f 296/313/1098 1060/1121/1107 1817/1916/1276 1145/1213/1277 +f 1060/1121/1107 298/315/1106 1146/1214/1278 1817/1916/1276 +f 1817/1916/1276 1146/1214/1278 318/344/1279 1147/1215/1280 +f 1145/1213/1277 1817/1916/1276 1147/1215/1280 310/334/1281 +f 319/345/1282 1149/1217/1283 1818/1917/1284 1148/1216/1285 +f 1149/1217/1283 299/316/1108 1061/1122/1111 1818/1917/1284 +f 1818/1917/1284 1061/1122/1111 297/314/1100 1150/1218/1286 +f 1148/1216/1285 1818/1917/1284 1150/1218/1286 311/335/1287 +f 76/80/1288 1152/1221/1289 1819/1918/1290 1151/1219/1291 +f 1152/1221/1289 316/342/1292 1153/1222/1293 1819/1918/1290 +f 1819/1918/1290 1153/1222/1293 324/354/1236 1124/1189/1233 +f 1151/1219/1291 1819/1918/1290 1124/1189/1233 77/82/1232 +f 325/355/1245 1154/1223/1294 1820/1919/1295 1129/1194/1246 +f 1154/1223/1294 317/343/1296 1155/1224/1297 1820/1919/1295 +f 1820/1919/1295 1155/1224/1297 76/81/1288 1151/1220/1291 +f 1129/1194/1246 1820/1919/1295 1151/1220/1291 77/83/1232 +f 302/319/1298 1157/1227/1299 1821/1920/1300 1156/1225/1301 +f 1157/1227/1299 358/388/1302 1158/1228/1303 1821/1920/1300 +f 1821/1920/1300 1158/1228/1303 356/386/1304 1159/1229/1305 +f 1156/1225/1301 1821/1920/1300 1159/1229/1305 303/321/1306 +f 357/387/1307 1161/1231/1308 1822/1921/1309 1160/1230/1310 +f 1161/1231/1308 359/389/1311 1162/1232/1312 1822/1921/1309 +f 1822/1921/1309 1162/1232/1312 302/320/1298 1156/1226/1301 +f 1160/1230/1310 1822/1921/1309 1156/1226/1301 303/322/1306 +f 303/321/1306 1159/1229/1305 1823/1922/1313 1163/1233/1314 +f 1159/1229/1305 356/386/1304 1164/1235/1315 1823/1922/1313 +f 1823/1922/1313 1164/1235/1315 354/384/1316 1165/1236/1317 +f 1163/1233/1314 1823/1922/1313 1165/1236/1317 75/78/1318 +f 355/385/1319 1167/1238/1320 1824/1923/1321 1166/1237/1322 +f 1167/1238/1320 357/387/1307 1160/1230/1310 1824/1923/1321 +f 1824/1923/1321 1160/1230/1310 303/322/1306 1163/1234/1314 +f 1166/1237/1322 1824/1923/1321 1163/1234/1314 75/79/1318 +f 75/78/1318 1165/1236/1317 1825/1924/1323 1168/1239/1324 +f 1165/1236/1317 354/384/1316 1169/1241/1325 1825/1924/1323 +f 1825/1924/1323 1169/1241/1325 316/342/1292 1152/1221/1289 +f 1168/1239/1324 1825/1924/1323 1152/1221/1289 76/80/1288 +f 317/343/1296 1170/1242/1326 1826/1925/1327 1155/1224/1297 +f 1170/1242/1326 355/385/1319 1166/1237/1322 1826/1925/1327 +f 1826/1925/1327 1166/1237/1322 75/79/1318 1168/1240/1324 +f 1155/1224/1297 1826/1925/1327 1168/1240/1324 76/81/1288 +f 292/308/1082 1052/1112/1091 1827/1926/1328 1171/1243/1329 +f 1052/1112/1091 294/311/1090 1172/1244/1330 1827/1926/1328 +f 1827/1926/1328 1172/1244/1330 362/392/1331 1173/1245/1332 +f 1171/1243/1329 1827/1926/1328 1173/1245/1332 364/394/1333 +f 363/393/1334 1175/1247/1335 1828/1927/1336 1174/1246/1337 +f 1175/1247/1335 295/312/1092 1053/1114/1095 1828/1927/1336 +f 1828/1927/1336 1053/1114/1095 293/310/1084 1176/1248/1338 +f 1174/1246/1337 1828/1927/1336 1176/1248/1338 365/395/1339 +f 364/394/1333 1173/1245/1332 1829/1928/1340 1177/1249/1341 +f 1173/1245/1332 362/392/1331 1178/1250/1342 1829/1928/1340 +f 1829/1928/1340 1178/1250/1342 368/398/1343 1179/1251/1344 +f 1177/1249/1341 1829/1928/1340 1179/1251/1344 366/396/1345 +f 369/399/1346 1181/1253/1347 1830/1929/1348 1180/1252/1349 +f 1181/1253/1347 363/393/1334 1174/1246/1337 1830/1929/1348 +f 1830/1929/1348 1174/1246/1337 365/395/1339 1182/1254/1350 +f 1180/1252/1349 1830/1929/1348 1182/1254/1350 367/397/1351 +f 366/396/1345 1179/1251/1344 1831/1930/1352 1183/1255/1353 +f 1179/1251/1344 368/398/1343 1184/1256/1354 1831/1930/1352 +f 1831/1930/1352 1184/1256/1354 370/400/1355 1185/1257/1356 +f 1183/1255/1353 1831/1930/1352 1185/1257/1356 372/402/1357 +f 371/401/1358 1187/1259/1359 1832/1931/1360 1186/1258/1361 +f 1187/1259/1359 369/399/1346 1180/1252/1349 1832/1931/1360 +f 1832/1931/1360 1180/1252/1349 367/397/1351 1188/1260/1362 +f 1186/1258/1361 1832/1931/1360 1188/1260/1362 373/403/1363 +f 372/402/1357 1185/1257/1356 1833/1932/1364 1189/1261/1365 +f 1185/1257/1356 370/400/1355 1190/1262/1366 1833/1932/1364 +f 1833/1932/1364 1190/1262/1366 376/406/1367 1191/1263/1368 +f 1189/1261/1365 1833/1932/1364 1191/1263/1368 374/404/1369 +f 377/407/1370 1193/1265/1371 1834/1933/1372 1192/1264/1373 +f 1193/1265/1371 371/401/1358 1186/1258/1361 1834/1933/1372 +f 1834/1933/1372 1186/1258/1361 373/403/1363 1194/1266/1374 +f 1192/1264/1373 1834/1933/1372 1194/1266/1374 375/405/1375 +f 314/338/1376 1196/1268/1377 1835/1934/1378 1195/1267/1379 +f 1196/1268/1377 378/408/1380 1197/1269/1381 1835/1934/1378 +f 1835/1934/1378 1197/1269/1381 374/404/1369 1191/1263/1368 +f 1195/1267/1379 1835/1934/1378 1191/1263/1368 376/406/1367 +f 375/405/1375 1198/1270/1382 1836/1935/1383 1192/1264/1373 +f 1198/1270/1382 379/409/1384 1199/1271/1385 1836/1935/1383 +f 1836/1935/1383 1199/1271/1385 315/340/1386 1200/1272/1387 +f 1192/1264/1373 1836/1935/1383 1200/1272/1387 377/407/1370 +f 316/342/1292 1169/1241/1325 1837/1936/1388 1201/1273/1389 +f 1169/1241/1325 354/384/1316 1202/1274/1390 1837/1936/1388 +f 1837/1936/1388 1202/1274/1390 374/404/1369 1197/1269/1381 +f 1201/1273/1389 1837/1936/1388 1197/1269/1381 378/408/1380 +f 375/405/1375 1203/1275/1391 1838/1937/1392 1198/1270/1382 +f 1203/1275/1391 355/385/1319 1170/1242/1326 1838/1937/1392 +f 1838/1937/1392 1170/1242/1326 317/343/1296 1204/1276/1393 +f 1198/1270/1382 1838/1937/1392 1204/1276/1393 379/409/1384 +f 354/384/1316 1164/1235/1315 1839/1938/1394 1202/1274/1390 +f 1164/1235/1315 356/386/1304 1205/1277/1395 1839/1938/1394 +f 1839/1938/1394 1205/1277/1395 372/402/1357 1189/1261/1365 +f 1202/1274/1390 1839/1938/1394 1189/1261/1365 374/404/1369 +f 373/403/1363 1206/1278/1396 1840/1939/1397 1194/1266/1374 +f 1206/1278/1396 357/387/1307 1167/1238/1320 1840/1939/1397 +f 1840/1939/1397 1167/1238/1320 355/385/1319 1203/1275/1391 +f 1194/1266/1374 1840/1939/1397 1203/1275/1391 375/405/1375 +f 356/386/1304 1158/1228/1303 1841/1940/1398 1205/1277/1395 +f 1158/1228/1303 358/388/1302 1207/1279/1399 1841/1940/1398 +f 1841/1940/1398 1207/1279/1399 366/396/1345 1183/1255/1353 +f 1205/1277/1395 1841/1940/1398 1183/1255/1353 372/402/1357 +f 367/397/1351 1208/1280/1400 1842/1941/1401 1188/1260/1362 +f 1208/1280/1400 359/389/1311 1161/1231/1308 1842/1941/1401 +f 1842/1941/1401 1161/1231/1308 357/387/1307 1206/1278/1396 +f 1188/1260/1362 1842/1941/1401 1206/1278/1396 373/403/1363 +f 358/388/1302 1209/1281/1402 1843/1942/1403 1207/1279/1399 +f 1209/1281/1402 360/390/1404 1210/1282/1405 1843/1942/1403 +f 1843/1942/1403 1210/1282/1405 364/394/1333 1177/1249/1341 +f 1207/1279/1399 1843/1942/1403 1177/1249/1341 366/396/1345 +f 365/395/1339 1211/1283/1406 1844/1943/1407 1182/1254/1350 +f 1211/1283/1406 361/391/1408 1212/1284/1409 1844/1943/1407 +f 1844/1943/1407 1212/1284/1409 359/389/1311 1208/1280/1400 +f 1182/1254/1350 1844/1943/1407 1208/1280/1400 367/397/1351 +f 290/304/1074 1048/1106/1083 1845/1944/1410 1213/1285/1411 +f 1048/1106/1083 292/308/1082 1171/1243/1329 1845/1944/1410 +f 1845/1944/1410 1171/1243/1329 364/394/1333 1210/1282/1405 +f 1213/1285/1411 1845/1944/1410 1210/1282/1405 360/390/1404 +f 365/395/1339 1176/1248/1338 1846/1945/1412 1211/1283/1406 +f 1176/1248/1338 293/310/1084 1049/1108/1087 1846/1945/1412 +f 1846/1945/1412 1049/1108/1087 291/306/1076 1214/1286/1413 +f 1211/1283/1406 1846/1945/1412 1214/1286/1413 361/391/1408 +f 74/76/1414 1216/1289/1415 1847/1946/1416 1215/1287/1417 +f 1216/1289/1415 360/390/1404 1209/1281/1402 1847/1946/1416 +f 1847/1946/1416 1209/1281/1402 358/388/1302 1157/1227/1299 +f 1215/1287/1417 1847/1946/1416 1157/1227/1299 302/319/1298 +f 359/389/1311 1212/1284/1409 1848/1947/1418 1162/1232/1312 +f 1212/1284/1409 361/391/1408 1217/1290/1419 1848/1947/1418 +f 1848/1947/1418 1217/1290/1419 74/77/1414 1215/1288/1417 +f 1162/1232/1312 1848/1947/1418 1215/1288/1417 302/320/1298 +f 284/292/1049 1036/1088/1059 1849/1948/1420 1218/1291/1421 +f 1036/1088/1059 286/296/1058 1040/1094/1067 1849/1948/1420 +f 1849/1948/1420 1040/1094/1067 288/300/1066 1044/1100/1075 +f 1218/1291/1421 1849/1948/1420 1044/1100/1075 290/304/1074 +f 289/302/1068 1041/1096/1071 1850/1949/1422 1045/1102/1079 +f 1041/1096/1071 287/298/1060 1037/1090/1063 1850/1949/1422 +f 1850/1949/1422 1037/1090/1063 285/294/1052 1219/1292/1423 +f 1045/1102/1079 1850/1949/1422 1219/1292/1423 291/306/1076 +f 284/292/1049 1218/1291/1421 1851/1950/1424 1220/1293/1425 +f 1218/1291/1421 290/304/1074 1213/1285/1411 1851/1950/1424 +f 1851/1950/1424 1213/1285/1411 360/390/1404 1216/1289/1415 +f 1220/1293/1425 1851/1950/1424 1216/1289/1415 74/76/1414 +f 361/391/1408 1214/1286/1413 1852/1951/1426 1217/1290/1419 +f 1214/1286/1413 291/306/1076 1219/1292/1423 1852/1951/1426 +f 1852/1951/1426 1219/1292/1423 285/294/1052 1221/1294/1427 +f 1217/1290/1419 1852/1951/1426 1221/1294/1427 74/77/1414 +f 73/74/1051 1032/1082/1050 1853/1952/1428 1222/1295/1429 +f 284/292/1049 1220/1293/1425 1853/1952/1428 1032/1082/1050 +f 74/76/1414 1222/1295/1429 1853/1952/1428 1220/1293/1425 +f 74/77/1414 1221/1294/1427 1854/1953/1430 1222/1296/1429 +f 285/294/1052 1033/1084/1055 1854/1953/1430 1221/1294/1427 +f 73/75/1051 1222/1296/1429 1854/1953/1430 1033/1084/1055 +f 294/311/1090 1056/1117/1099 1855/1954/1431 1172/1244/1330 +f 1056/1117/1099 296/313/1098 1145/1213/1277 1855/1954/1431 +f 1855/1954/1431 1145/1213/1277 310/334/1281 1223/1297/1432 +f 1172/1244/1330 1855/1954/1431 1223/1297/1432 362/392/1331 +f 311/335/1287 1150/1218/1286 1856/1955/1433 1224/1298/1434 +f 1150/1218/1286 297/314/1100 1057/1118/1103 1856/1955/1433 +f 1856/1955/1433 1057/1118/1103 295/312/1092 1175/1247/1335 +f 1224/1298/1434 1856/1955/1433 1175/1247/1335 363/393/1334 +f 310/334/1281 1225/1299/1435 1857/1956/1436 1223/1297/1432 +f 1225/1299/1435 312/336/1437 1226/1300/1438 1857/1956/1436 +f 1857/1956/1436 1226/1300/1438 368/398/1343 1178/1250/1342 +f 1223/1297/1432 1857/1956/1436 1178/1250/1342 362/392/1331 +f 369/399/1346 1227/1301/1439 1858/1957/1440 1181/1253/1347 +f 1227/1301/1439 313/337/1441 1228/1302/1442 1858/1957/1440 +f 1858/1957/1440 1228/1302/1442 311/335/1287 1224/1298/1434 +f 1181/1253/1347 1858/1957/1440 1224/1298/1434 363/393/1334 +f 312/336/1437 1229/1303/1443 1859/1958/1444 1226/1300/1438 +f 1229/1303/1443 382/413/1445 1230/1304/1446 1859/1958/1444 +f 1859/1958/1444 1230/1304/1446 370/400/1355 1184/1256/1354 +f 1226/1300/1438 1859/1958/1444 1184/1256/1354 368/398/1343 +f 371/401/1358 1231/1305/1447 1860/1959/1448 1187/1259/1359 +f 1231/1305/1447 383/415/1449 1232/1306/1450 1860/1959/1448 +f 1860/1959/1448 1232/1306/1450 313/337/1441 1227/1301/1439 +f 1187/1259/1359 1860/1959/1448 1227/1301/1439 369/399/1346 +f 314/338/1376 1195/1267/1379 1861/1960/1451 1233/1307/1452 +f 1195/1267/1379 376/406/1367 1190/1262/1366 1861/1960/1451 +f 1861/1960/1451 1190/1262/1366 370/400/1355 1230/1304/1446 +f 1233/1307/1452 1861/1960/1451 1230/1304/1446 382/413/1445 +f 371/401/1358 1193/1265/1371 1862/1961/1453 1231/1305/1447 +f 1193/1265/1371 377/407/1370 1200/1272/1387 1862/1961/1453 +f 1862/1961/1453 1200/1272/1387 315/340/1386 1234/1308/1454 +f 1231/1305/1447 1862/1961/1453 1234/1308/1454 383/415/1449 +f 348/378/1260 1136/1203/1259 1863/1962/1455 1235/1310/1456 +f 1136/1203/1259 350/380/1250 1236/1311/1457 1863/1962/1455 +f 1863/1962/1455 1236/1311/1457 386/419/1458 1237/1312/1459 +f 1235/1310/1456 1863/1962/1455 1237/1312/1459 384/417/1460 +f 387/420/1461 1239/1314/1462 1864/1963/1463 1238/1313/1464 +f 1239/1314/1462 351/381/1253 1139/1206/1264 1864/1963/1463 +f 1864/1963/1463 1139/1206/1264 349/379/1263 1240/1315/1465 +f 1238/1313/1464 1864/1963/1463 1240/1315/1465 385/418/1466 +f 318/344/1279 1242/1317/1467 1865/1964/1468 1241/1316/1469 +f 1242/1317/1467 384/417/1460 1237/1312/1459 1865/1964/1468 +f 1865/1964/1468 1237/1312/1459 386/419/1458 1243/1318/1470 +f 1241/1316/1469 1865/1964/1468 1243/1318/1470 320/346/1471 +f 387/420/1461 1238/1313/1464 1866/1965/1472 1244/1319/1473 +f 1238/1313/1464 385/418/1466 1245/1320/1474 1866/1965/1472 +f 1866/1965/1472 1245/1320/1474 319/345/1282 1246/1321/1475 +f 1244/1319/1473 1866/1965/1472 1246/1321/1475 321/348/1476 +f 298/315/1106 1064/1125/1115 1867/1966/1477 1146/1214/1278 +f 1064/1125/1115 300/317/1114 1247/1322/1478 1867/1966/1477 +f 1867/1966/1477 1247/1322/1478 384/417/1460 1242/1317/1467 +f 1146/1214/1278 1867/1966/1477 1242/1317/1467 318/344/1279 +f 385/418/1466 1248/1323/1479 1868/1967/1480 1245/1320/1474 +f 1248/1323/1479 301/318/1116 1065/1126/1119 1868/1967/1480 +f 1868/1967/1480 1065/1126/1119 299/316/1108 1149/1217/1283 +f 1245/1320/1474 1868/1967/1480 1149/1217/1283 319/345/1282 +f 300/317/1114 1249/1324/1481 1869/1968/1482 1247/1322/1478 +f 1249/1324/1481 344/374/1208 1110/1174/1207 1869/1968/1482 +f 1869/1968/1482 1110/1174/1207 342/372/1206 1250/1325/1483 +f 1247/1322/1478 1869/1968/1482 1250/1325/1483 384/417/1460 +f 343/373/1214 1113/1177/1211 1870/1969/1484 1251/1326/1485 +f 1113/1177/1211 345/375/1210 1252/1327/1486 1870/1969/1484 +f 1870/1969/1484 1252/1327/1486 301/318/1116 1248/1323/1479 +f 1251/1326/1485 1870/1969/1484 1248/1323/1479 385/418/1466 +f 342/372/1206 1143/1211/1273 1871/1970/1487 1250/1325/1483 +f 348/378/1260 1235/1310/1456 1871/1970/1487 1143/1211/1273 +f 384/417/1460 1250/1325/1483 1871/1970/1487 1235/1310/1456 +f 385/418/1466 1240/1315/1465 1872/1971/1488 1251/1326/1485 +f 349/379/1263 1144/1212/1275 1872/1971/1488 1240/1315/1465 +f 343/373/1214 1251/1326/1485 1872/1971/1488 1144/1212/1275 +f 300/317/1114 1121/1185/1229 1873/1972/1489 1249/1324/1481 +f 346/376/1223 1118/1182/1222 1873/1972/1489 1121/1185/1229 +f 344/374/1208 1249/1324/1481 1873/1972/1489 1118/1182/1222 +f 345/375/1210 1119/1183/1225 1874/1973/1490 1252/1327/1486 +f 347/377/1227 1122/1186/1230 1874/1973/1490 1119/1183/1225 +f 301/318/1116 1252/1327/1486 1874/1973/1490 1122/1186/1230 +f 314/338/1376 1253/1328/1491 1875/1974/1492 1196/1268/1377 +f 1253/1328/1491 322/350/1493 1254/1330/1494 1875/1974/1492 +f 1875/1974/1492 1254/1330/1494 380/410/1495 1255/1331/1496 +f 1196/1268/1377 1875/1974/1492 1255/1331/1496 378/408/1380 +f 381/411/1497 1257/1333/1498 1876/1975/1499 1256/1332/1500 +f 1257/1333/1498 323/352/1501 1258/1334/1502 1876/1975/1499 +f 1876/1975/1499 1258/1334/1502 315/340/1386 1199/1271/1385 +f 1256/1332/1500 1876/1975/1499 1199/1271/1385 379/409/1384 +f 316/342/1292 1201/1273/1389 1877/1976/1503 1153/1222/1293 +f 1201/1273/1389 378/408/1380 1255/1331/1496 1877/1976/1503 +f 1877/1976/1503 1255/1331/1496 380/410/1495 1259/1336/1504 +f 1153/1222/1293 1877/1976/1503 1259/1336/1504 324/354/1236 +f 381/411/1497 1256/1332/1500 1878/1977/1505 1260/1337/1506 +f 1256/1332/1500 379/409/1384 1204/1276/1393 1878/1977/1505 +f 1878/1977/1505 1204/1276/1393 317/343/1296 1154/1223/1294 +f 1260/1337/1506 1878/1977/1505 1154/1223/1294 325/355/1245 +f 320/346/1471 1243/1318/1470 1879/1978/1507 1261/1338/1508 +f 1243/1318/1470 386/419/1458 1262/1340/1509 1879/1978/1507 +f 1879/1978/1507 1262/1340/1509 380/410/1495 1254/1330/1494 +f 1261/1338/1508 1879/1978/1507 1254/1330/1494 322/350/1493 +f 381/411/1497 1263/1341/1510 1880/1979/1511 1257/1333/1498 +f 1263/1341/1510 387/420/1461 1244/1319/1473 1880/1979/1511 +f 1880/1979/1511 1244/1319/1473 321/348/1476 1264/1342/1512 +f 1257/1333/1498 1880/1979/1511 1264/1342/1512 323/352/1501 +f 350/380/1250 1131/1197/1249 1881/1980/1513 1236/1311/1457 +f 1131/1197/1249 352/382/1238 1265/1344/1514 1881/1980/1513 +f 1881/1980/1513 1265/1344/1514 380/410/1495 1262/1340/1509 +f 1236/1311/1457 1881/1980/1513 1262/1340/1509 386/419/1458 +f 381/411/1497 1266/1345/1515 1882/1981/1516 1263/1341/1510 +f 1266/1345/1515 353/383/1241 1134/1200/1254 1882/1981/1516 +f 1882/1981/1516 1134/1200/1254 351/381/1253 1239/1314/1462 +f 1263/1341/1510 1882/1981/1516 1239/1314/1462 387/420/1461 +f 324/354/1236 1259/1336/1504 1883/1982/1517 1125/1190/1237 +f 380/410/1495 1265/1344/1514 1883/1982/1517 1259/1336/1504 +f 352/382/1238 1125/1190/1237 1883/1982/1517 1265/1344/1514 +f 353/383/1241 1266/1345/1515 1884/1983/1518 1128/1193/1242 +f 381/411/1497 1260/1337/1506 1884/1983/1518 1266/1345/1515 +f 325/355/1245 1128/1193/1242 1884/1983/1518 1260/1337/1506 +f 400/438/1519 1268/1347/1520 1885/1984/1521 1267/1346/1522 +f 1268/1347/1520 388/421/1523 1269/1349/1524 1885/1984/1521 +f 1885/1984/1521 1269/1349/1524 414/454/1525 1270/1350/1526 +f 1267/1346/1522 1885/1984/1521 1270/1350/1526 402/442/1527 +f 415/455/1528 1272/1352/1529 1886/1985/1530 1271/1351/1531 +f 1272/1352/1529 389/424/1532 1273/1353/1533 1886/1985/1530 +f 1886/1985/1530 1273/1353/1533 401/440/1534 1274/1355/1535 +f 1271/1351/1531 1886/1985/1530 1274/1355/1535 403/443/1536 +f 400/438/1519 1267/1346/1522 1887/1986/1537 1275/1356/1538 +f 1267/1346/1522 402/442/1527 1276/1358/1539 1887/1986/1537 +f 1887/1986/1537 1276/1358/1539 404/444/1540 1277/1359/1541 +f 1275/1356/1538 1887/1986/1537 1277/1359/1541 398/434/1542 +f 405/445/1543 1279/1361/1544 1888/1987/1545 1278/1360/1546 +f 1279/1361/1544 403/443/1536 1274/1355/1535 1888/1987/1545 +f 1888/1987/1545 1274/1355/1535 401/440/1534 1280/1362/1547 +f 1278/1360/1546 1888/1987/1545 1280/1362/1547 399/436/1548 +f 398/434/1542 1277/1359/1541 1889/1988/1549 1281/1364/1550 +f 1277/1359/1541 404/444/1540 1282/1366/1551 1889/1988/1549 +f 1889/1988/1549 1282/1366/1551 406/446/1552 1283/1367/1553 +f 1281/1364/1550 1889/1988/1549 1283/1367/1553 396/432/1554 +f 407/447/1555 1285/1369/1556 1890/1989/1557 1284/1368/1558 +f 1285/1369/1556 405/445/1543 1278/1360/1546 1890/1989/1557 +f 1890/1989/1557 1278/1360/1546 399/436/1548 1286/1370/1559 +f 1284/1368/1558 1890/1989/1557 1286/1370/1559 397/433/1560 +f 396/432/1554 1283/1367/1553 1891/1990/1561 1287/1372/1562 +f 1283/1367/1553 406/446/1552 1288/1373/1563 1891/1990/1561 +f 1891/1990/1561 1288/1373/1563 408/448/1564 1289/1374/1565 +f 1287/1372/1562 1891/1990/1561 1289/1374/1565 394/430/1566 +f 409/449/1567 1291/1376/1568 1892/1991/1569 1290/1375/1570 +f 1291/1376/1568 407/447/1555 1284/1368/1558 1892/1991/1569 +f 1892/1991/1569 1284/1368/1558 397/433/1560 1292/1377/1571 +f 1290/1375/1570 1892/1991/1569 1292/1377/1571 395/431/1572 +f 394/430/1566 1289/1374/1565 1893/1992/1573 1293/1378/1574 +f 1289/1374/1565 408/448/1564 1294/1379/1575 1893/1992/1573 +f 1893/1992/1573 1294/1379/1575 410/450/1576 1295/1380/1577 +f 1293/1378/1574 1893/1992/1573 1295/1380/1577 392/428/1578 +f 411/451/1579 1297/1382/1580 1894/1993/1581 1296/1381/1582 +f 1297/1382/1580 409/449/1567 1290/1375/1570 1894/1993/1581 +f 1894/1993/1581 1290/1375/1570 395/431/1572 1298/1383/1583 +f 1296/1381/1582 1894/1993/1581 1298/1383/1583 393/429/1584 +f 392/428/1578 1295/1380/1577 1895/1994/1585 1299/1384/1586 +f 1295/1380/1577 410/450/1576 1300/1385/1587 1895/1994/1585 +f 1895/1994/1585 1300/1385/1587 412/452/1588 1301/1386/1589 +f 1299/1384/1586 1895/1994/1585 1301/1386/1589 390/426/1590 +f 413/453/1591 1303/1388/1592 1896/1995/1593 1302/1387/1594 +f 1303/1388/1592 411/451/1579 1296/1381/1582 1896/1995/1593 +f 1896/1995/1593 1296/1381/1582 393/429/1584 1304/1389/1595 +f 1302/1387/1594 1896/1995/1593 1304/1389/1595 391/427/1596 +f 410/450/1576 1305/1390/1597 1897/1996/1598 1300/1385/1587 +f 1305/1390/1597 420/460/1599 1306/1391/1600 1897/1996/1598 +f 1897/1996/1598 1306/1391/1600 418/458/1601 1307/1392/1602 +f 1300/1385/1587 1897/1996/1598 1307/1392/1602 412/452/1588 +f 419/459/1603 1309/1394/1604 1898/1997/1605 1308/1393/1606 +f 1309/1394/1604 421/461/1607 1310/1395/1608 1898/1997/1605 +f 1898/1997/1605 1310/1395/1608 411/451/1579 1303/1388/1592 +f 1308/1393/1606 1898/1997/1605 1303/1388/1592 413/453/1591 +f 408/448/1564 1311/1396/1609 1899/1998/1610 1294/1379/1575 +f 1311/1396/1609 422/462/1611 1312/1397/1612 1899/1998/1610 +f 1899/1998/1610 1312/1397/1612 420/460/1599 1305/1390/1597 +f 1294/1379/1575 1899/1998/1610 1305/1390/1597 410/450/1576 +f 421/461/1607 1313/1398/1613 1900/1999/1614 1310/1395/1608 +f 1313/1398/1613 423/463/1615 1314/1399/1616 1900/1999/1614 +f 1900/1999/1614 1314/1399/1616 409/449/1567 1297/1382/1580 +f 1310/1395/1608 1900/1999/1614 1297/1382/1580 411/451/1579 +f 406/446/1552 1315/1400/1617 1901/2000/1618 1288/1373/1563 +f 1315/1400/1617 424/464/1619 1316/1401/1620 1901/2000/1618 +f 1901/2000/1618 1316/1401/1620 422/462/1611 1311/1396/1609 +f 1288/1373/1563 1901/2000/1618 1311/1396/1609 408/448/1564 +f 423/463/1615 1317/1402/1621 1902/2001/1622 1314/1399/1616 +f 1317/1402/1621 425/465/1623 1318/1403/1624 1902/2001/1622 +f 1902/2001/1622 1318/1403/1624 407/447/1555 1291/1376/1568 +f 1314/1399/1616 1902/2001/1622 1291/1376/1568 409/449/1567 +f 404/444/1540 1319/1404/1625 1903/2002/1626 1282/1366/1551 +f 1319/1404/1625 426/466/1627 1320/1405/1628 1903/2002/1626 +f 1903/2002/1626 1320/1405/1628 424/464/1619 1315/1400/1617 +f 1282/1366/1551 1903/2002/1626 1315/1400/1617 406/446/1552 +f 425/465/1623 1321/1406/1629 1904/2003/1630 1318/1403/1624 +f 1321/1406/1629 427/467/1631 1322/1407/1632 1904/2003/1630 +f 1904/2003/1630 1322/1407/1632 405/445/1543 1285/1369/1556 +f 1318/1403/1624 1904/2003/1630 1285/1369/1556 407/447/1555 +f 402/442/1527 1323/1408/1633 1905/2004/1634 1276/1358/1539 +f 1323/1408/1633 428/468/1635 1324/1409/1636 1905/2004/1634 +f 1905/2004/1634 1324/1409/1636 426/466/1627 1319/1404/1625 +f 1276/1358/1539 1905/2004/1634 1319/1404/1625 404/444/1540 +f 427/467/1631 1325/1410/1637 1906/2005/1638 1322/1407/1632 +f 1325/1410/1637 429/469/1639 1326/1411/1640 1906/2005/1638 +f 1906/2005/1638 1326/1411/1640 403/443/1536 1279/1361/1544 +f 1322/1407/1632 1906/2005/1638 1279/1361/1544 405/445/1543 +f 402/442/1527 1270/1350/1526 1907/2006/1641 1323/1408/1633 +f 1270/1350/1526 414/454/1525 1327/1412/1642 1907/2006/1641 +f 1907/2006/1641 1327/1412/1642 416/456/1643 1328/1413/1644 +f 1323/1408/1633 1907/2006/1641 1328/1413/1644 428/468/1635 +f 417/457/1645 1330/1415/1646 1908/2007/1647 1329/1414/1648 +f 1330/1415/1646 415/455/1528 1271/1351/1531 1908/2007/1647 +f 1908/2007/1647 1271/1351/1531 403/443/1536 1326/1411/1640 +f 1329/1414/1648 1908/2007/1647 1326/1411/1640 429/469/1639 +f 318/344/1279 1241/1316/1469 1909/2008/1649 1331/1416/1650 +f 1241/1316/1469 320/346/1471 1332/1417/1651 1909/2008/1649 +f 1909/2008/1649 1332/1417/1651 444/487/1652 1333/1419/1653 +f 1331/1416/1650 1909/2008/1649 1333/1419/1653 442/484/1654 +f 445/489/1655 1335/1421/1656 1910/2009/1657 1334/1420/1658 +f 1335/1421/1656 321/348/1476 1246/1321/1475 1910/2009/1657 +f 1910/2009/1657 1246/1321/1475 319/345/1282 1336/1423/1659 +f 1334/1420/1658 1910/2009/1657 1336/1423/1659 443/485/1660 +f 320/347/1471 1337/1424/1661 1911/2010/1662 1332/1418/1651 +f 1337/1424/1661 390/426/1590 1301/1386/1589 1911/2010/1662 +f 1911/2010/1662 1301/1386/1589 412/452/1588 1338/1425/1663 +f 1332/1418/1651 1911/2010/1662 1338/1425/1663 444/486/1652 +f 413/453/1591 1302/1387/1594 1912/2011/1664 1339/1426/1665 +f 1302/1387/1594 391/427/1596 1340/1427/1666 1912/2011/1664 +f 1912/2011/1664 1340/1427/1666 321/349/1476 1335/1422/1656 +f 1339/1426/1665 1912/2011/1664 1335/1422/1656 445/488/1655 +f 310/334/1281 1147/1215/1280 1913/2012/1667 1225/1299/1435 +f 1147/1215/1280 318/344/1279 1331/1416/1650 1913/2012/1667 +f 1913/2012/1667 1331/1416/1650 442/484/1654 1341/1428/1668 +f 1225/1299/1435 1913/2012/1667 1341/1428/1668 312/336/1437 +f 443/485/1660 1336/1423/1659 1914/2013/1669 1342/1429/1670 +f 1336/1423/1659 319/345/1282 1148/1216/1285 1914/2013/1669 +f 1914/2013/1669 1148/1216/1285 311/335/1287 1228/1302/1442 +f 1342/1429/1670 1914/2013/1669 1228/1302/1442 313/337/1441 +f 382/412/1445 1344/1432/1671 1915/2014/1672 1343/1430/1673 +f 1344/1432/1671 430/470/1674 1345/1434/1675 1915/2014/1672 +f 1915/2014/1672 1345/1434/1675 414/454/1525 1269/1349/1524 +f 1343/1430/1673 1915/2014/1672 1269/1349/1524 388/421/1523 +f 415/455/1528 1346/1435/1676 1916/2015/1677 1272/1352/1529 +f 1346/1435/1676 431/472/1678 1347/1436/1679 1916/2015/1677 +f 1916/2015/1677 1347/1436/1679 383/414/1449 1348/1438/1680 +f 1272/1352/1529 1916/2015/1677 1348/1438/1680 389/424/1532 +f 412/452/1588 1307/1392/1602 1917/2016/1681 1338/1425/1663 +f 1307/1392/1602 418/458/1601 1349/1440/1682 1917/2016/1681 +f 1917/2016/1681 1349/1440/1682 440/482/1683 1350/1441/1684 +f 1338/1425/1663 1917/2016/1681 1350/1441/1684 444/486/1652 +f 441/483/1685 1352/1443/1686 1918/2017/1687 1351/1442/1688 +f 1352/1443/1686 419/459/1603 1308/1393/1606 1918/2017/1687 +f 1918/2017/1687 1308/1393/1606 413/453/1591 1339/1426/1665 +f 1351/1442/1688 1918/2017/1687 1339/1426/1665 445/488/1655 +f 438/480/1689 1354/1445/1690 1919/2018/1691 1353/1444/1692 +f 1354/1445/1690 446/490/1693 1355/1446/1694 1919/2018/1691 +f 1919/2018/1691 1355/1446/1694 444/486/1652 1350/1441/1684 +f 1353/1444/1692 1919/2018/1691 1350/1441/1684 440/482/1683 +f 445/488/1655 1356/1448/1695 1920/2019/1696 1351/1442/1688 +f 1356/1448/1695 447/492/1697 1357/1450/1698 1920/2019/1696 +f 1920/2019/1696 1357/1450/1698 439/481/1699 1358/1451/1700 +f 1351/1442/1688 1920/2019/1696 1358/1451/1700 441/483/1685 +f 434/476/1701 1360/1453/1702 1921/2020/1703 1359/1452/1704 +f 1360/1453/1702 446/490/1693 1354/1445/1690 1921/2020/1703 +f 1921/2020/1703 1354/1445/1690 438/480/1689 1361/1454/1705 +f 1359/1452/1704 1921/2020/1703 1361/1454/1705 436/478/1706 +f 439/481/1699 1357/1450/1698 1922/2021/1707 1362/1455/1708 +f 1357/1450/1698 447/492/1697 1363/1456/1709 1922/2021/1707 +f 1922/2021/1707 1363/1456/1709 435/477/1710 1364/1457/1711 +f 1362/1455/1708 1922/2021/1707 1364/1457/1711 437/479/1712 +f 432/474/1713 1366/1459/1714 1923/2022/1715 1365/1458/1716 +f 1366/1459/1714 448/494/1717 1367/1460/1718 1923/2022/1715 +f 1923/2022/1715 1367/1460/1718 446/490/1693 1360/1453/1702 +f 1365/1458/1716 1923/2022/1715 1360/1453/1702 434/476/1701 +f 447/492/1697 1368/1462/1719 1924/2023/1720 1363/1456/1709 +f 1368/1462/1719 449/496/1721 1369/1464/1722 1924/2023/1720 +f 1924/2023/1720 1369/1464/1722 433/475/1723 1370/1465/1724 +f 1363/1456/1709 1924/2023/1720 1370/1465/1724 435/477/1710 +f 430/470/1674 1372/1467/1725 1925/2024/1726 1371/1466/1727 +f 1372/1467/1725 448/494/1717 1366/1459/1714 1925/2024/1726 +f 1925/2024/1726 1366/1459/1714 432/474/1713 1373/1469/1728 +f 1371/1466/1727 1925/2024/1726 1373/1469/1728 450/498/1729 +f 433/475/1723 1369/1464/1722 1926/2025/1730 1374/1470/1731 +f 1369/1464/1722 449/496/1721 1375/1471/1732 1926/2025/1730 +f 1926/2025/1730 1375/1471/1732 431/472/1678 1376/1473/1733 +f 1374/1470/1731 1926/2025/1730 1376/1473/1733 451/499/1734 +f 414/454/1525 1345/1434/1675 1927/2026/1735 1327/1412/1642 +f 1345/1434/1675 430/470/1674 1371/1466/1727 1927/2026/1735 +f 1927/2026/1735 1371/1466/1727 450/498/1729 1377/1474/1736 +f 1327/1412/1642 1927/2026/1735 1377/1474/1736 416/456/1643 +f 451/499/1734 1376/1473/1733 1928/2027/1737 1378/1475/1738 +f 1376/1473/1733 431/472/1678 1346/1435/1676 1928/2027/1737 +f 1928/2027/1737 1346/1435/1676 415/455/1528 1330/1415/1646 +f 1378/1475/1738 1928/2027/1737 1330/1415/1646 417/457/1645 +f 312/336/1437 1379/1476/1739 1929/2028/1740 1229/1303/1443 +f 1379/1476/1739 448/495/1717 1372/1468/1725 1929/2028/1740 +f 1929/2028/1740 1372/1468/1725 430/471/1674 1344/1433/1671 +f 1229/1303/1443 1929/2028/1740 1344/1433/1671 382/413/1445 +f 431/473/1678 1375/1472/1732 1930/2029/1741 1347/1437/1679 +f 1375/1472/1732 449/497/1721 1380/1477/1742 1930/2029/1741 +f 1930/2029/1741 1380/1477/1742 313/337/1441 1232/1306/1450 +f 1347/1437/1679 1930/2029/1741 1232/1306/1450 383/415/1449 +f 312/336/1437 1341/1428/1668 1931/2030/1743 1379/1476/1739 +f 1341/1428/1668 442/484/1654 1381/1478/1744 1931/2030/1743 +f 1931/2030/1743 1381/1478/1744 446/491/1693 1367/1461/1718 +f 1379/1476/1739 1931/2030/1743 1367/1461/1718 448/495/1717 +f 447/493/1697 1382/1479/1745 1932/2031/1746 1368/1463/1719 +f 1382/1479/1745 443/485/1660 1342/1429/1670 1932/2031/1746 +f 1932/2031/1746 1342/1429/1670 313/337/1441 1380/1477/1742 +f 1368/1463/1719 1932/2031/1746 1380/1477/1742 449/497/1721 +f 442/484/1654 1333/1419/1653 1933/2032/1747 1381/1478/1744 +f 444/487/1652 1355/1447/1694 1933/2032/1747 1333/1419/1653 +f 446/491/1693 1381/1478/1744 1933/2032/1747 1355/1447/1694 +f 447/493/1697 1356/1449/1695 1934/2033/1748 1382/1479/1745 +f 445/489/1655 1334/1420/1658 1934/2033/1748 1356/1449/1695 +f 443/485/1660 1382/1479/1745 1934/2033/1748 1334/1420/1658 +f 416/456/1643 1377/1474/1736 1935/2034/1749 1383/1480/1750 +f 1377/1474/1736 450/498/1729 1384/1481/1751 1935/2034/1749 +f 1935/2034/1749 1384/1481/1751 452/500/1752 1385/1482/1753 +f 1383/1480/1750 1935/2034/1749 1385/1482/1753 476/524/1754 +f 453/501/1755 1387/1484/1756 1936/2035/1757 1386/1483/1758 +f 1387/1484/1756 451/499/1734 1378/1475/1738 1936/2035/1757 +f 1936/2035/1757 1378/1475/1738 417/457/1645 1388/1485/1759 +f 1386/1483/1758 1936/2035/1757 1388/1485/1759 477/525/1760 +f 450/498/1729 1373/1469/1728 1937/2036/1761 1384/1481/1751 +f 1373/1469/1728 432/474/1713 1389/1486/1762 1937/2036/1761 +f 1937/2036/1761 1389/1486/1762 462/510/1763 1390/1487/1764 +f 1384/1481/1751 1937/2036/1761 1390/1487/1764 452/500/1752 +f 463/511/1765 1392/1489/1766 1938/2037/1767 1391/1488/1768 +f 1392/1489/1766 433/475/1723 1374/1470/1731 1938/2037/1767 +f 1938/2037/1767 1374/1470/1731 451/499/1734 1387/1484/1756 +f 1391/1488/1768 1938/2037/1767 1387/1484/1756 453/501/1755 +f 432/474/1713 1365/1458/1716 1939/2038/1769 1389/1486/1762 +f 1365/1458/1716 434/476/1701 1393/1490/1770 1939/2038/1769 +f 1939/2038/1769 1393/1490/1770 460/508/1771 1394/1491/1772 +f 1389/1486/1762 1939/2038/1769 1394/1491/1772 462/510/1763 +f 461/509/1773 1396/1493/1774 1940/2039/1775 1395/1492/1776 +f 1396/1493/1774 435/477/1710 1370/1465/1724 1940/2039/1775 +f 1940/2039/1775 1370/1465/1724 433/475/1723 1392/1489/1766 +f 1395/1492/1776 1940/2039/1775 1392/1489/1766 463/511/1765 +f 434/476/1701 1359/1452/1704 1941/2040/1777 1393/1490/1770 +f 1359/1452/1704 436/478/1706 1397/1494/1778 1941/2040/1777 +f 1941/2040/1777 1397/1494/1778 458/506/1779 1398/1495/1780 +f 1393/1490/1770 1941/2040/1777 1398/1495/1780 460/508/1771 +f 459/507/1781 1400/1497/1782 1942/2041/1783 1399/1496/1784 +f 1400/1497/1782 437/479/1712 1364/1457/1711 1942/2041/1783 +f 1942/2041/1783 1364/1457/1711 435/477/1710 1396/1493/1774 +f 1399/1496/1784 1942/2041/1783 1396/1493/1774 461/509/1773 +f 436/478/1706 1361/1454/1705 1943/2042/1785 1397/1494/1778 +f 1361/1454/1705 438/480/1689 1401/1498/1786 1943/2042/1785 +f 1943/2042/1785 1401/1498/1786 456/504/1787 1402/1499/1788 +f 1397/1494/1778 1943/2042/1785 1402/1499/1788 458/506/1779 +f 457/505/1789 1404/1501/1790 1944/2043/1791 1403/1500/1792 +f 1404/1501/1790 439/481/1699 1362/1455/1708 1944/2043/1791 +f 1944/2043/1791 1362/1455/1708 437/479/1712 1400/1497/1782 +f 1403/1500/1792 1944/2043/1791 1400/1497/1782 459/507/1781 +f 438/480/1689 1353/1444/1692 1945/2044/1793 1401/1498/1786 +f 1353/1444/1692 440/482/1683 1405/1502/1794 1945/2044/1793 +f 1945/2044/1793 1405/1502/1794 454/502/1795 1406/1503/1796 +f 1401/1498/1786 1945/2044/1793 1406/1503/1796 456/504/1787 +f 455/503/1797 1408/1505/1798 1946/2045/1799 1407/1504/1800 +f 1408/1505/1798 441/483/1685 1358/1451/1700 1946/2045/1799 +f 1946/2045/1799 1358/1451/1700 439/481/1699 1404/1501/1790 +f 1407/1504/1800 1946/2045/1799 1404/1501/1790 457/505/1789 +f 440/482/1683 1349/1440/1682 1947/2046/1801 1405/1502/1794 +f 1349/1440/1682 418/458/1601 1409/1506/1802 1947/2046/1801 +f 1947/2046/1801 1409/1506/1802 474/522/1803 1410/1507/1804 +f 1405/1502/1794 1947/2046/1801 1410/1507/1804 454/502/1795 +f 475/523/1805 1412/1509/1806 1948/2047/1807 1411/1508/1808 +f 1412/1509/1806 419/459/1603 1352/1443/1686 1948/2047/1807 +f 1948/2047/1807 1352/1443/1686 441/483/1685 1408/1505/1798 +f 1411/1508/1808 1948/2047/1807 1408/1505/1798 455/503/1797 +f 428/468/1635 1328/1413/1644 1949/2048/1809 1413/1510/1810 +f 1328/1413/1644 416/456/1643 1383/1480/1750 1949/2048/1809 +f 1949/2048/1809 1383/1480/1750 476/524/1754 1414/1511/1811 +f 1413/1510/1810 1949/2048/1809 1414/1511/1811 464/512/1812 +f 477/525/1760 1388/1485/1759 1950/2049/1813 1415/1512/1814 +f 1388/1485/1759 417/457/1645 1329/1414/1648 1950/2049/1813 +f 1950/2049/1813 1329/1414/1648 429/469/1639 1416/1513/1815 +f 1415/1512/1814 1950/2049/1813 1416/1513/1815 465/513/1816 +f 426/466/1627 1324/1409/1636 1951/2050/1817 1417/1514/1818 +f 1324/1409/1636 428/468/1635 1413/1510/1810 1951/2050/1817 +f 1951/2050/1817 1413/1510/1810 464/512/1812 1418/1515/1819 +f 1417/1514/1818 1951/2050/1817 1418/1515/1819 466/514/1820 +f 465/513/1816 1416/1513/1815 1952/2051/1821 1419/1516/1822 +f 1416/1513/1815 429/469/1639 1325/1410/1637 1952/2051/1821 +f 1952/2051/1821 1325/1410/1637 427/467/1631 1420/1517/1823 +f 1419/1516/1822 1952/2051/1821 1420/1517/1823 467/515/1824 +f 424/464/1619 1320/1405/1628 1953/2052/1825 1421/1518/1826 +f 1320/1405/1628 426/466/1627 1417/1514/1818 1953/2052/1825 +f 1953/2052/1825 1417/1514/1818 466/514/1820 1422/1519/1827 +f 1421/1518/1826 1953/2052/1825 1422/1519/1827 468/516/1828 +f 467/515/1824 1420/1517/1823 1954/2053/1829 1423/1520/1830 +f 1420/1517/1823 427/467/1631 1321/1406/1629 1954/2053/1829 +f 1954/2053/1829 1321/1406/1629 425/465/1623 1424/1521/1831 +f 1423/1520/1830 1954/2053/1829 1424/1521/1831 469/517/1832 +f 422/462/1611 1316/1401/1620 1955/2054/1833 1425/1522/1834 +f 1316/1401/1620 424/464/1619 1421/1518/1826 1955/2054/1833 +f 1955/2054/1833 1421/1518/1826 468/516/1828 1426/1523/1835 +f 1425/1522/1834 1955/2054/1833 1426/1523/1835 470/518/1836 +f 469/517/1832 1424/1521/1831 1956/2055/1837 1427/1524/1838 +f 1424/1521/1831 425/465/1623 1317/1402/1621 1956/2055/1837 +f 1956/2055/1837 1317/1402/1621 423/463/1615 1428/1525/1839 +f 1427/1524/1838 1956/2055/1837 1428/1525/1839 471/519/1840 +f 420/460/1599 1312/1397/1612 1957/2056/1841 1429/1526/1842 +f 1312/1397/1612 422/462/1611 1425/1522/1834 1957/2056/1841 +f 1957/2056/1841 1425/1522/1834 470/518/1836 1430/1527/1843 +f 1429/1526/1842 1957/2056/1841 1430/1527/1843 472/520/1844 +f 471/519/1840 1428/1525/1839 1958/2057/1845 1431/1528/1846 +f 1428/1525/1839 423/463/1615 1313/1398/1613 1958/2057/1845 +f 1958/2057/1845 1313/1398/1613 421/461/1607 1432/1529/1847 +f 1431/1528/1846 1958/2057/1845 1432/1529/1847 473/521/1848 +f 418/458/1601 1306/1391/1600 1959/2058/1849 1409/1506/1802 +f 1306/1391/1600 420/460/1599 1429/1526/1842 1959/2058/1849 +f 1959/2058/1849 1429/1526/1842 472/520/1844 1433/1530/1850 +f 1409/1506/1802 1959/2058/1849 1433/1530/1850 474/522/1803 +f 473/521/1848 1432/1529/1847 1960/2059/1851 1434/1531/1852 +f 1432/1529/1847 421/461/1607 1309/1394/1604 1960/2059/1851 +f 1960/2059/1851 1309/1394/1604 419/459/1603 1412/1509/1806 +f 1434/1531/1852 1960/2059/1851 1412/1509/1806 475/523/1805 +f 458/506/1779 1402/1499/1788 1961/2060/1853 1435/1532/1854 +f 1402/1499/1788 456/504/1787 1436/1533/1855 1961/2060/1853 +f 1961/2060/1853 1436/1533/1855 480/528/1856 1437/1534/1857 +f 1435/1532/1854 1961/2060/1853 1437/1534/1857 478/526/1858 +f 481/529/1859 1439/1536/1860 1962/2061/1861 1438/1535/1862 +f 1439/1536/1860 457/505/1789 1403/1500/1792 1962/2061/1861 +f 1962/2061/1861 1403/1500/1792 459/507/1781 1440/1537/1863 +f 1438/1535/1862 1962/2061/1861 1440/1537/1863 479/527/1864 +f 478/526/1858 1437/1534/1857 1963/2062/1865 1441/1538/1866 +f 1437/1534/1857 480/528/1856 1442/1539/1867 1963/2062/1865 +f 1963/2062/1865 1442/1539/1867 482/530/1868 1443/1540/1869 +f 1441/1538/1866 1963/2062/1865 1443/1540/1869 484/532/1870 +f 483/531/1871 1445/1542/1872 1964/2063/1873 1444/1541/1874 +f 1445/1542/1872 481/529/1859 1438/1535/1862 1964/2063/1873 +f 1964/2063/1873 1438/1535/1862 479/527/1864 1446/1543/1875 +f 1444/1541/1874 1964/2063/1873 1446/1543/1875 485/533/1876 +f 484/532/1870 1443/1540/1869 1965/2064/1877 1447/1544/1878 +f 1443/1540/1869 482/530/1868 1448/1545/1879 1965/2064/1877 +f 1965/2064/1877 1448/1545/1879 488/536/1880 1449/1546/1881 +f 1447/1544/1878 1965/2064/1877 1449/1546/1881 486/534/1882 +f 489/537/1883 1451/1548/1884 1966/2065/1885 1450/1547/1886 +f 1451/1548/1884 483/531/1871 1444/1541/1874 1966/2065/1885 +f 1966/2065/1885 1444/1541/1874 485/533/1876 1452/1549/1887 +f 1450/1547/1886 1966/2065/1885 1452/1549/1887 487/535/1888 +f 486/534/1882 1449/1546/1881 1967/2066/1889 1453/1550/1890 +f 1449/1546/1881 488/536/1880 1454/1551/1891 1967/2066/1889 +f 1967/2066/1889 1454/1551/1891 490/538/1892 1455/1552/1893 +f 1453/1550/1890 1967/2066/1889 1455/1552/1893 492/540/1894 +f 491/539/1895 1457/1554/1896 1968/2067/1897 1456/1553/1898 +f 1457/1554/1896 489/537/1883 1450/1547/1886 1968/2067/1897 +f 1968/2067/1897 1450/1547/1886 487/535/1888 1458/1555/1899 +f 1456/1553/1898 1968/2067/1897 1458/1555/1899 493/541/1900 +f 464/512/1812 1414/1511/1811 1969/2068/1901 1459/1556/1902 +f 1414/1511/1811 476/524/1754 1460/1557/1903 1969/2068/1901 +f 1969/2068/1901 1460/1557/1903 486/534/1882 1453/1550/1890 +f 1459/1556/1902 1969/2068/1901 1453/1550/1890 492/540/1894 +f 487/535/1888 1461/1558/1904 1970/2069/1905 1458/1555/1899 +f 1461/1558/1904 477/525/1760 1415/1512/1814 1970/2069/1905 +f 1970/2069/1905 1415/1512/1814 465/513/1816 1462/1559/1906 +f 1458/1555/1899 1970/2069/1905 1462/1559/1906 493/541/1900 +f 452/500/1752 1463/1560/1907 1971/2070/1908 1385/1482/1753 +f 1463/1560/1907 484/532/1870 1447/1544/1878 1971/2070/1908 +f 1971/2070/1908 1447/1544/1878 486/534/1882 1460/1557/1903 +f 1385/1482/1753 1971/2070/1908 1460/1557/1903 476/524/1754 +f 487/535/1888 1452/1549/1887 1972/2071/1909 1461/1558/1904 +f 1452/1549/1887 485/533/1876 1464/1561/1910 1972/2071/1909 +f 1972/2071/1909 1464/1561/1910 453/501/1755 1386/1483/1758 +f 1461/1558/1904 1972/2071/1909 1386/1483/1758 477/525/1760 +f 452/500/1752 1390/1487/1764 1973/2072/1911 1463/1560/1907 +f 1390/1487/1764 462/510/1763 1465/1562/1912 1973/2072/1911 +f 1973/2072/1911 1465/1562/1912 478/526/1858 1441/1538/1866 +f 1463/1560/1907 1973/2072/1911 1441/1538/1866 484/532/1870 +f 479/527/1864 1466/1563/1913 1974/2073/1914 1446/1543/1875 +f 1466/1563/1913 463/511/1765 1391/1488/1768 1974/2073/1914 +f 1974/2073/1914 1391/1488/1768 453/501/1755 1464/1561/1910 +f 1446/1543/1875 1974/2073/1914 1464/1561/1910 485/533/1876 +f 458/506/1779 1435/1532/1854 1975/2074/1915 1398/1495/1780 +f 1435/1532/1854 478/526/1858 1465/1562/1912 1975/2074/1915 +f 1975/2074/1915 1465/1562/1912 462/510/1763 1394/1491/1772 +f 1398/1495/1780 1975/2074/1915 1394/1491/1772 460/508/1771 +f 463/511/1765 1466/1563/1913 1976/2075/1916 1395/1492/1776 +f 1466/1563/1913 479/527/1864 1440/1537/1863 1976/2075/1916 +f 1976/2075/1916 1440/1537/1863 459/507/1781 1399/1496/1784 +f 1395/1492/1776 1976/2075/1916 1399/1496/1784 461/509/1773 +f 454/502/1795 1410/1507/1804 1977/2076/1917 1406/1503/1796 +f 1410/1507/1804 474/522/1803 1467/1564/1918 1977/2076/1917 +f 1977/2076/1917 1467/1564/1918 480/528/1856 1436/1533/1855 +f 1406/1503/1796 1977/2076/1917 1436/1533/1855 456/504/1787 +f 481/529/1859 1468/1565/1919 1978/2077/1920 1439/1536/1860 +f 1468/1565/1919 475/523/1805 1411/1508/1808 1978/2077/1920 +f 1978/2077/1920 1411/1508/1808 455/503/1797 1407/1504/1800 +f 1439/1536/1860 1978/2077/1920 1407/1504/1800 457/505/1789 +f 472/520/1844 1469/1566/1921 1979/2078/1922 1433/1530/1850 +f 1469/1566/1921 482/530/1868 1442/1539/1867 1979/2078/1922 +f 1979/2078/1922 1442/1539/1867 480/528/1856 1467/1564/1918 +f 1433/1530/1850 1979/2078/1922 1467/1564/1918 474/522/1803 +f 481/529/1859 1445/1542/1872 1980/2079/1923 1468/1565/1919 +f 1445/1542/1872 483/531/1871 1470/1567/1924 1980/2079/1923 +f 1980/2079/1923 1470/1567/1924 473/521/1848 1434/1531/1852 +f 1468/1565/1919 1980/2079/1923 1434/1531/1852 475/523/1805 +f 470/518/1836 1471/1568/1925 1981/2080/1926 1430/1527/1843 +f 1471/1568/1925 488/536/1880 1448/1545/1879 1981/2080/1926 +f 1981/2080/1926 1448/1545/1879 482/530/1868 1469/1566/1921 +f 1430/1527/1843 1981/2080/1926 1469/1566/1921 472/520/1844 +f 483/531/1871 1451/1548/1884 1982/2081/1927 1470/1567/1924 +f 1451/1548/1884 489/537/1883 1472/1569/1928 1982/2081/1927 +f 1982/2081/1927 1472/1569/1928 471/519/1840 1431/1528/1846 +f 1470/1567/1924 1982/2081/1927 1431/1528/1846 473/521/1848 +f 468/516/1828 1473/1570/1929 1983/2082/1930 1426/1523/1835 +f 1473/1570/1929 490/538/1892 1454/1551/1891 1983/2082/1930 +f 1983/2082/1930 1454/1551/1891 488/536/1880 1471/1568/1925 +f 1426/1523/1835 1983/2082/1930 1471/1568/1925 470/518/1836 +f 489/537/1883 1457/1554/1896 1984/2083/1931 1472/1569/1928 +f 1457/1554/1896 491/539/1895 1474/1571/1932 1984/2083/1931 +f 1984/2083/1931 1474/1571/1932 469/517/1832 1427/1524/1838 +f 1472/1569/1928 1984/2083/1931 1427/1524/1838 471/519/1840 +f 466/514/1820 1475/1572/1933 1985/2084/1934 1422/1519/1827 +f 1475/1572/1933 492/540/1894 1455/1552/1893 1985/2084/1934 +f 1985/2084/1934 1455/1552/1893 490/538/1892 1473/1570/1929 +f 1422/1519/1827 1985/2084/1934 1473/1570/1929 468/516/1828 +f 491/539/1895 1456/1553/1898 1986/2085/1935 1474/1571/1932 +f 1456/1553/1898 493/541/1900 1476/1573/1936 1986/2085/1935 +f 1986/2085/1935 1476/1573/1936 467/515/1824 1423/1520/1830 +f 1474/1571/1932 1986/2085/1935 1423/1520/1830 469/517/1832 +f 464/512/1812 1459/1556/1902 1987/2086/1937 1418/1515/1819 +f 492/540/1894 1475/1572/1933 1987/2086/1937 1459/1556/1902 +f 466/514/1820 1418/1515/1819 1987/2086/1937 1475/1572/1933 +f 467/515/1824 1476/1573/1936 1988/2087/1938 1419/1516/1822 +f 493/541/1900 1462/1559/1906 1988/2087/1938 1476/1573/1936 +f 465/513/1816 1419/1516/1822 1988/2087/1938 1462/1559/1906 +f 392/428/1578 1299/1384/1586 1989/2088/1939 1477/1574/1940 +f 1299/1384/1586 390/426/1590 1478/1575/1941 1989/2088/1939 +f 1989/2088/1939 1478/1575/1941 504/552/1942 1479/1576/1943 +f 1477/1574/1940 1989/2088/1939 1479/1576/1943 502/550/1944 +f 505/553/1945 1481/1578/1946 1990/2089/1947 1480/1577/1948 +f 1481/1578/1946 391/427/1596 1304/1389/1595 1990/2089/1947 +f 1990/2089/1947 1304/1389/1595 393/429/1584 1482/1579/1949 +f 1480/1577/1948 1990/2089/1947 1482/1579/1949 503/551/1950 +f 394/430/1566 1293/1378/1574 1991/2090/1951 1483/1580/1952 +f 1293/1378/1574 392/428/1578 1477/1574/1940 1991/2090/1951 +f 1991/2090/1951 1477/1574/1940 502/550/1944 1484/1581/1953 +f 1483/1580/1952 1991/2090/1951 1484/1581/1953 500/548/1954 +f 503/551/1950 1482/1579/1949 1992/2091/1955 1485/1582/1956 +f 1482/1579/1949 393/429/1584 1298/1383/1583 1992/2091/1955 +f 1992/2091/1955 1298/1383/1583 395/431/1572 1486/1583/1957 +f 1485/1582/1956 1992/2091/1955 1486/1583/1957 501/549/1958 +f 396/432/1554 1287/1372/1562 1993/2092/1959 1487/1584/1960 +f 1287/1372/1562 394/430/1566 1483/1580/1952 1993/2092/1959 +f 1993/2092/1959 1483/1580/1952 500/548/1954 1488/1585/1961 +f 1487/1584/1960 1993/2092/1959 1488/1585/1961 498/546/1962 +f 501/549/1958 1486/1583/1957 1994/2093/1963 1489/1586/1964 +f 1486/1583/1957 395/431/1572 1292/1377/1571 1994/2093/1963 +f 1994/2093/1963 1292/1377/1571 397/433/1560 1490/1587/1965 +f 1489/1586/1964 1994/2093/1963 1490/1587/1965 499/547/1966 +f 398/435/1542 1281/1365/1550 1995/2094/1967 1491/1588/1968 +f 1281/1365/1550 396/432/1554 1487/1584/1960 1995/2094/1967 +f 1995/2094/1967 1487/1584/1960 498/546/1962 1492/1589/1969 +f 1491/1588/1968 1995/2094/1967 1492/1589/1969 496/544/1970 +f 499/547/1966 1490/1587/1965 1996/2095/1971 1493/1590/1972 +f 1490/1587/1965 397/433/1560 1286/1371/1559 1996/2095/1971 +f 1996/2095/1971 1286/1371/1559 399/437/1548 1494/1591/1973 +f 1493/1590/1972 1996/2095/1971 1494/1591/1973 497/545/1974 +f 400/439/1519 1275/1357/1538 1997/2096/1975 1495/1592/1976 +f 1275/1357/1538 398/435/1542 1491/1588/1968 1997/2096/1975 +f 1997/2096/1975 1491/1588/1968 496/544/1970 1496/1593/1977 +f 1495/1592/1976 1997/2096/1975 1496/1593/1977 494/542/1978 +f 497/545/1974 1494/1591/1973 1998/2097/1979 1497/1594/1980 +f 1494/1591/1973 399/437/1548 1280/1363/1547 1998/2097/1979 +f 1998/2097/1979 1280/1363/1547 401/441/1534 1498/1595/1981 +f 1497/1594/1980 1998/2097/1979 1498/1595/1981 495/543/1982 +f 388/422/1523 1268/1348/1520 1999/2098/1983 1499/1596/1984 +f 1268/1348/1520 400/439/1519 1495/1592/1976 1999/2098/1983 +f 1999/2098/1983 1495/1592/1976 494/542/1978 1500/1598/1985 +f 1499/1596/1984 1999/2098/1983 1500/1598/1985 506/555/1986 +f 495/543/1982 1498/1595/1981 2000/2099/1987 1501/1599/1988 +f 1498/1595/1981 401/441/1534 1273/1354/1533 2000/2099/1987 +f 2000/2099/1987 1273/1354/1533 389/425/1532 1502/1600/1989 +f 1501/1599/1988 2000/2099/1987 1502/1600/1989 507/556/1990 +f 494/542/1978 1503/1601/1991 2001/2100/1992 1500/1598/1985 +f 1503/1601/1991 502/550/1944 1479/1576/1943 2001/2100/1992 +f 2001/2100/1992 1479/1576/1943 504/552/1942 1504/1602/1993 +f 1500/1598/1985 2001/2100/1992 1504/1602/1993 506/555/1986 +f 505/553/1945 1480/1577/1948 2002/2101/1994 1505/1603/1995 +f 1480/1577/1948 503/551/1950 1506/1604/1996 2002/2101/1994 +f 2002/2101/1994 1506/1604/1996 495/543/1982 1501/1599/1988 +f 1505/1603/1995 2002/2101/1994 1501/1599/1988 507/556/1990 +f 494/542/1978 1496/1593/1977 2003/2102/1997 1503/1601/1991 +f 1496/1593/1977 496/544/1970 1507/1605/1998 2003/2102/1997 +f 2003/2102/1997 1507/1605/1998 500/548/1954 1484/1581/1953 +f 1503/1601/1991 2003/2102/1997 1484/1581/1953 502/550/1944 +f 501/549/1958 1508/1606/1999 2004/2103/2000 1485/1582/1956 +f 1508/1606/1999 497/545/1974 1497/1594/1980 2004/2103/2000 +f 2004/2103/2000 1497/1594/1980 495/543/1982 1506/1604/1996 +f 1485/1582/1956 2004/2103/2000 1506/1604/1996 503/551/1950 +f 496/544/1970 1492/1589/1969 2005/2104/2001 1507/1605/1998 +f 498/546/1962 1488/1585/1961 2005/2104/2001 1492/1589/1969 +f 500/548/1954 1507/1605/1998 2005/2104/2001 1488/1585/1961 +f 501/549/1958 1489/1586/1964 2006/2105/2002 1508/1606/1999 +f 499/547/1966 1493/1590/1972 2006/2105/2002 1489/1586/1964 +f 497/545/1974 1508/1606/1999 2006/2105/2002 1493/1590/1972 +f 314/338/1376 1233/1307/1452 2007/2106/2003 1509/1607/2004 +f 1233/1307/1452 382/413/1445 1343/1431/1673 2007/2106/2003 +f 2007/2106/2003 1343/1431/1673 388/423/1523 1499/1597/1984 +f 1509/1607/2004 2007/2106/2003 1499/1597/1984 506/554/1986 +f 389/425/1532 1348/1439/1680 2008/2107/2005 1502/1600/1989 +f 1348/1439/1680 383/416/1449 1234/1309/1454 2008/2107/2005 +f 2008/2107/2005 1234/1309/1454 315/341/1386 1510/1609/2006 +f 1502/1600/1989 2008/2107/2005 1510/1609/2006 507/556/1990 +f 314/339/1376 1509/1608/2004 2009/2108/2007 1253/1329/1491 +f 1509/1608/2004 506/555/1986 1504/1602/1993 2009/2108/2007 +f 2009/2108/2007 1504/1602/1993 504/552/1942 1511/1610/2008 +f 1253/1329/1491 2009/2108/2007 1511/1610/2008 322/351/1493 +f 505/553/1945 1505/1603/1995 2010/2109/2009 1512/1611/2010 +f 1505/1603/1995 507/556/1990 1510/1609/2006 2010/2109/2009 +f 2010/2109/2009 1510/1609/2006 315/341/1386 1258/1335/1502 +f 1512/1611/2010 2010/2109/2009 1258/1335/1502 323/353/1501 +f 320/347/1471 1261/1339/1508 2011/2110/2011 1337/1424/1661 +f 1261/1339/1508 322/351/1493 1511/1610/2008 2011/2110/2011 +f 2011/2110/2011 1511/1610/2008 504/552/1942 1478/1575/1941 +f 1337/1424/1661 2011/2110/2011 1478/1575/1941 390/426/1590 +f 505/553/1945 1512/1611/2010 2012/2111/2012 1481/1578/1946 +f 1512/1611/2010 323/353/1501 1264/1343/1512 2012/2111/2012 +f 2012/2111/2012 1264/1343/1512 321/349/1476 1340/1427/1666 +f 1481/1578/1946 2012/2111/2012 1340/1427/1666 391/427/1596 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj.import new file mode 100644 index 0000000..9bbcd17 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj.import @@ -0,0 +1,21 @@ +[remap] + +importer="wavefront_obj" +importer_version=1 +type="Mesh" +uid="uid://dsgni0xlkinot" +path="res://.godot/imported/suzanne_high_poly.obj-94b0b38d87abe020842596dd6652403e.mesh" + +[deps] + +files=["res://.godot/imported/suzanne_high_poly.obj-94b0b38d87abe020842596dd6652403e.mesh"] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne_high_poly.obj" +dest_files=["res://.godot/imported/suzanne_high_poly.obj-94b0b38d87abe020842596dd6652403e.mesh", "res://.godot/imported/suzanne_high_poly.obj-94b0b38d87abe020842596dd6652403e.mesh"] + +[params] + +generate_tangents=true +scale_mesh=Vector3(1, 1, 1) +offset_mesh=Vector3(0, 0, 0) +optimize_mesh=true diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/CC0LICENCE.txt b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/CC0LICENCE.txt new file mode 100644 index 0000000..4b3d1e4 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/CC0LICENCE.txt @@ -0,0 +1,320 @@ +Creative Commons Legal Code + +Attribution 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of this + License. + c. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + d. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + e. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + f. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + g. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + h. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + i. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(b), as requested. + b. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Section 3(b), in the case of an Adaptation, + a credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4 (b) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at + a minimum such credit will appear, if a credit for all contributing + authors of the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for the + other contributing authors. For the avoidance of doubt, You may only + use the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under this + License, You may not implicitly or explicitly assert or imply any + connection with, sponsorship or endorsement by the Original Author, + Licensor and/or Attribution Parties, as appropriate, of You or Your + use of the Work, without the separate, express prior written + permission of the Original Author, Licensor and/or Attribution + Parties. + c. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of this License. + + Creative Commons may be contacted at https://creativecommons.org/. + diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png new file mode 100644 index 0000000..d479ce9 Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png.import new file mode 100644 index 0000000..44a5026 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhfswrmammtnt" +path.s3tc="res://.godot/imported/moss_orm_albedo.png-0333c743a39423091d9f2cab9e099e3a.s3tc.ctex" +path.etc2="res://.godot/imported/moss_orm_albedo.png-0333c743a39423091d9f2cab9e099e3a.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" +dest_files=["res://.godot/imported/moss_orm_albedo.png-0333c743a39423091d9f2cab9e099e3a.s3tc.ctex", "res://.godot/imported/moss_orm_albedo.png-0333c743a39423091d9f2cab9e099e3a.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png new file mode 100644 index 0000000..4ee737a Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png.import new file mode 100644 index 0000000..3366cf9 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfqtmhy5iwqak" +path.s3tc="res://.godot/imported/moss_orm_heightmap.png-063ffbadad79c98e948d12f4d1d4db4d.s3tc.ctex" +path.etc2="res://.godot/imported/moss_orm_heightmap.png-063ffbadad79c98e948d12f4d1d4db4d.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_heightmap.png" +dest_files=["res://.godot/imported/moss_orm_heightmap.png-063ffbadad79c98e948d12f4d1d4db4d.s3tc.ctex", "res://.godot/imported/moss_orm_heightmap.png-063ffbadad79c98e948d12f4d1d4db4d.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=7 +roughness/src_normal="res://addons/VisualShaderExtras/dbat/dev/materials/moss_orm_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png new file mode 100644 index 0000000..c09c9ad Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png.import new file mode 100644 index 0000000..1646bcb --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ms6yr1tx6aq8" +path.s3tc="res://.godot/imported/moss_orm_normal.png-5b79fd5718add9da7475d8819b216173.s3tc.ctex" +path.etc2="res://.godot/imported/moss_orm_normal.png-5b79fd5718add9da7475d8819b216173.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png" +dest_files=["res://.godot/imported/moss_orm_normal.png-5b79fd5718add9da7475d8819b216173.s3tc.ctex", "res://.godot/imported/moss_orm_normal.png-5b79fd5718add9da7475d8819b216173.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://addons/VisualShaderExtras/dbat/dev/materials/moss_orm_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png new file mode 100644 index 0000000..863c774 Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png.import new file mode 100644 index 0000000..2e3ad5f --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqtpccn3wemel" +path.s3tc="res://.godot/imported/moss_orm_orm.png-5245131e7bb76f5918b2267046126f81.s3tc.ctex" +path.etc2="res://.godot/imported/moss_orm_orm.png-5245131e7bb76f5918b2267046126f81.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png" +dest_files=["res://.godot/imported/moss_orm_orm.png-5245131e7bb76f5918b2267046126f81.s3tc.ctex", "res://.godot/imported/moss_orm_orm.png-5245131e7bb76f5918b2267046126f81.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png new file mode 100644 index 0000000..92d086a Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png.import new file mode 100644 index 0000000..e58f75f --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dq3jk3ga3vpy8" +path.s3tc="res://.godot/imported/rock_orm_albedo.png-303ae543359be462acd4ed3417c6e370.s3tc.ctex" +path.etc2="res://.godot/imported/rock_orm_albedo.png-303ae543359be462acd4ed3417c6e370.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" +dest_files=["res://.godot/imported/rock_orm_albedo.png-303ae543359be462acd4ed3417c6e370.s3tc.ctex", "res://.godot/imported/rock_orm_albedo.png-303ae543359be462acd4ed3417c6e370.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png new file mode 100644 index 0000000..5bf36c4 Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png.import new file mode 100644 index 0000000..4f9f427 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://33ty6m6q8j0k" +path.s3tc="res://.godot/imported/rock_orm_heightmap.png-364f962e57bc1c882d95190d45517657.s3tc.ctex" +path.etc2="res://.godot/imported/rock_orm_heightmap.png-364f962e57bc1c882d95190d45517657.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" +dest_files=["res://.godot/imported/rock_orm_heightmap.png-364f962e57bc1c882d95190d45517657.s3tc.ctex", "res://.godot/imported/rock_orm_heightmap.png-364f962e57bc1c882d95190d45517657.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=7 +roughness/src_normal="res://addons/VisualShaderExtras/dbat/dev/materials/rock_orm_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png new file mode 100644 index 0000000..8b2eccd Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png.import new file mode 100644 index 0000000..35e04e8 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dq1popjjfe6u8" +path.s3tc="res://.godot/imported/rock_orm_normal.png-9c27716313a7ce741b6e47e86ac6759c.s3tc.ctex" +path.etc2="res://.godot/imported/rock_orm_normal.png-9c27716313a7ce741b6e47e86ac6759c.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" +dest_files=["res://.godot/imported/rock_orm_normal.png-9c27716313a7ce741b6e47e86ac6759c.s3tc.ctex", "res://.godot/imported/rock_orm_normal.png-9c27716313a7ce741b6e47e86ac6759c.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://addons/VisualShaderExtras/dbat/dev/materials/rock_orm_normal.png" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png new file mode 100644 index 0000000..db72ea4 Binary files /dev/null and b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png differ diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png.import b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png.import new file mode 100644 index 0000000..d2f6944 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccra6c4ccwuya" +path.s3tc="res://.godot/imported/rock_orm_orm.png-72ac41198c3019ebc6c0fc7bb5b866c5.s3tc.ctex" +path.etc2="res://.godot/imported/rock_orm_orm.png-72ac41198c3019ebc6c0fc7bb5b866c5.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png" +dest_files=["res://.godot/imported/rock_orm_orm.png-72ac41198c3019ebc6c0fc7bb5b866c5.s3tc.ctex", "res://.godot/imported/rock_orm_orm.png-72ac41198c3019ebc6c0fc7bb5b866c5.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotate_uv_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotate_uv_2d_demo.tscn new file mode 100644 index 0000000..8ba3a2c --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotate_uv_2d_demo.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotateuvshader.tres" id="1_k13un"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="2_2cm2h"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ihqfp"] +shader = ExtResource("1_k13un") +shader_parameter/Texture2DParameter = ExtResource("2_2cm2h") + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_ihqfp") +layout_mode = 0 +offset_right = 128.0 +offset_bottom = 128.0 +texture = ExtResource("2_2cm2h") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotateuvshader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotateuvshader.tres new file mode 100644 index 0000000..5bc3846 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/rotateuv/rotateuvshader.tres @@ -0,0 +1,107 @@ +[gd_resource type="VisualShader" load_steps=10 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/UVRotate.gd" id="1_lmtvb"] +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="2_2acqy"] + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_kxpbt"] +function = 1 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_oy211"] +default_input_values = [0, 0.0, 1, 0.691] +operator = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_vwuqj"] +parameter_name = "Texture2DParameter" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_2xe3x"] +source = 5 +texture = ExtResource("2_2acqy") + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_1s4vi"] +output_port_for_preview = 0 +default_input_values = [1, Vector2(0.5, 0.5), 2, 1.235] +initialized = true +script = ExtResource("1_lmtvb") + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_h280l"] +input_name = "uv" + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_cydmw"] +input_name = "time" + +[resource] +code = "shader_type canvas_item; +uniform sampler2D Texture2DParameter : source_color, filter_linear; + + +// UVRotateV2 + +// _angle in radians +vec2 vec2_rotate_VisualShaderExtrasUvUvRotateV2(vec2 _uv, float _angle, vec2 _pivot) { + _uv -= _pivot; + _uv = mat2( vec2(cos(_angle), -sin(_angle)), vec2(sin(_angle), cos(_angle)) ) * _uv; + _uv += _pivot; + return _uv; +} + + +void fragment() { +// Input:6 + vec2 n_out6p0 = UV; + + +// Input:7 + float n_out7p0 = TIME; + + +// FloatFunc:10 + float n_out10p0 = cos(n_out7p0); + + +// FloatOp:11 + float n_in11p1 = 0.69100; + float n_out11p0 = n_out10p0 * n_in11p1; + + + vec2 n_out4p0; +// UVRotateV2:4 + vec2 n_in4p1 = vec2(0.50000, 0.50000); + { + + vec2 rotated_uv = n_out6p0; + rotated_uv = vec2_rotate_VisualShaderExtrasUvUvRotateV2(n_out6p0, n_out11p0, n_in4p1); + n_out4p0 = rotated_uv; + + } + + + vec4 n_out3p0; +// Texture2D:3 + n_out3p0 = texture(Texture2DParameter, n_out4p0); + + +// Output:0 + COLOR.rgb = vec3(n_out3p0.xyz); + + +} +" +mode = 1 +flags/light_only = false +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture_2xe3x") +nodes/fragment/3/position = Vector2(100, 160) +nodes/fragment/4/node = SubResource("VisualShaderNodeCustom_1s4vi") +nodes/fragment/4/position = Vector2(-180, 380) +nodes/fragment/6/node = SubResource("VisualShaderNodeInput_h280l") +nodes/fragment/6/position = Vector2(-700, 360) +nodes/fragment/7/node = SubResource("VisualShaderNodeInput_cydmw") +nodes/fragment/7/position = Vector2(-1000, 520) +nodes/fragment/10/node = SubResource("VisualShaderNodeFloatFunc_kxpbt") +nodes/fragment/10/position = Vector2(-680, 520) +nodes/fragment/11/node = SubResource("VisualShaderNodeFloatOp_oy211") +nodes/fragment/11/position = Vector2(-440, 480) +nodes/fragment/13/node = SubResource("VisualShaderNodeTexture2DParameter_vwuqj") +nodes/fragment/13/position = Vector2(-440, 80) +nodes/fragment/connections = PackedInt32Array(3, 0, 0, 0, 4, 0, 3, 0, 7, 0, 10, 0, 10, 0, 11, 0, 13, 0, 3, 2, 11, 0, 4, 2, 6, 0, 4, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_2d_demo.tscn new file mode 100644 index 0000000..7af5eb4 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_2d_demo.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_shader.tres" id="1_xvkxh"] +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="2_n7xmv"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0ajk8"] +shader = ExtResource("1_xvkxh") + +[node name="Node2D" type="Node2D"] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_0ajk8") +offset_right = 64.0 +offset_bottom = 64.0 +texture = ExtResource("2_n7xmv") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_shader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_shader.tres new file mode 100644 index 0000000..ae0c96a --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/shapes/shapes_shader.tres @@ -0,0 +1,142 @@ +[gd_resource type="VisualShader" load_steps=10 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Circle.gd" id="1_n1igs"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Box.gd" id="2_fi760"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_uwjlt"] +default_input_values = [1, Vector2(0.5, 0.5), 2, 0.25, 3, 0.25] +initialized = true +script = ExtResource("1_n1igs") + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_ehpvk"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.292] +op_type = 4 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_kq2wu"] +input_name = "time" + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_pnhln"] +function = 1 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_yxx3f"] +default_input_values = [0, 0.0, 1, 0.785] +operator = 2 + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_v642u"] +default_input_values = [0, 0.0, 1, 0.5] +operator = 2 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_dj0k4"] +default_input_values = [1, Vector2(0.5, 0.5), 2, Vector2(0.25, 0.25), 3, 0.0] +initialized = true +script = ExtResource("2_fi760") + +[resource] +code = "shader_type canvas_item; + + +// Circle2 + +//Original code +//float sdCircle(vec2 pos, float r) { +// return step(length(pos) - r, pos).x; +//} + +//New hack - faster than using length func +float circle(vec2 position, float radius, float smoothness) +{ + return smoothstep(radius, radius + smoothness, dot(position, position) * 6.0); +} + +// Box2 + +//Original +//float sdBox( in vec2 __position, in vec2 __proportions ) +//{ +// vec2 __d = abs(__position) - __proportions; +// return length(max(__d, 0.0)) + min(max(__d.x, __d.y), 0.0); +//} +//Alteration +float sdBox(vec2 _pos, vec2 __proportions, float _feather) { + vec2 d = abs(_pos) - __proportions; + float outside = length(max(d, 0.)); + float inside = min(max(d.x, d.y), 0.); + float both = outside + inside; + + //float f = outside - _feather; //makes a kind of outline + + // ok! smoothness is v sensitive tho. + // when f is 0 the edge is sharp + float f = _feather; + + return smoothstep(outside, inside, f); +} + + +void fragment() { +// Input:5 + float n_out5p0 = TIME; + + +// FloatOp:8 + float n_in8p1 = 0.50000; + float n_out8p0 = n_out5p0 * n_in8p1; + + +// FloatFunc:6 + float n_out6p0 = cos(n_out8p0); + + +// FloatOp:7 + float n_in7p1 = 0.78500; + float n_out7p0 = n_out6p0 * n_in7p1; + + + float n_out10p0; +// Circle2:10 + vec2 n_in10p1 = vec2(0.50000, 0.50000); + { + n_out10p0 = circle(UV - n_in10p1, n_out7p0, n_out7p0); + } + + + float n_out9p0; +// Box2:9 + vec2 n_in9p1 = vec2(0.50000, 0.50000); + vec2 n_in9p2 = vec2(0.25000, 0.25000); + float n_in9p3 = 0.00000; + { + n_out9p0 = sdBox(UV-n_in9p1, n_in9p2, n_in9p3); + } + + +// Mix:4 + float n_in4p2 = 0.29200; + vec3 n_out4p0 = mix(vec3(n_out10p0), vec3(n_out9p0), n_in4p2); + + +// Output:0 + COLOR.rgb = n_out4p0; + + +} +" +graph_offset = Vector2(-360.765, -184.063) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(620, 60) +nodes/fragment/4/node = SubResource("VisualShaderNodeMix_ehpvk") +nodes/fragment/4/position = Vector2(360, 40) +nodes/fragment/5/node = SubResource("VisualShaderNodeInput_kq2wu") +nodes/fragment/5/position = Vector2(-1000, -20) +nodes/fragment/6/node = SubResource("VisualShaderNodeFloatFunc_pnhln") +nodes/fragment/6/position = Vector2(-520, 0) +nodes/fragment/7/node = SubResource("VisualShaderNodeFloatOp_yxx3f") +nodes/fragment/7/position = Vector2(-320, 0) +nodes/fragment/8/node = SubResource("VisualShaderNodeFloatOp_v642u") +nodes/fragment/8/position = Vector2(-680, -20) +nodes/fragment/9/node = SubResource("VisualShaderNodeCustom_dj0k4") +nodes/fragment/9/position = Vector2(-20, 100) +nodes/fragment/10/node = SubResource("VisualShaderNodeCustom_uwjlt") +nodes/fragment/10/position = Vector2(-120, -80) +nodes/fragment/connections = PackedInt32Array(4, 0, 0, 0, 6, 0, 7, 0, 5, 0, 8, 0, 8, 0, 6, 0, 7, 0, 10, 2, 7, 0, 10, 3, 9, 0, 4, 1, 10, 0, 4, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/TextureStack_backup.gd.bak b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/TextureStack_backup.gd.bak new file mode 100644 index 0000000..9fa9c51 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/TextureStack_backup.gd.bak @@ -0,0 +1,152 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name TempVisualShaderNodeTextureStack + +func _get_name(): + return "TextureStack" + +func _get_version(): + return "1" + +func _get_category(): + return "VisualShaderExtras/Utility" + +func _get_description(): + return LizardShaderLibrary.format_description(self, + """....""") + +#func _is_available(mode, type): +# return mode == VisualShader.MODE_SPATIAL + +func _is_highend(): + return true #mark as PC only. + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_count(): + return 7 + +func _get_output_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 2: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 3: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 4: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 5: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 6: return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_name(port: int): + match port: + 0: return "UV" + 1: return "A rgb" + 2: return "O rgb" + 3: return "R rgb" + 4: return "M rgb" + 5: return "Norm rgb" + 6: return "Height" + +#func _init() -> void: +# set_input_port_default_value(2, Vector3.UP) +# set_input_port_default_value(3, 0.) +# set_input_port_default_value(4, 0.) + +func _get_input_port_count(): + return 7 + +func _get_input_port_name(port): + match port: + 0: return "UV in" + 1: return "Albedo" + 2: return "Occlusion" + 3: return "Roughness" + 4: return "Metallic" + 5: return "Normalmap" + 6: return "Height" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 2: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 3: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 4: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 5: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 6: return VisualShaderNode.PORT_TYPE_SAMPLER + +#func _get_global_code(mode): +# return LizardShaderLibrary.normal_map_add_z \ +# + LizardShaderLibrary.world_normal_mask \ +# + LizardShaderLibrary.mask_blend +# + +func tlod(invar,key): + var s + if invar: + s = "vec3 tex_%s = textureLod({sampler_%s}, {inuv}, 0.).rgb;" % [key,key] + if key == "H": + s+="{out_%s} = tex_%s.r;" % [key,key] + else: + s+= "{out_%s} = tex_%s;" % [key,key] + s+="\n" + return s + return "" + +func _get_code(input_vars, output_vars, mode, type): + var inuv = "UV" + if input_vars[0]: + inuv = input_vars[0] + + var s = tlod(input_vars[1],"A") + s += tlod(input_vars[2],"O") + s += tlod(input_vars[3],"R") + s += tlod(input_vars[4],"M") + s += tlod(input_vars[5],"NM") + s += tlod(input_vars[6],"H") + + s = s.format({ + "inuv" : inuv, + "sampler_A": input_vars[1], + "sampler_O": input_vars[2], + "sampler_R": input_vars[3], + "sampler_M": input_vars[4], + "sampler_NM": input_vars[5], + "sampler_H": input_vars[6], + + "out_A": output_vars[1], + "out_O": output_vars[2], + "out_R": output_vars[3], + "out_M": output_vars[4], + "out_NM": output_vars[5], + "out_H": output_vars[6] + }) + return s + """ +{uv_out} = {inuv}; +""".format( +{ +"inuv" : inuv, +"uv_out": output_vars[0], +}) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack.tres new file mode 100644 index 0000000..e9a3f25 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack.tres @@ -0,0 +1,80 @@ +[gd_resource type="VisualShader" load_steps=7 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/TextureStack.gd" id="1_1588i"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_y67u7"] +initialized = true +script = ExtResource("1_1588i") + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_o2o18"] +parameter_name = "Albedo" +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_1wkfw"] +parameter_name = "Normalmap" +texture_type = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_5jiyq"] +parameter_name = "Height" + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_xrkj6"] +parameter_name = "ORM" + +[resource] +code = "shader_type canvas_item; +uniform sampler2D Albedo : source_color; +uniform sampler2D ORM; +uniform sampler2D Normalmap : hint_normal; +uniform sampler2D Height; + + + +void fragment() { + vec2 n_out10p0; + vec4 n_out10p1; + vec3 n_out10p2; + float n_out10p3; + float n_out10p4; + float n_out10p5; + vec3 n_out10p6; + float n_out10p7; +// TextureStack:10 + { + n_out10p1 = textureLod(Albedo, UV, 0.); + + n_out10p3 = textureLod(ORM, UV, 0.).r; + n_out10p4 = textureLod(ORM, UV, 0.).g; + n_out10p5 = textureLod(ORM, UV, 0.).b; + + n_out10p6 = textureLod(Normalmap, UV, 0.).rgb; + + n_out10p7 = textureLod(Height, UV, 0.).r; + + + n_out10p0 = UV; + } + + +// Output:0 + COLOR.rgb = vec3(n_out10p1.xyz); + NORMAL_MAP = n_out10p6; + NORMAL_MAP_DEPTH = n_out10p7; + + +} +" +graph_offset = Vector2(-487.548, -123.901) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(140, 240) +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture2DParameter_o2o18") +nodes/fragment/3/position = Vector2(-620, -140) +nodes/fragment/4/node = SubResource("VisualShaderNodeTexture2DParameter_1wkfw") +nodes/fragment/4/position = Vector2(-620, 400) +nodes/fragment/7/node = SubResource("VisualShaderNodeTexture2DParameter_5jiyq") +nodes/fragment/7/position = Vector2(-620, 640) +nodes/fragment/8/node = SubResource("VisualShaderNodeTexture2DParameter_xrkj6") +nodes/fragment/8/position = Vector2(-620, 120) +nodes/fragment/10/node = SubResource("VisualShaderNodeCustom_y67u7") +nodes/fragment/10/position = Vector2(-260, 280) +nodes/fragment/connections = PackedInt32Array(8, 0, 10, 2, 7, 0, 10, 7, 4, 0, 10, 6, 10, 1, 0, 0, 3, 0, 10, 1, 10, 7, 0, 4, 10, 6, 0, 3) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_2d_demo.tscn new file mode 100644 index 0000000..a1be1fc --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_2d_demo.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=8 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack.tres" id="1_5rhkq"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_h7i13"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="2_xqx38"] +[ext_resource type="Texture2D" uid="uid://33ty6m6q8j0k" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" id="3_evkdv"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="4_tfjmu"] +[ext_resource type="Texture2D" uid="uid://ccra6c4ccwuya" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png" id="5_vyod3"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8a2wk"] +shader = ExtResource("1_5rhkq") +shader_parameter/Albedo = ExtResource("2_h7i13") +shader_parameter/ORM = ExtResource("5_vyod3") +shader_parameter/Normalmap = ExtResource("4_tfjmu") +shader_parameter/Height = ExtResource("3_evkdv") + +[node name="texture_stack_2d_demo" type="Node2D"] + +[node name="PointLight2D" type="PointLight2D" parent="."] +position = Vector2(34, 4) +energy = 3.36 +texture = ExtResource("3_evkdv") + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_8a2wk") +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("2_xqx38") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d.tres new file mode 100644 index 0000000..efc476e --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d.tres @@ -0,0 +1,94 @@ +[gd_resource type="VisualShader" load_steps=8 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/TextureStack.gd" id="1_b8cyd"] + +[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_idn4t"] +default_input_values = [1, Vector2(2, 2), 2, Vector2(0, 0)] +function = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_g8hug"] +parameter_name = "Albedo" +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_a2cfy"] +parameter_name = "Normalmap" +texture_type = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_eafs5"] +parameter_name = "ORM" + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_thkgx"] +initialized = true +script = ExtResource("1_b8cyd") + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_qliaj"] +parameter_name = "Depth" +texture_filter = 2 + +[resource] +code = "shader_type spatial; +uniform sampler2D Albedo : source_color; +uniform sampler2D ORM; +uniform sampler2D Normalmap : hint_normal; +uniform sampler2D Depth : filter_linear; + + + +void fragment() { +// UVFunc:10 + vec2 n_in10p1 = vec2(2.00000, 2.00000); + vec2 n_in10p2 = vec2(0.00000, 0.00000); + vec2 n_out10p0 = fma((UV - n_in10p2), n_in10p1, n_in10p2); + + + vec2 n_out8p0; + vec4 n_out8p1; + vec3 n_out8p2; + float n_out8p3; + float n_out8p4; + float n_out8p5; + vec3 n_out8p6; + float n_out8p7; +// TextureStack:8 + { + n_out8p1 = textureLod(Albedo, n_out10p0, 0.); + + n_out8p3 = textureLod(ORM, n_out10p0, 0.).r; + n_out8p4 = textureLod(ORM, n_out10p0, 0.).g; + n_out8p5 = textureLod(ORM, n_out10p0, 0.).b; + + n_out8p6 = textureLod(Normalmap, n_out10p0, 0.).rgb; + + n_out8p7 = textureLod(Depth, n_out10p0, 0.).r; + + + n_out8p0 = n_out10p0; + } + + +// Output:0 + ALBEDO = vec3(n_out8p1.xyz); + METALLIC = n_out8p5; + ROUGHNESS = n_out8p4; + AO = n_out8p3; + NORMAL_MAP = n_out8p6; + NORMAL_MAP_DEPTH = n_out8p7; + + +} +" +graph_offset = Vector2(-303.546, -109.95) +nodes/fragment/0/position = Vector2(860, 60) +nodes/fragment/2/node = SubResource("VisualShaderNodeTexture2DParameter_g8hug") +nodes/fragment/2/position = Vector2(-300, -160) +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture2DParameter_a2cfy") +nodes/fragment/3/position = Vector2(-300, 360) +nodes/fragment/7/node = SubResource("VisualShaderNodeTexture2DParameter_eafs5") +nodes/fragment/7/position = Vector2(-300, 100) +nodes/fragment/8/node = SubResource("VisualShaderNodeCustom_thkgx") +nodes/fragment/8/position = Vector2(124.857, 137.857) +nodes/fragment/9/node = SubResource("VisualShaderNodeTexture2DParameter_qliaj") +nodes/fragment/9/position = Vector2(-300, 580) +nodes/fragment/10/node = SubResource("VisualShaderNodeUVFunc_idn4t") +nodes/fragment/10/position = Vector2(-520, 60) +nodes/fragment/connections = PackedInt32Array(2, 0, 8, 1, 3, 0, 8, 6, 8, 1, 0, 0, 8, 3, 0, 6, 8, 4, 0, 3, 8, 5, 0, 2, 8, 6, 0, 9, 7, 0, 8, 2, 9, 0, 8, 7, 8, 7, 0, 10, 10, 0, 8, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d_demo.tscn new file mode 100644 index 0000000..a350424 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d_demo.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=8 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/texture_stack/texture_stack_3d.tres" id="1_y5mdw"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_qfjf8"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="3_0ogme"] +[ext_resource type="Texture2D" uid="uid://33ty6m6q8j0k" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_heightmap.png" id="3_6vqlt"] +[ext_resource type="Texture2D" uid="uid://ccra6c4ccwuya" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png" id="4_oa46b"] + +[sub_resource type="SphereMesh" id="SphereMesh_gb4fn"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_h0p61"] +render_priority = 0 +shader = ExtResource("1_y5mdw") +shader_parameter/Albedo = ExtResource("2_qfjf8") +shader_parameter/ORM = ExtResource("4_oa46b") +shader_parameter/Normalmap = ExtResource("3_0ogme") +shader_parameter/Depth = ExtResource("3_6vqlt") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("SphereMesh_gb4fn") +surface_material_override/0 = SubResource("ShaderMaterial_h0p61") + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000417948, 0, 1.20816) +light_color = Color(0.560784, 0.313726, 1, 1) +light_energy = 3.79 +omni_range = 1.668 +omni_attenuation = 0.901249 diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tres new file mode 100644 index 0000000..1fcfe3c --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tres @@ -0,0 +1,149 @@ +[gd_resource type="VisualShader" load_steps=10 format=3] + +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="1_tufna"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/UVTiler.gd" id="2_7nca1"] + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_bjkae"] +output_port_for_preview = 0 +expanded_output_ports = [0] +source = 5 +texture = ExtResource("1_tufna") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_p00pk"] +parameter_name = "Texture2DParameter" +texture_type = 1 +color_default = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_eobun"] +parameter_name = "BrickShift" +hint = 1 +default_value_enabled = true +default_value = 0.5 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_eb67r"] +parameter_name = "RandRot" +hint = 1 +default_value_enabled = true + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_6suix"] +parameter_name = "Rot" +hint = 1 +max = 3.142 +default_value_enabled = true + +[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_rcxwt"] +parameter_name = "DownAcross" +default_value_enabled = true +default_value = Vector2(2, 2) + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_rat7q"] +default_input_values = [0, Vector2(2, 2), 1, 0.0, 2, 0.0, 3, 0.5] +initialized = true +script = ExtResource("2_7nca1") + +[resource] +code = "shader_type canvas_item; +uniform vec2 DownAcross = vec2(2.000000, 2.000000); +uniform float Rot : hint_range(0, 3.14199995994568) = 0; +uniform float RandRot : hint_range(0, 1) = 0; +uniform float BrickShift : hint_range(0, 1) = 0.5; +uniform sampler2D Texture2DParameter : source_color, hint_default_transparent, filter_linear; + + +// UVTiler + +// _angle in radians +vec2 vec2_rotate_VisualShaderExtrasUvUvTiler(vec2 _uv, float _angle, vec2 _pivot) { + _uv -= _pivot; + _uv = mat2( vec2(cos(_angle), -sin(_angle)), vec2(sin(_angle), cos(_angle)) ) * _uv; + _uv += _pivot; + return _uv; +} + +vec2 brick_tile_VisualShaderExtrasUvUvTiler(vec2 _uv, float _zoom, float _shift) +{ + _uv.x += step(1.0, mod(_uv.y, 2.0)) * _shift; + return fract(_uv); +} + +// Returns float from 0.0 to 1.0 +float random_float_VisualShaderExtrasUvUvTiler(vec2 input) { + return fract(sin(dot(input.xy, vec2(12.9898,78.233))) * 43758.5453123); +} + + +void fragment() { +// Vector2Parameter:8 + vec2 n_out8p0 = DownAcross; + + +// FloatParameter:7 + float n_out7p0 = Rot; + + +// FloatParameter:6 + float n_out6p0 = RandRot; + + +// FloatParameter:5 + float n_out5p0 = BrickShift; + + + vec2 n_out9p0; +// UVTiler:9 + { + + //Much simpler to calculate zoom from the tiling vec2 + float zoom = (n_out8p0.x * n_out8p0.y); + + vec2 st = UV/n_out8p0; + st *= zoom; //Scale coordinate system by zoom + + vec2 unique_val = floor( st ); //get the integer coordinates + + //Something about this calc is the problem with the brick shift when + //rr is > 0 + float rand_rotation = (( random_float_VisualShaderExtrasUvUvTiler(unique_val) * 2.0) - 1.0) * n_out6p0; + + //Just add whatever static rotation may be input and clamp: + rand_rotation = clamp(rand_rotation + n_out7p0, 0.0, 2.*PI); + + st = brick_tile_VisualShaderExtrasUvUvTiler(st, zoom, n_out5p0); + st = vec2_rotate_VisualShaderExtrasUvUvTiler(st, rand_rotation, vec2(0.5)); + + n_out9p0 = st; + + } + + + vec4 n_out3p0; +// Texture2D:3 + n_out3p0 = texture(Texture2DParameter, n_out9p0); + + +// Output:0 + COLOR.rgb = vec3(n_out3p0.xyz); + + +} +" +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(500, 140) +nodes/fragment/3/node = SubResource("VisualShaderNodeTexture_bjkae") +nodes/fragment/3/position = Vector2(160, 220) +nodes/fragment/4/node = SubResource("VisualShaderNodeTexture2DParameter_p00pk") +nodes/fragment/4/position = Vector2(-240, 360) +nodes/fragment/5/node = SubResource("VisualShaderNodeFloatParameter_eobun") +nodes/fragment/5/position = Vector2(-869.255, 396.578) +nodes/fragment/6/node = SubResource("VisualShaderNodeFloatParameter_eb67r") +nodes/fragment/6/position = Vector2(-609.255, 396.578) +nodes/fragment/7/node = SubResource("VisualShaderNodeFloatParameter_6suix") +nodes/fragment/7/position = Vector2(-749.255, 116.578) +nodes/fragment/8/node = SubResource("VisualShaderNodeVec2Parameter_rcxwt") +nodes/fragment/8/position = Vector2(-489.255, -23.4216) +nodes/fragment/9/node = SubResource("VisualShaderNodeCustom_rat7q") +nodes/fragment/9/position = Vector2(-149.255, 56.5784) +nodes/fragment/connections = PackedInt32Array(4, 0, 3, 2, 8, 0, 9, 0, 9, 0, 3, 0, 7, 0, 9, 1, 6, 0, 9, 2, 5, 0, 9, 3, 3, 0, 0, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tscn new file mode 100644 index 0000000..9ac2e03 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_2d_demo.tres" id="1_fr47i"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="1_lbymb"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_drvuj"] +shader = ExtResource("1_fr47i") +shader_parameter/DownAcross = null +shader_parameter/Rot = null +shader_parameter/RandRot = null +shader_parameter/BrickShift = null +shader_parameter/Texture2DParameter = ExtResource("1_lbymb") + +[node name="tiler_2d_demo" type="Node2D"] + +[node name="TextureRect" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_drvuj") +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("1_lbymb") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_3d_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_3d_demo.tscn new file mode 100644 index 0000000..4ca5c0c --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_3d_demo.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=7 format=3] + +[ext_resource type="ArrayMesh" uid="uid://bcv4ug57hcmnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/suzanne.obj" id="1_b56b5"] +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_vshader.tres" id="2_lwe2q"] +[ext_resource type="Texture2D" uid="uid://dja24d5rtr2ae" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.svg" id="3_pom0l"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_k0e48"] +render_priority = 0 +shader = ExtResource("2_lwe2q") +shader_parameter/DownAcross = null +shader_parameter/Rot = null +shader_parameter/RandRot = null +shader_parameter/BrickShift = null +shader_parameter/Texture2DParameter = ExtResource("3_pom0l") + +[sub_resource type="PlaneMesh" id="PlaneMesh_xbehk"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vc1bm"] +render_priority = 0 +shader = ExtResource("2_lwe2q") +shader_parameter/DownAcross = null +shader_parameter/Rot = null +shader_parameter/RandRot = null +shader_parameter/BrickShift = null +shader_parameter/Texture2DParameter = ExtResource("3_pom0l") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.566285, 0.0365433, 0.0734995) +mesh = ExtResource("1_b56b5") +surface_material_override/0 = SubResource("ShaderMaterial_k0e48") + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 2.10987, -0.0478901, 0.061174) +mesh = SubResource("PlaneMesh_xbehk") +surface_material_override/0 = SubResource("ShaderMaterial_vc1bm") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_vshader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_vshader.tres new file mode 100644 index 0000000..15cb771 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/tiler/tiler_vshader.tres @@ -0,0 +1,143 @@ +[gd_resource type="VisualShader" load_steps=10 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/UVTiler.gd" id="3_cu2nc"] +[ext_resource type="Texture2D" uid="uid://ba7cojxxohdjb" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/icon.png" id="4_7m7pb"] + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_5typr"] +output_port_for_preview = 0 +expanded_output_ports = [0] +source = 5 +texture = ExtResource("4_7m7pb") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_bg1tf"] +parameter_name = "Texture2DParameter" +texture_type = 1 +color_default = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_rdjab"] +parameter_name = "BrickShift" +hint = 1 +default_value_enabled = true +default_value = 0.5 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_ooq8t"] +parameter_name = "RandRot" +hint = 1 +default_value_enabled = true + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_3flr0"] +parameter_name = "Rot" +hint = 1 +max = 3.142 +default_value_enabled = true + +[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_7g6li"] +parameter_name = "DownAcross" +default_value_enabled = true +default_value = Vector2(2, 2) + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_4cqbd"] +default_input_values = [0, Vector2(2, 2), 1, 0.0, 2, 0.0, 3, 0.5] +initialized = true +script = ExtResource("3_cu2nc") + +[resource] +code = "shader_type spatial; +uniform vec2 DownAcross = vec2(2.000000, 2.000000); +uniform float Rot : hint_range(0, 3.14199995994568) = 0; +uniform float RandRot : hint_range(0, 1) = 0; +uniform float BrickShift : hint_range(0, 1) = 0.5; +uniform sampler2D Texture2DParameter : source_color, hint_default_transparent, filter_linear; + + +// UVTiler + +vec2 brick_tile(vec2 _uv, float _zoom, float _shift) +{ + _uv.x += step(1.0, mod(_uv.y, 2.0)) * _shift; + return fract(_uv); +} +vec2 vec2_rotate(vec2 _uv, float _angle, vec2 _pivot) { + _uv -= _pivot; + _uv = mat2( vec2(cos(_angle), -sin(_angle)), vec2(sin(_angle), cos(_angle)) ) * _uv; + _uv += _pivot; + return _uv; +} +float random_float(vec2 input) { + return fract(sin(dot(input.xy, vec2(12.9898,78.233))) * 43758.5453123); +} + +void fragment() { +// Vector2Parameter:40 + vec2 n_out40p0 = DownAcross; + + +// FloatParameter:39 + float n_out39p0 = Rot; + + +// FloatParameter:38 + float n_out38p0 = RandRot; + + +// FloatParameter:36 + float n_out36p0 = BrickShift; + + + vec2 n_out41p0; +// UVTiler:41 + { + + //Much simpler to calculate zoom from the tiling vec2 + float zoom = (n_out40p0.x * n_out40p0.y); + + vec2 st = UV/n_out40p0; + st *= zoom; //Scale coordinate system by zoom + + vec2 unique_val = floor( st ); //get the integer coordinates + + //Something about this calc is the problem with the brick shift when + //rr is > 0 + float rand_rotation = ((random_float(unique_val) * 2.0) - 1.0) * n_out38p0; + + //Just add whatever static rotation may be input and clamp: + rand_rotation = clamp(rand_rotation + n_out39p0, 0.0, 2.*PI); + + st = brick_tile(st, zoom, n_out36p0); + st = vec2_rotate(st, rand_rotation, vec2(0.5)); + + n_out41p0 = st; + + } + + + vec4 n_out27p0; +// Texture2D:27 + n_out27p0 = texture(Texture2DParameter, n_out41p0); + + +// Output:0 + ALBEDO = vec3(n_out27p0.xyz); + + +} +" +graph_offset = Vector2(-1304.47, -4.53091) +nodes/fragment/0/position = Vector2(-1080, 260) +nodes/fragment/27/node = SubResource("VisualShaderNodeTexture_5typr") +nodes/fragment/27/position = Vector2(-1340, 420) +nodes/fragment/34/node = SubResource("VisualShaderNodeTexture2DParameter_bg1tf") +nodes/fragment/34/position = Vector2(-1780, 700) +nodes/fragment/36/node = SubResource("VisualShaderNodeFloatParameter_rdjab") +nodes/fragment/36/position = Vector2(-2400, 540) +nodes/fragment/38/node = SubResource("VisualShaderNodeFloatParameter_ooq8t") +nodes/fragment/38/position = Vector2(-2140, 540) +nodes/fragment/39/node = SubResource("VisualShaderNodeFloatParameter_3flr0") +nodes/fragment/39/position = Vector2(-2280, 260) +nodes/fragment/40/node = SubResource("VisualShaderNodeVec2Parameter_7g6li") +nodes/fragment/40/position = Vector2(-2020, 120) +nodes/fragment/41/node = SubResource("VisualShaderNodeCustom_4cqbd") +nodes/fragment/41/position = Vector2(-1680, 200) +nodes/fragment/connections = PackedInt32Array(34, 0, 27, 2, 27, 0, 0, 0, 40, 0, 41, 0, 41, 0, 27, 0, 39, 0, 41, 1, 38, 0, 41, 2, 36, 0, 41, 3) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tres new file mode 100644 index 0000000..56d6d84 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tres @@ -0,0 +1,153 @@ +[gd_resource type="VisualShader" load_steps=11 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/WorldNormal/WorldNormalMask.gd" id="1_xm86j"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/Utility/NormalMapZ.gd" id="2_662ls"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="3_etwos"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="4_106cm"] + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_4lrbg"] +parameter_name = "BackgroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_qn4go"] +default_input_values = [2, 0.0] +initialized = true +script = ExtResource("2_662ls") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_6nx55"] +texture = ExtResource("3_etwos") + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_cwa0d"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_bnyx1"] +texture = ExtResource("4_106cm") + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_8ghky"] +default_input_values = [1, Vector3(0, 1, 0)] +initialized = true +script = ExtResource("1_xm86j") + +[resource] +code = "shader_type spatial; +uniform sampler2D tex_frg_6; +uniform sampler2D tex_frg_8; +uniform sampler2D BackgroundNormalMap : hint_normal, filter_linear; + + +// RestoreNormalMapZ + +// Godot strips the z value from imported Normal Maps. +// It does this for two reasons: +// 1. Obtaining better compression because the z can be calculated by shader. +// Compression boosts speed of CPU to GPU transfer. +// 2. On mobile devices they do not do that calculation. They either ignore the z +// or do some other calculation, but the normal one (below) is apparently too slow +// or power-hungry for mobile devices. +// +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +vec3 normal_map_add_z_VisualShaderExtrasUtilityRestoreNormalMapZ( + vec3 normal_map_texture, + vec2 inuv, + vec3 _TANGENT, + vec3 _BINORMAL, + vec3 _NORMAL) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + + // Unpack the background normal map. + vec3 bg_normal = normal_map_texture * 2.0 - 1.0; + + // Recalculate z-component of the normal map with the Pythagorean theorem. + bg_normal.z = sqrt(1.0 - bg_normal.x * bg_normal.x - bg_normal.y * bg_normal.y); + + // Apply the tangent-space normal map to the view-space normals. + vec3 normal_applied = bg_normal.x * _TANGENT + bg_normal.y * _BINORMAL + bg_normal.z * _NORMAL; + return normal_applied; +} + + +// World_Normal_Mask + +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +float world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMask( + vec3 normal_map_texture, + vec3 vector_direction, + mat4 _VIEW_MATRIX + ) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + // Convert the world up vector into view-space with a matrix multiplication. + vec3 up_vector_viewspace = mat3(_VIEW_MATRIX) * vector_direction; + + // Compare the up vector to the surface with the normal map applied using the dot product. + float dot_product = dot(up_vector_viewspace, normal_map_texture); + + return dot_product; +} + + + +void fragment() { +// Texture2D:6 + vec4 n_out6p0 = texture(tex_frg_6, UV); + + +// Texture2D:8 + vec4 n_out8p0 = texture(tex_frg_8, UV); + + + vec3 n_out5p0; +// RestoreNormalMapZ:5 + { + + vec3 normal_map_texture = textureLod(BackgroundNormalMap, UV, 0.).rgb; + + n_out5p0 = normal_map_add_z_VisualShaderExtrasUtilityRestoreNormalMapZ( + normal_map_texture, + UV, + TANGENT, + BINORMAL, + NORMAL); + + } + + + float n_out9p0; +// World_Normal_Mask:9 + vec3 n_in9p1 = vec3(0.00000, 1.00000, 0.00000); + { + + n_out9p0 = world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMask( + n_out5p0, + n_in9p1, + VIEW_MATRIX); + } + + +// Mix:7 + vec3 n_out7p0 = mix(vec3(n_out6p0.xyz), vec3(n_out8p0.xyz), n_out9p0); + + +// Output:0 + ALBEDO = n_out7p0; + + +} +" +graph_offset = Vector2(-453.803, -59.7417) +nodes/fragment/4/node = SubResource("VisualShaderNodeTexture2DParameter_4lrbg") +nodes/fragment/4/position = Vector2(-640, 660) +nodes/fragment/5/node = SubResource("VisualShaderNodeCustom_qn4go") +nodes/fragment/5/position = Vector2(-280, 740) +nodes/fragment/6/node = SubResource("VisualShaderNodeTexture_6nx55") +nodes/fragment/6/position = Vector2(-200, -20) +nodes/fragment/7/node = SubResource("VisualShaderNodeMix_cwa0d") +nodes/fragment/7/position = Vector2(180, 260) +nodes/fragment/8/node = SubResource("VisualShaderNodeTexture_bnyx1") +nodes/fragment/8/position = Vector2(-480, 140) +nodes/fragment/9/node = SubResource("VisualShaderNodeCustom_8ghky") +nodes/fragment/9/position = Vector2(-400, 440) +nodes/fragment/connections = PackedInt32Array(4, 0, 5, 1, 7, 0, 0, 0, 6, 0, 7, 0, 8, 0, 7, 1, 9, 0, 7, 2, 5, 0, 9, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tscn new file mode 100644 index 0000000..fc113d5 --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mask_demo.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://d06vlyieg00iu"] + +[ext_resource type="Shader" uid="uid://dy68impnb6a0x" path="res://addons/VisualShaderExtras/dbat/demos/world_normals/wn_mask_demo.tres" id="1_nrcg1"] + +[sub_resource type="CylinderMesh" id="CylinderMesh_04dv8"] +height = 0.561 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_dp3mh"] +render_priority = 0 +shader = ExtResource("1_nrcg1") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.911159, 0.412055, 0, -0.412055, 0.911159, 0, 0, 0) +mesh = SubResource("CylinderMesh_04dv8") +surface_material_override/0 = SubResource("ShaderMaterial_dp3mh") + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.07762, 0) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo.tscn b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo.tscn new file mode 100644 index 0000000..a0760af --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=10 format=3] + +[ext_resource type="Shader" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo_vshader.tres" id="1_pxyxk"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_oek2h"] +[ext_resource type="Texture2D" uid="uid://dq1popjjfe6u8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_normal.png" id="3_oanfk"] +[ext_resource type="Texture2D" uid="uid://ccra6c4ccwuya" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_orm.png" id="4_s7kvu"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="5_gl7y4"] +[ext_resource type="Texture2D" uid="uid://bqtpccn3wemel" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_orm.png" id="6_mn6qu"] +[ext_resource type="Texture2D" uid="uid://ms6yr1tx6aq8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_normal.png" id="7_06qru"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_hfkdh"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ebavy"] +render_priority = 0 +shader = ExtResource("1_pxyxk") +shader_parameter/Offset = -0.352 +shader_parameter/Fade = 0.152 +shader_parameter/BackgroundAlbedo = ExtResource("2_oek2h") +shader_parameter/ForeGroundAlbedo = ExtResource("5_gl7y4") +shader_parameter/BackgroundNormalMap = ExtResource("3_oanfk") +shader_parameter/BackgroundORM = ExtResource("4_s7kvu") +shader_parameter/ForeGroundORM = ExtResource("6_mn6qu") +shader_parameter/ForegroundNormalMap = ExtResource("7_06qru") + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.121389, -0.147712) +mesh = SubResource("CapsuleMesh_hfkdh") +surface_material_override/0 = SubResource("ShaderMaterial_ebavy") + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.215656, 0.976469, 0, -0.976469, 0.215656, 0, -0.327638, -0.840646) +mesh = SubResource("CapsuleMesh_hfkdh") +surface_material_override/0 = SubResource("ShaderMaterial_ebavy") + +[node name="MeshInstance3D3" type="MeshInstance3D" parent="."] +transform = Transform3D(-0.237296, 0.948579, -0.209496, 0, 0.215656, 0.976469, 0.971437, 0.231712, -0.0511742, 0.719517, -0.152918, -1.15993) +mesh = SubResource("CapsuleMesh_hfkdh") +surface_material_override/0 = SubResource("ShaderMaterial_ebavy") diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo_vshader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo_vshader.tres new file mode 100644 index 0000000..02638bf --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wn_mixer_demo_vshader.tres @@ -0,0 +1,344 @@ +[gd_resource type="VisualShader" load_steps=30 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd" id="1_bkjt5"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_5m13w"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="3_3y52a"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_avdsx"] +default_input_values = [2, Vector3(0, 1, 0), 3, 0.0, 4, 0.0] +initialized = true +script = ExtResource("1_bkjt5") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_wsq0g"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_nfigh"] +parameter_name = "ForeGroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_dmu1v"] +parameter_name = "BackgroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_ywjnk"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_kaaba"] +parameter_name = "ForeGroundORM" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_01wcq"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_seenw"] +parameter_name = "BackgroundORM" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_ao2oe"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_gwat6"] +size = Vector2(799.435, 691.375) +title = "Albedos" + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_2f28t"] +parameter_name = "BackgroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_7uyoh"] +parameter_name = "ForegroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_328ma"] +source = 5 + +[sub_resource type="VisualShaderNodeColorFunc" id="VisualShaderNodeColorFunc_uj8gt"] + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_f3a5i"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_0gmxc"] + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_2o202"] +size = Vector2(1248.02, 656.815) +title = "ORM" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_55bab"] +size = Vector2(708.197, 390.703) +title = "Foreground Normal Map" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_sworv"] +size = Vector2(827.636, 854.774) +title = "World Normal Mixer Mask" + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_pyo5e"] +default_input_values = [0, 0.0, 1, 5.023] +operator = 2 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_jaa3j"] +size = Vector2(454.2, 369.4) +title = "Mix Normal Map Stuff" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_mcwss"] +size = Vector2(319.8, 241) +title = "Mix Fore and Background Albedos" + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_husir"] +source = 5 +texture = ExtResource("2_5m13w") +texture_type = 1 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_e8a6r"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_yshv2"] +parameter_name = "Offset" +default_value_enabled = true + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_7jdar"] +parameter_name = "Fade" +hint = 1 +default_value_enabled = true + +[resource] +code = "shader_type spatial; +uniform sampler2D BackgroundAlbedo : source_color, filter_linear; +uniform sampler2D ForeGroundAlbedo : source_color, filter_linear; +uniform sampler2D BackgroundNormalMap : hint_normal, filter_linear; +uniform float Offset = 0; +uniform float Fade : hint_range(0, 1) = 0; +uniform sampler2D BackgroundORM : filter_linear; +uniform sampler2D ForeGroundORM : filter_linear; +uniform sampler2D ForegroundNormalMap : hint_normal, filter_linear; + + +// World_Normal_Map_Mixer + +// Godot strips the z value from imported Normal Maps. +// It does this for two reasons: +// 1. Obtaining better compression because the z can be calculated by shader. +// Compression boosts speed of CPU to GPU transfer. +// 2. On mobile devices they do not do that calculation. They either ignore the z +// or do some other calculation, but the normal one (below) is apparently too slow +// or power-hungry for mobile devices. +// +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +vec3 normal_map_add_z_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + vec3 normal_map_texture, + vec2 inuv, + vec3 _TANGENT, + vec3 _BINORMAL, + vec3 _NORMAL) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + + // Unpack the background normal map. + vec3 bg_normal = normal_map_texture * 2.0 - 1.0; + + // Recalculate z-component of the normal map with the Pythagorean theorem. + bg_normal.z = sqrt(1.0 - bg_normal.x * bg_normal.x - bg_normal.y * bg_normal.y); + + // Apply the tangent-space normal map to the view-space normals. + vec3 normal_applied = bg_normal.x * _TANGENT + bg_normal.y * _BINORMAL + bg_normal.z * _NORMAL; + return normal_applied; +} + + +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +float world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + vec3 normal_map_texture, + vec3 vector_direction, + mat4 _VIEW_MATRIX + ) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + // Convert the world up vector into view-space with a matrix multiplication. + vec3 up_vector_viewspace = mat3(_VIEW_MATRIX) * vector_direction; + + // Compare the up vector to the surface with the normal map applied using the dot product. + float dot_product = dot(up_vector_viewspace, normal_map_texture); + + return dot_product; +} + + +float mask_blend_VisualShaderExtrasWorldNormalWorldNormalMapMixer(float offset, float fade, float mask_in) { + offset *= -1.; + + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + return smoothstep(offset - fade, offset + fade, mask_in); +} + + + +void fragment() { + vec4 n_out5p0; +// Texture2D:5 + n_out5p0 = texture(BackgroundAlbedo, UV); + + + vec4 n_out11p0; +// Texture2D:11 + n_out11p0 = texture(ForeGroundAlbedo, UV); + + +// FloatParameter:8 + float n_out8p0 = Offset; + + +// FloatParameter:9 + float n_out9p0 = Fade; + + + float n_out10p0; + vec3 n_out10p1; +// World_Normal_Map_Mixer:10 + vec3 n_in10p2 = vec3(0.00000, 1.00000, 0.00000); + { + + vec3 normal_map_texture = textureLod(BackgroundNormalMap, UV, 0.).rgb; + + vec3 normal_applied = normal_map_add_z_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + normal_map_texture, + UV, + TANGENT, + BINORMAL, + NORMAL); + float mask = world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + normal_applied, + n_in10p2, + VIEW_MATRIX); + float blended_mask = mask_blend_VisualShaderExtrasWorldNormalWorldNormalMapMixer(n_out8p0, n_out9p0, mask); + n_out10p0 = blended_mask; + n_out10p1 = normal_map_texture; + + } + + +// Mix:6 + vec3 n_out6p0 = mix(vec3(n_out5p0.xyz), vec3(n_out11p0.xyz), n_out10p0); + + + vec4 n_out18p0; +// Texture2D:18 + n_out18p0 = texture(BackgroundORM, UV); + + + vec4 n_out16p0; +// Texture2D:16 + n_out16p0 = texture(ForeGroundORM, UV); + + +// Mix:27 + vec3 n_out27p0 = mix(vec3(n_out18p0.xyz), vec3(n_out16p0.xyz), n_out10p0); + + +// VectorDecompose:28 + float n_out28p0 = n_out27p0.x; + float n_out28p1 = n_out27p0.y; + float n_out28p2 = n_out27p0.z; + + + vec4 n_out21p0; +// Texture2D:21 + n_out21p0 = texture(ForegroundNormalMap, UV); + + +// Mix:14 + vec3 n_out14p0 = mix(n_out10p1, vec3(n_out21p0.xyz), n_out10p0); + + + vec3 n_out22p0; +// ColorFunc:22 + { + vec3 c = n_out6p0; + float max1 = max(c.r, c.g); + float max2 = max(max1, c.b); + n_out22p0 = vec3(max2, max2, max2); + } + + +// FloatOp:32 + float n_in32p1 = 5.02300; + float n_out32p0 = n_out22p0.x * n_in32p1; + + +// Output:0 + ALBEDO = n_out6p0; + METALLIC = n_out28p2; + ROUGHNESS = n_out28p1; + AO = n_out28p0; + NORMAL_MAP = n_out14p0; + NORMAL_MAP_DEPTH = n_out32p0; + + +} +" +graph_offset = Vector2(-181.498, 37.5078) +nodes/fragment/0/position = Vector2(1600, 400) +nodes/fragment/2/node = SubResource("VisualShaderNodeTexture2DParameter_2f28t") +nodes/fragment/2/position = Vector2(-820, 220) +nodes/fragment/5/node = SubResource("VisualShaderNodeTexture_husir") +nodes/fragment/5/position = Vector2(240, -220) +nodes/fragment/6/node = SubResource("VisualShaderNodeMix_e8a6r") +nodes/fragment/6/position = Vector2(820, -80) +nodes/fragment/8/node = SubResource("VisualShaderNodeFloatParameter_yshv2") +nodes/fragment/8/position = Vector2(-780, 460) +nodes/fragment/9/node = SubResource("VisualShaderNodeFloatParameter_7jdar") +nodes/fragment/9/position = Vector2(-780, 680) +nodes/fragment/10/node = SubResource("VisualShaderNodeCustom_avdsx") +nodes/fragment/10/position = Vector2(-480, 460) +nodes/fragment/11/node = SubResource("VisualShaderNodeTexture_wsq0g") +nodes/fragment/11/position = Vector2(240, -400) +nodes/fragment/12/node = SubResource("VisualShaderNodeTexture2DParameter_nfigh") +nodes/fragment/12/position = Vector2(-100, -500) +nodes/fragment/13/node = SubResource("VisualShaderNodeTexture2DParameter_dmu1v") +nodes/fragment/13/position = Vector2(-120, -220) +nodes/fragment/14/node = SubResource("VisualShaderNodeMix_ywjnk") +nodes/fragment/14/position = Vector2(1000, 240) +nodes/fragment/15/node = SubResource("VisualShaderNodeTexture2DParameter_kaaba") +nodes/fragment/15/position = Vector2(280, 1020) +nodes/fragment/16/node = SubResource("VisualShaderNodeTexture_01wcq") +nodes/fragment/16/position = Vector2(600, 1020) +nodes/fragment/17/node = SubResource("VisualShaderNodeTexture2DParameter_seenw") +nodes/fragment/17/position = Vector2(280, 740) +nodes/fragment/18/node = SubResource("VisualShaderNodeTexture_ao2oe") +nodes/fragment/18/position = Vector2(600, 740) +nodes/fragment/19/node = SubResource("VisualShaderNodeComment_gwat6") +nodes/fragment/19/position = Vector2(-220, -580) +nodes/fragment/20/node = SubResource("VisualShaderNodeTexture2DParameter_7uyoh") +nodes/fragment/20/position = Vector2(220, 300) +nodes/fragment/21/node = SubResource("VisualShaderNodeTexture_328ma") +nodes/fragment/21/position = Vector2(580, 300) +nodes/fragment/22/node = SubResource("VisualShaderNodeColorFunc_uj8gt") +nodes/fragment/22/position = Vector2(1000, 400) +nodes/fragment/27/node = SubResource("VisualShaderNodeMix_f3a5i") +nodes/fragment/27/position = Vector2(960, 860) +nodes/fragment/28/node = SubResource("VisualShaderNodeVectorDecompose_0gmxc") +nodes/fragment/28/position = Vector2(1140, 860) +nodes/fragment/29/node = SubResource("VisualShaderNodeComment_2o202") +nodes/fragment/29/position = Vector2(180, 680) +nodes/fragment/30/node = SubResource("VisualShaderNodeComment_55bab") +nodes/fragment/30/position = Vector2(140, 220) +nodes/fragment/31/node = SubResource("VisualShaderNodeComment_sworv") +nodes/fragment/31/position = Vector2(-880, 140) +nodes/fragment/32/node = SubResource("VisualShaderNodeFloatOp_pyo5e") +nodes/fragment/32/position = Vector2(1160, 400) +nodes/fragment/33/node = SubResource("VisualShaderNodeComment_jaa3j") +nodes/fragment/33/position = Vector2(880, 180) +nodes/fragment/34/node = SubResource("VisualShaderNodeComment_mcwss") +nodes/fragment/34/position = Vector2(720, -140) +nodes/fragment/connections = PackedInt32Array(2, 0, 10, 1, 8, 0, 10, 3, 9, 0, 10, 4, 10, 0, 6, 2, 6, 0, 0, 0, 12, 0, 11, 2, 13, 0, 5, 2, 11, 0, 6, 1, 5, 0, 6, 0, 15, 0, 16, 2, 17, 0, 18, 2, 20, 0, 21, 2, 14, 0, 0, 9, 10, 0, 14, 2, 21, 0, 14, 1, 10, 1, 14, 0, 6, 0, 22, 0, 10, 0, 27, 2, 16, 0, 27, 1, 18, 0, 27, 0, 27, 0, 28, 0, 28, 0, 0, 6, 28, 1, 0, 3, 28, 2, 0, 2, 22, 0, 32, 0, 32, 0, 0, 10) diff --git a/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wnstest_vshader.tres b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wnstest_vshader.tres new file mode 100644 index 0000000..992d47b --- /dev/null +++ b/addons/VisualShaderExtras/AddonAssets/dbat_demos/world_normals/wnstest_vshader.tres @@ -0,0 +1,343 @@ +[gd_resource type="VisualShader" load_steps=30 format=3] + +[ext_resource type="Script" path="res://addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd" id="1_bkjt5"] +[ext_resource type="Texture2D" uid="uid://dq3jk3ga3vpy8" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/rock_orm_albedo.png" id="2_5m13w"] +[ext_resource type="Texture2D" uid="uid://dhfswrmammtnt" path="res://addons/VisualShaderExtras/AddonAssets/dbat_demos/resources/textures/moss_orm_albedo.png" id="3_3y52a"] + +[sub_resource type="VisualShaderNodeCustom" id="VisualShaderNodeCustom_avdsx"] +default_input_values = [2, Vector3(0, 1, 0), 3, 0.0, 4, 0.0] +initialized = true +script = ExtResource("1_bkjt5") + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_wsq0g"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_nfigh"] +parameter_name = "ForeGroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_dmu1v"] +parameter_name = "BackgroundAlbedo" +texture_type = 1 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_ywjnk"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_kaaba"] +parameter_name = "ForeGroundORM" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_01wcq"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_seenw"] +parameter_name = "BackgroundORM" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_ao2oe"] +source = 5 +texture = ExtResource("3_3y52a") +texture_type = 1 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_gwat6"] +size = Vector2(799.435, 691.375) +title = "Albedos" + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_2f28t"] +parameter_name = "BackgroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_7uyoh"] +parameter_name = "ForegroundNormalMap" +texture_type = 2 +texture_filter = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_328ma"] +source = 5 + +[sub_resource type="VisualShaderNodeColorFunc" id="VisualShaderNodeColorFunc_uj8gt"] + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_f3a5i"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_0gmxc"] + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_2o202"] +size = Vector2(1248.02, 656.815) +title = "ORM" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_55bab"] +size = Vector2(708.197, 390.703) +title = "Foreground Normal Map" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_sworv"] +size = Vector2(827.636, 854.774) +title = "World Normal Mixer Mask" + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_pyo5e"] +default_input_values = [0, 0.0, 1, 5.023] +operator = 2 + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_jaa3j"] +size = Vector2(454.2, 369.4) +title = "Mix Normal Map Stuff" + +[sub_resource type="VisualShaderNodeComment" id="VisualShaderNodeComment_mcwss"] +size = Vector2(319.8, 241) +title = "Mix Fore and Background Albedos" + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_husir"] +source = 5 +texture = ExtResource("2_5m13w") +texture_type = 1 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_e8a6r"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, 0.5] +op_type = 4 + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_yshv2"] +parameter_name = "Offset" +default_value_enabled = true + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_7jdar"] +parameter_name = "Fade" +hint = 1 +default_value_enabled = true + +[resource] +code = "shader_type spatial; +uniform sampler2D BackgroundAlbedo : source_color, filter_linear; +uniform sampler2D ForeGroundAlbedo : source_color, filter_linear; +uniform sampler2D BackgroundNormalMap : hint_normal, filter_linear; +uniform float Offset = 0; +uniform float Fade : hint_range(0, 1) = 0; +uniform sampler2D BackgroundORM : filter_linear; +uniform sampler2D ForeGroundORM : filter_linear; +uniform sampler2D ForegroundNormalMap : hint_normal, filter_linear; + + +// World_Normal_Map_Mixer + +// Godot strips the z value from imported Normal Maps. +// It does this for two reasons: +// 1. Obtaining better compression because the z can be calculated by shader. +// Compression boosts speed of CPU to GPU transfer. +// 2. On mobile devices they do not do that calculation. They either ignore the z +// or do some other calculation, but the normal one (below) is apparently too slow +// or power-hungry for mobile devices. +// +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +vec3 normal_map_add_z_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + vec3 normal_map_texture, + vec2 inuv, + vec3 _TANGENT, + vec3 _BINORMAL, + vec3 _NORMAL) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + + // Unpack the background normal map. + vec3 bg_normal = normal_map_texture * 2.0 - 1.0; + + // Recalculate z-component of the normal map with the Pythagorean theorem. + bg_normal.z = sqrt(1.0 - bg_normal.x * bg_normal.x - bg_normal.y * bg_normal.y); + + // Apply the tangent-space normal map to the view-space normals. + vec3 normal_applied = bg_normal.x * _TANGENT + bg_normal.y * _BINORMAL + bg_normal.z * _NORMAL; + return normal_applied; +} + + +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +float world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + vec3 normal_map_texture, + vec3 vector_direction, + mat4 _VIEW_MATRIX + ) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + // Convert the world up vector into view-space with a matrix multiplication. + vec3 up_vector_viewspace = mat3(_VIEW_MATRIX) * vector_direction; + + // Compare the up vector to the surface with the normal map applied using the dot product. + float dot_product = dot(up_vector_viewspace, normal_map_texture); + + return dot_product; +} + + +float mask_blend_VisualShaderExtrasWorldNormalWorldNormalMapMixer(float offset, float fade, float mask_in) { + offset *= -1.; + + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + return smoothstep(offset - fade, offset + fade, mask_in); +} + + + +void fragment() { + vec4 n_out5p0; +// Texture2D:5 + n_out5p0 = texture(BackgroundAlbedo, UV); + + + vec4 n_out11p0; +// Texture2D:11 + n_out11p0 = texture(ForeGroundAlbedo, UV); + + +// FloatParameter:8 + float n_out8p0 = Offset; + + +// FloatParameter:9 + float n_out9p0 = Fade; + + + float n_out10p0; + vec3 n_out10p1; +// World_Normal_Map_Mixer:10 + vec3 n_in10p2 = vec3(0.00000, 1.00000, 0.00000); + { + + vec3 normal_map_texture = textureLod(BackgroundNormalMap, UV, 0.).rgb; + + vec3 normal_applied = normal_map_add_z_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + normal_map_texture, + UV, + TANGENT, + BINORMAL, + NORMAL); + float mask = world_normal_mask_VisualShaderExtrasWorldNormalWorldNormalMapMixer( + normal_applied, + n_in10p2, + VIEW_MATRIX); + float blended_mask = mask_blend_VisualShaderExtrasWorldNormalWorldNormalMapMixer(n_out8p0, n_out9p0, mask); + n_out10p0 = blended_mask; + n_out10p1 = normal_map_texture; + + } + + +// Mix:6 + vec3 n_out6p0 = mix(vec3(n_out5p0.xyz), vec3(n_out11p0.xyz), n_out10p0); + + + vec4 n_out18p0; +// Texture2D:18 + n_out18p0 = texture(BackgroundORM, UV); + + + vec4 n_out16p0; +// Texture2D:16 + n_out16p0 = texture(ForeGroundORM, UV); + + +// Mix:27 + vec3 n_out27p0 = mix(vec3(n_out18p0.xyz), vec3(n_out16p0.xyz), n_out10p0); + + +// VectorDecompose:28 + float n_out28p0 = n_out27p0.x; + float n_out28p1 = n_out27p0.y; + float n_out28p2 = n_out27p0.z; + + + vec4 n_out21p0; +// Texture2D:21 + n_out21p0 = texture(ForegroundNormalMap, UV); + + +// Mix:14 + vec3 n_out14p0 = mix(n_out10p1, vec3(n_out21p0.xyz), n_out10p0); + + + vec3 n_out22p0; +// ColorFunc:22 + { + vec3 c = n_out6p0; + float max1 = max(c.r, c.g); + float max2 = max(max1, c.b); + n_out22p0 = vec3(max2, max2, max2); + } + + +// FloatOp:32 + float n_in32p1 = 5.02300; + float n_out32p0 = n_out22p0.x * n_in32p1; + + +// Output:0 + ALBEDO = n_out6p0; + METALLIC = n_out28p2; + ROUGHNESS = n_out28p1; + AO = n_out28p0; + NORMAL_MAP = n_out14p0; + NORMAL_MAP_DEPTH = n_out32p0; + + +} +" +nodes/fragment/0/position = Vector2(1600, 400) +nodes/fragment/2/node = SubResource("VisualShaderNodeTexture2DParameter_2f28t") +nodes/fragment/2/position = Vector2(-820, 220) +nodes/fragment/5/node = SubResource("VisualShaderNodeTexture_husir") +nodes/fragment/5/position = Vector2(240, -220) +nodes/fragment/6/node = SubResource("VisualShaderNodeMix_e8a6r") +nodes/fragment/6/position = Vector2(820, -80) +nodes/fragment/8/node = SubResource("VisualShaderNodeFloatParameter_yshv2") +nodes/fragment/8/position = Vector2(-780, 460) +nodes/fragment/9/node = SubResource("VisualShaderNodeFloatParameter_7jdar") +nodes/fragment/9/position = Vector2(-780, 680) +nodes/fragment/10/node = SubResource("VisualShaderNodeCustom_avdsx") +nodes/fragment/10/position = Vector2(-480, 460) +nodes/fragment/11/node = SubResource("VisualShaderNodeTexture_wsq0g") +nodes/fragment/11/position = Vector2(240, -400) +nodes/fragment/12/node = SubResource("VisualShaderNodeTexture2DParameter_nfigh") +nodes/fragment/12/position = Vector2(-100, -500) +nodes/fragment/13/node = SubResource("VisualShaderNodeTexture2DParameter_dmu1v") +nodes/fragment/13/position = Vector2(-120, -220) +nodes/fragment/14/node = SubResource("VisualShaderNodeMix_ywjnk") +nodes/fragment/14/position = Vector2(1000, 240) +nodes/fragment/15/node = SubResource("VisualShaderNodeTexture2DParameter_kaaba") +nodes/fragment/15/position = Vector2(280, 1020) +nodes/fragment/16/node = SubResource("VisualShaderNodeTexture_01wcq") +nodes/fragment/16/position = Vector2(600, 1020) +nodes/fragment/17/node = SubResource("VisualShaderNodeTexture2DParameter_seenw") +nodes/fragment/17/position = Vector2(280, 740) +nodes/fragment/18/node = SubResource("VisualShaderNodeTexture_ao2oe") +nodes/fragment/18/position = Vector2(600, 740) +nodes/fragment/19/node = SubResource("VisualShaderNodeComment_gwat6") +nodes/fragment/19/position = Vector2(-220, -580) +nodes/fragment/20/node = SubResource("VisualShaderNodeTexture2DParameter_7uyoh") +nodes/fragment/20/position = Vector2(220, 300) +nodes/fragment/21/node = SubResource("VisualShaderNodeTexture_328ma") +nodes/fragment/21/position = Vector2(580, 300) +nodes/fragment/22/node = SubResource("VisualShaderNodeColorFunc_uj8gt") +nodes/fragment/22/position = Vector2(1000, 400) +nodes/fragment/27/node = SubResource("VisualShaderNodeMix_f3a5i") +nodes/fragment/27/position = Vector2(960, 860) +nodes/fragment/28/node = SubResource("VisualShaderNodeVectorDecompose_0gmxc") +nodes/fragment/28/position = Vector2(1140, 860) +nodes/fragment/29/node = SubResource("VisualShaderNodeComment_2o202") +nodes/fragment/29/position = Vector2(180, 680) +nodes/fragment/30/node = SubResource("VisualShaderNodeComment_55bab") +nodes/fragment/30/position = Vector2(140, 220) +nodes/fragment/31/node = SubResource("VisualShaderNodeComment_sworv") +nodes/fragment/31/position = Vector2(-880, 140) +nodes/fragment/32/node = SubResource("VisualShaderNodeFloatOp_pyo5e") +nodes/fragment/32/position = Vector2(1160, 400) +nodes/fragment/33/node = SubResource("VisualShaderNodeComment_jaa3j") +nodes/fragment/33/position = Vector2(880, 180) +nodes/fragment/34/node = SubResource("VisualShaderNodeComment_mcwss") +nodes/fragment/34/position = Vector2(720, -140) +nodes/fragment/connections = PackedInt32Array(2, 0, 10, 1, 8, 0, 10, 3, 9, 0, 10, 4, 10, 0, 6, 2, 6, 0, 0, 0, 12, 0, 11, 2, 13, 0, 5, 2, 11, 0, 6, 1, 5, 0, 6, 0, 15, 0, 16, 2, 17, 0, 18, 2, 20, 0, 21, 2, 14, 0, 0, 9, 10, 0, 14, 2, 21, 0, 14, 1, 10, 1, 14, 0, 6, 0, 22, 0, 10, 0, 27, 2, 16, 0, 27, 1, 18, 0, 27, 0, 27, 0, 28, 0, 28, 0, 0, 6, 28, 1, 0, 3, 28, 2, 0, 2, 22, 0, 32, 0, 32, 0, 0, 10) diff --git a/addons/VisualShaderExtras/AddonAssets/examples.tscn b/addons/VisualShaderExtras/AddonAssets/examples.tscn index 6cf4756..768575a 100644 --- a/addons/VisualShaderExtras/AddonAssets/examples.tscn +++ b/addons/VisualShaderExtras/AddonAssets/examples.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=176 format=3 uid="uid://cn7nb6ac3skd6"] +[gd_scene load_steps=176 format=3] [ext_resource type="Texture2D" uid="uid://dkwktkcfupn2y" path="res://addons/VisualShaderExtras/AddonAssets/icon.svg" id="1_cgkaa"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/BlendModes/GammaIllumination.gd" id="2_jf1ub"] @@ -12,8 +12,8 @@ [ext_resource type="Script" path="res://addons/VisualShaderExtras/BlendModes/Exclusion.gd" id="11_q4an4"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/BlendModes/GammaDark.gd" id="12_q0t3q"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/BlendModes/HardMix.gd" id="13_7mfkw"] -[ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Box.gd" id="14_jc8jc"] -[ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Circle.gd" id="15_ge12c"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/_removed/Box.gd" id="14_jc8jc"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/_removed/Circle.gd" id="15_ge12c"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Parallelogram.gd" id="16_lficu"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/PreciseBox.gd" id="17_4su7r"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Shapes/Rhombus.gd" id="17_kodn2"] @@ -24,7 +24,7 @@ [ext_resource type="Texture2D" uid="uid://bn8avh1dk262a" path="res://addons/VisualShaderExtras/AddonAssets/DinoSprites - vita.png" id="23_7eq8w"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Wave/TriangleWave.gd" id="24_b72mw"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/UVFlipbook.gd" id="24_peh0q"] -[ext_resource type="Script" path="res://addons/VisualShaderExtras/UV/UVTiler.gd" id="24_xmnb7"] +[ext_resource type="Script" path="res://addons/VisualShaderExtras/dbat/dev/_scraps/UVTiler.gd" id="24_xmnb7"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Wave/SquareWave.gd" id="25_srj7y"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Wave/SawtoothWave.gd" id="26_777un"] [ext_resource type="Script" path="res://addons/VisualShaderExtras/Wave/SineWave.gd" id="27_5a8eg"] diff --git a/addons/VisualShaderExtras/Filters/LodBlur.gd b/addons/VisualShaderExtras/Filters/LodBlur.gd new file mode 100644 index 0000000..fa269b4 --- /dev/null +++ b/addons/VisualShaderExtras/Filters/LodBlur.gd @@ -0,0 +1,78 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeLodBlur + +func _get_name(): + return "LoDBlur" + +func _get_category(): + return "VisualShaderExtras/Filters" + +func _get_description(): + return "Blurs using the LOD mipmaps of this texture.\nNB: Be sure to try different Sampler Filters.\nBlurs textures added via a Texture2DParameter Node." + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int) -> String: + return "Output" + +func _init() -> void: + set_input_port_default_value(2, 0.0) + +func _get_input_port_count(): + return 3 + +func _get_input_port_name(port): + match port: + 0: return "UV" + 1: return "Texture Sampler" + 2: return "Blur Amount" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SAMPLER + 2: return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_code(input_vars, output_vars, mode, type): + var inuv = "UV" + if input_vars[0]: + inuv = input_vars[0] + + return """ + //When the sampler is set to Linear Mipmap it works best. + //The Bias will cause blurring. + vec4 color = textureLod({sampler}, {inuv}, {bias}); + {outcol} = color.rgb; + """.format( + { + "inuv": inuv, + "sampler": input_vars[1], + "bias" : input_vars[2], + "outcol" : output_vars[0] + }) diff --git a/addons/VisualShaderExtras/Shapes/Box.gd b/addons/VisualShaderExtras/Shapes/Box.gd index 8b0ce23..b4bbe6c 100644 --- a/addons/VisualShaderExtras/Shapes/Box.gd +++ b/addons/VisualShaderExtras/Shapes/Box.gd @@ -18,67 +18,89 @@ @tool extends VisualShaderNodeCustom -class_name VisualShaderNodeBox +class_name VisualShaderNodeBoxV2 func _init(): set_input_port_default_value(1, Vector2(0.5, 0.5)) set_input_port_default_value(2, Vector2(0.25, 0.25)) + set_input_port_default_value(3, 0.)#smoothness func _get_name(): - return "Box" + return "Box2" func _get_category(): return "VisualShaderExtras/Shapes" func _get_description(): - return "Signed Distance Box Shape3D" + return "Signed Distance Box Shape3D with smoothing." +func _get_version(): + return "2" + func _get_return_icon_type(): return VisualShaderNode.PORT_TYPE_SCALAR func _get_input_port_count(): - return 3 + return 4 func _get_input_port_name(port): match port: - 0: - return "UV" - 1: - return "Position" - 2: - return "Proportions" - + 0: return "UV" + 1: return "Position" + 2: return "Proportions" + 3: return "Smoothness" + func _get_input_port_type(port): match port: - 0: - return VisualShaderNode.PORT_TYPE_VECTOR_2D - 1: - return VisualShaderNode.PORT_TYPE_VECTOR_2D - 2: - return VisualShaderNode.PORT_TYPE_VECTOR_2D + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 2: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 3: return VisualShaderNode.PORT_TYPE_SCALAR #smoothness func _get_output_port_count(): return 1 func _get_output_port_name(port): - return "" + return "Mask" func _get_output_port_type(port): return VisualShaderNode.PORT_TYPE_SCALAR func _get_global_code(mode): return """ - float sdBox( in vec2 __position, in vec2 __proportions ) - { - vec2 __d = abs(__position) - __proportions; - return length(max(__d, 0.0)) + min(max(__d.x, __d.y), 0.0); - } - """ +//Original +//float sdBox( in vec2 __position, in vec2 __proportions ) +//{ +// vec2 __d = abs(__position) - __proportions; +// return length(max(__d, 0.0)) + min(max(__d.x, __d.y), 0.0); +//} +//Alteration +float sdBox(vec2 _pos, vec2 __proportions, float _feather) { + vec2 d = abs(_pos) - __proportions; + float outside = length(max(d, 0.)); + float inside = min(max(d.x, d.y), 0.); + float both = outside + inside; + + //float f = outside - _feather; //makes a kind of outline + + // ok! smoothness is v sensitive tho. + // when f is 0 the edge is sharp + float f = _feather; + + return smoothstep(outside, inside, f); +} +""" func _get_code(input_vars, output_vars, mode, type): var uv = "UV" - if input_vars[0]: uv = input_vars[0] + return "{out} = sdBox({uv}-{pos}, {proportions}, {smoothness});" \ + .format({ + "uv": uv, + "pos": input_vars[1], + "proportions": input_vars[2], + "smoothness": input_vars[3], + "out" : output_vars[0] + }) - return "%s = sdBox(%s.xy - %s.xy, %s.xy);" % [output_vars[0], uv, input_vars[1], input_vars[2]] diff --git a/addons/VisualShaderExtras/Shapes/Circle.gd b/addons/VisualShaderExtras/Shapes/Circle.gd index 6352b35..23a7887 100644 --- a/addons/VisualShaderExtras/Shapes/Circle.gd +++ b/addons/VisualShaderExtras/Shapes/Circle.gd @@ -1,5 +1,6 @@ # The MIT License # Copyright © 2022 Inigo Quilez +# Copyright © 2022 Donn Ingle (on shoulders of giants) # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation @@ -18,65 +19,77 @@ @tool extends VisualShaderNodeCustom -class_name VisualShaderNodeCircle +class_name VisualShaderNodeCircleV2 func _init(): - set_input_port_default_value(1, Vector2(0.5, 0.5)) - set_input_port_default_value(2, 0.25) + set_input_port_default_value(1, Vector2(0.5, 0.5))#pos + set_input_port_default_value(2, 0.25) #radius + set_input_port_default_value(3, 0.25) #smoothness func _get_name(): - return "Circle" + return "Circle2" func _get_category(): return "VisualShaderExtras/Shapes" func _get_description(): - return "Signed Distance Circle Shape3D" + return "Signed Distance Circle Shape3D with smoothing." +func _get_version(): + return "2" + func _get_return_icon_type(): return VisualShaderNode.PORT_TYPE_SCALAR func _get_input_port_count(): - return 3 + return 4 func _get_input_port_name(port): match port: - 0: - return "UV" - 1: - return "Position" - 2: - return "Radius" + 0: return "UV" + 1: return "Position" + 2: return "Radius" + 3: return "Smoothness" func _get_input_port_type(port): match port: - 0: - return VisualShaderNode.PORT_TYPE_VECTOR_2D - 1: - return VisualShaderNode.PORT_TYPE_VECTOR_2D - 2: - return VisualShaderNode.PORT_TYPE_SCALAR + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 2: return VisualShaderNode.PORT_TYPE_SCALAR + 3: return VisualShaderNode.PORT_TYPE_SCALAR func _get_output_port_count(): return 1 func _get_output_port_name(port): - return "" + return "Mask" func _get_output_port_type(port): return VisualShaderNode.PORT_TYPE_SCALAR func _get_global_code(mode): return """ - float sdCircle(vec2 pos, float r) { - return length(pos) - r; - } - """ +//Original code +//float sdCircle(vec2 pos, float r) { +// return step(length(pos) - r, pos).x; +//} + +//New hack - faster than using length func +float circle(vec2 position, float radius, float smoothness) +{ + return smoothstep(radius, radius + smoothness, dot(position, position) * 6.0); +} +""" func _get_code(input_vars, output_vars, mode, type): var uv = "UV" - if input_vars[0]: uv = input_vars[0] - - return "%s = sdCircle(%s.xy - %s.xy, %s);" % [output_vars[0], uv, input_vars[1], input_vars[2]] + return "{out} = circle({uv} - {pos}, {radius}, {smoothness});" \ + .format({ + "uv": uv, + "pos": input_vars[1], + "radius": input_vars[2], + "smoothness": input_vars[3], + "out" : output_vars[0] + }) diff --git a/addons/VisualShaderExtras/UV/ParallaxMapping.gd b/addons/VisualShaderExtras/UV/ParallaxMapping.gd new file mode 100644 index 0000000..93907a7 --- /dev/null +++ b/addons/VisualShaderExtras/UV/ParallaxMapping.gd @@ -0,0 +1,135 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeParallaxMapping + +func _get_name(): + return "ParallaxMapping" + +func _get_category(): + return "VisualShaderExtras/UV" + +func _get_description(): + return """Creates dramatic depth illusion from a height map. Same as the Height options in the Spatial shader, but available as a node.""" + +func _is_available(mode, type): + return mode == VisualShader.MODE_SPATIAL + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_2D + +func _get_output_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_count(): + return 2 + +func _get_output_port_name(port: int): + match port: + 0: return "UV" + 1: return "Depth" + +func _init() -> void: + set_input_port_default_value(2, 5.0) + set_input_port_default_value(3, 8) + set_input_port_default_value(4, 32) + set_input_port_default_value(5, Vector2(1,1)) + +func _get_input_port_count(): + return 6 + +func _get_input_port_name(port): + match port: + 0: return "UV" + 1: return "Height Sampler" + 2: return "Height Scale" + 3: return "Min Layers" + 4: return "Max Layers" + 5: return "Flip" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SAMPLER + 2: return VisualShaderNode.PORT_TYPE_SCALAR + 3: return VisualShaderNode.PORT_TYPE_SCALAR_INT + 4: return VisualShaderNode.PORT_TYPE_SCALAR_INT + 5: return VisualShaderNode.PORT_TYPE_VECTOR_2D + +## return all the functions (in the ShaderLib Dict) that you want +## to use. +#func _get_global_func_names()->Array: +# return ["world_normal_mask"] + +#func _get_global_code(mode): +# return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var uv = input_vars[0] if input_vars[0] else "UV" + var code = """ +// Code taken from Godot's Spatial Shader +float heightmap_scale = {heightmap_scale}; +int heightmap_min_layers = {heightmap_min_layers}; +int heightmap_max_layers = {heightmap_max_layers}; +vec2 heightmap_flip = {heightmap_flip}; +vec2 base_uv = {uv}; +{ + + vec3 view_dir = normalize(normalize(-VERTEX)*mat3(TANGENT*heightmap_flip.x,-BINORMAL*heightmap_flip.y,NORMAL)); + float num_layers = mix(float(heightmap_max_layers),float(heightmap_min_layers), abs(dot(vec3(0.0, 0.0, 1.0), view_dir))); + float layer_depth = 1.0 / num_layers; + float current_layer_depth = 0.0; + vec2 P = view_dir.xy * heightmap_scale * 0.01; + vec2 delta = P / num_layers; + vec2 ofs = base_uv; + float depth = 1.0 - texture({texture_heightmap}, ofs).r; + float current_depth = 0.0; + while(current_depth < depth) { + ofs -= delta; + depth = 1.0 - texture({texture_heightmap}, ofs).r; + current_depth += layer_depth; + } + vec2 prev_ofs = ofs + delta; + float after_depth = depth - current_depth; + float before_depth = ( 1.0 - texture({texture_heightmap}, prev_ofs).r ) - current_depth + layer_depth; + float weight = after_depth / (after_depth - before_depth); + ofs = mix(ofs,prev_ofs,weight); + + {uvout} = ofs; + {depth} = layer_depth; +} +""".format( + { + "uv": uv, + "texture_heightmap" : input_vars[1], + "heightmap_scale" : input_vars[2], + "heightmap_min_layers" : input_vars[3], + "heightmap_max_layers" : input_vars[4], + "heightmap_flip" : input_vars[5], + "uvout" : output_vars[0], + "depth": output_vars[1] + }) + return code diff --git a/addons/VisualShaderExtras/UV/UVRotate.gd b/addons/VisualShaderExtras/UV/UVRotate.gd new file mode 100644 index 0000000..731416b --- /dev/null +++ b/addons/VisualShaderExtras/UV/UVRotate.gd @@ -0,0 +1,83 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@tool +extends VisualShaderNodeCustom +class_name NodeUVRotateV2 + +func _get_name(): + return "UVRotateV2" + +func _get_category(): + return "VisualShaderExtras/UV" + +func _get_description(): + return "Rotates UV coordinates around a pivot point." + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_2D + +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_VECTOR_2D + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int) -> String: + return "UV" + +func _init() -> void: + set_input_port_default_value(1, Vector2(0., 0.)) #pivot + set_input_port_default_value(2, 0.0) #rot + +func _get_input_port_count(): + return 3 + +func _get_input_port_name(port): + match port: + 0: return "UV" + 1: return "Pivot" + 2: return "Rotation (Radians)" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D #UV + 1: return VisualShaderNode.PORT_TYPE_VECTOR_2D #pivot + 2: return VisualShaderNode.PORT_TYPE_SCALAR #radians + +func _get_global_func_names()->Array: + return ["vec2_rotate"] + +func _get_global_code(mode)->String: + return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var uv = input_vars[0] if input_vars[0] else "UV" + var code : String = """ + vec2 rotated_uv = {uv}; + rotated_uv = vec2_rotate({uv}, {rand_rotation}, {pivot}); + {out_uv} = rotated_uv; + """.format( + { + "uv": uv, + "pivot": input_vars[1], + "rand_rotation": input_vars[2], + "out_uv": output_vars[0] + }) + return ShaderLib.rename_functions(self, code) + diff --git a/addons/VisualShaderExtras/UV/UVTiler.gd b/addons/VisualShaderExtras/UV/UVTiler.gd index 974b6fd..1aaee2b 100644 --- a/addons/VisualShaderExtras/UV/UVTiler.gd +++ b/addons/VisualShaderExtras/UV/UVTiler.gd @@ -1,5 +1,6 @@ # The MIT License # Copyright © 2022 Inigo Quilez +# Copyright © 2022 Donn Ingle (on shoulders of giants) # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation @@ -18,85 +19,110 @@ # With assist from https://thebookofshaders.com/09/ +# Portions taken from the work of Arnklit under CC0 Licence: +# https://github.com/Arnklit/TutorialResources/blob/main/LICENSE +# Creative Commons Legal Code +# +# CC0 1.0 Universal +# +# CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE +# LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN +# ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS +# INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES +# REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS +# PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM +# THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED +# HEREUNDER. + +## ISSUES +## 1. There's often one tile that will not rotate randomly. Search me! +## 2. The brick-shifting and the random rotation do not play well together. Help! +## 3. Should this take-in a UV? And how would that work? + @tool extends VisualShaderNodeCustom -class_name VisualShaderNodeTiler +class_name NodeUVTilerV3 func _get_name(): return "UVTiler" -func _init() -> void: - set_input_port_default_value(0, Vector2(2, 2)) - set_input_port_default_value(1, 4.0) - set_input_port_default_value(2, 0.0) - func _get_category(): return "VisualShaderExtras/UV" func _get_description(): - return "Tile a given UV into the given UV tiles and rotate them" + return "Tiles the UV, rotates and brick-shifts it." func _get_return_icon_type(): - return VisualShaderNode.PORT_TYPE_VECTOR_4D + return VisualShaderNode.PORT_TYPE_VECTOR_2D +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_VECTOR_2D + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int) -> String: + return "UV" + +func _init() -> void: + set_input_port_default_value(0, Vector2(2, 2)) + set_input_port_default_value(1, 0.0) #rot + set_input_port_default_value(2, 0.0) #randomize + set_input_port_default_value(3, 0.5) #shift + func _get_input_port_count(): - return 3 + return 4 func _get_input_port_name(port): match port: - 0: - return "Tiling" - 1: - return "Split" - 2: - return "Rotation (Radians)" + 0: return "Tiling (Down, Across)" + 1: return "Rotation (Radians)" + 2: return "Randomize rotation" + 3: return "Brick Shift" func _get_input_port_type(port): match port: - 0: - return VisualShaderNode.PORT_TYPE_VECTOR_2D - 1: - return VisualShaderNode.PORT_TYPE_SCALAR - 2: - return VisualShaderNode.PORT_TYPE_SCALAR - -func _get_output_port_count(): - return 1 - -func _get_output_port_name(port: int) -> String: - return "UV" - -func _get_output_port_type(port): - return VisualShaderNode.PORT_TYPE_VECTOR_2D + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D #tile y, x + 1: return VisualShaderNode.PORT_TYPE_SCALAR #radians + 2: return VisualShaderNode.PORT_TYPE_SCALAR #float + 3: return VisualShaderNode.PORT_TYPE_SCALAR #float for bricks +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["vec2_rotate","brick_tile","random_float"] + func _get_global_code(mode): - return """ - vec2 tile(vec2 _uv, float _zoom){ - _uv *= _zoom; - return fract(_uv); - } - - vec2 rotate(vec2 _uv, float _angle) { - _uv -= 0.5; - _uv = mat2( vec2(cos(_angle), -sin(_angle)), vec2(sin(_angle), cos(_angle)) ) * _uv; - _uv += 0.5; - return _uv; - } - """ + return ShaderLib.prep_global_code(self) func _get_code(input_vars, output_vars, mode, type): - var rot:String - rot = "st = rotate(st, %s);" % input_vars[2] if input_vars[2] != "" else "" - - return """ - vec2 st = UV.xy/{in_tilexy}.xy; - st = tile(st,{split}); - {rot} + + var code = """ + //Much simpler to calculate zoom from the tiling vec2 + float zoom = ({in_tilexy}.x * {in_tilexy}.y); + + vec2 st = UV/{in_tilexy}; + st *= zoom; //Scale coordinate system by zoom + + vec2 unique_val = floor( st ); //get the integer coordinates + + //Something about this calc is the problem with the brick shift when + //rr is > 0 + float rand_rotation = (( random_float(unique_val) * 2.0) - 1.0) * {rr}; + + //Just add whatever static rotation may be input and clamp: + rand_rotation = clamp(rand_rotation + {rot}, 0.0, 2.*PI); + + st = brick_tile(st, zoom, {shift}); + st = vec2_rotate(st, rand_rotation, vec2(0.5)); + {out_uv} = st; """.format( { "in_tilexy":input_vars[0], - "split": input_vars[1], - "out_uv": output_vars[0], - "rot": rot + "rot": input_vars[1], + "rr": input_vars[2], + "shift": input_vars[3], + "out_uv": output_vars[0] }) + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/Usability/Compare.gd b/addons/VisualShaderExtras/Usability/ColorMask.gd similarity index 65% rename from addons/VisualShaderExtras/Usability/Compare.gd rename to addons/VisualShaderExtras/Usability/ColorMask.gd index f94cd09..658905a 100644 --- a/addons/VisualShaderExtras/Usability/Compare.gd +++ b/addons/VisualShaderExtras/Usability/ColorMask.gd @@ -20,57 +20,55 @@ @tool extends VisualShaderNodeCustom -class_name VisualShaderNodeCustomCompare +class_name VisualShaderNodeCustomColorMask +func _init(): + set_input_port_default_value(2, 1.0)#blend amount + func _get_name(): - return "Compare" - -func _init() -> void: - pass#set_input_port_default_value(2, 0.5) - + return "ColorMask" + func _get_category(): return "VisualShaderExtras/Usability" func _get_description(): - return "Compare Color inputs and output a mask for the second input" + return "Compare Color inputs, and outputs a mask for the second input.\nAdded a Blend Amount to make the mask easier to control." func _get_return_icon_type(): return VisualShaderNode.PORT_TYPE_SCALAR +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int): + return "Output" + func _get_input_port_count(): - return 2 + return 3 func _get_input_port_name(port): match port: - 0: - return "Color 1" - 1: - return "Color 2" + 0: return "Input" + 1: return "Mask Input" + 2: return "Blend Amount" func _get_input_port_type(port): match port: - 0: - return VisualShaderNode.PORT_TYPE_VECTOR_4D - 1: - return VisualShaderNode.PORT_TYPE_VECTOR_4D - -func _get_output_port_count(): - return 1 - -func _get_output_port_name(port: int) -> String: - return "Mask" - -func _get_output_port_type(port): - return VisualShaderNode.PORT_TYPE_SCALAR #float + 0: return VisualShaderNode.PORT_TYPE_VECTOR_4D + 1: return VisualShaderNode.PORT_TYPE_VECTOR_4D + 2: return VisualShaderNode.PORT_TYPE_SCALAR +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["compare"] + func _get_global_code(mode): - ## Code from MaterialMaker, care of Rodzilla - return """ - float compare(vec4 in1, vec4 in2) - { - return dot(abs(in1-in2), vec4(1.0)); - } - """ + return ShaderLib.prep_global_code(self) func _get_code(input_vars, output_vars, mode, type): - return "%s = compare(%s,%s);" % [output_vars[0],input_vars[0],input_vars[1]] + var code = "%s = compare(%s,%s,%s);" % [output_vars[0],input_vars[0],input_vars[1],input_vars[2]] + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/Usability/Reroute.gd b/addons/VisualShaderExtras/Usability/Reroute.gd new file mode 100644 index 0000000..af3fa70 --- /dev/null +++ b/addons/VisualShaderExtras/Usability/Reroute.gd @@ -0,0 +1,55 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeReroute + +func _get_name(): + return "Route" + +func _get_category(): + return "VisualShaderExtras/Usability" + +func _get_description(): + return "Re-route any number-like. Helps with long noodles.\nWill convert the incoming to the outgoing it connects to." + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_4D + +func _get_output_port_count(): + return 1 + +func _get_output_port_type(port:int): + return VisualShaderNode.PORT_TYPE_VECTOR_4D + +func _get_output_port_name(port: int): + return "" + +func _get_input_port_count(): + return 1 + +func _get_input_port_name(port): + return "" + +func _get_input_port_type(port): + return VisualShaderNode.PORT_TYPE_VECTOR_4D + +func _get_code(input_vars, output_vars, mode, type): + return "%s = %s;\n" % [output_vars[0],input_vars[0]] + diff --git a/addons/VisualShaderExtras/Usability/RerouteMany.gd b/addons/VisualShaderExtras/Usability/RerouteMany.gd new file mode 100644 index 0000000..303df44 --- /dev/null +++ b/addons/VisualShaderExtras/Usability/RerouteMany.gd @@ -0,0 +1,70 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeRerouteMany + +func _get_name(): + return "RouteMany" + +func _get_category(): + return "VisualShaderExtras/Usability" + +func _get_description(): + return "Node to let you just hang a noodle somewhere and pass it through.\nNB: Make sure to match the same in and out ports." + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_4D + +const ptypes:Array = [ + VisualShaderNode.PORT_TYPE_BOOLEAN, + VisualShaderNode.PORT_TYPE_SCALAR, + VisualShaderNode.PORT_TYPE_SCALAR_INT, + VisualShaderNode.PORT_TYPE_VECTOR_2D, + VisualShaderNode.PORT_TYPE_VECTOR_3D, + VisualShaderNode.PORT_TYPE_VECTOR_4D, + VisualShaderNode.PORT_TYPE_TRANSFORM, + VisualShaderNode.PORT_TYPE_SAMPLER +] +const names:Array = ["Boolean","Scalar","Integer","Vector2D","Vector3D","Vector4D","Transform","Sampler"] +func _get_output_port_type(port): + return ptypes[port] + +func _get_output_port_count(): + return ptypes.size() + +func _get_output_port_name(port: int): + return "" + +func _get_input_port_count(): + return ptypes.size() + +func _get_input_port_name(port): + return names[port] + +func _get_input_port_type(port): + return ptypes[port] + +func _get_code(input_vars, output_vars, mode, type): + var s = "" + for p in range(0,7): + if input_vars[p]: + s += "{outp} = {inp};\n".format({"outp":output_vars[p],"inp":input_vars[p]}) + return s + diff --git a/addons/VisualShaderExtras/Utility/MaskBlend.gd b/addons/VisualShaderExtras/Utility/MaskBlend.gd new file mode 100644 index 0000000..b5af385 --- /dev/null +++ b/addons/VisualShaderExtras/Utility/MaskBlend.gd @@ -0,0 +1,83 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeMaskBlend + +func _get_name(): + return "MaskBlend" + +func _get_category(): + return "VisualShaderExtras/Utility" + +func _get_description(): + return """Let's you control the blend and fade of a given mask.""" + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int) -> String: + return "Output" + +func _init() -> void: + set_input_port_default_value(0, 0.) + set_input_port_default_value(1, 0.) + set_input_port_default_value(2, 0.) + +func _get_input_port_count(): + return 3 + +func _get_input_port_name(port): + match port: + 0: return "Mask Input" + 1: return "Blend Amount" + 2: return "Blend Fade" + +func _get_input_port_type(port): + return VisualShaderNode.PORT_TYPE_SCALAR + +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["mask_blend"] + +func _get_global_code(mode): + return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var code = """ +{out_float} = mask_blend({offset}, {fade}, {mask_in}); +""".format( + { + "mask_in" : input_vars[0], + "offset": input_vars[1], + "fade" : input_vars[2], + "out_float" : output_vars[0] + }) + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/Utility/NormalMapZ.gd b/addons/VisualShaderExtras/Utility/NormalMapZ.gd new file mode 100644 index 0000000..8dffcb1 --- /dev/null +++ b/addons/VisualShaderExtras/Utility/NormalMapZ.gd @@ -0,0 +1,98 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeSamplerNormalMapZ + +func _get_name(): + return "RestoreNormalMapZ" + +func _get_category(): + return "VisualShaderExtras/Utility" + +func _get_description(): + return """Adds the correct Z vector back to normal maps. +Use this if you want a detailed normal map. +NB: Your Sampler Type must be Normal Map. +Don't use this on mobile.""" + +func _is_available(mode, type): + return mode == VisualShader.MODE_SPATIAL + +func _is_highend(): + return true #mark as PC only. + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int) -> String: + return "Normal Map with Z" + +func _get_input_port_count(): + return 2 + +func _get_input_port_name(port): + match port: + 0: return "UV" + 1: return "Normal Map Sampler" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SAMPLER + +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["normal_map_add_z"] + +func _get_global_code(mode): + return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var inuv = "UV" + if input_vars[0]: + inuv = input_vars[0] + + var code = """ +vec3 normal_map_texture = textureLod({normal_texture_sampler}, {inuv}, 0.).rgb; + +{out_normal_map} = normal_map_add_z( + normal_map_texture, + {inuv}, + TANGENT, + BINORMAL, + NORMAL); + """.format( + { + "inuv" : inuv, + "normal_texture_sampler": input_vars[1], + "out_normal_map" : output_vars[0] + }) + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/Utility/TextureStack.gd b/addons/VisualShaderExtras/Utility/TextureStack.gd new file mode 100644 index 0000000..036199e --- /dev/null +++ b/addons/VisualShaderExtras/Utility/TextureStack.gd @@ -0,0 +1,125 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeTextureStack + +func _get_name(): + return "TextureStack" + +func _get_category(): + return "VisualShaderExtras/Utility" + +func _get_description(): + return """A single node to plug multiple Samplers into. If you use the ORM port, it will ignore the individual O, R and M ports, but the outputs will supply the data.""" + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_VECTOR_3D + +enum {KEY, NAME, PORT_TYPE_IN, PORT_TYPE_OUT} +const names := [ + #[key, name, type_in, type_out] + ["UV", "UV", VisualShaderNode.PORT_TYPE_VECTOR_2D, VisualShaderNode.PORT_TYPE_VECTOR_2D], + ["A", "Albedo", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_VECTOR_4D], + ["ORM","ORM", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_VECTOR_3D], + ["O", "Occlusion", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_SCALAR], + ["R", "Roughness", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_SCALAR], + ["M", "Metallic", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_SCALAR], + ["N", "NormalMap", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_VECTOR_3D], + ["D", "Depth", VisualShaderNode.PORT_TYPE_SAMPLER, VisualShaderNode.PORT_TYPE_SCALAR] +] + +func _get_output_port_count(): + return names.size() + +func _get_output_port_type(port): + return names[port][PORT_TYPE_OUT] + +func _get_output_port_name(port: int): + return "" #names[port][0] + +func _get_input_port_count(): + return names.size() + +func _get_input_port_name(port): + return names[port][NAME] + +func _get_input_port_type(port): + return names[port][PORT_TYPE_IN] + +var isorm=false +func create_textureLod_command(invars, outvars, port): + var s := "" + var invar = invars[port] + if invar: + var key = names[port][KEY] + var sampler = invar + var out = outvars[port] + + match key: + "A": # 4d + s = "%s = textureLod(%s, {inuv}, 0.);" % [out, sampler] + "D": # float 1d + s = "%s = textureLod(%s, {inuv}, 0.).r;" % [out, sampler] + "ORM": # all three from the ORM input Sampler + isorm = true + s = "%s = textureLod(%s, {inuv}, 0.).r;\n" % [outvars[3],sampler] + s+= "%s = textureLod(%s, {inuv}, 0.).g;\n" % [outvars[4],sampler] + s+= "%s = textureLod(%s, {inuv}, 0.).b;" % [outvars[5],sampler] + "N": + s = "%s = textureLod(%s, {inuv}, 0.).rgb;" % [out, sampler] + + # if ORM port is used, then we want to ignore any others plugged in + "O" : # 1d from its own sampler + if not isorm: + s = "%s = textureLod(%s, {inuv}, 0.).r;" % [out, sampler] + "R" : # 1d from its own sampler + if not isorm: + s = "%s = textureLod(%s, {inuv}, 0.).g;" % [out, sampler] + "M" : # 1d from its own sampler + if not isorm: + s = "%s = textureLod(%s, {inuv}, 0.).b;" % [out, sampler] + s+="\n\n" + return s + return "" + +func _get_code(input_vars, output_vars, mode, type): + var inuv = "UV" + if input_vars[0]: + inuv = input_vars[0] + var s := "" + for port in range(1, names.size()): #skips UV port 0 + s += create_textureLod_command(input_vars, output_vars, port) + + s = s.format({"inuv" : inuv}) + + # all done, reset the isorm flag + isorm = false + + return s + """ +{uv_out} = {inuv}; +""".format( +{ +"inuv" : inuv, +"uv_out": output_vars[0], +}) diff --git a/addons/VisualShaderExtras/WorldNormal/README.txt b/addons/VisualShaderExtras/WorldNormal/README.txt new file mode 100644 index 0000000..dd50ab5 --- /dev/null +++ b/addons/VisualShaderExtras/WorldNormal/README.txt @@ -0,0 +1,14 @@ +World Normal Mixing +== +I got the idea and code from Arnklit here: +https://www.youtube.com/watch?v=OvHNg4-Ueng + +The process gives a much better mix between textures where normal maps are involved. + +The main code is broken into three stages +1. Normal add z +2. Normal mask +3. Mask blend + +Each of those are useful in their own right, so I made them all separate nodes too. +However this node (the TempVisualShaderNodeWorldNormalMapMixer) does all that in one go. diff --git a/addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd b/addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd new file mode 100644 index 0000000..590ce42 --- /dev/null +++ b/addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd @@ -0,0 +1,123 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeWorldNormalMapMixer + +func _get_name(): + return "World_Normal_Map_Mixer" + +func _get_category(): + return "VisualShaderExtras/WorldNormal" + +func _get_description(): + return """This node gives a much better mix between textures where normal maps are involved. +It lets you keep a direction (up/down/left/right) to your mixture so that you can rotate meshes and the direction of the mix stays fixed in world space. +NB: Don't use this on mobile.""" + +func _is_available(mode, type): + return mode == VisualShader.MODE_SPATIAL + +func _is_highend(): + return true #mark as PC only. + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_SCALAR + 1: return VisualShaderNode.PORT_TYPE_VECTOR_3D + +func _get_output_port_count(): + return 2 + +func _get_output_port_name(port: int): + match port: + 0: return "Mask" + 1: return "Normal Map" + +func _init() -> void: + set_input_port_default_value(2, Vector3.UP) + set_input_port_default_value(3, 0.) + set_input_port_default_value(4, 0.) + +func _get_input_port_count(): + return 5 + +func _get_input_port_name(port): + match port: + 0: return "UV" + 1: return "Normal Map Sampler" + 2: return "Direction Vector" + 3: return "Offset" + 4: return "Fade" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_2D + 1: return VisualShaderNode.PORT_TYPE_SAMPLER #sampler + 2: return VisualShaderNode.PORT_TYPE_VECTOR_3D #direction + 3: return VisualShaderNode.PORT_TYPE_SCALAR #offset + 4: return VisualShaderNode.PORT_TYPE_SCALAR #fade + +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["normal_map_add_z", "world_normal_mask", "mask_blend"] + +func _get_global_code(mode): + return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var inuv = "UV" + if input_vars[0]: + inuv = input_vars[0] + + var code = """ +vec3 normal_map_texture = textureLod({normal_texture_sampler}, {inuv}, 0.).rgb; + +vec3 normal_applied = normal_map_add_z( + normal_map_texture, + {inuv}, + TANGENT, + BINORMAL, + NORMAL); +float mask = world_normal_mask( + normal_applied, + {vector_direction}, + VIEW_MATRIX); +float blended_mask = mask_blend({offset}, {fade}, mask); +{out_float} = blended_mask; +{out_normal_map} = normal_map_texture; + """.format( + { + "inuv" : inuv, + "normal_texture_sampler": input_vars[1], + "vector_direction" : input_vars[2], + "offset": input_vars[3], + "fade" : input_vars[4], + "out_float" : output_vars[0], + "out_normal_map" : output_vars[1] + }) + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/WorldNormal/WorldNormalMask.gd b/addons/VisualShaderExtras/WorldNormal/WorldNormalMask.gd new file mode 100644 index 0000000..5ee6f2c --- /dev/null +++ b/addons/VisualShaderExtras/WorldNormal/WorldNormalMask.gd @@ -0,0 +1,89 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# and + +## 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + +@tool +extends VisualShaderNodeCustom +class_name VisualShaderNodeWorldNormalMask + +func _get_name(): + return "World_Normal_Mask" + +func _get_category(): + return "VisualShaderExtras/WorldNormal" + +func _get_description(): + return """Outputs a mask where the given Direction Vector is matched. +Use this to mask out directions like up/down/left/right. +NB: You must supply a normal map with a Z direction. For that use the Normal Map Z Node.""" + +func _is_available(mode, type): + return mode == VisualShader.MODE_SPATIAL + +func _get_return_icon_type(): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_type(port): + return VisualShaderNode.PORT_TYPE_SCALAR + +func _get_output_port_count(): + return 1 + +func _get_output_port_name(port: int): + return "Mask" + +func _init() -> void: + set_input_port_default_value(1, Vector3.UP) + +func _get_input_port_count(): + return 2 + +func _get_input_port_name(port): + match port: + 0: return "Normal Map with Z" + 1: return "Direction Vector" + +func _get_input_port_type(port): + match port: + 0: return VisualShaderNode.PORT_TYPE_VECTOR_3D + 1: return VisualShaderNode.PORT_TYPE_VECTOR_3D + +## return all the functions (in the ShaderLib Dict) that you want +## to use. +func _get_global_func_names()->Array: + return ["world_normal_mask"] + +func _get_global_code(mode): + return ShaderLib.prep_global_code(self) + +func _get_code(input_vars, output_vars, mode, type): + var code = """ +{out_float} = world_normal_mask( + {normal_z_applied}, + {vector_direction}, + VIEW_MATRIX); +""".format( + { + "normal_z_applied": input_vars[0], + "vector_direction" : input_vars[1], + "out_float" : output_vars[0], + }) + return ShaderLib.rename_functions(self, code) diff --git a/addons/VisualShaderExtras/library/shaderlib.gd b/addons/VisualShaderExtras/library/shaderlib.gd new file mode 100644 index 0000000..7d5f1dd --- /dev/null +++ b/addons/VisualShaderExtras/library/shaderlib.gd @@ -0,0 +1,200 @@ +# The MIT License +# Copyright © 2022 Donn Ingle (on shoulders of giants) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +extends RefCounted +class_name ShaderLib + +## A repository for often used shader functions +## Also has some methods to try optimize their use +## while avoiding the dreaded redefinition error. + +# NOTES: +# PS var glob_code = '#include "res://addons/shadershizz2/UVRotate.gd"' +# Simply refuses to work :( +# Gives tokenizer error unknown character #35 on the # +# yet copy/paste into a gdshader works fine. +# OTOH, this works: preload("res://addons/shadershizz2/vec2_rotate.gdshaderinc").code + +## Make a unique name for a shader function +## based on the category and shader node name. +## This ensures the functions are the same for the +## same nodes, but different for other nodes which +## happen to use the same function - I cannot optimize this +## so I have to duplicate these functions. I hope the compiler +## can optimize instead. +static func _build_uid(vnode)->String: + var cat = vnode._get_category() + var nam = vnode._get_name() + var both = "%s_%s" % [cat,nam] + return both.replace("/","_").to_pascal_case() + +## Seek the shader func name in the dict below. +## Rename it to fit the vnode using it. +## Glue any extra code (untested thus far) like uniforms etc. +## return the code. +static func prep_global_code(vnode, extra_code="")->String: + var glob_code = "" + var uid:String = _build_uid(vnode) + var sfunc_names = vnode._get_global_func_names() + for name in sfunc_names: + var shader_code:String = "" + if name in shader_funcs: + shader_code = shader_funcs[name] + else: + return "Can't find %s in shader funcs" % name + glob_code += shader_code + "\n" + var out_name:String = "%s_%s" % [name,uid] + glob_code = glob_code.replace(name, out_name) + + if extra_code: + glob_code += extra_code + return glob_code + +## Go through the body of a shader and rename the functions +## to match the new namespaced name for them: +static func rename_functions(vnode, code:String)->String: + var uid:String = _build_uid(vnode) + var sfunc_names = vnode._get_global_func_names() + for name in sfunc_names: + var out_name:String = "%s_%s" % [name, uid] + code = code.replace(name, out_name) + return code + +## The shader library + +const shader_funcs:Dictionary = { +vec2_rotate=""" +// _angle in radians +vec2 vec2_rotate(vec2 _uv, float _angle, vec2 _pivot) { + _uv -= _pivot; + _uv = mat2( vec2(cos(_angle), -sin(_angle)), vec2(sin(_angle), cos(_angle)) ) * _uv; + _uv += _pivot; + return _uv; +}""", + +brick_tile=""" +vec2 brick_tile(vec2 _uv, float _zoom, float _shift) +{ + _uv.x += step(1.0, mod(_uv.y, 2.0)) * _shift; + return fract(_uv); +}""", + +compare=""" +float compare(vec4 in1, vec4 in2, float fuzz) +{ + return dot(abs(in1-in2), vec4(fuzz)); +} +""", + +random_float=""" +// Returns float from 0.0 to 1.0 +float random_float(vec2 input) { + return fract(sin(dot(input.xy, vec2(12.9898,78.233))) * 43758.5453123); +}""", + +hash_noise_range=""" +// From Juan Linietsky, Ariel Manzur +vec3 hash_noise_range( vec3 p ) +{ + p *= mat3(vec3(127.1, 311.7, -53.7), vec3(269.5, 183.3, 77.1), vec3(-301.7, 27.3, 215.3)); + return 2.0 * fract(fract(p)*4375.55) -1.; +}""", + +mip_map_lod=""" +// mip_map_lod +// Is a way to remove the edges on textures that are tiled +// Use: +// uniform sampler2D albedo_texture; +// float lod = mip_map_lod(UV*tiling * vec2(textureSize(albedo_texture, 0))); +// ALBEDO = textureLod(albedo_texture, some_new_uv, lod).rgb; +// Returns an "lod" according to some dark openGL voodoo +float mip_map_lod(in vec2 uv, vec2 texture_size) +{ + vec2 texture_coordinate = uv * texture_size; + vec2 dx_vtc = dFdx(texture_coordinate); + vec2 dy_vtc = dFdy(texture_coordinate); + float delta_max_sqr = max(dot(dx_vtc, dx_vtc), dot(dy_vtc, dy_vtc)); + float mml = 0.5 * log2(delta_max_sqr); + return max(0, mml); +}""", + +basic_uv_tile=""" +vec2 tile(vec2 _uv, float _zoom){ + _uv *= _zoom; + return fract(_uv); +}""", + +normal_map_add_z = """ +// Godot strips the z value from imported Normal Maps. +// It does this for two reasons: +// 1. Obtaining better compression because the z can be calculated by shader. +// Compression boosts speed of CPU to GPU transfer. +// 2. On mobile devices they do not do that calculation. They either ignore the z +// or do some other calculation, but the normal one (below) is apparently too slow +// or power-hungry for mobile devices. +// +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +vec3 normal_map_add_z( + vec3 normal_map_texture, + vec2 inuv, + vec3 _TANGENT, + vec3 _BINORMAL, + vec3 _NORMAL) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + + // Unpack the background normal map. + vec3 bg_normal = normal_map_texture * 2.0 - 1.0; + + // Recalculate z-component of the normal map with the Pythagorean theorem. + bg_normal.z = sqrt(1.0 - bg_normal.x * bg_normal.x - bg_normal.y * bg_normal.y); + + // Apply the tangent-space normal map to the view-space normals. + vec3 normal_applied = bg_normal.x * _TANGENT + bg_normal.y * _BINORMAL + bg_normal.z * _NORMAL; + return normal_applied; +} +""", + +world_normal_mask = """ +// Create the texture to pass in like this: +// vec3 normal_map_texture = textureLod(normal_texture_sampler, inuv, 0.).rgb; +float world_normal_mask( + vec3 normal_map_texture, + vec3 vector_direction, + mat4 _VIEW_MATRIX + ) { + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + // Convert the world up vector into view-space with a matrix multiplication. + vec3 up_vector_viewspace = mat3(_VIEW_MATRIX) * vector_direction; + + // Compare the up vector to the surface with the normal map applied using the dot product. + float dot_product = dot(up_vector_viewspace, normal_map_texture); + + return dot_product; +} +""", + +mask_blend = """ +float mask_blend(float offset, float fade, float mask_in) { + offset *= -1.; + + // 2022 Kasper Arnklit Frandsen - Public Domain - No Rights Reserved + return smoothstep(offset - fade, offset + fade, mask_in); +} +""" +} diff --git a/project.godot b/project.godot index 868e463..0c29ba4 100644 --- a/project.godot +++ b/project.godot @@ -10,19 +10,49 @@ config_version=5 _global_script_classes=[{ "base": "VisualShaderNodeCustom", +"class": &"NodeUVRotateV2", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/UV/UVRotate.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"NodeUVTilerV3", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/UV/UVTiler.gd" +}, { +"base": "RefCounted", +"class": &"ShaderLib", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/library/shaderlib.gd" +}, { +"base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeBox", "language": &"GDScript", +"path": "res://addons/VisualShaderExtras/dbat_dev/vshader_node_dev_scrap_files/Box.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeBoxV2", +"language": &"GDScript", "path": "res://addons/VisualShaderExtras/Shapes/Box.gd" }, { "base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeCircle", "language": &"GDScript", +"path": "res://addons/VisualShaderExtras/dbat_dev/vshader_node_dev_scrap_files/Circle.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeCircleV2", +"language": &"GDScript", "path": "res://addons/VisualShaderExtras/Shapes/Circle.gd" }, { "base": "VisualShaderNodeCustom", -"class": &"VisualShaderNodeCustomCompare", +"class": &"VisualShaderNodeCustomColorMask", "language": &"GDScript", -"path": "res://addons/VisualShaderExtras/Usability/Compare.gd" +"path": "res://addons/VisualShaderExtras/Usability/ColorMask.gd" +}, { +"base": "RefCounted", +"class": &"VisualShaderNodeCustomCompareDEPRECATED", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/dbat_dev/vshader_node_dev_scrap_files/__Compare.gd" }, { "base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeDarkerColor", @@ -70,11 +100,26 @@ _global_script_classes=[{ "path": "res://addons/VisualShaderExtras/BlendModes/LinearLight.gd" }, { "base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeLodBlur", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/Filters/LodBlur.gd" +}, { +"base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeLuminosity", "language": &"GDScript", "path": "res://addons/VisualShaderExtras/BlendModes/Luminosity.gd" }, { "base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeMaskBlend", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/Utility/MaskBlend.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeParallaxMapping", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/UV/ParallaxMapping.gd" +}, { +"base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeParallelogram", "language": &"GDScript", "path": "res://addons/VisualShaderExtras/Shapes/Parallelogram.gd" @@ -90,6 +135,16 @@ _global_script_classes=[{ "path": "res://addons/VisualShaderExtras/Shapes/PreciseBox.gd" }, { "base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeReroute", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/Usability/Reroute.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeRerouteMany", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/Usability/RerouteMany.gd" +}, { +"base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeRhombus", "language": &"GDScript", "path": "res://addons/VisualShaderExtras/Shapes/Rhombus.gd" @@ -100,6 +155,11 @@ _global_script_classes=[{ "path": "res://addons/VisualShaderExtras/Shapes/RoundedBox.gd" }, { "base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeSamplerNormalMapZ", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/Utility/NormalMapZ.gd" +}, { +"base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeSawtoothWave", "language": &"GDScript", "path": "res://addons/VisualShaderExtras/Wave/SawtoothWave.gd" @@ -120,9 +180,14 @@ _global_script_classes=[{ "path": "res://addons/VisualShaderExtras/Wave/SquareWave.gd" }, { "base": "VisualShaderNodeCustom", -"class": &"VisualShaderNodeTiler", +"class": &"VisualShaderNodeTextureStack", "language": &"GDScript", -"path": "res://addons/VisualShaderExtras/UV/UVTiler.gd" +"path": "res://addons/VisualShaderExtras/Utility/TextureStack.gd" +}, { +"base": "RefCounted", +"class": &"VisualShaderNodeTilerDeprecated", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/dbat_dev/vshader_node_dev_scrap_files/UVTiler.gd" }, { "base": "VisualShaderNodeCustom", "class": &"VisualShaderNodeTrapezoid", @@ -158,11 +223,27 @@ _global_script_classes=[{ "class": &"VisualShaderNodeVividLight", "language": &"GDScript", "path": "res://addons/VisualShaderExtras/BlendModes/VividLight.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeWorldNormalMapMixer", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/WorldNormal/WorldNormalMapMixer.gd" +}, { +"base": "VisualShaderNodeCustom", +"class": &"VisualShaderNodeWorldNormalMask", +"language": &"GDScript", +"path": "res://addons/VisualShaderExtras/WorldNormal/WorldNormalMask.gd" }] _global_script_class_icons={ +"NodeUVRotateV2": "", +"NodeUVTilerV3": "", +"ShaderLib": "", "VisualShaderNodeBox": "", +"VisualShaderNodeBoxV2": "", "VisualShaderNodeCircle": "", -"VisualShaderNodeCustomCompare": "", +"VisualShaderNodeCircleV2": "", +"VisualShaderNodeCustomColorMask": "", +"VisualShaderNodeCustomCompareDEPRECATED": "", "VisualShaderNodeDarkerColor": "", "VisualShaderNodeExclusion": "", "VisualShaderNodeGammaDark": "", @@ -172,24 +253,33 @@ _global_script_class_icons={ "VisualShaderNodeLighterColor": "", "VisualShaderNodeLinearBurn": "", "VisualShaderNodeLinearLight": "", +"VisualShaderNodeLodBlur": "", "VisualShaderNodeLuminosity": "", +"VisualShaderNodeMaskBlend": "", +"VisualShaderNodeParallaxMapping": "", "VisualShaderNodeParallelogram": "", "VisualShaderNodePinLight": "", "VisualShaderNodePreciseBox": "", +"VisualShaderNodeReroute": "", +"VisualShaderNodeRerouteMany": "", "VisualShaderNodeRhombus": "", "VisualShaderNodeRoundedBox": "", +"VisualShaderNodeSamplerNormalMapZ": "", "VisualShaderNodeSawtoothWave": "", "VisualShaderNodeSineWave": "", "VisualShaderNodeSineWaveAngular": "", "VisualShaderNodeSquareWave": "", -"VisualShaderNodeTiler": "", +"VisualShaderNodeTextureStack": "", +"VisualShaderNodeTilerDeprecated": "", "VisualShaderNodeTrapezoid": "", "VisualShaderNodeTriangle": "", "VisualShaderNodeTriangleWave": "", "VisualShaderNodeUVFlipbook": "", "VisualShaderNodeUVTwirl": "", "VisualShaderNodeUVtoSphereCoord": "", -"VisualShaderNodeVividLight": "" +"VisualShaderNodeVividLight": "", +"VisualShaderNodeWorldNormalMapMixer": "", +"VisualShaderNodeWorldNormalMask": "" } [application] @@ -203,6 +293,10 @@ config/icon="res://addons/VisualShaderExtras/AddonAssets/VisualShaderExtras-Logo window/stretch/mode="viewport" +[editor_plugins] + +enabled=PackedStringArray() + [gui] common/drop_mouse_on_gui_input_disabled=true