1/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */
2#ifndef PARTICLES_GLSL_GEN_HGLES3_GLES3
3#define PARTICLES_GLSL_GEN_HGLES3_GLES3
4
5
6#include "drivers/gles3/shader_gles3.h"
7
8
9class ParticlesShaderGLES3 : public ShaderGLES3 {
10
11public:
12
13 enum Uniforms {
14 GLOBAL_SHADER_S,
15 LIFETIME,
16 CLEAR,
17 TOTAL_PARTICLES,
18 USE_FRACTIONAL_DELTA,
19 };
20
21 enum ShaderVariant {
22 MODE_DEFAULT,
23 };
24
25 enum Specializations {
26 MODE_3D=1,
27 USERDATA1_USED=2,
28 USERDATA2_USED=4,
29 USERDATA3_USED=8,
30 USERDATA4_USED=16,
31 USERDATA5_USED=32,
32 USERDATA6_USED=64,
33 };
34
35 _FORCE_INLINE_ bool version_bind_shader(RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { return _version_bind_shader(p_version,p_variant,p_specialization); }
36
37 _FORCE_INLINE_ int version_get_uniform(Uniforms p_uniform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { return _version_get_uniform(p_uniform,p_version,p_variant,p_specialization); }
38
39 #define _FU if (version_get_uniform(p_uniform,p_version,p_variant,p_specialization)<0) return;
40
41 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
42
43 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, double p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
44
45 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint8_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
46
47 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int8_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
48
49 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint16_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
50
51 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int16_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
52
53 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint32_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
54
55 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int32_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
56
57 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Color& p_color,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,col); }
58
59 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector2& p_vec2,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU GLfloat vec2[2]={float(p_vec2.x),float(p_vec2.y)}; glUniform2fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec2); }
60
61 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Size2i& p_vec2,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU GLint vec2[2]={GLint(p_vec2.x),GLint(p_vec2.y)}; glUniform2iv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec2); }
62
63 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector3& p_vec3,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU GLfloat vec3[3]={float(p_vec3.x),float(p_vec3.y),float(p_vec3.z)}; glUniform3fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec3); }
64
65 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform2f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b); }
66
67 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform3f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b,p_c); }
68
69 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU glUniform4f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b,p_c,p_d); }
70
71 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform3D& p_transform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU
72
73 const Transform3D &tr = p_transform;
74
75 GLfloat matrix[16]={ /* build a 16x16 matrix */
76 (GLfloat)tr.basis.rows[0][0],
77 (GLfloat)tr.basis.rows[1][0],
78 (GLfloat)tr.basis.rows[2][0],
79 (GLfloat)0,
80 (GLfloat)tr.basis.rows[0][1],
81 (GLfloat)tr.basis.rows[1][1],
82 (GLfloat)tr.basis.rows[2][1],
83 (GLfloat)0,
84 (GLfloat)tr.basis.rows[0][2],
85 (GLfloat)tr.basis.rows[1][2],
86 (GLfloat)tr.basis.rows[2][2],
87 (GLfloat)0,
88 (GLfloat)tr.origin.x,
89 (GLfloat)tr.origin.y,
90 (GLfloat)tr.origin.z,
91 (GLfloat)1
92 };
93
94 glUniformMatrix4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,false,matrix);
95
96 }
97
98 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform2D& p_transform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=0) { _FU
99
100 const Transform2D &tr = p_transform;
101
102 GLfloat matrix[16]={ /* build a 16x16 matrix */
103 (GLfloat)tr.columns[0][0],
104 (GLfloat)tr.columns[0][1],
105 (GLfloat)0,
106 (GLfloat)0,
107 (GLfloat)tr.columns[1][0],
108 (GLfloat)tr.columns[1][1],
109 (GLfloat)0,
110 (GLfloat)0,
111 (GLfloat)0,
112 (GLfloat)0,
113 (GLfloat)1,
114 (GLfloat)0,
115 (GLfloat)tr.columns[2][0],
116 (GLfloat)tr.columns[2][1],
117 (GLfloat)0,
118 (GLfloat)1
119 };
120
121 glUniformMatrix4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,false,matrix);
122
123 }
124
125 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Projection& p_matrix, RID p_version, ShaderVariant p_variant,uint64_t p_specialization=0) { _FU
126
127 GLfloat matrix[16];
128
129 for (int i = 0; i < 4; i++) {
130 for (int j = 0; j < 4; j++) {
131 matrix[i * 4 + j] = p_matrix.columns[i][j];
132 }
133 }
134
135 glUniformMatrix4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, false, matrix);
136 }
137
138#undef _FU
139
140
141protected:
142
143 virtual void _init() override {
144
145 static const char* _uniform_strings[]={
146 "global_shader_s",
147 "lifetime",
148 "clear",
149 "total_particles",
150 "use_fractional_delta",
151 };
152
153 static const char* _variant_defines[]={
154 "",
155 };
156
157 static TexUnitPair _texunit_pairs[]={
158 {"height_field_texture",0},
159 };
160
161 static UBOPair _ubo_pairs[]={
162 {"GlobalShaderUniformData",1},
163 {"MaterialUniforms",2},
164 {"FrameData",0},
165 };
166
167 static Specialization _spec_pairs[]={
168 {"MODE_3D",false},
169 {"USERDATA1_USED",false},
170 {"USERDATA2_USED",false},
171 {"USERDATA3_USED",false},
172 {"USERDATA4_USED",false},
173 {"USERDATA5_USED",false},
174 {"USERDATA6_USED",false},
175 };
176
177 static const Feedback _feedbacks[]={
178 {"out_color",0},
179 {"out_velocity_flags",0},
180 {"out_custom",0},
181 {"out_xform_1",0},
182 {"out_xform_2",0},
183 {"out_xform_3",1},
184 {"out_userdata1",2},
185 {"out_userdata2",4},
186 {"out_userdata3",8},
187 {"out_userdata4",16},
188 {"out_userdata5",32},
189 {"out_userdata6",64},
190 };
191
192 static const char _vertex_code[]={
19310,35,100,101,102,105,110,101,32,83,68,70,95,77,65,88,95,76,69,78,71,84,72,32,49,54,51,56,52,46,48,10,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,71,108,111,98,97,108,83,104,97,100,101,114,85,110,105,102,111,114,109,68,97,116,97,32,123,32,47,47,117,98,111,58,49,10,9,118,101,99,52,32,103,108,111,98,97,108,95,115,104,97,100,101,114,95,117,110,105,102,111,114,109,115,91,77,65,88,95,71,76,79,66,65,76,95,83,72,65,68,69,82,95,85,78,73,70,79,82,77,83,93,59,10,125,59,10,10,47,47,32,84,104,105,115,32,110,101,101,100,115,32,116,111,32,98,101,32,111,117,116,115,105,100,101,32,99,108,97,110,103,45,102,111,114,109,97,116,32,115,111,32,116,104,101,32,117,98,111,32,99,111,109,109,101,110,116,32,105,115,32,105,110,32,116,104,101,32,114,105,103,104,116,32,112,108,97,99,101,10,35,105,102,100,101,102,32,77,65,84,69,82,73,65,76,95,85,78,73,70,79,82,77,83,95,85,83,69,68,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,77,97,116,101,114,105,97,108,85,110,105,102,111,114,109,115,123,32,47,47,117,98,111,58,50,10,10,35,77,65,84,69,82,73,65,76,95,85,78,73,70,79,82,77,83,10,10,125,59,10,35,101,110,100,105,102,10,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,110,32,42,47,10,10,35,100,101,102,105,110,101,32,77,65,88,95,65,84,84,82,65,67,84,79,82,83,32,51,50,10,10,35,100,101,102,105,110,101,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,83,80,72,69,82,69,32,117,105,110,116,40,48,41,10,35,100,101,102,105,110,101,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,66,79,88,32,117,105,110,116,40,49,41,10,35,100,101,102,105,110,101,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,86,69,67,84,79,82,95,70,73,69,76,68,32,117,105,110,116,40,50,41,10,10,115,116,114,117,99,116,32,65,116,116,114,97,99,116,111,114,32,123,10,9,109,97,116,52,32,116,114,97,110,115,102,111,114,109,59,10,9,118,101,99,52,32,101,120,116,101,110,116,115,59,32,47,47,32,69,120,116,101,110,116,115,32,111,114,32,114,97,100,105,117,115,46,32,119,45,99,104,97,110,110,101,108,32,105,115,32,112,97,100,100,105,110,103,46,10,10,9,117,105,110,116,32,116,121,112,101,59,10,9,102,108,111,97,116,32,115,116,114,101,110,103,116,104,59,10,9,102,108,111,97,116,32,97,116,116,101,110,117,97,116,105,111,110,59,10,9,102,108,111,97,116,32,100,105,114,101,99,116,105,111,110,97,108,105,116,121,59,10,125,59,10,10,35,100,101,102,105,110,101,32,77,65,88,95,67,79,76,76,73,68,69,82,83,32,51,50,10,10,35,100,101,102,105,110,101,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,83,80,72,69,82,69,32,117,105,110,116,40,48,41,10,35,100,101,102,105,110,101,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,66,79,88,32,117,105,110,116,40,49,41,10,35,100,101,102,105,110,101,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,83,68,70,32,117,105,110,116,40,50,41,10,35,100,101,102,105,110,101,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,72,69,73,71,72,84,95,70,73,69,76,68,32,117,105,110,116,40,51,41,10,35,100,101,102,105,110,101,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,50,68,95,83,68,70,32,117,105,110,116,40,52,41,10,10,115,116,114,117,99,116,32,67,111,108,108,105,100,101,114,32,123,10,9,109,97,116,52,32,116,114,97,110,115,102,111,114,109,59,10,9,118,101,99,52,32,101,120,116,101,110,116,115,59,32,47,47,32,69,120,116,101,110,116,115,32,111,114,32,114,97,100,105,117,115,46,32,119,45,99,104,97,110,110,101,108,32,105,115,32,112,97,100,100,105,110,103,46,10,10,9,117,105,110,116,32,116,121,112,101,59,10,9,102,108,111,97,116,32,115,99,97,108,101,59,10,9,102,108,111,97,116,32,112,97,100,48,59,10,9,102,108,111,97,116,32,112,97,100,49,59,10,125,59,10,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,70,114,97,109,101,68,97,116,97,32,123,32,47,47,117,98,111,58,48,10,9,98,111,111,108,32,101,109,105,116,116,105,110,103,59,10,9,117,105,110,116,32,99,121,99,108,101,59,10,9,102,108,111,97,116,32,115,121,115,116,101,109,95,112,104,97,115,101,59,10,9,102,108,111,97,116,32,112,114,101,118,95,115,121,115,116,101,109,95,112,104,97,115,101,59,10,10,9,102,108,111,97,116,32,101,120,112,108,111,115,105,118,101,110,101,115,115,59,10,9,102,108,111,97,116,32,114,97,110,100,111,109,110,101,115,115,59,10,9,102,108,111,97,116,32,116,105,109,101,59,10,9,102,108,111,97,116,32,100,101,108,116,97,59,10,10,9,102,108,111,97,116,32,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,9,102,108,111,97,116,32,112,97,100,48,59,10,9,102,108,111,97,116,32,112,97,100,49,59,10,9,102,108,111,97,116,32,112,97,100,50,59,10,10,9,117,105,110,116,32,114,97,110,100,111,109,95,115,101,101,100,59,10,9,117,105,110,116,32,97,116,116,114,97,99,116,111,114,95,99,111,117,110,116,59,10,9,117,105,110,116,32,99,111,108,108,105,100,101,114,95,99,111,117,110,116,59,10,9,117,105,110,116,32,102,114,97,109,101,59,10,10,9,109,97,116,52,32,101,109,105,115,115,105,111,110,95,116,114,97,110,115,102,111,114,109,59,10,10,9,65,116,116,114,97,99,116,111,114,32,97,116,116,114,97,99,116,111,114,115,91,77,65,88,95,65,84,84,82,65,67,84,79,82,83,93,59,10,9,67,111,108,108,105,100,101,114,32,99,111,108,108,105,100,101,114,115,91,77,65,88,95,67,79,76,76,73,68,69,82,83,93,59,10,125,59,10,10,35,100,101,102,105,110,101,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,32,117,105,110,116,40,49,41,10,35,100,101,102,105,110,101,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,83,84,65,82,84,69,68,32,117,105,110,116,40,50,41,10,35,100,101,102,105,110,101,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,84,82,65,73,76,69,68,32,117,105,110,116,40,52,41,10,35,100,101,102,105,110,101,32,80,65,82,84,73,67,76,69,95,70,82,65,77,69,95,77,65,83,75,32,117,105,110,116,40,48,120,70,70,70,70,41,10,35,100,101,102,105,110,101,32,80,65,82,84,73,67,76,69,95,70,82,65,77,69,95,83,72,73,70,84,32,117,105,110,116,40,49,54,41,10,10,47,47,32,80,97,114,116,105,99,108,101,68,97,116,97,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,48,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,99,111,108,111,114,59,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,49,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,118,101,108,111,99,105,116,121,95,102,108,97,103,115,59,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,50,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,99,117,115,116,111,109,59,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,51,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,120,102,111,114,109,95,49,59,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,52,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,120,102,111,114,109,95,50,59,10,35,105,102,100,101,102,32,77,79,68,69,95,51,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,53,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,120,102,111,114,109,95,51,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,49,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,54,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,49,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,50,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,55,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,50,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,51,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,56,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,51,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,52,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,57,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,52,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,53,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,49,48,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,53,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,54,95,85,83,69,68,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,49,49,41,32,105,110,32,104,105,103,104,112,32,118,101,99,52,32,117,115,101,114,100,97,116,97,54,59,10,35,101,110,100,105,102,10,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,99,111,108,111,114,59,32,47,47,116,102,98,58,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,118,101,108,111,99,105,116,121,95,102,108,97,103,115,59,32,47,47,116,102,98,58,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,99,117,115,116,111,109,59,32,47,47,116,102,98,58,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,120,102,111,114,109,95,49,59,32,47,47,116,102,98,58,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,120,102,111,114,109,95,50,59,32,47,47,116,102,98,58,10,35,105,102,100,101,102,32,77,79,68,69,95,51,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,120,102,111,114,109,95,51,59,32,47,47,116,102,98,58,77,79,68,69,95,51,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,49,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,49,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,49,95,85,83,69,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,50,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,50,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,50,95,85,83,69,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,51,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,51,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,51,95,85,83,69,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,52,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,52,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,52,95,85,83,69,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,53,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,53,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,53,95,85,83,69,68,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,82,68,65,84,65,54,95,85,83,69,68,10,111,117,116,32,104,105,103,104,112,32,118,101,99,52,32,111,117,116,95,117,115,101,114,100,97,116,97,54,59,32,47,47,116,102,98,58,85,83,69,82,68,65,84,65,54,95,85,83,69,68,10,35,101,110,100,105,102,10,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,59,32,47,47,116,101,120,117,110,105,116,58,48,10,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,108,105,102,101,116,105,109,101,59,10,117,110,105,102,111,114,109,32,98,111,111,108,32,99,108,101,97,114,59,10,117,110,105,102,111,114,109,32,117,105,110,116,32,116,111,116,97,108,95,112,97,114,116,105,99,108,101,115,59,10,117,110,105,102,111,114,109,32,98,111,111,108,32,117,115,101,95,102,114,97,99,116,105,111,110,97,108,95,100,101,108,116,97,59,10,10,117,105,110,116,32,104,97,115,104,40,117,105,110,116,32,120,41,32,123,10,9,120,32,61,32,40,40,120,32,62,62,32,117,105,110,116,40,49,54,41,41,32,94,32,120,41,32,42,32,117,105,110,116,40,48,120,52,53,100,57,102,51,98,41,59,10,9,120,32,61,32,40,40,120,32,62,62,32,117,105,110,116,40,49,54,41,41,32,94,32,120,41,32,42,32,117,105,110,116,40,48,120,52,53,100,57,102,51,98,41,59,10,9,120,32,61,32,40,120,32,62,62,32,117,105,110,116,40,49,54,41,41,32,94,32,120,59,10,9,114,101,116,117,114,110,32,120,59,10,125,10,10,118,101,99,51,32,115,97,102,101,95,110,111,114,109,97,108,105,122,101,40,118,101,99,51,32,100,105,114,101,99,116,105,111,110,41,32,123,10,9,99,111,110,115,116,32,102,108,111,97,116,32,69,80,83,73,76,79,78,32,61,32,48,46,48,48,49,59,10,9,105,102,32,40,108,101,110,103,116,104,40,100,105,114,101,99,116,105,111,110,41,32,60,32,69,80,83,73,76,79,78,41,32,123,10,9,9,114,101,116,117,114,110,32,118,101,99,51,40,48,46,48,41,59,10,9,125,10,9,114,101,116,117,114,110,32,110,111,114,109,97,108,105,122,101,40,100,105,114,101,99,116,105,111,110,41,59,10,125,10,10,47,47,32,78,101,101,100,101,100,32,119,104,101,110,101,118,101,114,32,50,68,32,115,100,102,32,116,101,120,116,117,114,101,32,105,115,32,114,101,97,100,32,102,114,111,109,32,97,115,32,105,116,32,105,115,32,112,97,99,107,101,100,32,105,110,32,82,71,66,65,56,46,10,102,108,111,97,116,32,118,101,99,52,95,116,111,95,102,108,111,97,116,40,118,101,99,52,32,112,95,118,101,99,41,32,123,10,9,114,101,116,117,114,110,32,100,111,116,40,112,95,118,101,99,44,32,118,101,99,52,40,49,46,48,32,47,32,40,50,53,53,46,48,32,42,32,50,53,53,46,48,32,42,32,50,53,53,46,48,41,44,32,49,46,48,32,47,32,40,50,53,53,46,48,32,42,32,50,53,53,46,48,41,44,32,49,46,48,32,47,32,50,53,53,46,48,44,32,49,46,48,41,41,32,42,32,50,46,48,32,45,32,49,46,48,59,10,125,10,10,35,71,76,79,66,65,76,83,10,10,118,111,105,100,32,109,97,105,110,40,41,32,123,10,9,98,111,111,108,32,97,112,112,108,121,95,102,111,114,99,101,115,32,61,32,116,114,117,101,59,10,9,98,111,111,108,32,97,112,112,108,121,95,118,101,108,111,99,105,116,121,32,61,32,116,114,117,101,59,10,9,102,108,111,97,116,32,108,111,99,97,108,95,100,101,108,116,97,32,61,32,100,101,108,116,97,59,10,10,9,102,108,111,97,116,32,109,97,115,115,32,61,32,49,46,48,59,10,10,9,98,111,111,108,32,114,101,115,116,97,114,116,32,61,32,102,97,108,115,101,59,10,10,9,98,111,111,108,32,114,101,115,116,97,114,116,95,112,111,115,105,116,105,111,110,32,61,32,102,97,108,115,101,59,10,9,98,111,111,108,32,114,101,115,116,97,114,116,95,114,111,116,97,116,105,111,110,95,115,99,97,108,101,32,61,32,102,97,108,115,101,59,10,9,98,111,111,108,32,114,101,115,116,97,114,116,95,118,101,108,111,99,105,116,121,32,61,32,102,97,108,115,101,59,10,9,98,111,111,108,32,114,101,115,116,97,114,116,95,99,111,108,111,114,32,61,32,102,97,108,115,101,59,10,9,98,111,111,108,32,114,101,115,116,97,114,116,95,99,117,115,116,111,109,32,61,32,102,97,108,115,101,59,10,10,9,109,97,116,52,32,120,102,111,114,109,32,61,32,109,97,116,52,40,49,46,48,41,59,10,9,117,105,110,116,32,102,108,97,103,115,32,61,32,48,117,59,10,10,9,105,102,32,40,99,108,101,97,114,41,32,123,10,9,9,111,117,116,95,99,111,108,111,114,32,61,32,118,101,99,52,40,49,46,48,41,59,10,9,9,111,117,116,95,99,117,115,116,111,109,32,61,32,118,101,99,52,40,48,46,48,41,59,10,9,9,111,117,116,95,118,101,108,111,99,105,116,121,95,102,108,97,103,115,32,61,32,118,101,99,52,40,48,46,48,41,59,10,9,125,32,101,108,115,101,32,123,10,9,9,111,117,116,95,99,111,108,111,114,32,61,32,99,111,108,111,114,59,10,9,9,111,117,116,95,118,101,108,111,99,105,116,121,95,102,108,97,103,115,32,61,32,118,101,108,111,99,105,116,121,95,102,108,97,103,115,59,10,9,9,111,117,116,95,99,117,115,116,111,109,32,61,32,99,117,115,116,111,109,59,10,9,9,120,102,111,114,109,91,48,93,32,61,32,120,102,111,114,109,95,49,59,10,9,9,120,102,111,114,109,91,49,93,32,61,32,120,102,111,114,109,95,50,59,10,35,105,102,100,101,102,32,77,79,68,69,95,51,68,10,9,9,120,102,111,114,109,91,50,93,32,61,32,120,102,111,114,109,95,51,59,10,35,101,110,100,105,102,10,9,9,120,102,111,114,109,32,61,32,116,114,97,110,115,112,111,115,101,40,120,102,111,114,109,41,59,10,9,9,102,108,97,103,115,32,61,32,102,108,111,97,116,66,105,116,115,84,111,85,105,110,116,40,118,101,108,111,99,105,116,121,95,102,108,97,103,115,46,119,41,59,10,9,125,10,10,9,47,47,99,108,101,97,114,32,115,116,97,114,116,101,100,32,102,108,97,103,32,105,102,32,115,101,116,10,9,102,108,97,103,115,32,38,61,32,126,80,65,82,84,73,67,76,69,95,70,76,65,71,95,83,84,65,82,84,69,68,59,10,10,9,98,111,111,108,32,99,111,108,108,105,100,101,100,32,61,32,102,97,108,115,101,59,10,9,118,101,99,51,32,99,111,108,108,105,115,105,111,110,95,110,111,114,109,97,108,32,61,32,118,101,99,51,40,48,46,48,41,59,10,9,102,108,111,97,116,32,99,111,108,108,105,115,105,111,110,95,100,101,112,116,104,32,61,32,48,46,48,59,10,10,9,118,101,99,51,32,97,116,116,114,97,99,116,111,114,95,102,111,114,99,101,32,61,32,118,101,99,51,40,48,46,48,41,59,10,10,35,105,102,32,33,100,101,102,105,110,101,100,40,68,73,83,65,66,76,69,95,86,69,76,79,67,73,84,89,41,10,10,9,105,102,32,40,98,111,111,108,40,102,108,97,103,115,32,38,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,41,41,32,123,10,9,9,120,102,111,114,109,91,51,93,46,120,121,122,32,43,61,32,111,117,116,95,118,101,108,111,99,105,116,121,95,102,108,97,103,115,46,120,121,122,32,42,32,108,111,99,97,108,95,100,101,108,116,97,59,10,9,125,10,35,101,110,100,105,102,10,9,117,105,110,116,32,105,110,100,101,120,32,61,32,117,105,110,116,40,103,108,95,86,101,114,116,101,120,73,68,41,59,10,9,105,102,32,40,101,109,105,116,116,105,110,103,41,32,123,10,9,9,102,108,111,97,116,32,114,101,115,116,97,114,116,95,112,104,97,115,101,32,61,32,102,108,111,97,116,40,105,110,100,101,120,41,32,47,32,102,108,111,97,116,40,116,111,116,97,108,95,112,97,114,116,105,99,108,101,115,41,59,10,10,9,9,105,102,32,40,114,97,110,100,111,109,110,101,115,115,32,62,32,48,46,48,41,32,123,10,9,9,9,117,105,110,116,32,115,101,101,100,32,61,32,99,121,99,108,101,59,10,9,9,9,105,102,32,40,114,101,115,116,97,114,116,95,112,104,97,115,101,32,62,61,32,115,121,115,116,101,109,95,112,104,97,115,101,41,32,123,10,9,9,9,9,115,101,101,100,32,45,61,32,117,105,110,116,40,49,41,59,10,9,9,9,125,10,9,9,9,115,101,101,100,32,42,61,32,117,105,110,116,40,116,111,116,97,108,95,112,97,114,116,105,99,108,101,115,41,59,10,9,9,9,115,101,101,100,32,43,61,32,105,110,100,101,120,59,10,9,9,9,102,108,111,97,116,32,114,97,110,100,111,109,32,61,32,102,108,111,97,116,40,104,97,115,104,40,115,101,101,100,41,32,37,32,117,105,110,116,40,54,53,53,51,54,41,41,32,47,32,54,53,53,51,54,46,48,59,10,9,9,9,114,101,115,116,97,114,116,95,112,104,97,115,101,32,43,61,32,114,97,110,100,111,109,110,101,115,115,32,42,32,114,97,110,100,111,109,32,42,32,49,46,48,32,47,32,102,108,111,97,116,40,116,111,116,97,108,95,112,97,114,116,105,99,108,101,115,41,59,10,9,9,125,10,10,9,9,114,101,115,116,97,114,116,95,112,104,97,115,101,32,42,61,32,40,49,46,48,32,45,32,101,120,112,108,111,115,105,118,101,110,101,115,115,41,59,10,10,9,9,105,102,32,40,115,121,115,116,101,109,95,112,104,97,115,101,32,62,32,112,114,101,118,95,115,121,115,116,101,109,95,112,104,97,115,101,41,32,123,10,9,9,9,47,47,32,114,101,115,116,97,114,116,95,112,104,97,115,101,32,62,61,32,112,114,101,118,95,115,121,115,116,101,109,95,112,104,97,115,101,32,105,115,32,117,115,101,100,32,115,111,32,112,97,114,116,105,99,108,101,115,32,101,109,105,116,32,105,110,32,116,104,101,32,102,105,114,115,116,32,102,114,97,109,101,32,116,104,101,121,32,97,114,101,32,112,114,111,99,101,115,115,101,100,10,10,9,9,9,105,102,32,40,114,101,115,116,97,114,116,95,112,104,97,115,101,32,62,61,32,112,114,101,118,95,115,121,115,116,101,109,95,112,104,97,115,101,32,38,38,32,114,101,115,116,97,114,116,95,112,104,97,115,101,32,60,32,115,121,115,116,101,109,95,112,104,97,115,101,41,32,123,10,9,9,9,9,114,101,115,116,97,114,116,32,61,32,116,114,117,101,59,10,9,9,9,9,105,102,32,40,117,115,101,95,102,114,97,99,116,105,111,110,97,108,95,100,101,108,116,97,41,32,123,10,9,9,9,9,9,108,111,99,97,108,95,100,101,108,116,97,32,61,32,40,115,121,115,116,101,109,95,112,104,97,115,101,32,45,32,114,101,115,116,97,114,116,95,112,104,97,115,101,41,32,42,32,108,105,102,101,116,105,109,101,59,10,9,9,9,9,125,10,9,9,9,125,10,10,9,9,125,32,101,108,115,101,32,105,102,32,40,100,101,108,116,97,32,62,32,48,46,48,41,32,123,10,9,9,9,105,102,32,40,114,101,115,116,97,114,116,95,112,104,97,115,101,32,62,61,32,112,114,101,118,95,115,121,115,116,101,109,95,112,104,97,115,101,41,32,123,10,9,9,9,9,114,101,115,116,97,114,116,32,61,32,116,114,117,101,59,10,9,9,9,9,105,102,32,40,117,115,101,95,102,114,97,99,116,105,111,110,97,108,95,100,101,108,116,97,41,32,123,10,9,9,9,9,9,108,111,99,97,108,95,100,101,108,116,97,32,61,32,40,49,46,48,32,45,32,114,101,115,116,97,114,116,95,112,104,97,115,101,32,43,32,115,121,115,116,101,109,95,112,104,97,115,101,41,32,42,32,108,105,102,101,116,105,109,101,59,10,9,9,9,9,125,10,10,9,9,9,125,32,101,108,115,101,32,105,102,32,40,114,101,115,116,97,114,116,95,112,104,97,115,101,32,60,32,115,121,115,116,101,109,95,112,104,97,115,101,41,32,123,10,9,9,9,9,114,101,115,116,97,114,116,32,61,32,116,114,117,101,59,10,9,9,9,9,105,102,32,40,117,115,101,95,102,114,97,99,116,105,111,110,97,108,95,100,101,108,116,97,41,32,123,10,9,9,9,9,9,108,111,99,97,108,95,100,101,108,116,97,32,61,32,40,115,121,115,116,101,109,95,112,104,97,115,101,32,45,32,114,101,115,116,97,114,116,95,112,104,97,115,101,41,32,42,32,108,105,102,101,116,105,109,101,59,10,9,9,9,9,125,10,9,9,9,125,10,9,9,125,10,10,9,9,105,102,32,40,114,101,115,116,97,114,116,41,32,123,10,9,9,9,102,108,97,103,115,32,61,32,101,109,105,116,116,105,110,103,32,63,32,40,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,32,124,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,83,84,65,82,84,69,68,32,124,32,40,99,121,99,108,101,32,60,60,32,80,65,82,84,73,67,76,69,95,70,82,65,77,69,95,83,72,73,70,84,41,41,32,58,32,48,117,59,10,9,9,9,114,101,115,116,97,114,116,95,112,111,115,105,116,105,111,110,32,61,32,116,114,117,101,59,10,9,9,9,114,101,115,116,97,114,116,95,114,111,116,97,116,105,111,110,95,115,99,97,108,101,32,61,32,116,114,117,101,59,10,9,9,9,114,101,115,116,97,114,116,95,118,101,108,111,99,105,116,121,32,61,32,116,114,117,101,59,10,9,9,9,114,101,115,116,97,114,116,95,99,111,108,111,114,32,61,32,116,114,117,101,59,10,9,9,9,114,101,115,116,97,114,116,95,99,117,115,116,111,109,32,61,32,116,114,117,101,59,10,9,9,125,10,9,125,10,10,9,98,111,111,108,32,112,97,114,116,105,99,108,101,95,97,99,116,105,118,101,32,61,32,98,111,111,108,40,102,108,97,103,115,32,38,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,41,59,10,10,9,117,105,110,116,32,112,97,114,116,105,99,108,101,95,110,117,109,98,101,114,32,61,32,40,102,108,97,103,115,32,62,62,32,80,65,82,84,73,67,76,69,95,70,82,65,77,69,95,83,72,73,70,84,41,32,42,32,117,105,110,116,40,116,111,116,97,108,95,112,97,114,116,105,99,108,101,115,41,32,43,32,105,110,100,101,120,59,10,10,9,105,102,32,40,114,101,115,116,97,114,116,32,38,38,32,112,97,114,116,105,99,108,101,95,97,99,116,105,118,101,41,32,123,10,35,67,79,68,69,32,58,32,83,84,65,82,84,10,9,125,10,10,9,105,102,32,40,112,97,114,116,105,99,108,101,95,97,99,116,105,118,101,41,32,123,10,9,9,102,111,114,32,40,117,105,110,116,32,105,32,61,32,48,117,59,32,105,32,60,32,97,116,116,114,97,99,116,111,114,95,99,111,117,110,116,59,32,105,43,43,41,32,123,10,9,9,9,118,101,99,51,32,100,105,114,59,10,9,9,9,102,108,111,97,116,32,97,109,111,117,110,116,59,10,9,9,9,118,101,99,51,32,114,101,108,95,118,101,99,32,61,32,120,102,111,114,109,91,51,93,46,120,121,122,32,45,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,91,51,93,46,120,121,122,59,10,9,9,9,118,101,99,51,32,108,111,99,97,108,95,112,111,115,32,61,32,114,101,108,95,118,101,99,32,42,32,109,97,116,51,40,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,41,59,10,10,9,9,9,105,102,32,40,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,121,112,101,32,61,61,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,83,80,72,69,82,69,41,32,123,10,9,9,9,9,100,105,114,32,61,32,115,97,102,101,95,110,111,114,109,97,108,105,122,101,40,114,101,108,95,118,101,99,41,59,10,9,9,9,9,102,108,111,97,116,32,100,32,61,32,108,101,110,103,116,104,40,108,111,99,97,108,95,112,111,115,41,32,47,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,59,10,9,9,9,9,105,102,32,40,100,32,62,32,49,46,48,41,32,123,10,9,9,9,9,9,99,111,110,116,105,110,117,101,59,10,9,9,9,9,125,10,9,9,9,9,97,109,111,117,110,116,32,61,32,109,97,120,40,48,46,48,44,32,49,46,48,32,45,32,100,41,59,10,9,9,9,125,32,101,108,115,101,32,105,102,32,40,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,121,112,101,32,61,61,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,66,79,88,41,32,123,10,9,9,9,9,100,105,114,32,61,32,115,97,102,101,95,110,111,114,109,97,108,105,122,101,40,114,101,108,95,118,101,99,41,59,10,10,9,9,9,9,118,101,99,51,32,97,98,115,95,112,111,115,32,61,32,97,98,115,40,108,111,99,97,108,95,112,111,115,32,47,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,59,10,9,9,9,9,102,108,111,97,116,32,100,32,61,32,109,97,120,40,97,98,115,95,112,111,115,46,120,44,32,109,97,120,40,97,98,115,95,112,111,115,46,121,44,32,97,98,115,95,112,111,115,46,122,41,41,59,10,9,9,9,9,105,102,32,40,100,32,62,32,49,46,48,41,32,123,10,9,9,9,9,9,99,111,110,116,105,110,117,101,59,10,9,9,9,9,125,10,9,9,9,9,97,109,111,117,110,116,32,61,32,109,97,120,40,48,46,48,44,32,49,46,48,32,45,32,100,41,59,10,9,9,9,125,32,101,108,115,101,32,105,102,32,40,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,121,112,101,32,61,61,32,65,84,84,82,65,67,84,79,82,95,84,89,80,69,95,86,69,67,84,79,82,95,70,73,69,76,68,41,32,123,10,9,9,9,125,10,9,9,9,97,109,111,117,110,116,32,61,32,112,111,119,40,97,109,111,117,110,116,44,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,97,116,116,101,110,117,97,116,105,111,110,41,59,10,9,9,9,100,105,114,32,61,32,115,97,102,101,95,110,111,114,109,97,108,105,122,101,40,109,105,120,40,100,105,114,44,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,91,50,93,46,120,121,122,44,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,100,105,114,101,99,116,105,111,110,97,108,105,116,121,41,41,59,10,9,9,9,97,116,116,114,97,99,116,111,114,95,102,111,114,99,101,32,45,61,32,97,109,111,117,110,116,32,42,32,100,105,114,32,42,32,97,116,116,114,97,99,116,111,114,115,91,105,93,46,115,116,114,101,110,103,116,104,59,10,9,9,125,10,10,9,9,102,108,111,97,116,32,112,97,114,116,105,99,108,101,95,115,105,122,101,32,61,32,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,10,35,105,102,100,101,102,32,85,83,69,95,67,79,76,76,73,83,73,79,78,95,83,67,65,76,69,10,10,9,9,112,97,114,116,105,99,108,101,95,115,105,122,101,32,42,61,32,100,111,116,40,118,101,99,51,40,108,101,110,103,116,104,40,120,102,111,114,109,91,48,93,46,120,121,122,41,44,32,108,101,110,103,116,104,40,120,102,111,114,109,91,49,93,46,120,121,122,41,44,32,108,101,110,103,116,104,40,120,102,111,114,109,91,50,93,46,120,121,122,41,41,44,32,118,101,99,51,40,48,46,51,51,51,51,51,51,51,51,51,51,51,41,41,59,10,10,35,101,110,100,105,102,10,10,9,9,105,102,32,40,99,111,108,108,105,100,101,114,95,99,111,117,110,116,32,61,61,32,49,117,32,38,38,32,99,111,108,108,105,100,101,114,115,91,48,93,46,116,121,112,101,32,61,61,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,50,68,95,83,68,70,41,32,123,10,9,9,9,47,47,50,68,32,99,111,108,108,105,115,105,111,110,10,10,9,9,9,118,101,99,50,32,112,111,115,32,61,32,120,102,111,114,109,91,51,93,46,120,121,59,10,9,9,9,118,101,99,52,32,116,111,95,115,100,102,95,120,32,61,32,99,111,108,108,105,100,101,114,115,91,48,93,46,116,114,97,110,115,102,111,114,109,91,48,93,59,10,9,9,9,118,101,99,52,32,116,111,95,115,100,102,95,121,32,61,32,99,111,108,108,105,100,101,114,115,91,48,93,46,116,114,97,110,115,102,111,114,109,91,49,93,59,10,9,9,9,118,101,99,50,32,115,100,102,95,112,111,115,32,61,32,118,101,99,50,40,100,111,116,40,118,101,99,52,40,112,111,115,44,32,48,44,32,49,41,44,32,116,111,95,115,100,102,95,120,41,44,32,100,111,116,40,118,101,99,52,40,112,111,115,44,32,48,44,32,49,41,44,32,116,111,95,115,100,102,95,121,41,41,59,10,10,9,9,9,118,101,99,52,32,115,100,102,95,116,111,95,115,99,114,101,101,110,32,61,32,118,101,99,52,40,99,111,108,108,105,100,101,114,115,91,48,93,46,101,120,116,101,110,116,115,46,120,121,122,44,32,99,111,108,108,105,100,101,114,115,91,48,93,46,115,99,97,108,101,41,59,10,10,9,9,9,118,101,99,50,32,117,118,95,112,111,115,32,61,32,115,100,102,95,112,111,115,32,42,32,115,100,102,95,116,111,95,115,99,114,101,101,110,46,120,121,32,43,32,115,100,102,95,116,111,95,115,99,114,101,101,110,46,122,119,59,10,10,9,9,9,105,102,32,40,97,108,108,40,103,114,101,97,116,101,114,84,104,97,110,40,117,118,95,112,111,115,44,32,118,101,99,50,40,48,46,48,41,41,41,32,38,38,32,97,108,108,40,108,101,115,115,84,104,97,110,40,117,118,95,112,111,115,44,32,118,101,99,50,40,49,46,48,41,41,41,41,32,123,10,9,9,9,9,118,101,99,50,32,112,111,115,50,32,61,32,112,111,115,32,43,32,118,101,99,50,40,48,44,32,112,97,114,116,105,99,108,101,95,115,105,122,101,41,59,10,9,9,9,9,118,101,99,50,32,115,100,102,95,112,111,115,50,32,61,32,118,101,99,50,40,100,111,116,40,118,101,99,52,40,112,111,115,50,44,32,48,44,32,49,41,44,32,116,111,95,115,100,102,95,120,41,44,32,100,111,116,40,118,101,99,52,40,112,111,115,50,44,32,48,44,32,49,41,44,32,116,111,95,115,100,102,95,121,41,41,59,10,9,9,9,9,102,108,111,97,116,32,115,100,102,95,112,97,114,116,105,99,108,101,95,115,105,122,101,32,61,32,100,105,115,116,97,110,99,101,40,115,100,102,95,112,111,115,44,32,115,100,102,95,112,111,115,50,41,59,10,10,9,9,9,9,102,108,111,97,116,32,100,32,61,32,118,101,99,52,95,116,111,95,102,108,111,97,116,40,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,95,112,111,115,41,41,32,42,32,83,68,70,95,77,65,88,95,76,69,78,71,84,72,59,10,10,9,9,9,9,100,32,45,61,32,115,100,102,95,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,10,9,9,9,9,105,102,32,40,100,32,60,32,48,46,48,41,32,123,10,9,9,9,9,9,99,111,110,115,116,32,102,108,111,97,116,32,69,80,83,73,76,79,78,32,61,32,48,46,48,48,49,59,10,9,9,9,9,9,118,101,99,50,32,110,32,61,32,110,111,114,109,97,108,105,122,101,40,118,101,99,50,40,10,9,9,9,9,9,9,9,118,101,99,52,95,116,111,95,102,108,111,97,116,40,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,95,112,111,115,32,43,32,118,101,99,50,40,69,80,83,73,76,79,78,44,32,48,46,48,41,41,41,32,45,32,118,101,99,52,95,116,111,95,102,108,111,97,116,40,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,95,112,111,115,32,45,32,118,101,99,50,40,69,80,83,73,76,79,78,44,32,48,46,48,41,41,41,44,10,9,9,9,9,9,9,9,118,101,99,52,95,116,111,95,102,108,111,97,116,40,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,95,112,111,115,32,43,32,118,101,99,50,40,48,46,48,44,32,69,80,83,73,76,79,78,41,41,41,32,45,32,118,101,99,52,95,116,111,95,102,108,111,97,116,40,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,95,112,111,115,32,45,32,118,101,99,50,40,48,46,48,44,32,69,80,83,73,76,79,78,41,41,41,41,41,59,10,10,9,9,9,9,9,99,111,108,108,105,100,101,100,32,61,32,116,114,117,101,59,10,9,9,9,9,9,115,100,102,95,112,111,115,50,32,61,32,115,100,102,95,112,111,115,32,43,32,110,32,42,32,100,59,10,9,9,9,9,9,112,111,115,50,32,61,32,118,101,99,50,40,100,111,116,40,118,101,99,52,40,115,100,102,95,112,111,115,50,44,32,48,44,32,49,41,44,32,99,111,108,108,105,100,101,114,115,91,48,93,46,116,114,97,110,115,102,111,114,109,91,50,93,41,44,32,100,111,116,40,118,101,99,52,40,115,100,102,95,112,111,115,50,44,32,48,44,32,49,41,44,32,99,111,108,108,105,100,101,114,115,91,48,93,46,116,114,97,110,115,102,111,114,109,91,51,93,41,41,59,10,10,9,9,9,9,9,110,32,61,32,112,111,115,32,45,32,112,111,115,50,59,10,10,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,105,122,101,40,118,101,99,51,40,110,44,32,48,46,48,41,41,59,10,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,100,101,112,116,104,32,61,32,108,101,110,103,116,104,40,110,41,59,10,9,9,9,9,125,10,9,9,9,125,10,10,9,9,125,32,101,108,115,101,32,123,10,9,9,9,102,111,114,32,40,117,105,110,116,32,105,32,61,32,48,117,59,32,105,32,60,32,99,111,108,108,105,100,101,114,95,99,111,117,110,116,59,32,105,43,43,41,32,123,10,9,9,9,9,118,101,99,51,32,110,111,114,109,97,108,59,10,9,9,9,9,102,108,111,97,116,32,100,101,112,116,104,59,10,9,9,9,9,98,111,111,108,32,99,111,108,32,61,32,102,97,108,115,101,59,10,10,9,9,9,9,118,101,99,51,32,114,101,108,95,118,101,99,32,61,32,120,102,111,114,109,91,51,93,46,120,121,122,32,45,32,99,111,108,108,105,100,101,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,91,51,93,46,120,121,122,59,10,9,9,9,9,118,101,99,51,32,108,111,99,97,108,95,112,111,115,32,61,32,114,101,108,95,118,101,99,32,42,32,109,97,116,51,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,41,59,10,10,9,9,9,9,105,102,32,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,121,112,101,32,61,61,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,83,80,72,69,82,69,41,32,123,10,9,9,9,9,9,102,108,111,97,116,32,100,32,61,32,108,101,110,103,116,104,40,114,101,108,95,118,101,99,41,32,45,32,40,112,97,114,116,105,99,108,101,95,115,105,122,101,32,43,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,41,59,10,10,9,9,9,9,9,105,102,32,40,100,32,60,32,48,46,48,41,32,123,10,9,9,9,9,9,9,99,111,108,32,61,32,116,114,117,101,59,10,9,9,9,9,9,9,100,101,112,116,104,32,61,32,45,100,59,10,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,105,122,101,40,114,101,108,95,118,101,99,41,59,10,9,9,9,9,9,125,10,9,9,9,9,125,32,101,108,115,101,32,105,102,32,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,121,112,101,32,61,61,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,66,79,88,41,32,123,10,9,9,9,9,9,118,101,99,51,32,97,98,115,95,112,111,115,32,61,32,97,98,115,40,108,111,99,97,108,95,112,111,115,41,59,10,9,9,9,9,9,118,101,99,51,32,115,103,110,95,112,111,115,32,61,32,115,105,103,110,40,108,111,99,97,108,95,112,111,115,41,59,10,10,9,9,9,9,9,105,102,32,40,97,110,121,40,103,114,101,97,116,101,114,84,104,97,110,40,97,98,115,95,112,111,115,44,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,41,41,32,123,10,9,9,9,9,9,9,47,47,112,111,105,110,116,32,111,117,116,115,105,100,101,32,98,111,120,10,10,9,9,9,9,9,9,118,101,99,51,32,99,108,111,115,101,115,116,32,61,32,109,105,110,40,97,98,115,95,112,111,115,44,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,59,10,9,9,9,9,9,9,118,101,99,51,32,114,101,108,32,61,32,97,98,115,95,112,111,115,32,45,32,99,108,111,115,101,115,116,59,10,9,9,9,9,9,9,100,101,112,116,104,32,61,32,108,101,110,103,116,104,40,114,101,108,41,32,45,32,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,9,9,9,9,9,9,105,102,32,40,100,101,112,116,104,32,60,32,48,46,48,41,32,123,10,9,9,9,9,9,9,9,99,111,108,32,61,32,116,114,117,101,59,10,9,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,109,97,116,51,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,41,32,42,32,40,110,111,114,109,97,108,105,122,101,40,114,101,108,41,32,42,32,115,103,110,95,112,111,115,41,59,10,9,9,9,9,9,9,9,100,101,112,116,104,32,61,32,45,100,101,112,116,104,59,10,9,9,9,9,9,9,125,10,9,9,9,9,9,125,32,101,108,115,101,32,123,10,9,9,9,9,9,9,47,47,112,111,105,110,116,32,105,110,115,105,100,101,32,98,111,120,10,9,9,9,9,9,9,118,101,99,51,32,97,120,105,115,95,108,101,110,32,61,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,32,45,32,97,98,115,95,112,111,115,59,10,9,9,9,9,9,9,47,47,32,116,104,101,114,101,32,104,97,115,32,116,111,32,98,101,32,97,32,102,97,115,116,101,114,32,119,97,121,32,116,111,32,100,111,32,116,104,105,115,63,10,9,9,9,9,9,9,105,102,32,40,97,108,108,40,108,101,115,115,84,104,97,110,40,97,120,105,115,95,108,101,110,46,120,120,44,32,97,120,105,115,95,108,101,110,46,121,122,41,41,41,32,123,10,9,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,118,101,99,51,40,49,44,32,48,44,32,48,41,59,10,9,9,9,9,9,9,125,32,101,108,115,101,32,105,102,32,40,97,108,108,40,108,101,115,115,84,104,97,110,40,97,120,105,115,95,108,101,110,46,121,121,44,32,97,120,105,115,95,108,101,110,46,120,122,41,41,41,32,123,10,9,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,118,101,99,51,40,48,44,32,49,44,32,48,41,59,10,9,9,9,9,9,9,125,32,101,108,115,101,32,123,10,9,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,118,101,99,51,40,48,44,32,48,44,32,49,41,59,10,9,9,9,9,9,9,125,10,10,9,9,9,9,9,9,99,111,108,32,61,32,116,114,117,101,59,10,9,9,9,9,9,9,100,101,112,116,104,32,61,32,100,111,116,40,110,111,114,109,97,108,32,42,32,97,120,105,115,95,108,101,110,44,32,118,101,99,51,40,49,41,41,32,43,32,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,109,97,116,51,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,114,97,110,115,102,111,114,109,41,32,42,32,40,110,111,114,109,97,108,32,42,32,115,103,110,95,112,111,115,41,59,10,9,9,9,9,9,125,10,9,9,9,9,125,32,101,108,115,101,32,105,102,32,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,121,112,101,32,61,61,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,83,68,70,41,32,123,10,9,9,9,9,125,32,101,108,115,101,32,105,102,32,40,99,111,108,108,105,100,101,114,115,91,105,93,46,116,121,112,101,32,61,61,32,67,79,76,76,73,68,69,82,95,84,89,80,69,95,72,69,73,71,72,84,95,70,73,69,76,68,41,32,123,10,9,9,9,9,9,118,101,99,51,32,108,111,99,97,108,95,112,111,115,95,98,111,116,116,111,109,32,61,32,108,111,99,97,108,95,112,111,115,59,10,9,9,9,9,9,108,111,99,97,108,95,112,111,115,95,98,111,116,116,111,109,46,121,32,45,61,32,112,97,114,116,105,99,108,101,95,115,105,122,101,59,10,10,9,9,9,9,9,105,102,32,40,97,110,121,40,103,114,101,97,116,101,114,84,104,97,110,40,97,98,115,40,108,111,99,97,108,95,112,111,115,95,98,111,116,116,111,109,41,44,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,41,41,32,123,10,9,9,9,9,9,9,99,111,110,116,105,110,117,101,59,10,9,9,9,9,9,125,10,9,9,9,9,9,99,111,110,115,116,32,102,108,111,97,116,32,68,69,76,84,65,32,61,32,49,46,48,32,47,32,56,49,57,50,46,48,59,10,10,9,9,9,9,9,118,101,99,51,32,117,118,119,95,112,111,115,32,61,32,118,101,99,51,40,108,111,99,97,108,95,112,111,115,95,98,111,116,116,111,109,32,47,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,32,42,32,48,46,53,32,43,32,48,46,53,59,10,10,9,9,9,9,9,102,108,111,97,116,32,121,32,61,32,49,46,48,32,45,32,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,119,95,112,111,115,46,120,122,41,46,114,59,10,10,9,9,9,9,9,105,102,32,40,121,32,62,32,117,118,119,95,112,111,115,46,121,41,32,123,10,9,9,9,9,9,9,47,47,105,110,115,105,100,101,32,104,101,105,103,104,116,102,105,101,108,100,10,10,9,9,9,9,9,9,118,101,99,51,32,112,111,115,49,32,61,32,40,118,101,99,51,40,117,118,119,95,112,111,115,46,120,44,32,121,44,32,117,118,119,95,112,111,115,46,122,41,32,42,32,50,46,48,32,45,32,49,46,48,41,32,42,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,59,10,9,9,9,9,9,9,118,101,99,51,32,112,111,115,50,32,61,32,40,118,101,99,51,40,117,118,119,95,112,111,115,46,120,32,43,32,68,69,76,84,65,44,32,49,46,48,32,45,32,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,119,95,112,111,115,46,120,122,32,43,32,118,101,99,50,40,68,69,76,84,65,44,32,48,41,41,46,114,44,32,117,118,119,95,112,111,115,46,122,41,32,42,32,50,46,48,32,45,32,49,46,48,41,32,42,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,59,10,9,9,9,9,9,9,118,101,99,51,32,112,111,115,51,32,61,32,40,118,101,99,51,40,117,118,119,95,112,111,115,46,120,44,32,49,46,48,32,45,32,116,101,120,116,117,114,101,40,104,101,105,103,104,116,95,102,105,101,108,100,95,116,101,120,116,117,114,101,44,32,117,118,119,95,112,111,115,46,120,122,32,43,32,118,101,99,50,40,48,44,32,68,69,76,84,65,41,41,46,114,44,32,117,118,119,95,112,111,115,46,122,32,43,32,68,69,76,84,65,41,32,42,32,50,46,48,32,45,32,49,46,48,41,32,42,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,59,10,10,9,9,9,9,9,9,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,105,122,101,40,99,114,111,115,115,40,112,111,115,49,32,45,32,112,111,115,50,44,32,112,111,115,49,32,45,32,112,111,115,51,41,41,59,10,9,9,9,9,9,9,102,108,111,97,116,32,108,111,99,97,108,95,121,32,61,32,40,118,101,99,51,40,108,111,99,97,108,95,112,111,115,32,47,32,99,111,108,108,105,100,101,114,115,91,105,93,46,101,120,116,101,110,116,115,46,120,121,122,41,32,42,32,48,46,53,32,43,32,48,46,53,41,46,121,59,10,10,9,9,9,9,9,9,99,111,108,32,61,32,116,114,117,101,59,10,9,9,9,9,9,9,100,101,112,116,104,32,61,32,100,111,116,40,110,111,114,109,97,108,44,32,112,111,115,49,41,32,45,32,100,111,116,40,110,111,114,109,97,108,44,32,108,111,99,97,108,95,112,111,115,95,98,111,116,116,111,109,41,59,10,9,9,9,9,9,125,10,9,9,9,9,125,10,10,9,9,9,9,105,102,32,40,99,111,108,41,32,123,10,9,9,9,9,9,105,102,32,40,33,99,111,108,108,105,100,101,100,41,32,123,10,9,9,9,9,9,9,99,111,108,108,105,100,101,100,32,61,32,116,114,117,101,59,10,9,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,59,10,9,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,100,101,112,116,104,32,61,32,100,101,112,116,104,59,10,9,9,9,9,9,125,32,101,108,115,101,32,123,10,9,9,9,9,9,9,118,101,99,51,32,99,32,61,32,99,111,108,108,105,115,105,111,110,95,110,111,114,109,97,108,32,42,32,99,111,108,108,105,115,105,111,110,95,100,101,112,116,104,59,10,9,9,9,9,9,9,99,32,43,61,32,110,111,114,109,97,108,32,42,32,109,97,120,40,48,46,48,44,32,100,101,112,116,104,32,45,32,100,111,116,40,110,111,114,109,97,108,44,32,99,41,41,59,10,9,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,105,122,101,40,99,41,59,10,9,9,9,9,9,9,99,111,108,108,105,115,105,111,110,95,100,101,112,116,104,32,61,32,108,101,110,103,116,104,40,99,41,59,10,9,9,9,9,9,125,10,9,9,9,9,125,10,9,9,9,125,10,9,9,125,10,9,125,10,10,9,105,102,32,40,112,97,114,116,105,99,108,101,95,97,99,116,105,118,101,41,32,123,10,35,67,79,68,69,32,58,32,80,82,79,67,69,83,83,10,9,125,10,10,9,102,108,97,103,115,32,38,61,32,126,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,59,10,9,105,102,32,40,112,97,114,116,105,99,108,101,95,97,99,116,105,118,101,41,32,123,10,9,9,102,108,97,103,115,32,124,61,32,80,65,82,84,73,67,76,69,95,70,76,65,71,95,65,67,84,73,86,69,59,10,9,125,10,10,9,120,102,111,114,109,32,61,32,116,114,97,110,115,112,111,115,101,40,120,102,111,114,109,41,59,10,9,111,117,116,95,120,102,111,114,109,95,49,32,61,32,120,102,111,114,109,91,48,93,59,10,9,111,117,116,95,120,102,111,114,109,95,50,32,61,32,120,102,111,114,109,91,49,93,59,10,35,105,102,100,101,102,32,77,79,68,69,95,51,68,10,9,111,117,116,95,120,102,111,114,109,95,51,32,61,32,120,102,111,114,109,91,50,93,59,10,35,101,110,100,105,102,10,9,111,117,116,95,118,101,108,111,99,105,116,121,95,102,108,97,103,115,46,119,32,61,32,117,105,110,116,66,105,116,115,84,111,70,108,111,97,116,40,102,108,97,103,115,41,59,10,125,10,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,102,102,32,42,47,10, 0};
194
195 static const char _fragment_code[]={
19610,118,111,105,100,32,109,97,105,110,40,41,32,123,10,125,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,110,32,42,47,10, 0};
197
198 _setup(_vertex_code,_fragment_code,"ParticlesShaderGLES3",5,_uniform_strings,3,_ubo_pairs,12,_feedbacks,1,_texunit_pairs,7,_spec_pairs,1,_variant_defines);
199 }
200
201};
202
203#endif
204
205