// CRC32: 2F6A0444 | Unity headers extracted from Terrain Block.shader
// Shader "Custom/Terrain Block" {
//   Properties {
//    _MainTex ("Wall Texture (RGB)", 2D) = "white" { }
//    _GroundTex ("Floor Texture (RGB)", 2D) = "white" { }
//    _CeilingTex ("Ceiling Texture (RGB)", 2D) = "white" { }
//    _EdgeTex ("Edge Texture", 2D) = "" { }
//    _WallGlossinessTex ("Wall Glossiness (R)", 2D) = "black" { }
//    _GroundGlossinessTex ("Floor Glossiness (R)", 2D) = "black" { }
//    _CeilingGlossinessTex ("Ceiling Glossiness (R)", 2D) = "black" { }
//    _EmissiveTex ("Emissive (RGB)", 2D) = "black" { }
//    _SpecularPower ("Specular Power", Float) = 1
//    _Tiling ("Tiling - width of texture in tiles", Float) = 8
//    _StretchDownwardUV ("Downward Texture Stretching", Range(0,1)) = 1
//    _OriginalPosition ("Internal Use Only", Vector) = (0,0,0,0)
//    _OriginalPositionOffset ("Internal Use Only", Vector) = (0,0,0,0)
//    _OriginalRotation ("Internal Use Only", Float) = 0
//   }
//   Fallback Off
//   SubShader 1/1 {
//     Tags { "RenderType"="Opaque" }
//     Pass 1/3 {
//       Name "FORWARD"
//       Tags { "LIGHTMODE"="ForwardBase" "SHADOWSUPPORT"="true" "RenderType"="Opaque" }
//       GpuProgramID 36182
//       Program "vp" {
//         SubProgram "d3d9 " {
//           Keywords { "DIRECTIONAL" "DIRLIGHTMAP_OFF" "DYNAMICLIGHTMAP_OFF" "LIGHTMAP_OFF" "SHADOWS_SCREEN" }
//           Bind "vertex" Vertex
//           Bind "normal" Normal
//           Bind "texcoord" TexCoord0
//           Bind "texcoord1" TexCoord1
//           Matrix 4 [_Object2World] 3
//           Matrix 7 [_World2Object] 3
//           Matrix 0 [glstate_matrix_mvp]
//           Vector 25 [_EdgeTex_ST]
//           Vector 24 [_MainTex_ST]
//           Vector 20 [_OriginalPosition]
//           Vector 21 [_OriginalPositionOffset]
//           Float 22 [_OriginalRotation]
//           Vector 10 [_ProjectionParams]
//           Vector 11 [_ScreenParams]
//           Float 19 [_StretchDownwardUV]
//           Float 23 [_ZI_LevelBottomBound]
//           Vector 14 [unity_SHAb]
//           Vector 13 [unity_SHAg]
//           Vector 12 [unity_SHAr]
//           Vector 17 [unity_SHBb]
//           Vector 16 [unity_SHBg]
//           Vector 15 [unity_SHBr]
//           Vector 18 [unity_SHC]
//         }
//       }
//     }
//   }
// }
// 
// Headers extracted with DarkStarSword's extract_unity_shaders.py
// https://raw.githubusercontent.com/DarkStarSword/3d-fixes/master/extract_unity_shaders.py

    vs_3_0
    def c26, 6.28318548, -3.14159274, 1, 0
    def c27, 0, 30, 0.159154937, 0.5
    dcl_position v0
    dcl_normal v1
    dcl_texcoord v2
    dcl_texcoord1 v3
    dcl_position o0
    dcl_texcoord o1
    dcl_texcoord1 o2.xyz
    dcl_texcoord2 o3.xyz
    dcl_texcoord3 o4.xyz
    dcl_texcoord4 o5.xyz
    dcl_texcoord5 o6
    dcl_texcoord6 o7

def c220, 0, 1, 0.0625, 0.5
dcl_2d s0

    mad o1.xy, v2, c24, c24.zwzw
    mad o1.zw, v3.xyxy, c25.xyxy, c25
    add r0.x, c23.x, -v0.y
    slt r0.y, c27.x, r0.x
    mov r1.yzw, c27
    mad r0.x, r0.x, -r1.y, c23.x
    lrp r2.y, r0.y, r0.x, v0.y
    mov r2.xzw, v0
    dp4 o3.x, c4, r2
    dp4 o3.y, c5, r2
    dp4 o3.z, c6, r2
    mul r0.xyz, c8, v1.y
    mad r0.xyz, c7, v1.x, r0
    mad r0.xyz, c9, v1.z, r0
    nrm r3.xyz, r0
    mul r0.x, r3.y, r3.y
    mad r0.x, r3.x, r3.x, -r0.x
    mul r4, r3.yzzx, r3.xyzz
    dp4 r5.x, c15, r4
    dp4 r5.y, c16, r4
    dp4 r5.z, c17, r4
    mad r0.xyz, c18, r0.x, r5
    mov r3.w, c26.z
    dp4 r4.x, c12, r3
    dp4 r4.y, c13, r3
    dp4 r4.z, c14, r3
    mov o2.xyz, r3
    add o5.xyz, r0, r4
    dp4 r0.x, c0, r2
    dp4 r0.w, c3, r2

mov o0, r0 // Relocated from line 110 with shadertool.py

// Automatic vertex shader halo fix inserted with DarkStarSword's shadertool.py:
// shadertool.py -I ../.. --auto-fix-vertex-halo --only-autofixed --add-fog-on-sm3-update --fix-unity-reflection --ignore-register-errors --force Custom_Terrain Block\vp\2F6A0444.txt
texldl r31, c220.z, s0
add r31.w, r0.w, -r31.y
mad r0.x, r31.w, r31.x, r0.x

    mul r3.xz, r0.xyww, c27.w
    dp4 r0.y, c1, r2
    dp4 r0.z, c2, r2
    mul r1.x, r0.y, c10.x

//     mov o0, r0 // Relocated to line 106 with shadertool.py
mov o0.yz, r0 // Inserted by shadertool.py

    mov o6.zw, r0
    mul r3.w, r1.x, c27.w
    mad o6.xy, r3.z, c11.zwzw, r3.xwzw
    mad r0.x, c22.x, r1.z, r1.w
    frc r0.x, r0.x
    mad r0.x, r0.x, c26.x, c26.y
    sincos r1.xy, r0.x
    mul r0.xyz, r1.yxyw, v0.zxxw
    mad r2.z, v0.z, r1.x, -r0.z
    add r2.x, r0.y, r0.x
    mov r0.xyz, c20
    add r0.xyz, r0, c21
    add r0.xyz, r2, r0
    add r1.x, -r0.y, c23.x
    pow r2.x, r1.x, c19.x
    slt r1.x, c27.x, r1.x
    add r1.y, -r2.x, c23.x
    add r1.y, -r0.y, r1.y
    mad r0.w, r1.x, r1.y, r0.y
    mov o4.xyz, r0.xwzw
    mov o7, c27.x
