Delete most of the comments.
authorMichal Krol <mjkrol@gmail.org>
Mon, 13 Feb 2006 11:40:32 +0000 (11:40 +0000)
committerMichal Krol <mjkrol@gmail.org>
Mon, 13 Feb 2006 11:40:32 +0000 (11:40 +0000)
Minor tweaks with the functions.
Add experimental print functions.

src/mesa/shader/slang/library/slang_core.gc
src/mesa/shader/slang/library/slang_core_gc.h

index d1d2cb1..3f976d5 100755 (executable)
@@ -1,17 +1,17 @@
 \r
-// \r
+//\r
 // This file defines nearly all constructors and operators for built-in data types, using\r
 // extended language syntax. In general, compiler treats constructors and operators as\r
 // ordinary functions with some exceptions. For example, the language does not allow\r
 // functions to be called in constant expressions - here the exception is made to allow it.\r
-// \r
+//\r
 // Each implementation provides its own version of this file. Each implementation can define\r
 // the required set of operators and constructors in its own fashion.\r
-// \r
+//\r
 // The extended language syntax is only present when compiling this file. It is implicitly\r
 // included at the very beginning of the compiled shader, so no built-in functions can be\r
 // used.\r
-// \r
+//\r
 // To communicate with the implementation, a special extended "__asm" keyword is used, followed\r
 // by an instruction name (any valid identifier), a destination variable identifier and a\r
 // a list of zero or more source variable identifiers. A variable identifier is a variable name\r
 // An instruction name designates an instruction that must be exported by the implementation.\r
 // Each instruction receives data from source variable identifiers and returns data in the\r
 // destination variable identifier.\r
-// \r
+//\r
 // It is up to the implementation how to define a particular operator or constructor. If it is\r
 // expected to being used rarely, it can be defined in terms of other operators and constructors,\r
 // for example:\r
-// \r
+//\r
 // ivec2 __operator + (const ivec2 x, const ivec2 y) {\r
 //    return ivec2 (x[0] + y[0], x[1] + y[1]);\r
 // }\r
-// \r
+//\r
 // If a particular operator or constructor is expected to be used very often or is an atomic\r
 // operation (that is, an operation that cannot be expressed in terms of other operations or\r
 // would create a dependency cycle) it must be defined using one or more __asm constructs.\r
-// \r
+//\r
 // Each implementation must define constructors for all scalar types (bool, float, int).\r
 // There are 9 scalar-to-scalar constructors (including identity constructors). However,\r
 // since the language introduces special constructors (like matrix constructor with a single\r
@@ -44,7 +44,7 @@
 //   our constructor's type, raise an error,\r
 // - for each parameter in the list do a recursive constructor matching for appropriate\r
 //   scalar fields in the constructed variable,\r
-// \r
+//\r
 // Each implementation must also define a set of operators that deal with built-in data types.\r
 // There are four kinds of operators:\r
 // 1) Operators that are implemented only by the compiler: "()" (function call), "," (sequence)\r
 // 4) All other operators not mentioned above. If no required prototype is found, an error is\r
 //    raised. An implementation must follow the language specification to provide all valid\r
 //    operator prototypes.\r
-// \r
+//\r
 \r
-int __constructor (const float _f) {\r
-    int _i;\r
-    __asm float_to_int _i, _f;\r
-    return _i;\r
+int __constructor (const float f) {\r
+    int i;\r
+    __asm float_to_int i, f;\r
+    return i;\r
 }\r
 \r
-bool __constructor (const int _i) {\r
-    return _i != 0;\r
+bool __constructor (const int i) {\r
+    return i != 0;\r
 }\r
 \r
-bool __constructor (const float _f) {\r
-    return _f != 0.0;\r
+bool __constructor (const float f) {\r
+    return f != 0.0;\r
 }\r
 \r
-int __constructor (const bool _b) {\r
-    return _b ? 1 : 0;\r
+int __constructor (const bool b) {\r
+    return b ? 1 : 0;\r
 }\r
 \r
-float __constructor (const bool _b) {\r
-    return _b ? 1.0 : 0.0;\r
+float __constructor (const bool b) {\r
+    return b ? 1.0 : 0.0;\r
 }\r
 \r
-float __constructor (const int _i) {\r
-    float _f;\r
-    __asm int_to_float _f, _i;\r
-    return _f;\r
+float __constructor (const int i) {\r
+    float f;\r
+    __asm int_to_float f, i;\r
+    return f;\r
 }\r
 \r
-bool __constructor (const bool _b) {\r
-    return _b;\r
+bool __constructor (const bool b) {\r
+    return b;\r
 }\r
 \r
-int __constructor (const int _i) {\r
-    return _i;\r
+int __constructor (const int i) {\r
+    return i;\r
 }\r
 \r
-float __constructor (const float _f) {\r
-    return _f;\r
+float __constructor (const float f) {\r
+    return f;\r
 }\r
 \r
-vec2 __constructor (const float _f) {\r
-    return vec2 (_f, _f);\r
+vec2 __constructor (const float f) {\r
+    vec2 u;\r
+    u.x = f;\r
+    u.y = f;\r
+    return u;\r
 }\r
 \r
-vec2 __constructor (const int _i) {\r
-    return vec2 (_i, _i);\r
+vec2 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return vec2 (x);\r
 }\r
 \r
-vec2 __constructor (const bool _b) {\r
-    return vec2 (_b, _b);\r
+vec2 __constructor (const bool b) {\r
+    return vec2 (b ? 1.0 : 0.0);\r
 }\r
 \r
-vec3 __constructor (const float _f) {\r
-    return vec3 (_f, _f, _f);\r
+vec3 __constructor (const float f) {\r
+    vec3 u;\r
+    u.x = f;\r
+    u.y = f;\r
+    u.z = f;\r
+    return u;\r
 }\r
 \r
-vec3 __constructor (const int _i) {\r
-    return vec3 (_i, _i, _i);\r
+vec3 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return vec3 (x);\r
 }\r
 \r
-vec3 __constructor (const bool _b) {\r
-    return vec3 (_b, _b, _b);\r
+vec3 __constructor (const bool b) {\r
+    return vec3 (b ? 1.0 : 0.0);\r
 }\r
 \r
-vec4 __constructor (const float _f) {\r
-    return vec4 (_f, _f, _f, _f);\r
+vec4 __constructor (const float f) {\r
+    vec4 u;\r
+    u.x = f;\r
+    u.y = f;\r
+    u.z = f;\r
+    u.w = f;\r
+    return u;\r
 }\r
 \r
-vec4 __constructor (const int _i) {\r
-    return vec4 (_i, _i, _i, _i);\r
+vec4 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return vec4 (x);\r
 }\r
 \r
-vec4 __constructor (const bool _b) {\r
-    return vec4 (_b, _b, _b, _b);\r
+vec4 __constructor (const bool b) {\r
+    return vec4 (b ? 1.0 : 0.0);\r
 }\r
 \r
-ivec2 __constructor (const int _i) {\r
-    return ivec2 (_i, _i);\r
+ivec2 __constructor (const int i) {\r
+    ivec2 u;\r
+    u.x = i;\r
+    u.y = i;\r
+    return u;\r
 }\r
 \r
-ivec2 __constructor (const float _f) {\r
-    return ivec2 (_f, _f);\r
+ivec2 __constructor (const float f) {\r
+    return ivec2 (int (f));\r
 }\r
 \r
-ivec2 __constructor (const bool _b) {\r
-    return ivec2 (_b, _b);\r
+ivec2 __constructor (const bool b) {\r
+    return ivec2 (int (b));\r
 }\r
 \r
-ivec3 __constructor (const int _i) {\r
-    return ivec3 (_i, _i, _i);\r
+ivec3 __constructor (const int i) {\r
+    ivec3 u;\r
+    u.x = i;\r
+    u.y = i;\r
+    u.z = i;\r
+    return u;\r
 }\r
 \r
-ivec3 __constructor (const float _f) {\r
-    return ivec3 (_f, _f, _f);\r
+ivec3 __constructor (const float f) {\r
+    return ivec3 (int (f));\r
 }\r
 \r
-ivec3 __constructor (const bool _b) {\r
-    return ivec3 (_b, _b, _b);\r
+ivec3 __constructor (const bool b) {\r
+    return ivec3 (int (b));\r
 }\r
 \r
-ivec4 __constructor (const int _i) {\r
-    return ivec4 (_i, _i, _i, _i);\r
+ivec4 __constructor (const int i) {\r
+    ivec4 u;\r
+    u.x = i;\r
+    u.y = i;\r
+    u.z = i;\r
+    u.w = i;\r
+    return u;\r
 }\r
 \r
-ivec4 __constructor (const float _f) {\r
-    return ivec4 (_f, _f, _f, _f);\r
+ivec4 __constructor (const float f) {\r
+    return ivec4 (int (f));\r
 }\r
 \r
-ivec4 __constructor (const bool _b) {\r
-    return ivec4 (_b, _b, _b, _b);\r
+ivec4 __constructor (const bool b) {\r
+    return ivec4 (int (b));\r
 }\r
 \r
-bvec2 __constructor (const bool _b) {\r
-    return bvec2 (_b, _b);\r
+bvec2 __constructor (const bool b) {\r
+    bvec2 u;\r
+    u.x = b;\r
+    u.y = b;\r
+    return u;\r
 }\r
 \r
-bvec2 __constructor (const float _f) {\r
-    return bvec2 (_f, _f);\r
+bvec2 __constructor (const float f) {\r
+    return bvec2 (bool (f));\r
 }\r
 \r
-bvec2 __constructor (const int _i) {\r
-    return bvec2 (_i, _i);\r
+bvec2 __constructor (const int i) {\r
+    return bvec2 (bool (i));\r
 }\r
 \r
-bvec3 __constructor (const bool _b) {\r
-    return bvec3 (_b, _b, _b);\r
+bvec3 __constructor (const bool b) {\r
+    bvec3 u;\r
+    u.x = b;\r
+    u.y = b;\r
+    u.z = b;\r
+    return u;\r
 }\r
 \r
-bvec3 __constructor (const float _f) {\r
-    return bvec3 (_f, _f, _f);\r
+bvec3 __constructor (const float f) {\r
+    return bvec3 (bool (f));\r
 }\r
 \r
-bvec3 __constructor (const int _i) {\r
-    return bvec3 (_i, _i, _i);\r
+bvec3 __constructor (const int i) {\r
+    return bvec3 (bool (i));\r
 }\r
 \r
-bvec4 __constructor (const bool _b) {\r
-    return bvec4 (_b, _b, _b, _b);\r
+bvec4 __constructor (const bool b) {\r
+    bvec4 u;\r
+    u.x = b;\r
+    u.y = b;\r
+    u.z = b;\r
+    u.w = b;\r
+    return u;\r
 }\r
 \r
-bvec4 __constructor (const float _f) {\r
-    return bvec4 (_f, _f, _f, _f);\r
+bvec4 __constructor (const float f) {\r
+    return bvec4 (bool (f));\r
 }\r
 \r
-bvec4 __constructor (const int _i) {\r
-    return bvec4 (_i, _i, _i, _i);\r
+bvec4 __constructor (const int i) {\r
+    return bvec4 (bool (i));\r
 }\r
 \r
-mat2 __constructor (const float _f) {\r
-    return mat2 (\r
-        _f, .0,\r
-        .0, _f\r
-    );\r
+mat2 __constructor (const float f) {\r
+    mat2 m;\r
+    m[0].x = f;\r
+    m[0].y = 0.0;\r
+    m[1].x = 0.0;\r
+    m[1].y = f;\r
+    return m;\r
 }\r
 \r
-mat2 __constructor (const int _i) {\r
-    return mat2 (\r
-        _i, .0,\r
-        .0, _i\r
-    );\r
+mat2 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return mat2 (x);\r
 }\r
 \r
-mat2 __constructor (const bool _b) {\r
-    return mat2 (\r
-        _b, .0,\r
-        .0, _b\r
-    );\r
+mat2 __constructor (const bool b) {\r
+    return mat2 (b ? 1.0 : 0.0);\r
 }\r
 \r
-mat3 __constructor (const float _f) {\r
-    return mat3 (\r
-        _f, .0, .0,\r
-        .0, _f, .0,\r
-        .0, .0, _f\r
-    );\r
+mat3 __constructor (const float f) {\r
+    mat3 m;\r
+    m[0].x = f;\r
+    m[0].y = 0.0;\r
+    m[0].z = 0.0;\r
+    m[1].x = 0.0;\r
+    m[1].y = f;\r
+    m[1].z = 0.0;\r
+    m[2].x = 0.0;\r
+    m[2].y = 0.0;\r
+    m[2].z = f;\r
+    return m;\r
 }\r
 \r
-mat3 __constructor (const int _i) {\r
-    return mat3 (\r
-        _i, .0, .0,\r
-        .0, _i, .0,\r
-        .0, .0, _i\r
-    );\r
+mat3 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return mat3 (x);\r
 }\r
 \r
-mat3 __constructor (const bool _b) {\r
-    return mat3 (\r
-        _b, .0, .0,\r
-        .0, _b, .0,\r
-        .0, .0, _b\r
-    );\r
+mat3 __constructor (const bool b) {\r
+    return mat3 (b ? 1.0 : 0.0);\r
 }\r
 \r
-mat4 __constructor (const float _f) {\r
-    return mat4 (\r
-        _f, .0, .0, .0,\r
-        .0, _f, .0, .0,\r
-        .0, .0, _f, .0,\r
-        .0, .0, .0, _f\r
-    );\r
+mat4 __constructor (const float f) {\r
+    mat4 m;\r
+    m[0].x = f;\r
+    m[0].y = 0.0;\r
+    m[0].z = 0.0;\r
+    m[0].w = 0.0;\r
+    m[1].x = 0.0;\r
+    m[1].y = f;\r
+    m[1].z = 0.0;\r
+    m[1].w = 0.0;\r
+    m[2].x = 0.0;\r
+    m[2].y = 0.0;\r
+    m[2].z = f;\r
+    m[2].w = 0.0;\r
+    m[3].x = 0.0;\r
+    m[3].y = 0.0;\r
+    m[3].z = 0.0;\r
+    m[3].w = f;\r
+    return m;\r
 }\r
 \r
-mat4 __constructor (const int _i) {\r
-    return mat4 (\r
-        _i, .0, .0, .0,\r
-        .0, _i, .0, .0,\r
-        .0, .0, _i, .0,\r
-        .0, .0, .0, _i\r
-    );\r
+mat4 __constructor (const int i) {\r
+    float x;\r
+    __asm int_to_float x, i;\r
+    return mat4 (x);\r
 }\r
 \r
-mat4 __constructor (const bool _b) {\r
-    return mat4 (\r
-        _b, .0, .0, .0,\r
-        .0, _b, .0, .0,\r
-        .0, .0, _b, .0,\r
-        .0, .0, .0, _b\r
-    );\r
+mat4 __constructor (const bool b) {\r
+    return mat4 (b ? 1.0 : 0.0);\r
 }\r
 \r
-//void __operator = (out float a, const float b) {\r
-//    __asm float_copy a, b;\r
-//}\r
-//\r
-//void __operator = (out int a, const int b) {\r
-//    __asm int_copy a, b;\r
-//}\r
-//\r
-//void __operator = (out bool a, const bool b) {\r
-//    __asm bool_copy a, b;\r
-//}\r
-//\r
-//void __operator = (out vec2 v, const vec2 u) {\r
-//    v.x = u.x, v.y = u.y;\r
-//}\r
-//\r
-//void __operator = (out vec3 v, const vec3 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z;\r
-//}\r
-//\r
-//void __operator = (out vec4 v, const vec4 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z, v.w = u.w;\r
-//}\r
-//\r
-//void __operator = (out ivec2 v, const ivec2 u) {\r
-//    v.x = u.x, v.y = u.y;\r
-//}\r
-//\r
-//void __operator = (out ivec3 v, const ivec3 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z;\r
-//}\r
-//\r
-//void __operator = (out ivec4 v, const ivec4 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z, v.w = u.w;\r
-//}\r
-//\r
-//void __operator = (out bvec2 v, const bvec2 u) {\r
-//    v.x = u.x, v.y = u.y;\r
-//}\r
-//\r
-//void __operator = (out bvec3 v, const bvec3 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z;\r
-//}\r
-//\r
-//void __operator = (out bvec4 v, const bvec4 u) {\r
-//    v.x = u.x, v.y = u.y, v.z = u.z, v.w = u.w;\r
-//}\r
-//\r
-//void __operator = (out mat2 m, const mat2 n) {\r
-//    m[0] = n[0], m[1] = n[1];\r
-//}\r
-//\r
-//void __operator = (out mat3 m, const mat3 n) {\r
-//    m[0] = n[0], m[1] = n[1], m[2] = n[2];\r
-//}\r
-//\r
-//void __operator = (out mat4 m, const mat4 n) {\r
-//    m[0] = n[0], m[1] = n[1], m[2] = n[2], m[3] = n[3];\r
-//}\r
-\r
 void __operator += (inout float a, const float b) {\r
     __asm float_add a, a, b;\r
 }\r
 \r
 float __operator - (const float a) {\r
-    float c;\r
-    __asm float_negate c, a;\r
-    return c;\r
+    float b;\r
+    __asm float_negate b, a;\r
+    return b;\r
 }\r
 \r
 void __operator -= (inout float a, const float b) {\r
-    a += -b;\r
+    float c;\r
+    __asm float_negate c, b;\r
+    __asm float_add a, a, c;\r
 }\r
 \r
 void __operator *= (inout float a, const float b) {\r
@@ -367,8 +353,8 @@ void __operator /= (inout float a, const float b) {
 \r
 float __operator + (const float a, const float b) {\r
     float c;\r
-    c = a;\r
-    return c += b;\r
+    __asm float_add c, a, b;\r
+    return c;\r
 }\r
 \r
 void __operator += (inout int a, const int b) {\r
@@ -376,7 +362,12 @@ void __operator += (inout int a, const int b) {
 }\r
 \r
 int __operator - (const int a) {\r
-       return int (-float (a));\r
+    float x;\r
+    int b;\r
+    __asm int_to_float x, a;\r
+    __asm float_negate x, x;\r
+    __asm float_to_int b, x;\r
+    return b;\r
 }\r
 \r
 void __operator -= (inout int a, const int b) {\r
@@ -385,8 +376,8 @@ void __operator -= (inout int a, const int b) {
 \r
 float __operator * (const float a, const float b) {\r
     float c;\r
-    c = a;\r
-    return c *= b;\r
+    __asm float_multiply c, a, b;\r
+    return c;\r
 }\r
 \r
 void __operator *= (inout int a, const int b) {\r
@@ -395,8 +386,8 @@ void __operator *= (inout int a, const int b) {
 \r
 float __operator / (const float a, const float b) {\r
     float c;\r
-    c = a;\r
-    return c /= b;\r
+    __asm float_divide c, a, b;\r
+    return c;\r
 }\r
 \r
 void __operator /= (inout int a, const int b) {\r
@@ -404,118 +395,171 @@ void __operator /= (inout int a, const int b) {
 }\r
 \r
 void __operator += (inout vec2 v, const vec2 u) {\r
-    v.x += u.x, v.y += u.y;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
 }\r
 \r
 void __operator -= (inout vec2 v, const vec2 u) {\r
-    v.x -= u.x, v.y -= u.y;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
 }\r
 \r
 void __operator *= (inout vec2 v, const vec2 u) {\r
-    v.x *= u.x, v.y *= u.y;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
 }\r
 \r
 void __operator /= (inout vec2 v, const vec2 u) {\r
-    v.x /= u.x, v.y /= u.y;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
 }\r
 \r
 void __operator += (inout vec3 v, const vec3 u) {\r
-    v.x += u.x, v.y += u.y, v.z += u.z;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
+    v.z += u.z;\r
 }\r
 \r
 void __operator -= (inout vec3 v, const vec3 u) {\r
-    v.x -= u.x, v.y -= u.y, v.z -= u.z;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
+    v.z -= u.z;\r
 }\r
 \r
 void __operator *= (inout vec3 v, const vec3 u) {\r
-    v.x *= u.x, v.y *= u.y, v.z *= u.z;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
+    v.z *= u.z;\r
 }\r
 \r
 void __operator /= (inout vec3 v, const vec3 u) {\r
-    v.x /= u.x, v.y /= u.y, v.z /= u.z;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
+    v.z /= u.z;\r
 }\r
 \r
 void __operator += (inout vec4 v, const vec4 u) {\r
-    v.x += u.x, v.y += u.y, v.z += u.z, v.w += u.w;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
+    v.z += u.z;\r
+    v.w += u.w;\r
 }\r
 \r
 void __operator -= (inout vec4 v, const vec4 u) {\r
-    v.x -= u.x, v.y -= u.y, v.z -= u.z, v.w -= u.w;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
+    v.z -= u.z;\r
+    v.w -= u.w;\r
 }\r
 \r
 void __operator *= (inout vec4 v, const vec4 u) {\r
-    v.x *= u.x, v.y *= u.y, v.z *= u.z, v.w *= u.w;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
+    v.z *= u.z;\r
+    v.w *= u.w;\r
 }\r
 \r
 void __operator /= (inout vec4 v, const vec4 u) {\r
-    v.x /= u.x, v.y /= u.y, v.z /= u.z, v.w /= u.w;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
+    v.z /= u.z;\r
+    v.w /= u.w;\r
 }\r
 \r
 void __operator += (inout ivec2 v, const ivec2 u) {\r
-    v.x += u.x, v.y += u.y;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
 }\r
 \r
 void __operator -= (inout ivec2 v, const ivec2 u) {\r
-    v.x -= u.x, v.y -= u.y;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
 }\r
 \r
 void __operator *= (inout ivec2 v, const ivec2 u) {\r
-    v.x *= u.x, v.y *= u.y;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
 }\r
 \r
 void __operator /= (inout ivec2 v, const ivec2 u) {\r
-    v.x /= u.x, v.y /= u.y;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
 }\r
 \r
 void __operator += (inout ivec3 v, const ivec3 u) {\r
-    v.x += u.x, v.y += u.y, v.z += u.z;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
+    v.z += u.z;\r
 }\r
 \r
 void __operator -= (inout ivec3 v, const ivec3 u) {\r
-    v.x -= u.x, v.y -= u.y, v.z -= u.z;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
+    v.z -= u.z;\r
 }\r
 \r
 void __operator *= (inout ivec3 v, const ivec3 u) {\r
-    v.x *= u.x, v.y *= u.y, v.z *= u.z;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
+    v.z *= u.z;\r
 }\r
 \r
 void __operator /= (inout ivec3 v, const ivec3 u) {\r
-    v.x /= u.x, v.y /= u.y, v.z /= u.z;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
+    v.z /= u.z;\r
 }\r
 \r
 void __operator += (inout ivec4 v, const ivec4 u) {\r
-    v.x += u.x, v.y += u.y, v.z += u.z, v.w += u.w;\r
+    v.x += u.x;\r
+    v.y += u.y;\r
+    v.z += u.z;\r
+    v.w += u.w;\r
 }\r
 \r
 void __operator -= (inout ivec4 v, const ivec4 u) {\r
-    v.x -= u.x, v.y -= u.y, v.z -= u.z, v.w -= u.w;\r
+    v.x -= u.x;\r
+    v.y -= u.y;\r
+    v.z -= u.z;\r
+    v.w -= u.w;\r
 }\r
 \r
 void __operator *= (inout ivec4 v, const ivec4 u) {\r
-    v.x *= u.x, v.y *= u.y, v.z *= u.z, v.w *= u.w;\r
+    v.x *= u.x;\r
+    v.y *= u.y;\r
+    v.z *= u.z;\r
+    v.w *= u.w;\r
 }\r
 \r
 void __operator /= (inout ivec4 v, const ivec4 u) {\r
-    v.x /= u.x, v.y /= u.y, v.z /= u.z, v.w /= u.w;\r
+    v.x /= u.x;\r
+    v.y /= u.y;\r
+    v.z /= u.z;\r
+    v.w /= u.w;\r
 }\r
 \r
 void __operator += (inout mat2 m, const mat2 n) {\r
-    m[0] += n[0], m[1] += n[1];\r
+    m[0] += n[0];\r
+    m[1] += n[1];\r
 }\r
 \r
 void __operator -= (inout mat2 m, const mat2 n) {\r
-    m[0] -= n[0], m[1] -= n[1];\r
+    m[0] -= n[0];\r
+    m[1] -= n[1];\r
 }\r
 \r
 vec2 __operator * (const mat2 m, const vec2 v) {\r
-    return vec2 (\r
-        v.x * m[0].x + v.y * m[1].x,\r
-        v.x * m[0].y + v.y * m[1].y\r
-    );\r
+    vec2 u;\r
+    u.x = v.x * m[0].x + v.y * m[1].x;\r
+    u.y = v.x * m[0].y + v.y * m[1].y;\r
+    return u;\r
 }\r
 \r
 mat2 __operator * (const mat2 m, const mat2 n) {\r
-    return mat2 (m * n[0], m * n[1]);\r
+    mat2 o;\r
+    o[0] = m * n[0];\r
+    o[1] = m * n[1];\r
+    return o;\r
 }\r
 \r
 void __operator *= (inout mat2 m, const mat2 n) {\r
@@ -523,27 +567,36 @@ void __operator *= (inout mat2 m, const mat2 n) {
 }\r
 \r
 void __operator /= (inout mat2 m, const mat2 n) {\r
-    m[0] /= n[0], m[1] /= n[1];\r
+    m[0] /= n[0];\r
+    m[1] /= n[1];\r
 }\r
 \r
 void __operator += (inout mat3 m, const mat3 n) {\r
-    m[0] += n[0], m[1] += n[1], m[2] += n[2];\r
+    m[0] += n[0];\r
+    m[1] += n[1];\r
+    m[2] += n[2];\r
 }\r
 \r
 void __operator -= (inout mat3 m, const mat3 n) {\r
-    m[0] -= n[0], m[1] -= n[1], m[2] -= n[2];\r
+    m[0] -= n[0];\r
+    m[1] -= n[1];\r
+    m[2] -= n[2];\r
 }\r
 \r
 vec3 __operator * (const mat3 m, const vec3 v) {\r
-    return vec3 (\r
-        v.x * m[0].x + v.y * m[1].x + v.z * m[2].x,\r
-        v.x * m[0].y + v.y * m[1].y + v.z * m[2].y,\r
-        v.x * m[0].z + v.y * m[1].z + v.z * m[2].z\r
-    );\r
+    vec3 u;\r
+    u.x = v.x * m[0].x + v.y * m[1].x + v.z * m[2].x;\r
+    u.y = v.x * m[0].y + v.y * m[1].y + v.z * m[2].y;\r
+    u.z = v.x * m[0].z + v.y * m[1].z + v.z * m[2].z;\r
+    return u;\r
 }\r
 \r
 mat3 __operator * (const mat3 m, const mat3 n) {\r
-    return mat3 (m * n[0], m * n[1], m * n[2]);\r
+    mat3 o;\r
+    o[0] = m * n[0];\r
+    o[1] = m * n[1];\r
+    o[2] = m * n[2];\r
+    return o;\r
 }\r
 \r
 void __operator *= (inout mat3 m, const mat3 n) {\r
@@ -551,28 +604,41 @@ void __operator *= (inout mat3 m, const mat3 n) {
 }\r
 \r
 void __operator /= (inout mat3 m, const mat3 n) {\r
-    m[0] /= n[0], m[1] /= n[1], m[2] /= n[2];\r
+    m[0] /= n[0];\r
+    m[1] /= n[1];\r
+    m[2] /= n[2];\r
 }\r
 \r
 void __operator += (inout mat4 m, const mat4 n) {\r
-    m[0] += n[0], m[1] += n[1], m[2] += n[2], m[3] += n[3];\r
+    m[0] += n[0];\r
+    m[1] += n[1];\r
+    m[2] += n[2];\r
+    m[3] += n[3];\r
 }\r
 \r
 void __operator -= (inout mat4 m, const mat4 n) {\r
-    m[0] -= n[0], m[1] -= n[1], m[2] -= n[2], m[3] -= n[3];\r
+    m[0] -= n[0];\r
+    m[1] -= n[1];\r
+    m[2] -= n[2];\r
+    m[3] -= n[3];\r
 }\r
 \r
 vec4 __operator * (const mat4 m, const vec4 v) {\r
-    return vec4 (\r
-        v.x * m[0].x + v.y * m[1].x + v.z * m[2].x + v.w * m[3].x,\r
-        v.x * m[0].y + v.y * m[1].y + v.z * m[2].y + v.w * m[3].y,\r
-        v.x * m[0].z + v.y * m[1].z + v.z * m[2].z + v.w * m[3].z,\r
-        v.x * m[0].w + v.y * m[1].w + v.z * m[2].w + v.w * m[3].w\r
-    );\r
+    vec4 u;\r
+    u.x = v.x * m[0].x + v.y * m[1].x + v.z * m[2].x + v.w * m[3].x;\r
+    u.y = v.x * m[0].y + v.y * m[1].y + v.z * m[2].y + v.w * m[3].y;\r
+    u.z = v.x * m[0].z + v.y * m[1].z + v.z * m[2].z + v.w * m[3].z;\r
+    u.w = v.x * m[0].w + v.y * m[1].w + v.z * m[2].w + v.w * m[3].w;\r
+    return u;\r
 }\r
 \r
 mat4 __operator * (const mat4 m, const mat4 n) {\r
-    return mat4 (m * n[0], m * n[1], m * n[2], m * n[3]);\r
+    mat4 o;\r
+    o[0] = m * n[0];\r
+    o[1] = m * n[1];\r
+    o[2] = m * n[2];\r
+    o[3] = m * n[3];\r
+    return o;\r
 }\r
 \r
 void __operator *= (inout mat4 m, const mat4 n) {\r
@@ -580,110 +646,161 @@ void __operator *= (inout mat4 m, const mat4 n) {
 }\r
 \r
 void __operator /= (inout mat4 m, const mat4 n) {\r
-    m[0] /= n[0], m[1] /= n[1], m[2] /= n[2], m[3] /= n[3];\r
+    m[0] /= n[0];\r
+    m[1] /= n[1];\r
+    m[2] /= n[2];\r
+    m[3] /= n[3];\r
 }\r
 \r
 void __operator += (inout vec2 v, const float a) {\r
-    v.x += a, v.y += a;\r
+    v.x += a;\r
+    v.y += a;\r
 }\r
 \r
 void __operator -= (inout vec2 v, const float a) {\r
-    v.x -= a, v.y -= a;\r
+    v.x -= a;\r
+    v.y -= a;\r
 }\r
 \r
 void __operator *= (inout vec2 v, const float a) {\r
-    v.x *= a, v.y *= a;\r
+    v.x *= a;\r
+    v.y *= a;\r
 }\r
 \r
 void __operator /= (inout vec2 v, const float a) {\r
-    v.x /= a, v.y /= a;\r
+    v.x /= a;\r
+    v.y /= a;\r
 }\r
 \r
 void __operator += (inout vec3 v, const float a) {\r
-    v.x += a, v.y += a, v.z += a;\r
+    v.x += a;\r
+    v.y += a;\r
+    v.z += a;\r
 }\r
 \r
 void __operator -= (inout vec3 v, const float a) {\r
-    v.x -= a, v.y -= a, v.z -= a;\r
+    v.x -= a;\r
+    v.y -= a;\r
+    v.z -= a;\r
 }\r
 \r
 void __operator *= (inout vec3 v, const float a) {\r
-    v.x *= a, v.y *= a, v.z *= a;\r
+    v.x *= a;\r
+    v.y *= a;\r
+    v.z *= a;\r
 }\r
 \r
 void __operator /= (inout vec3 v, const float a) {\r
-    v.x /= a, v.y /= a, v.z /= a;\r
+    v.x /= a;\r
+    v.y /= a;\r
+    v.z /= a;\r
 }\r
 \r
 void __operator += (inout vec4 v, const float a) {\r
-    v.x += a, v.y += a, v.z += a, v.w += a;\r
+    v.x += a;\r
+    v.y += a;\r
+    v.z += a;\r
+    v.w += a;\r
 }\r
 \r
 void __operator -= (inout vec4 v, const float a) {\r
-    v.x -= a, v.y -= a, v.z -= a, v.w -= a;\r
+    v.x -= a;\r
+    v.y -= a;\r
+    v.z -= a;\r
+    v.w -= a;\r
 }\r
 \r
 void __operator *= (inout vec4 v, const float a) {\r
-    v.x *= a, v.y *= a, v.z *= a, v.w *= a;\r
+    v.x *= a;\r
+    v.y *= a;\r
+    v.z *= a;\r
+    v.w *= a;\r
 }\r
 \r
 void __operator /= (inout vec4 v, const float a) {\r
-    v.x /= a, v.y /= a, v.z /= a, v.w /= a;\r
+    v.x /= a;\r
+    v.y /= a;\r
+    v.z /= a;\r
+    v.w /= a;\r
 }\r
 \r
 void __operator += (inout mat2 m, const float a) {\r
-    m[0] += a, m[1] += a;\r
+    m[0] += a;\r
+    m[1] += a;\r
 }\r
 \r
 void __operator -= (inout mat2 m, const float a) {\r
-    m[0] -= a, m[1] -= a;\r
+    m[0] -= a;\r
+    m[1] -= a;\r
 }\r
 \r
 void __operator *= (inout mat2 m, const float a) {\r
-    m[0] *= a, m[1] *= a;\r
+    m[0] *= a;\r
+    m[1] *= a;\r
 }\r
 \r
 void __operator /= (inout mat2 m, const float a) {\r
-    m[0] /= a, m[1] /= a;\r
+    m[0] /= a;\r
+    m[1] /= a;\r
 }\r
 \r
 void __operator += (inout mat3 m, const float a) {\r
-    m[0] += a, m[1] += a, m[2] += a;\r
+    m[0] += a;\r
+    m[1] += a;\r
+    m[2] += a;\r
 }\r
 \r
 void __operator -= (inout mat3 m, const float a) {\r
-    m[0] -= a, m[1] -= a, m[2] -= a;\r
+    m[0] -= a;\r
+    m[1] -= a;\r
+    m[2] -= a;\r
 }\r
 \r
 void __operator *= (inout mat3 m, const float a) {\r
-    m[0] *= a, m[1] *= a, m[2] *= a;\r
+    m[0] *= a;\r
+    m[1] *= a;\r
+    m[2] *= a;\r
 }\r
 \r
 void __operator /= (inout mat3 m, const float a) {\r
-    m[0] /= a, m[1] /= a, m[2] /= a;\r
+    m[0] /= a;\r
+    m[1] /= a;\r
+    m[2] /= a;\r
 }\r
 \r
 void __operator += (inout mat4 m, const float a) {\r
-    m[0] += a, m[1] += a, m[2] += a, m[3] += a;\r
+    m[0] += a;\r
+    m[1] += a;\r
+    m[2] += a;\r
+    m[3] += a;\r
 }\r
 \r
 void __operator -= (inout mat4 m, const float a) {\r
-    m[0] -= a, m[1] -= a, m[2] -= a, m[3] -= a;\r
+    m[0] -= a;\r
+    m[1] -= a;\r
+    m[2] -= a;\r
+    m[3] -= a;\r
 }\r
 \r
 void __operator *= (inout mat4 m, const float a) {\r
-    m[0] *= a, m[1] *= a, m[2] *= a, m[3] *= a;\r
+    m[0] *= a;\r
+    m[1] *= a;\r
+    m[2] *= a;\r
+    m[3] *= a;\r
 }\r
 \r
 void __operator /= (inout mat4 m, const float a) {\r
-    m[0] /= a, m[1] /= a, m[2] /= a, m[3] /= a;\r
+    m[0] /= a;\r
+    m[1] /= a;\r
+    m[2] /= a;\r
+    m[3] /= a;\r
 }\r
 \r
 vec2 __operator * (const vec2 v, const mat2 m) {\r
-    return vec2 (\r
-        v.x * m[0].x + v.y * m[0].y,\r
-        v.x * m[1].x + v.y * m[1].y\r
-    );\r
+    vec2 u;\r
+    u.x = v.x * m[0].x + v.y * m[0].y;\r
+    u.y = v.x * m[1].x + v.y * m[1].y;\r
+    return u;\r
 }\r
 \r
 void __operator *= (inout vec2 v, const mat2 m) {\r
@@ -691,11 +808,11 @@ void __operator *= (inout vec2 v, const mat2 m) {
 }\r
 \r
 vec3 __operator * (const vec3 v, const mat3 m) {\r
-    return vec3 (\r
-        v.x * m[0].x + v.y * m[0].y + v.z * m[0].z,\r
-        v.x * m[1].x + v.y * m[1].y + v.z * m[1].z,\r
-        v.x * m[2].x + v.y * m[2].y + v.z * m[2].z\r
-    );\r
+    vec3 u;\r
+    u.x = v.x * m[0].x + v.y * m[0].y + v.z * m[0].z;\r
+    u.y = v.x * m[1].x + v.y * m[1].y + v.z * m[1].z;\r
+    u.z = v.x * m[2].x + v.y * m[2].y + v.z * m[2].z;\r
+    return u;\r
 }\r
 \r
 void __operator *= (inout vec3 v, const mat3 m) {\r
@@ -703,12 +820,12 @@ void __operator *= (inout vec3 v, const mat3 m) {
 }\r
 \r
 vec4 __operator * (const vec4 v, const mat4 m) {\r
-    return vec4 (\r
-        v.x * m[0].x + v.y * m[0].y + v.z * m[0].z + v.w * m[0].w,\r
-        v.x * m[1].x + v.y * m[1].y + v.z * m[1].z + v.w * m[1].w,\r
-        v.x * m[2].x + v.y * m[2].y + v.z * m[2].z + v.w * m[2].w,\r
-        v.x * m[3].x + v.y * m[3].y + v.z * m[3].z + v.w * m[3].w\r
-    );\r
+    vec4 u;\r
+    u.x = v.x * m[0].x + v.y * m[0].y + v.z * m[0].z + v.w * m[0].w;\r
+    u.y = v.x * m[1].x + v.y * m[1].y + v.z * m[1].z + v.w * m[1].w;\r
+    u.z = v.x * m[2].x + v.y * m[2].y + v.z * m[2].z + v.w * m[2].w;\r
+    u.w = v.x * m[3].x + v.y * m[3].y + v.z * m[3].z + v.w * m[3].w;\r
+    return u;\r
 }\r
 \r
 void __operator *= (inout vec4 v, const mat4 m) {\r
@@ -716,490 +833,869 @@ void __operator *= (inout vec4 v, const mat4 m) {
 }\r
 \r
 float __operator - (const float a, const float b) {\r
-    return a + -b;\r
+    float c;\r
+    __asm float_negate c, b;\r
+    __asm float_add    c, a, c;\r
+    return c;\r
 }\r
 \r
 int __operator + (const int a, const int b) {\r
+    float x, y;\r
     int c;\r
-    c = a;\r
-    return c += b;\r
+    __asm int_to_float x, a;\r
+    __asm int_to_float y, b;\r
+    __asm float_add    x, x, y;\r
+    __asm float_to_int c, x;\r
+    return c;\r
 }\r
 \r
 int __operator - (const int a, const int b) {\r
-    return a + -b;\r
+    float x, y;\r
+    int c;\r
+    __asm int_to_float x, a;\r
+    __asm int_to_float y, b;\r
+    __asm float_negate y, y;\r
+    __asm float_add    x, x, y;\r
+    __asm float_to_int c, x;\r
+    return c;\r
 }\r
 \r
 int __operator * (const int a, const int b) {\r
+    float x, y;\r
     int c;\r
-    return (c = a) *= b;\r
+    __asm int_to_float   x, a;\r
+    __asm int_to_float   y, b;\r
+    __asm float_multiply x, x, y;\r
+    __asm float_to_int   c, x;\r
+    return c;\r
 }\r
 \r
 int __operator / (const int a, const int b) {\r
+    float x, y;\r
     int c;\r
-    return (c = a) /= b;\r
+    __asm int_to_float x, a;\r
+    __asm int_to_float y, b;\r
+    __asm float_divide x, x, y;\r
+    __asm float_to_int c, x;\r
+    return c;\r
 }\r
 \r
 vec2 __operator + (const vec2 v, const vec2 u) {\r
-    return vec2 (v.x + u.x, v.y + u.y);\r
+    vec2 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    return t;\r
 }\r
 \r
 vec2 __operator - (const vec2 v, const vec2 u) {\r
-    return vec2 (v.x - u.x, v.y - u.y);\r
+    vec2 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    return t;\r
+}\r
+\r
+vec2 __operator * (const vec2 v, const vec2 u) {\r
+    vec2 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    return t;\r
+}\r
+\r
+vec2 __operator / (const vec2 v, const vec2 u) {\r
+    vec2 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    return t;\r
 }\r
 \r
 vec3 __operator + (const vec3 v, const vec3 u) {\r
-    return vec3 (v.x + u.x, v.y + u.y, v.z + u.z);\r
+    vec3 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    t.z = v.z + u.z;\r
+    return t;\r
 }\r
 \r
 vec3 __operator - (const vec3 v, const vec3 u) {\r
-    return vec3 (v.x - u.x, v.y - u.y, v.z - u.z);\r
+    vec3 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    t.z = v.z - u.z;\r
+    return t;\r
+}\r
+\r
+vec3 __operator * (const vec3 v, const vec3 u) {\r
+    vec3 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    t.z = v.z * u.z;\r
+    return t;\r
+}\r
+\r
+vec3 __operator / (const vec3 v, const vec3 u) {\r
+    vec3 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    t.z = v.z / u.z;\r
+    return t;\r
 }\r
 \r
 vec4 __operator + (const vec4 v, const vec4 u) {\r
-    return vec4 (v.x + u.x, v.y + u.y, v.z + u.z, v.w + u.w);\r
+    vec4 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    t.z = v.z + u.z;\r
+    t.w = v.w + u.w;\r
+    return t;\r
 }\r
 \r
 vec4 __operator - (const vec4 v, const vec4 u) {\r
-    return vec4 (v.x - u.x, v.y - u.y, v.z - u.z, v.w - u.w);\r
+    vec4 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    t.z = v.z - u.z;\r
+    t.w = v.w - u.w;\r
+    return t;\r
+}\r
+\r
+vec4 __operator * (const vec4 v, const vec4 u) {\r
+    vec4 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    t.z = v.z * u.z;\r
+    t.w = v.w * u.w;\r
+    return t;\r
+}\r
+\r
+vec4 __operator / (const vec4 v, const vec4 u) {\r
+    vec4 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    t.z = v.z / u.z;\r
+    t.w = v.w / u.w;\r
+    return t;\r
 }\r
 \r
 ivec2 __operator + (const ivec2 v, const ivec2 u) {\r
-    return ivec2 (v.x + u.x, v.y + u.y);\r
+    ivec2 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    return t;\r
 }\r
 \r
 ivec2 __operator - (const ivec2 v, const ivec2 u) {\r
-    return ivec2 (v.x - u.x, v.y - u.y);\r
+    ivec2 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    return t;\r
+}\r
+\r
+ivec2 __operator * (const ivec2 v, const ivec2 u) {\r
+    ivec2 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    return t;\r
+}\r
+\r
+ivec2 __operator / (const ivec2 v, const ivec2 u) {\r
+    ivec2 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    return t;\r
 }\r
 \r
 ivec3 __operator + (const ivec3 v, const ivec3 u) {\r
-    return ivec3 (v.x + u.x, v.y + u.y, v.z + u.z);\r
+    ivec3 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    t.z = v.z + u.z;\r
+    return t;\r
 }\r
 \r
 ivec3 __operator - (const ivec3 v, const ivec3 u) {\r
-    return ivec3 (v.x - u.x, v.y - u.y, v.z - u.z);\r
+    ivec3 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    t.z = v.z - u.z;\r
+    return t;\r
+}\r
+\r
+ivec3 __operator * (const ivec3 v, const ivec3 u) {\r
+    ivec3 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    t.z = v.z * u.z;\r
+    return t;\r
+}\r
+\r
+ivec3 __operator / (const ivec3 v, const ivec3 u) {\r
+    ivec3 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    t.z = v.z / u.z;\r
+    return t;\r
 }\r
 \r
 ivec4 __operator + (const ivec4 v, const ivec4 u) {\r
-    return ivec4 (v.x + u.x, v.y + u.y, v.z + u.z, v.w + u.w);\r
+    ivec4 t;\r
+    t.x = v.x + u.x;\r
+    t.y = v.y + u.y;\r
+    t.z = v.z + u.z;\r
+    t.w = v.w + u.w;\r
+    return t;\r
 }\r
 \r
 ivec4 __operator - (const ivec4 v, const ivec4 u) {\r
-    return ivec4 (v.x - u.x, v.y - u.y, v.z - u.z, v.w - u.w);\r
+    ivec4 t;\r
+    t.x = v.x - u.x;\r
+    t.y = v.y - u.y;\r
+    t.z = v.z - u.z;\r
+    t.w = v.w - u.w;\r
+    return t;\r
+}\r
+\r
+ivec4 __operator * (const ivec4 v, const ivec4 u) {\r
+    ivec4 t;\r
+    t.x = v.x * u.x;\r
+    t.y = v.y * u.y;\r
+    t.z = v.z * u.z;\r
+    t.w = v.w * u.w;\r
+    return t;\r
+}\r
+\r
+ivec4 __operator / (const ivec4 v, const ivec4 u) {\r
+    ivec4 t;\r
+    t.x = v.x / u.x;\r
+    t.y = v.y / u.y;\r
+    t.z = v.z / u.z;\r
+    t.w = v.w / u.w;\r
+    return t;\r
 }\r
 \r
 mat2 __operator + (const mat2 m, const mat2 n) {\r
-    return mat2 (m[0] + n[0], m[1] + n[1]);\r
+    mat2 o;\r
+    o[0] = m[0] + n[0];\r
+    o[1] = m[1] + n[1];\r
+    return o;\r
 }\r
 \r
 mat2 __operator - (const mat2 m, const mat2 n) {\r
-    return mat2 (m[0] - n[0], m[1] - n[1]);\r
+    mat2 o;\r
+    o[0] = m[0] - n[0];\r
+    o[1] = m[1] - n[1];\r
+    return o;\r
+}\r
+\r
+mat2 __operator / (const mat2 m, const mat2 n) {\r
+    mat2 o;\r
+    o[0] = m[0] / n[0];\r
+    o[1] = m[1] / n[1];\r
+    return o;\r
 }\r
 \r
 mat3 __operator + (const mat3 m, const mat3 n) {\r
-    return mat3 (m[0] + n[0], m[1] + n[1], m[2] + n[2]);\r
+    mat3 o;\r
+    o[0] = m[0] + n[0];\r
+    o[1] = m[1] + n[1];\r
+    o[2] = m[2] + n[2];\r
+    return o;\r
 }\r
 \r
 mat3 __operator - (const mat3 m, const mat3 n) {\r
-    return mat3 (m[0] - n[0], m[1] - n[1], m[2] - n[2]);\r
+    mat3 o;\r
+    o[0] = m[0] - n[0];\r
+    o[1] = m[1] - n[1];\r
+    o[2] = m[2] - n[2];\r
+    return o;\r
+}\r
+\r
+mat3 __operator / (const mat3 m, const mat3 n) {\r
+    mat3 o;\r
+    o[0] = m[0] / n[0];\r
+    o[1] = m[1] / n[1];\r
+    o[2] = m[2] / n[2];\r
+    return o;\r
 }\r
 \r
 mat4 __operator + (const mat4 m, const mat4 n) {\r
-    return mat4 (m[0] + n[0], m[1] + n[1], m[2] + n[2], m[3] + n[3]);\r
+    mat4 o;\r
+    o[0] = m[0] + n[0];\r
+    o[1] = m[1] + n[1];\r
+    o[2] = m[2] + n[2];\r
+    o[3] = m[3] + n[3];\r
+    return o;\r
 }\r
 \r
 mat4 __operator - (const mat4 m, const mat4 n) {\r
-    return mat4 (m[0] - n[0], m[1] - n[1], m[2] - n[2], m[3] - n[3]);\r
+    mat4 o;\r
+    o[0] = m[0] - n[0];\r
+    o[1] = m[1] - n[1];\r
+    o[2] = m[2] - n[2];\r
+    o[3] = m[3] - n[3];\r
+    return o;\r
+}\r
+\r
+mat4 __operator / (const mat4 m, const mat4 n) {\r
+    mat4 o;\r
+    o[0] = m[0] / n[0];\r
+    o[1] = m[1] / n[1];\r
+    o[2] = m[2] / n[2];\r
+    o[3] = m[3] / n[3];\r
+    return o;\r
 }\r
 \r
 vec2 __operator + (const float a, const vec2 u) {\r
-    return vec2 (a + u.x, a + u.y);\r
+    vec2 t;\r
+    t.x = a + u.x;\r
+    t.y = a + u.y;\r
+    return t;\r
 }\r
 \r
 vec2 __operator + (const vec2 v, const float b) {\r
-    return vec2 (v.x + b, v.y + b);\r
+    vec2 t;\r
+    t.x = v.x + b;\r
+    t.y = v.y + b;\r
+    return t;\r
 }\r
 \r
 vec2 __operator - (const float a, const vec2 u) {\r
-    return vec2 (a - u.x, a - u.y);\r
+    vec2 t;\r
+    t.x = a - u.x;\r
+    t.y = a - u.y;\r
+    return t;\r
 }\r
 \r
 vec2 __operator - (const vec2 v, const float b) {\r
-    return vec2 (v.x - b, v.y - b);\r
+    vec2 t;\r
+    t.x = v.x - b;\r
+    t.y = v.y - b;\r
+    return t;\r
 }\r
 \r
 vec2 __operator * (const float a, const vec2 u) {\r
-    return vec2 (a * u.x, a * u.y);\r
+    vec2 t;\r
+    t.x = a * u.x;\r
+    t.y = a * u.y;\r
+    return t;\r
 }\r
 \r
 vec2 __operator * (const vec2 v, const float b) {\r
-    return vec2 (v.x * b, v.y * b);\r
+    vec2 t;\r
+    t.x = v.x * b;\r
+    t.y = v.y * b;\r
+    return t;\r
 }\r
 \r
 vec2 __operator / (const float a, const vec2 u) {\r
-    return vec2 (a / u.x, a / u.y);\r
+    vec2 t;\r
+    t.x = a / u.x;\r
+    t.y = a / u.y;\r
+    return t;\r
 }\r
 \r
 vec2 __operator / (const vec2 v, const float b) {\r
-    return vec2 (v.x / b, v.y / b);\r
+    vec2 t;\r
+    t.x = v.x / b;\r
+    t.y = v.y / b;\r
+    return t;\r
 }\r
 \r
 vec3 __operator + (const float a, const vec3 u) {\r
-    return vec3 (a + u.x, a + u.y, a + u.z);\r
+    vec3 t;\r
+    t.x = a + u.x;\r
+    t.y = a + u.y;\r
+    t.z = a + u.z;\r
+    return t;\r
 }\r
 \r
 vec3 __operator + (const vec3 v, const float b) {\r
-    return vec3 (v.x + b, v.y + b, v.z + b);\r
+    vec3 t;\r
+    t.x = v.x + b;\r
+    t.y = v.y + b;\r
+    t.z = v.z + b;\r
+    return t;\r
 }\r
 \r
 vec3 __operator - (const float a, const vec3 u) {\r
-    return vec3 (a - u.x, a - u.y, a - u.z);\r
+    vec3 t;\r
+    t.x = a - u.x;\r
+    t.y = a - u.y;\r
+    t.z = a - u.z;\r
+    return t;\r
 }\r
 \r
 vec3 __operator - (const vec3 v, const float b) {\r
-    return vec3 (v.x - b, v.y - b, v.z - b);\r
+    vec3 t;\r
+    t.x = v.x - b;\r
+    t.y = v.y - b;\r
+    t.z = v.z - b;\r
+    return t;\r
 }\r
 \r
 vec3 __operator * (const float a, const vec3 u) {\r
-    return vec3 (a * u.x, a * u.y, a * u.z);\r
+    vec3 t;\r
+    t.x = a * u.x;\r
+    t.y = a * u.y;\r
+    t.z = a * u.z;\r
+    return t;\r
 }\r
 \r
 vec3 __operator * (const vec3 v, const float b) {\r
-    return vec3 (v.x * b, v.y * b, v.z * b);\r
+    vec3 t;\r
+    t.x = v.x * b;\r
+    t.y = v.y * b;\r
+    t.z = v.z * b;\r
+    return t;\r
 }\r
 \r
 vec3 __operator / (const float a, const vec3 u) {\r
-    return vec3 (a / u.x, a / u.y, a / u.z);\r
+    vec3 t;\r
+    t.x = a / u.x;\r
+    t.y = a / u.y;\r
+    t.z = a / u.z;\r
+    return t;\r
 }\r
 \r
 vec3 __operator / (const vec3 v, const float b) {\r
-    return vec3 (v.x / b, v.y / b, v.z / b);\r
+    vec3 t;\r
+    t.x = v.x / b;\r
+    t.y = v.y / b;\r
+    t.z = v.z / b;\r
+    return t;\r
 }\r
 \r
 vec4 __operator + (const float a, const vec4 u) {\r
-    return vec4 (a + u.x, a + u.y, a + u.z, a + u.w);\r
+    vec4 t;\r
+    t.x = a + u.x;\r
+    t.y = a + u.y;\r
+    t.z = a + u.z;\r
+    t.w = a + u.w;\r
+    return t;\r
 }\r
 \r
 vec4 __operator + (const vec4 v, const float b) {\r
-    return vec4 (v.x + b, v.y + b, v.z + b, v.w + b);\r
+    vec4 t;\r
+    t.x = v.x + b;\r
+    t.y = v.y + b;\r
+    t.z = v.z + b;\r
+    t.w = v.w + b;\r
+    return t;\r
 }\r
 \r
 vec4 __operator - (const float a, const vec4 u) {\r
-    return vec4 (a - u.x, a - u.y, a - u.z, a - u.w);\r
+    vec4 t;\r
+    t.x = a - u.x;\r
+    t.y = a - u.y;\r
+    t.z = a - u.z;\r
+    t.w = a - u.w;\r
+    return t;\r
 }\r
 \r
 vec4 __operator - (const vec4 v, const float b) {\r
-    return vec4 (v.x - b, v.y - b, v.z - b, v.w - b);\r
+    vec4 t;\r
+    t.x = v.x - b;\r
+    t.y = v.y - b;\r
+    t.z = v.z - b;\r
+    t.w = v.w - b;\r
+    return t;\r
 }\r
 \r
 vec4 __operator * (const float a, const vec4 u) {\r
-    return vec4 (a * u.x, a * u.y, a * u.z, a * u.w);\r
+    vec4 t;\r
+    t.x = a * u.x;\r
+    t.y = a * u.y;\r
+    t.z = a * u.z;\r
+    t.w = a * u.w;\r
+    return t;\r
 }\r
 \r
 vec4 __operator * (const vec4 v, const float b) {\r
-    return vec4 (v.x * b, v.y * b, v.z * b, v.w * b);\r
+    vec4 t;\r
+    t.x = v.x * b;\r
+    t.y = v.y * b;\r
+    t.z = v.z * b;\r
+    t.w = v.w * b;\r
+    return t;\r
 }\r
 \r
 vec4 __operator / (const float a, const vec4 u) {\r
-    return vec4 (a / u.x, a / u.y, a / u.z, a / u.w);\r
+    vec4 t;\r
+    t.x = a / u.x;\r
+    t.y = a / u.y;\r
+    t.z = a / u.z;\r
+    t.w = a / u.w;\r
+    return t;\r
 }\r
 \r
 vec4 __operator / (const vec4 v, const float b) {\r
-    return vec4 (v.x / b, v.y / b, v.z / b, v.w / b);\r
+    vec4 t;\r
+    t.x = v.x / b;\r
+    t.y = v.y / b;\r
+    t.z = v.z / b;\r
+    t.w = v.w / b;\r
+    return t;\r
 }\r
 \r
 mat2 __operator + (const float a, const mat2 n) {\r
-    return mat2 (a + n[0], a + n[1]);\r
+    mat2 o;\r
+    o[0] = a + n[0];\r
+    o[1] = a + n[1];\r
+    return o;\r
 }\r
 \r
 mat2 __operator + (const mat2 m, const float b) {\r
-    return mat2 (m[0] + b, m[1] + b);\r
+    mat2 o;\r
+    o[0] = m[0] + b;\r
+    o[1] = m[1] + b;\r
+    return o;\r
 }\r
 \r
 mat2 __operator - (const float a, const mat2 n) {\r
-    return mat2 (a - n[0], a - n[1]);\r
+    mat2 o;\r
+    o[0] = a - n[0];\r
+    o[1] = a - n[1];\r
+    return o;\r
 }\r
 \r
 mat2 __operator - (const mat2 m, const float b) {\r
-    return mat2 (m[0] - b, m[1] - b);\r
+    mat2 o;\r
+    o[0] = m[0] - b;\r
+    o[1] = m[1] - b;\r
+    return o;\r
 }\r
 \r
 mat2 __operator * (const float a, const mat2 n) {\r
-    return mat2 (a * n[0], a * n[1]);\r
+    mat2 o;\r
+    o[0] = a * n[0];\r
+    o[1] = a * n[1];\r
+    return o;\r
 }\r
 \r
 mat2 __operator * (const mat2 m, const float b) {\r
-    return mat2 (m[0] * b, m[1] * b);\r
+    mat2 o;\r
+    o[0] = m[0] * b;\r
+    o[1] = m[1] * b;\r
+    return o;\r
 }\r
 \r
 mat2 __operator / (const float a, const mat2 n) {\r
-    return mat2 (a / n[0], a / n[1]);\r
+    mat2 o;\r
+    o[0] = a / n[0];\r
+    o[1] = a / n[1];\r
+    return o;\r
 }\r
 \r
 mat2 __operator / (const mat2 m, const float b) {\r
-    return mat2 (m[0] / b, m[1] / b);\r
+    mat2 o;\r
+    o[0] = m[0] / b;\r
+    o[1] = m[1] / b;\r
+    return o;\r
 }\r
 \r
 mat3 __operator + (const float a, const mat3 n) {\r
-    return mat3 (a + n[0], a + n[1], a + n[2]);\r
+    mat3 o;\r
+    o[0] = a + n[0];\r
+    o[1] = a + n[1];\r
+    o[2] = a + n[2];\r
+    return o;\r
 }\r
 \r
 mat3 __operator + (const mat3 m, const float b) {\r
-    return mat3 (m[0] + b, m[1] + b, m[2] + b);\r
+    mat3 o;\r
+    o[0] = m[0] + b;\r
+    o[1] = m[1] + b;\r
+    o[2] = m[2] + b;\r
+    return o;\r
 }\r
 \r
 mat3 __operator - (const float a, const mat3 n) {\r
-    return mat3 (a - n[0], a - n[1], a - n[2]);\r
+    mat3 o;\r
+    o[0] = a - n[0];\r
+    o[1] = a - n[1];\r
+    o[2] = a - n[2];\r
+    return o;\r
 }\r
 \r
 mat3 __operator - (const mat3 m, const float b) {\r
-    return mat3 (m[0] - b, m[1] - b, m[2] - b);\r
+    mat3 o;\r
+    o[0] = m[0] - b;\r
+    o[1] = m[1] - b;\r
+    o[2] = m[2] - b;\r
+    return o;\r
 }\r
 \r
 mat3 __operator * (const float a, const mat3 n) {\r
-    return mat3 (a * n[0], a * n[1], a * n[2]);\r
+    mat3 o;\r
+    o[0] = a * n[0];\r
+    o[1] = a * n[1];\r
+    o[2] = a * n[2];\r
+    return o;\r
 }\r
 \r
 mat3 __operator * (const mat3 m, const float b) {\r
-    return mat3 (m[0] * b, m[1] * b, m[2] * b);\r
+    mat3 o;\r
+    o[0] = m[0] * b;\r
+    o[1] = m[1] * b;\r
+    o[2] = m[2] * b;\r
+    return o;\r
 }\r
 \r
 mat3 __operator / (const float a, const mat3 n) {\r
-    return mat3 (a / n[0], a / n[1], a / n[2]);\r
+    mat3 o;\r
+    o[0] = a / n[0];\r
+    o[1] = a / n[1];\r
+    o[2] = a / n[2];\r
+    return o;\r
 }\r
 \r
 mat3 __operator / (const mat3 m, const float b) {\r
-    return mat3 (m[0] / b, m[1] / b, m[2] / b);\r
+    mat3 o;\r
+    o[0] = m[0] / b;\r
+    o[1] = m[1] / b;\r
+    o[2] = m[2] / b;\r
+    return o;\r
 }\r
 \r
 mat4 __operator + (const float a, const mat4 n) {\r
-    return mat4 (a + n[0], a + n[1], a + n[2], a + n[3]);\r
+    mat4 o;\r
+    o[0] = a + n[0];\r
+    o[1] = a + n[1];\r
+    o[2] = a + n[2];\r
+    o[3] = a + n[3];\r
+    return o;\r
 }\r
 \r
 mat4 __operator + (const mat4 m, const float b) {\r
-    return mat4 (m[0] + b, m[1] + b, m[2] + b, m[3] + b);\r
+    mat4 o;\r
+    o[0] = m[0] + b;\r
+    o[1] = m[1] + b;\r
+    o[2] = m[2] + b;\r
+    o[3] = m[3] + b;\r
+    return o;\r
 }\r
 \r
 mat4 __operator - (const float a, const mat4 n) {\r
-    return mat4 (a - n[0], a - n[1], a - n[2], a - n[3]);\r
+    mat4 o;\r
+    o[0] = a - n[0];\r
+    o[1] = a - n[1];\r
+    o[2] = a - n[2];\r
+    o[3] = a - n[3];\r
+    return o;\r
 }\r
 \r
 mat4 __operator - (const mat4 m, const float b) {\r
-    return mat4 (m[0] - b, m[1] - b, m[2] - b, m[3] - b);\r
+    mat4 o;\r
+    o[0] = m[0] - b;\r
+    o[1] = m[1] - b;\r
+    o[2] = m[2] - b;\r
+    o[3] = m[3] - b;\r
+    return o;\r
 }\r
 \r
 mat4 __operator * (const float a, const mat4 n) {\r
-    return mat4 (a * n[0], a * n[1], a * n[2], a * n[3]);\r
+    mat4 o;\r
+    o[0] = a * n[0];\r
+    o[1] = a * n[1];\r
+    o[2] = a * n[2];\r
+    o[3] = a * n[3];\r
+    return o;\r
 }\r
 \r
 mat4 __operator * (const mat4 m, const float b) {\r
-    return mat4 (m[0] * b, m[1] * b, m[2] * b, m[3] * b);\r
+    mat4 o;\r
+    o[0] = m[0] * b;\r
+    o[1] = m[1] * b;\r
+    o[2] = m[2] * b;\r
+    o[3] = m[3] * b;\r
+    return o;\r
 }\r
 \r
 mat4 __operator / (const float a, const mat4 n) {\r
-    return mat4 (a / n[0], a / n[1], a / n[2], a / n[3]);\r
+    mat4 o;\r
+    o[0] = a / n[0];\r
+    o[1] = a / n[1];\r
+    o[2] = a / n[2];\r
+    o[3] = a / n[3];\r
+    return o;\r
 }\r
 \r
 mat4 __operator / (const mat4 m, const float b) {\r
-    return mat4 (m[0] / b, m[1] / b, m[2] / b, m[3] / b);\r
+    mat4 o;\r
+    o[0] = m[0] / b;\r
+    o[1] = m[1] / b;\r
+    o[2] = m[2] / b;\r
+    o[3] = m[3] / b;\r
+    return o;\r
 }\r
 \r
 ivec2 __operator + (const int a, const ivec2 u) {\r
-    return ivec2 (a + u.x, a + u.y);\r
+    return ivec2 (a) + u;\r
 }\r
 \r
 ivec2 __operator + (const ivec2 v, const int b) {\r
-    return ivec2 (v.x + b, v.y + b);\r
+    return v + ivec2 (b);\r
 }\r
 \r
 ivec2 __operator - (const int a, const ivec2 u) {\r
-    return ivec2 (a - u.x, a - u.y);\r
+    return ivec2 (a) - u;\r
 }\r
 \r
 ivec2 __operator - (const ivec2 v, const int b) {\r
-    return ivec2 (v.x - b, v.y - b);\r
+    return v - ivec2 (b);\r
 }\r
 \r
 ivec2 __operator * (const int a, const ivec2 u) {\r
-    return ivec2 (a * u.x, a * u.y);\r
+    return ivec2 (a) * u;\r
 }\r
 \r
 ivec2 __operator * (const ivec2 v, const int b) {\r
-    return ivec2 (v.x * b, v.y * b);\r
+    return v * ivec2 (b);\r
 }\r
 \r
 ivec2 __operator / (const int a, const ivec2 u) {\r
-    return ivec2 (a / u.x, a / u.y);\r
+    return ivec2 (a) / u;\r
 }\r
 \r
 ivec2 __operator / (const ivec2 v, const int b) {\r
-    return ivec2 (v.x / b, v.y / b);\r
+    return v / ivec2 (b);\r
 }\r
 \r
 ivec3 __operator + (const int a, const ivec3 u) {\r
-    return ivec3 (a + u.x, a + u.y, a + u.z);\r
+    return ivec3 (a) + u;\r
 }\r
 \r
 ivec3 __operator + (const ivec3 v, const int b) {\r
-    return ivec3 (v.x + b, v.y + b, v.z + b);\r
+    return v + ivec3 (b);\r
 }\r
 \r
 ivec3 __operator - (const int a, const ivec3 u) {\r
-    return ivec3 (a - u.x, a - u.y, a - u.z);\r
+    return ivec3 (a) - u;\r
 }\r
 \r
 ivec3 __operator - (const ivec3 v, const int b) {\r
-    return ivec3 (v.x - b, v.y - b, v.z - b);\r
+    return v - ivec3 (b);\r
 }\r
 \r
 ivec3 __operator * (const int a, const ivec3 u) {\r
-    return ivec3 (a * u.x, a * u.y, a * u.z);\r
+    return ivec3 (a) * u;\r
 }\r
 \r
 ivec3 __operator * (const ivec3 v, const int b) {\r
-    return ivec3 (v.x * b, v.y * b, v.z * b);\r
+    return v * ivec3 (b);\r
 }\r
 \r
 ivec3 __operator / (const int a, const ivec3 u) {\r
-    return ivec3 (a / u.x, a / u.y, a / u.z);\r
+    return ivec3 (a) / u;\r
 }\r
 \r
 ivec3 __operator / (const ivec3 v, const int b) {\r
-    return ivec3 (v.x / b, v.y / b, v.z / b);\r
+    return v / ivec3 (b);\r
 }\r
 \r
 ivec4 __operator + (const int a, const ivec4 u) {\r
-    return ivec4 (a + u.x, a + u.y, a + u.z, a + u.w);\r
+    return ivec4 (a) + u;\r
 }\r
 \r
 ivec4 __operator + (const ivec4 v, const int b) {\r
-    return ivec4 (v.x + b, v.y + b, v.z + b, v.w + b);\r
+    return v + ivec4 (b);\r
 }\r
 \r
 ivec4 __operator - (const int a, const ivec4 u) {\r
-    return ivec4 (a - u.x, a - u.y, a - u.z, a - u.w);\r
+    return ivec4 (a) - u;\r
 }\r
 \r
 ivec4 __operator - (const ivec4 v, const int b) {\r
-    return ivec4 (v.x - b, v.y - b, v.z - b, v.w - b);\r
+    return v - ivec4 (b);\r
 }\r
 \r
 ivec4 __operator * (const int a, const ivec4 u) {\r
-    return ivec4 (a * u.x, a * u.y, a * u.z, a * u.w);\r
+    return ivec4 (a) * u;\r
 }\r
 \r
 ivec4 __operator * (const ivec4 v, const int b) {\r
-    return ivec4 (v.x * b, v.y * b, v.z * b, v.w * b);\r
+    return v * ivec4 (b);\r
 }\r
 \r
 ivec4 __operator / (const int a, const ivec4 u) {\r
-    return ivec4 (a / u.x, a / u.y, a / u.z, a / u.w);\r
+    return ivec4 (a) / u;\r
 }\r
 \r
 ivec4 __operator / (const ivec4 v, const int b) {\r
-    return ivec4 (v.x / b, v.y / b, v.z / b, v.w / b);\r
-}\r
-\r
-vec2 __operator * (const vec2 v, const vec2 u) {\r
-    return vec2 (v.x * u.x, v.y * u.y);\r
-}\r
-\r
-vec3 __operator * (const vec3 v, const vec3 u) {\r
-    return vec3 (v.x * u.x, v.y * u.y, v.z * u.z);\r
-}\r
-\r
-vec4 __operator * (const vec4 v, const vec4 u) {\r
-    return vec4 (v.x * u.x, v.y * u.y, v.z * u.z, v.w * u.w);\r
-}\r
-\r
-ivec2 __operator * (const ivec2 v, const ivec2 u) {\r
-    return ivec2 (v.x * u.x, v.y * u.y);\r
-}\r
-\r
-ivec3 __operator * (const ivec3 v, const ivec3 u) {\r
-    return ivec3 (v.x * u.x, v.y * u.y, v.z * u.z);\r
-}\r
-\r
-ivec4 __operator * (const ivec4 v, const ivec4 u) {\r
-    return ivec4 (v.x * u.x, v.y * u.y, v.z * u.z, v.w * u.w);\r
-}\r
-\r
-vec2 __operator / (const vec2 v, const vec2 u) {\r
-    return vec2 (v.x / u.x, v.y / u.y);\r
-}\r
-\r
-vec3 __operator / (const vec3 v, const vec3 u) {\r
-    return vec3 (v.x / u.x, v.y / u.y, v.z / u.z);\r
-}\r
-\r
-vec4 __operator / (const vec4 v, const vec4 u) {\r
-    return vec4 (v.x / u.x, v.y / u.y, v.z / u.z, v.w / u.w);\r
-}\r
-\r
-ivec2 __operator / (const ivec2 v, const ivec2 u) {\r
-    return ivec2 (v.x / u.x, v.y / u.y);\r
-}\r
-\r
-ivec3 __operator / (const ivec3 v, const ivec3 u) {\r
-    return ivec3 (v.x / u.x, v.y / u.y, v.z / u.z);\r
-}\r
-\r
-ivec4 __operator / (const ivec4 v, const ivec4 u) {\r
-    return ivec4 (v.x / u.x, v.y / u.y, v.z / u.z, v.w / u.w);\r
-}\r
-\r
-mat2 __operator / (const mat2 m, const mat2 n) {\r
-    return mat2 (m[0] / n[0], m[1] / n[1]);\r
-}\r
-\r
-mat3 __operator / (const mat3 m, const mat3 n) {\r
-    return mat3 (m[0] / n[0], m[1] / n[1], m[2] / n[2]);\r
-}\r
-\r
-mat4 __operator / (const mat4 m, const mat4 n) {\r
-    return mat4 (m[0] / n[0], m[1] / n[1], m[2] / n[2], m[3] / n[3]);\r
+    return v / ivec4 (b);\r
 }\r
 \r
 vec2 __operator - (const vec2 v) {\r
-    return vec2 (-v.x, -v.y);\r
+    vec2 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    return u;\r
 }\r
 \r
 vec3 __operator - (const vec3 v) {\r
-    return vec3 (-v.x, -v.y, -v.z);\r
+    vec3 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    u.z = -v.z;\r
+    return u;\r
 }\r
 \r
 vec4 __operator - (const vec4 v) {\r
-    return vec4 (-v.x, -v.y, -v.z, -v.w);\r
+    vec4 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    u.z = -v.z;\r
+    u.w = -v.w;\r
+    return u;\r
 }\r
 \r
 ivec2 __operator - (const ivec2 v) {\r
-    return ivec2 (-v.x, -v.y);\r
+    ivec2 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    return u;\r
 }\r
 \r
 ivec3 __operator - (const ivec3 v) {\r
-    return ivec3 (-v.x, -v.y, -v.z);\r
+    ivec3 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    u.z = -v.z;\r
+    return u;\r
 }\r
 \r
 ivec4 __operator - (const ivec4 v) {\r
-    return ivec4 (-v.x, -v.y, -v.z, -v.w);\r
+    ivec4 u;\r
+    u.x = -v.x;\r
+    u.y = -v.y;\r
+    u.z = -v.z;\r
+    u.w = -v.w;\r
+    return u;\r
 }\r
 \r
 mat2 __operator - (const mat2 m) {\r
-    return mat2 (-m[0], -m[1]);\r
+    mat2 n;\r
+    n[0] = -m[0];\r
+    n[1] = -m[1];\r
+    return n;\r
 }\r
 \r
 mat3 __operator - (const mat3 m) {\r
-    return mat3 (-m[0], -m[1], -m[2]);\r
+    mat3 n;\r
+    n[0] = -m[0];\r
+    n[1] = -m[1];\r
+    n[2] = -m[2];\r
+    return n;\r
 }\r
 \r
 mat4 __operator - (const mat4 m) {\r
-    return mat4 (-m[0], -m[1], -m[2], -m[3]);\r
+    mat4 n;\r
+    n[0] = -m[0];\r
+    n[1] = -m[1];\r
+    n[2] = -m[2];\r
+    n[3] = -m[3];\r
+    return n;\r
 }\r
 \r
-// \r
-// NOTE: postfix increment and decrement operators take additional dummy int parameter to\r
-//       distinguish their prototypes from prefix ones.\r
-// \r
-\r
 void __operator -- (inout float a) {\r
     a -= 1.0;\r
 }\r
@@ -1209,39 +1705,57 @@ void __operator -- (inout int a) {
 }\r
 \r
 void __operator -- (inout vec2 v) {\r
-    --v.x, --v.y;\r
+    --v.x;\r
+    --v.y;\r
 }\r
 \r
 void __operator -- (inout vec3 v) {\r
-    --v.x, --v.y, --v.z;\r
+    --v.x;\r
+    --v.y;\r
+    --v.z;\r
 }\r
 \r
 void __operator -- (inout vec4 v) {\r
-    --v.x, --v.y, --v.z, --v.w;\r
+    --v.x;\r
+    --v.y;\r
+    --v.z;\r
+    --v.w;\r
 }\r
 \r
 void __operator -- (inout ivec2 v) {\r
-    --v.x, --v.y;\r
+    --v.x;\r
+    --v.y;\r
 }\r
 \r
 void __operator -- (inout ivec3 v) {\r
-    --v.x, --v.y, --v.z;\r
+    --v.x;\r
+    --v.y;\r
+    --v.z;\r
 }\r
 \r
 void __operator -- (inout ivec4 v) {\r
-    --v.x, --v.y, --v.z, --v.w;\r
+    --v.x;\r
+    --v.y;\r
+    --v.z;\r
+    --v.w;\r
 }\r
 \r
 void __operator -- (inout mat2 m) {\r
-    --m[0], --m[1];\r
+    --m[0];\r
+    --m[1];\r
 }\r
 \r
 void __operator -- (inout mat3 m) {\r
-    --m[0], --m[1], --m[2];\r
+    --m[0];\r
+    --m[1];\r
+    --m[2];\r
 }\r
 \r
 void __operator -- (inout mat4 m) {\r
-    --m[0], --m[1], --m[2], --m[3];\r
+    --m[0];\r
+    --m[1];\r
+    --m[2];\r
+    --m[3];\r
 }\r
 \r
 void __operator ++ (inout float a) {\r
@@ -1253,139 +1767,252 @@ void __operator ++ (inout int a) {
 }\r
 \r
 void __operator ++ (inout vec2 v) {\r
-    ++v.x, ++v.y;\r
+    ++v.x;\r
+    ++v.y;\r
 }\r
 \r
 void __operator ++ (inout vec3 v) {\r
-    ++v.x, ++v.y, ++v.z;\r
+    ++v.x;\r
+    ++v.y;\r
+    ++v.z;\r
 }\r
 \r
 void __operator ++ (inout vec4 v) {\r
-    ++v.x, ++v.y, ++v.z, ++v.w;\r
+    ++v.x;\r
+    ++v.y;\r
+    ++v.z;\r
+    ++v.w;\r
 }\r
 \r
 void __operator ++ (inout ivec2 v) {\r
-    ++v.x, ++v.y;\r
+    ++v.x;\r
+    ++v.y;\r
 }\r
 \r
 void __operator ++ (inout ivec3 v) {\r
-    ++v.x, ++v.y, ++v.z;\r
+    ++v.x;\r
+    ++v.y;\r
+    ++v.z;\r
 }\r
 \r
 void __operator ++ (inout ivec4 v) {\r
-    ++v.x, ++v.y, ++v.z, ++v.w;\r
+    ++v.x;\r
+    ++v.y;\r
+    ++v.z;\r
+    ++v.w;\r
 }\r
 \r
 void __operator ++ (inout mat2 m) {\r
-    ++m[0], ++m[1];\r
+    ++m[0];\r
+    ++m[1];\r
 }\r
 \r
 void __operator ++ (inout mat3 m) {\r
-    ++m[0], ++m[1], ++m[2];\r
+    ++m[0];\r
+    ++m[1];\r
+    ++m[2];\r
 }\r
 \r
 void __operator ++ (inout mat4 m) {\r
-    ++m[0], ++m[1], ++m[2], ++m[3];\r
+    ++m[0];\r
+    ++m[1];\r
+    ++m[2];\r
+    ++m[3];\r
 }\r
 \r
+//\r
+// NOTE: postfix increment and decrement operators take additional dummy int parameter to\r
+//       distinguish their prototypes from prefix ones.\r
+//\r
+\r
 float __operator -- (inout float a, const int) {\r
-    float c;\r
-    c = a;\r
+    float b;\r
+    b = a;\r
     --a;\r
-    return c;\r
+    return b;\r
 }\r
 \r
 int __operator -- (inout int a, const int) {\r
-    int c;\r
-    c = a;\r
+    int b;\r
+    b = a;\r
     --a;\r
-    return c;\r
+    return b;\r
 }\r
 \r
 vec2 __operator -- (inout vec2 v, const int) {\r
-    return vec2 (v.x--, v.y--);\r
+    vec2 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       return u;\r
 }\r
 \r
 vec3 __operator -- (inout vec3 v, const int) {\r
-    return vec3 (v.x--, v.y--, v.z--);\r
+    vec3 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       --v.z;\r
+       return u;\r
 }\r
 \r
 vec4 __operator -- (inout vec4 v, const int) {\r
-    return vec4 (v.x--, v.y--, v.z--, v.w--);\r
+    vec4 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       --v.z;\r
+       --v.w;\r
+       return u;\r
 }\r
 \r
 ivec2 __operator -- (inout ivec2 v, const int) {\r
-    return ivec2 (v.x--, v.y--);\r
+    ivec2 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       return u;\r
 }\r
 \r
 ivec3 __operator -- (inout ivec3 v, const int) {\r
-    return ivec3 (v.x--, v.y--, v.z--);\r
+    ivec3 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       --v.z;\r
+       return u;\r
 }\r
 \r
 ivec4 __operator -- (inout ivec4 v, const int) {\r
-    return ivec4 (v.x--, v.y--, v.z--, v.w--);\r
+    ivec4 u;\r
+       u = v;\r
+       --v.x;\r
+       --v.y;\r
+       --v.z;\r
+       --v.w;\r
+       return u;\r
 }\r
 \r
 mat2 __operator -- (inout mat2 m, const int) {\r
-    return mat2 (m[0]--, m[1]--);\r
+    mat2 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       return n;\r
 }\r
 \r
 mat3 __operator -- (inout mat3 m, const int) {\r
-    return mat3 (m[0]--, m[1]--, m[2]--);\r
+    mat3 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       --m[2];\r
+       return n;\r
 }\r
 \r
 mat4 __operator -- (inout mat4 m, const int) {\r
-    return mat4 (m[0]--, m[1]--, m[2]--, m[3]--);\r
+    mat4 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       --m[2];\r
+       --m[3];\r
+       return n;\r
 }\r
 \r
 float __operator ++ (inout float a, const int) {\r
-    float c;\r
-    c = a;\r
+    float b;\r
+    b = a;\r
     ++a;\r
-    return c;\r
+    return b;\r
 }\r
 \r
 int __operator ++ (inout int a, const int) {\r
-    int c;\r
-    c = a;\r
+    int b;\r
+    b = a;\r
     ++a;\r
-    return c;\r
+    return b;\r
 }\r
 \r
 vec2 __operator ++ (inout vec2 v, const int) {\r
-    return vec2 (v.x++, v.y++);\r
+    vec2 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       return u;\r
 }\r
 \r
 vec3 __operator ++ (inout vec3 v, const int) {\r
-    return vec3 (v.x++, v.y++, v.z++);\r
+    vec3 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       ++v.z;\r
+       return u;\r
 }\r
 \r
 vec4 __operator ++ (inout vec4 v, const int) {\r
-    return vec4 (v.x++, v.y++, v.z++, v.w++);\r
+    vec4 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       ++v.z;\r
+       ++v.w;\r
+       return u;\r
 }\r
 \r
 ivec2 __operator ++ (inout ivec2 v, const int) {\r
-    return ivec2 (v.x++, v.y++);\r
+    ivec2 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       return u;\r
 }\r
 \r
 ivec3 __operator ++ (inout ivec3 v, const int) {\r
-    return ivec3 (v.x++, v.y++, v.z++);\r
+    ivec3 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       ++v.z;\r
+       return u;\r
 }\r
 \r
 ivec4 __operator ++ (inout ivec4 v, const int) {\r
-    return ivec4 (v.x++, v.y++, v.z++, v.w++);\r
+    ivec4 u;\r
+       u = v;\r
+       ++v.x;\r
+       ++v.y;\r
+       ++v.z;\r
+       ++v.w;\r
+       return u;\r
 }\r
 \r
 mat2 __operator ++ (inout mat2 m, const int) {\r
-    return mat2 (m[0]++, m[1]++);\r
+    mat2 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       return n;\r
 }\r
 \r
 mat3 __operator ++ (inout mat3 m, const int) {\r
-    return mat3 (m[0]++, m[1]++, m[2]++);\r
+    mat3 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       --m[2];\r
+       return n;\r
 }\r
 \r
 mat4 __operator ++ (inout mat4 m, const int) {\r
-    return mat4 (m[0]++, m[1]++, m[2]++, m[3]++);\r
+    mat4 n;\r
+       n = m;\r
+       --m[0];\r
+       --m[1];\r
+       --m[2];\r
+       --m[3];\r
+       return n;\r
 }\r
 \r
 bool __operator < (const float a, const float b) {\r
@@ -1395,171 +2022,169 @@ bool __operator < (const float a, const float b) {
 }\r
 \r
 bool __operator < (const int a, const int b) {\r
-       return float (a) < float (b);\r
+    return float (a) < float (b);\r
 }\r
 \r
 bool __operator > (const float a, const float b) {\r
-    return b < a;\r
+    bool c;\r
+    __asm float_less c, b, a;\r
+    return c;\r
 }\r
 \r
 bool __operator > (const int a, const int b) {\r
-    return b < a;\r
+    return float (a) > float (b);\r
 }\r
 \r
 bool __operator >= (const float a, const float b) {\r
-    return a > b || a == b;\r
+    bool g, e;\r
+    __asm float_less  g, b, a;\r
+    __asm float_equal e, a, b;\r
+    return g || e;\r
 }\r
 \r
 bool __operator >= (const int a, const int b) {\r
-    return a > b || a == b;\r
+    return float (a) >= float (b);\r
 }\r
 \r
 bool __operator <= (const float a, const float b) {\r
-    return a < b || a == b;\r
+    bool g, e;\r
+    __asm float_less  g, a, b;\r
+    __asm float_equal e, a, b;\r
+    return g || e;\r
 }\r
 \r
 bool __operator <= (const int a, const int b) {\r
-    return a < b || a == b;\r
+    return float (a) <= float (b);\r
 }\r
 \r
-//bool __operator == (const float a, const float b) {\r
-//    bool c;\r
-//    __asm float_equal c, a, b;\r
-//    return c;\r
-//}\r
-//\r
-//bool __operator == (const int a, const int b) {\r
-//     return float (a) == float (b);\r
-//}\r
-//\r
-//bool __operator == (const bool a, const bool b) {\r
-//    return float (a) == float (b);\r
-//}\r
-//\r
-//bool __operator == (const vec2 v, const vec2 u) {\r
-//    return v.x == u.x && v.y == u.y;\r
-//}\r
-//\r
-//bool __operator == (const vec3 v, const vec3 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z;\r
-//}\r
-//\r
-//bool __operator == (const vec4 v, const vec4 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z && v.w == u.w;\r
-//}\r
-//\r
-//bool __operator == (const ivec2 v, const ivec2 u) {\r
-//    return v.x == u.x && v.y == u.y;\r
-//}\r
-//\r
-//bool __operator == (const ivec3 v, const ivec3 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z;\r
-//}\r
-//\r
-//bool __operator == (const ivec4 v, const ivec4 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z && v.w == u.w;\r
-//}\r
-//\r
-//bool __operator == (const bvec2 v, const bvec2 u) {\r
-//    return v.x == u.x && v.y == u.y;\r
-//}\r
-//\r
-//bool __operator == (const bvec3 v, const bvec3 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z;\r
-//}\r
-//\r
-//bool __operator == (const bvec4 v, const bvec4 u) {\r
-//    return v.x == u.x && v.y == u.y && v.z == u.z && v.w == u.w;\r
-//}\r
-//\r
-//bool __operator == (const mat2 m, const mat2 n) {\r
-//    return m[0] == n[0] && m[1] == n[1];\r
-//}\r
-//\r
-//bool __operator == (const mat3 m, const mat3 n) {\r
-//    return m[0] == n[0] && m[1] == n[1] && m[2] == n[2];\r
-//}\r
-//\r
-//bool __operator == (const mat4 m, const mat4 n) {\r
-//    return m[0] == n[0] && m[1] == n[1] && m[2] == n[2] && m[3] == n[3];\r
-//}\r
-//\r
-//bool __operator != (const float a, const float b) {\r
-//    return !(a == b);\r
-//}\r
-//\r
-//bool __operator != (const int a, const int b) {\r
-//    return !(a == b);\r
-//}\r
-//\r
-//bool __operator != (const bool a, const bool b) {\r
-//    return !(a == b);\r
-//}\r
-//\r
-//bool __operator != (const vec2 v, const vec2 u) {\r
-//    return v.x != u.x || v.y != u.y;\r
-//}\r
-//\r
-//bool __operator != (const vec3 v, const vec3 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z;\r
-//}\r
-//\r
-//bool __operator != (const vec4 v, const vec4 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z || v.w != u.w;\r
-//}\r
-//\r
-//bool __operator != (const ivec2 v, const ivec2 u) {\r
-//    return v.x != u.x || v.y != u.y;\r
-//}\r
-//\r
-//bool __operator != (const ivec3 v, const ivec3 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z;\r
-//}\r
-//\r
-//bool __operator != (const ivec4 v, const ivec4 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z || v.w != u.w;\r
-//}\r
-//\r
-//bool __operator != (const bvec2 v, const bvec2 u) {\r
-//    return v.x != u.x || v.y != u.y;\r
-//}\r
-//\r
-//bool __operator != (const bvec3 v, const bvec3 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z;\r
-//}\r
-//\r
-//bool __operator != (const bvec4 v, const bvec4 u) {\r
-//    return v.x != u.x || v.y != u.y || v.z != u.z || v.w != u.w;\r
-//}\r
-//\r
-//bool __operator != (const mat2 m, const mat2 n) {\r
-//    return m[0] != n[0] || m[1] != n[1];\r
-//}\r
-//\r
-//bool __operator != (const mat3 m, const mat3 n) {\r
-//    return m[0] != n[0] || m[1] != n[1] || m[2] != n[2];\r
-//}\r
-//\r
-//bool __operator != (const mat4 m, const mat4 n) {\r
-//    return m[0] != n[0] || m[1] != n[1] || m[2] != n[2] || m[3] != n[3];\r
-//}\r
-\r
 bool __operator ^^ (const bool a, const bool b) {\r
     return a != b;\r
 }\r
 \r
-// \r
+//\r
 // These operators are handled internally by the compiler:\r
-// \r
+//\r
 // bool __operator && (bool a, bool b) {\r
 //     return a ? b : false;\r
 // }\r
 // bool __operator || (bool a, bool b) {\r
 //     return a ? true : b;\r
 // }\r
-// \r
+//\r
 \r
 bool __operator ! (const bool a) {\r
     return a == false;\r
 }\r
 \r
+//\r
+// mesa-specific extension functions.\r
+//\r
+\r
+void print (const float f) {\r
+    __asm float_print f;\r
+}\r
+\r
+void print (const int i) {\r
+    __asm int_print i;\r
+}\r
+\r
+void print (const bool b) {\r
+    __asm bool_print b;\r
+}\r
+\r
+void print (const vec2 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+}\r
+\r
+void print (const vec3 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+}\r
+\r
+void print (const vec4 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+    print (v.w);\r
+}\r
+\r
+void print (const ivec2 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+}\r
+\r
+void print (const ivec3 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+}\r
+\r
+void print (const ivec4 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+    print (v.w);\r
+}\r
+\r
+void print (const bvec2 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+}\r
+\r
+void print (const bvec3 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+}\r
+\r
+void print (const bvec4 v) {\r
+    print (v.x);\r
+    print (v.y);\r
+    print (v.z);\r
+    print (v.w);\r
+}\r
+\r
+void print (const mat2 m) {\r
+    print (m[0]);\r
+    print (m[1]);\r
+}\r
+\r
+void print (const mat3 m) {\r
+    print (m[0]);\r
+    print (m[1]);\r
+    print (m[2]);\r
+}\r
+\r
+void print (const mat4 m) {\r
+    print (m[0]);\r
+    print (m[1]);\r
+    print (m[2]);\r
+    print (m[3]);\r
+}\r
+\r
+void print (const sampler1D e) {\r
+    __asm int_print e;\r
+}\r
+\r
+void print (const sampler2D e) {\r
+    __asm int_print e;\r
+}\r
+\r
+void print (const sampler3D e) {\r
+    __asm int_print e;\r
+}\r
+\r
+void print (const samplerCube e) {\r
+    __asm int_print e;\r
+}\r
+\r
+void print (const sampler1DShadow e) {\r
+    __asm int_print e;\r
+}\r
+\r
+void print (const sampler2DShadow e) {\r
+    __asm int_print e;\r
+}\r
+\r
index 7a45c30..9ba155a 100644 (file)
-
-/* DO NOT EDIT - THIS FILE AUTOMATICALLY GENERATED FROM THE FOLLOWING FILE: */
-/* slang_core.gc */
-
-2,1,0,5,1,1,1,0,9,95,102,0,0,0,1,3,2,0,5,1,95,105,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,
-116,0,18,95,105,0,0,18,95,102,0,0,0,8,18,95,105,0,0,0,1,0,1,1,1,1,0,5,95,105,0,0,0,1,8,18,95,105,0,
-16,8,48,0,39,0,0,1,0,1,1,1,1,0,9,95,102,0,0,0,1,8,18,95,102,0,17,48,0,48,0,0,39,0,0,1,0,5,1,1,1,0,
-1,95,98,0,0,0,1,8,18,95,98,0,16,10,49,0,16,8,48,0,31,0,0,1,0,9,1,1,1,0,1,95,98,0,0,0,1,8,18,95,98,
-0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,1,0,9,1,1,1,0,5,95,105,0,0,0,1,3,2,0,9,1,95,102,0,0,0,4,105,
-110,116,95,116,111,95,102,108,111,97,116,0,18,95,102,0,0,18,95,105,0,0,0,8,18,95,102,0,0,0,1,0,1,1,
-1,1,0,1,95,98,0,0,0,1,8,18,95,98,0,0,0,1,0,5,1,1,1,0,5,95,105,0,0,0,1,8,18,95,105,0,0,0,1,0,9,1,1,
-1,0,9,95,102,0,0,0,1,8,18,95,102,0,0,0,1,0,10,1,1,1,0,9,95,102,0,0,0,1,8,58,118,101,99,50,0,18,95,
-102,0,0,18,95,102,0,0,0,0,0,1,0,10,1,1,1,0,5,95,105,0,0,0,1,8,58,118,101,99,50,0,18,95,105,0,0,18,
-95,105,0,0,0,0,0,1,0,10,1,1,1,0,1,95,98,0,0,0,1,8,58,118,101,99,50,0,18,95,98,0,0,18,95,98,0,0,0,0,
-0,1,0,11,1,1,1,0,9,95,102,0,0,0,1,8,58,118,101,99,51,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,0,
-0,0,1,0,11,1,1,1,0,5,95,105,0,0,0,1,8,58,118,101,99,51,0,18,95,105,0,0,18,95,105,0,0,18,95,105,0,0,
-0,0,0,1,0,11,1,1,1,0,1,95,98,0,0,0,1,8,58,118,101,99,51,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,0,
-0,0,1,0,12,1,1,1,0,9,95,102,0,0,0,1,8,58,118,101,99,52,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,
-18,95,102,0,0,0,0,0,1,0,12,1,1,1,0,5,95,105,0,0,0,1,8,58,118,101,99,52,0,18,95,105,0,0,18,95,105,0,
-0,18,95,105,0,0,18,95,105,0,0,0,0,0,1,0,12,1,1,1,0,1,95,98,0,0,0,1,8,58,118,101,99,52,0,18,95,98,0,
-0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,6,1,1,1,0,5,95,105,0,0,0,1,8,58,105,118,101,99,
-50,0,18,95,105,0,0,18,95,105,0,0,0,0,0,1,0,6,1,1,1,0,9,95,102,0,0,0,1,8,58,105,118,101,99,50,0,18,
-95,102,0,0,18,95,102,0,0,0,0,0,1,0,6,1,1,1,0,1,95,98,0,0,0,1,8,58,105,118,101,99,50,0,18,95,98,0,0,
-18,95,98,0,0,0,0,0,1,0,7,1,1,1,0,5,95,105,0,0,0,1,8,58,105,118,101,99,51,0,18,95,105,0,0,18,95,105,
-0,0,18,95,105,0,0,0,0,0,1,0,7,1,1,1,0,9,95,102,0,0,0,1,8,58,105,118,101,99,51,0,18,95,102,0,0,18,
-95,102,0,0,18,95,102,0,0,0,0,0,1,0,7,1,1,1,0,1,95,98,0,0,0,1,8,58,105,118,101,99,51,0,18,95,98,0,0,
-18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,8,1,1,1,0,5,95,105,0,0,0,1,8,58,105,118,101,99,52,0,18,95,105,
-0,0,18,95,105,0,0,18,95,105,0,0,18,95,105,0,0,0,0,0,1,0,8,1,1,1,0,9,95,102,0,0,0,1,8,58,105,118,
-101,99,52,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,0,0,0,1,0,8,1,1,1,0,1,95,98,0,
-0,0,1,8,58,105,118,101,99,52,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,2,1,1,
-1,0,1,95,98,0,0,0,1,8,58,98,118,101,99,50,0,18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,2,1,1,1,0,9,95,102,
-0,0,0,1,8,58,98,118,101,99,50,0,18,95,102,0,0,18,95,102,0,0,0,0,0,1,0,2,1,1,1,0,5,95,105,0,0,0,1,8,
-58,98,118,101,99,50,0,18,95,105,0,0,18,95,105,0,0,0,0,0,1,0,3,1,1,1,0,1,95,98,0,0,0,1,8,58,98,118,
-101,99,51,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,3,1,1,1,0,9,95,102,0,0,0,1,8,58,98,
-118,101,99,51,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,0,0,0,1,0,3,1,1,1,0,5,95,105,0,0,0,1,8,
-58,98,118,101,99,51,0,18,95,105,0,0,18,95,105,0,0,18,95,105,0,0,0,0,0,1,0,4,1,1,1,0,1,95,98,0,0,0,
-1,8,58,98,118,101,99,52,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,18,95,98,0,0,0,0,0,1,0,4,1,1,1,0,
-9,95,102,0,0,0,1,8,58,98,118,101,99,52,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,18,95,102,0,0,0,
-0,0,1,0,4,1,1,1,0,5,95,105,0,0,0,1,8,58,98,118,101,99,52,0,18,95,105,0,0,18,95,105,0,0,18,95,105,0,
-0,18,95,105,0,0,0,0,0,1,0,13,1,1,1,0,9,95,102,0,0,0,1,8,58,109,97,116,50,0,18,95,102,0,0,17,0,48,0,
-0,0,17,0,48,0,0,0,18,95,102,0,0,0,0,0,1,0,13,1,1,1,0,5,95,105,0,0,0,1,8,58,109,97,116,50,0,18,95,
-105,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,105,0,0,0,0,0,1,0,13,1,1,1,0,1,95,98,0,0,0,1,8,58,109,97,
-116,50,0,18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,98,0,0,0,0,0,1,0,14,1,1,1,0,9,95,102,0,0,0,
-1,8,58,109,97,116,51,0,18,95,102,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,102,0,0,17,0,
-48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,102,0,0,0,0,0,1,0,14,1,1,1,0,5,95,105,0,0,0,1,8,58,109,
-97,116,51,0,18,95,105,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,105,0,0,17,0,48,0,0,0,17,
-0,48,0,0,0,17,0,48,0,0,0,18,95,105,0,0,0,0,0,1,0,14,1,1,1,0,1,95,98,0,0,0,1,8,58,109,97,116,51,0,
-18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,
-0,48,0,0,0,18,95,98,0,0,0,0,0,1,0,15,1,1,1,0,9,95,102,0,0,0,1,8,58,109,97,116,52,0,18,95,102,0,0,
-17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,102,0,0,17,0,48,0,0,0,17,0,48,0,0,0,
-17,0,48,0,0,0,17,0,48,0,0,0,18,95,102,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,
-18,95,102,0,0,0,0,0,1,0,15,1,1,1,0,5,95,105,0,0,0,1,8,58,109,97,116,52,0,18,95,105,0,0,17,0,48,0,0,
-0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,105,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,
-0,17,0,48,0,0,0,18,95,105,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,105,0,
-0,0,0,0,1,0,15,1,1,1,0,1,95,98,0,0,0,1,8,58,109,97,116,52,0,18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,
-0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,
-18,95,98,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,17,0,48,0,0,0,18,95,98,0,0,0,0,0,1,0,0,2,2,
-1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,4,102,108,111,97,116,95,97,100,100,0,18,97,0,0,18,97,0,0,18,98,0,
-0,0,0,1,0,9,2,30,1,1,0,9,97,0,0,0,1,3,2,0,9,1,99,0,0,0,4,102,108,111,97,116,95,110,101,103,97,116,
-101,0,18,99,0,0,18,97,0,0,0,8,18,99,0,0,0,1,0,0,2,3,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,9,18,97,0,18,
-98,0,54,21,0,0,1,0,0,2,4,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,4,102,108,111,97,116,95,109,117,108,116,
-105,112,108,121,0,18,97,0,0,18,97,0,0,18,98,0,0,0,0,1,0,0,2,5,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,4,
-102,108,111,97,116,95,100,105,118,105,100,101,0,18,97,0,0,18,97,0,0,18,98,0,0,0,0,1,0,9,2,29,1,1,0,
-9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,9,18,99,0,18,97,0,20,0,8,18,99,0,18,98,0,21,0,0,1,0,
-0,2,2,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,105,110,116,0,58,102,108,111,97,116,0,18,97,0,
-0,0,58,102,108,111,97,116,0,18,98,0,0,0,46,0,0,20,0,0,1,0,5,2,30,1,1,0,5,97,0,0,0,1,8,58,105,110,
-116,0,58,102,108,111,97,116,0,18,97,0,0,0,54,0,0,0,0,1,0,0,2,3,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,
-18,97,0,18,98,0,54,21,0,0,1,0,9,2,24,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,9,18,99,
-0,18,97,0,20,0,8,18,99,0,18,98,0,23,0,0,1,0,0,2,4,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,
-105,110,116,0,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,48,0,0,20,0,
-0,1,0,9,2,25,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,9,18,99,0,18,97,0,20,0,8,18,99,0,
-18,98,0,24,0,0,1,0,0,2,5,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,105,110,116,0,58,102,108,
-111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,49,0,0,20,0,0,1,0,0,2,2,1,0,2,10,118,
-0,0,1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,18,118,0,59,121,0,18,117,0,59,
-121,0,21,19,0,0,1,0,0,2,3,1,0,2,10,118,0,0,1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,
-120,0,22,18,118,0,59,121,0,18,117,0,59,121,0,22,19,0,0,1,0,0,2,4,1,0,2,10,118,0,0,1,1,0,10,117,0,0,
-0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,18,118,0,59,121,0,18,117,0,59,121,0,23,19,0,0,1,0,0,2,
-5,1,0,2,10,118,0,0,1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,18,118,0,59,121,0,
-18,117,0,59,121,0,24,19,0,0,1,0,0,2,2,1,0,2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,
-117,0,59,120,0,21,18,118,0,59,121,0,18,117,0,59,121,0,21,19,18,118,0,59,122,0,18,117,0,59,122,0,21,
-19,0,0,1,0,0,2,3,1,0,2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,18,
-118,0,59,121,0,18,117,0,59,121,0,22,19,18,118,0,59,122,0,18,117,0,59,122,0,22,19,0,0,1,0,0,2,4,1,0,
-2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,18,118,0,59,121,0,18,
-117,0,59,121,0,23,19,18,118,0,59,122,0,18,117,0,59,122,0,23,19,0,0,1,0,0,2,5,1,0,2,11,118,0,0,1,1,
-0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,18,118,0,59,121,0,18,117,0,59,121,0,24,
-19,18,118,0,59,122,0,18,117,0,59,122,0,24,19,0,0,1,0,0,2,2,1,0,2,12,118,0,0,1,1,0,12,117,0,0,0,1,9,
-18,118,0,59,120,0,18,117,0,59,120,0,21,18,118,0,59,121,0,18,117,0,59,121,0,21,19,18,118,0,59,122,0,
-18,117,0,59,122,0,21,19,18,118,0,59,119,0,18,117,0,59,119,0,21,19,0,0,1,0,0,2,3,1,0,2,12,118,0,0,1,
-1,0,12,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,18,118,0,59,121,0,18,117,0,59,121,0,22,
-19,18,118,0,59,122,0,18,117,0,59,122,0,22,19,18,118,0,59,119,0,18,117,0,59,119,0,22,19,0,0,1,0,0,2,
-4,1,0,2,12,118,0,0,1,1,0,12,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,18,118,0,59,121,0,
-18,117,0,59,121,0,23,19,18,118,0,59,122,0,18,117,0,59,122,0,23,19,18,118,0,59,119,0,18,117,0,59,
-119,0,23,19,0,0,1,0,0,2,5,1,0,2,12,118,0,0,1,1,0,12,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,
-120,0,24,18,118,0,59,121,0,18,117,0,59,121,0,24,19,18,118,0,59,122,0,18,117,0,59,122,0,24,19,18,
-118,0,59,119,0,18,117,0,59,119,0,24,19,0,0,1,0,0,2,2,1,0,2,6,118,0,0,1,1,0,6,117,0,0,0,1,9,18,118,
-0,59,120,0,18,117,0,59,120,0,21,18,118,0,59,121,0,18,117,0,59,121,0,21,19,0,0,1,0,0,2,3,1,0,2,6,
-118,0,0,1,1,0,6,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,18,118,0,59,121,0,18,117,0,59,
-121,0,22,19,0,0,1,0,0,2,4,1,0,2,6,118,0,0,1,1,0,6,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,
-0,23,18,118,0,59,121,0,18,117,0,59,121,0,23,19,0,0,1,0,0,2,5,1,0,2,6,118,0,0,1,1,0,6,117,0,0,0,1,9,
-18,118,0,59,120,0,18,117,0,59,120,0,24,18,118,0,59,121,0,18,117,0,59,121,0,24,19,0,0,1,0,0,2,2,1,0,
-2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,18,118,0,59,121,0,18,117,
-0,59,121,0,21,19,18,118,0,59,122,0,18,117,0,59,122,0,21,19,0,0,1,0,0,2,3,1,0,2,7,118,0,0,1,1,0,7,
-117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,18,118,0,59,121,0,18,117,0,59,121,0,22,19,18,
-118,0,59,122,0,18,117,0,59,122,0,22,19,0,0,1,0,0,2,4,1,0,2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,18,118,
-0,59,120,0,18,117,0,59,120,0,23,18,118,0,59,121,0,18,117,0,59,121,0,23,19,18,118,0,59,122,0,18,117,
-0,59,122,0,23,19,0,0,1,0,0,2,5,1,0,2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,
-120,0,24,18,118,0,59,121,0,18,117,0,59,121,0,24,19,18,118,0,59,122,0,18,117,0,59,122,0,24,19,0,0,1,
-0,0,2,2,1,0,2,8,118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,18,118,0,59,
-121,0,18,117,0,59,121,0,21,19,18,118,0,59,122,0,18,117,0,59,122,0,21,19,18,118,0,59,119,0,18,117,0,
-59,119,0,21,19,0,0,1,0,0,2,3,1,0,2,8,118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,
-120,0,22,18,118,0,59,121,0,18,117,0,59,121,0,22,19,18,118,0,59,122,0,18,117,0,59,122,0,22,19,18,
-118,0,59,119,0,18,117,0,59,119,0,22,19,0,0,1,0,0,2,4,1,0,2,8,118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,
-0,59,120,0,18,117,0,59,120,0,23,18,118,0,59,121,0,18,117,0,59,121,0,23,19,18,118,0,59,122,0,18,117,
-0,59,122,0,23,19,18,118,0,59,119,0,18,117,0,59,119,0,23,19,0,0,1,0,0,2,5,1,0,2,8,118,0,0,1,1,0,8,
-117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,18,118,0,59,121,0,18,117,0,59,121,0,24,19,18,
-118,0,59,122,0,18,117,0,59,122,0,24,19,18,118,0,59,119,0,18,117,0,59,119,0,24,19,0,0,1,0,0,2,2,1,0,
-2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,21,18,109,0,16,10,
-49,0,57,18,110,0,16,10,49,0,57,21,19,0,0,1,0,0,2,3,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,
-0,16,8,48,0,57,18,110,0,16,8,48,0,57,22,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,22,19,0,0,1,
-0,10,2,24,1,1,0,13,109,0,0,1,1,0,10,118,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,109,0,16,
-8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,0,18,118,0,59,120,0,
-18,109,0,16,8,48,0,57,59,121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,0,0,0,0,
-1,0,13,2,24,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,8,58,109,97,116,50,0,18,109,0,18,110,0,16,8,48,0,
-57,48,0,18,109,0,18,110,0,16,10,49,0,57,48,0,0,0,0,1,0,0,2,4,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,
-9,18,109,0,18,109,0,18,110,0,48,20,0,0,1,0,0,2,5,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,
-16,8,48,0,57,18,110,0,16,8,48,0,57,24,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,24,19,0,0,1,0,
-0,2,2,1,0,2,14,109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,21,18,
-109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,21,19,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,21,
-19,0,0,1,0,0,2,3,1,0,2,14,109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,
-57,22,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,22,19,18,109,0,16,10,50,0,57,18,110,0,16,10,50,
-0,57,22,19,0,0,1,0,11,2,24,1,1,0,14,109,0,0,1,1,0,11,118,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,
-120,0,18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,18,
-118,0,59,122,0,18,109,0,16,10,50,0,57,59,120,0,48,46,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,
-121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,
-50,0,57,59,121,0,48,46,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,122,0,48,18,118,0,59,121,0,18,
-109,0,16,10,49,0,57,59,122,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,122,0,48,46,0,0,0,0,
-1,0,14,2,24,1,1,0,14,109,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,51,0,18,109,0,18,110,0,16,8,48,0,
-57,48,0,18,109,0,18,110,0,16,10,49,0,57,48,0,18,109,0,18,110,0,16,10,50,0,57,48,0,0,0,0,1,0,0,2,4,
-1,0,2,14,109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,18,109,0,18,110,0,48,20,0,0,1,0,0,2,5,1,0,2,14,
-109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,24,18,109,0,16,10,49,0,
-57,18,110,0,16,10,49,0,57,24,19,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,24,19,0,0,1,0,0,2,2,
-1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,21,18,109,0,16,
-10,49,0,57,18,110,0,16,10,49,0,57,21,19,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,21,19,18,109,
-0,16,10,51,0,57,18,110,0,16,10,51,0,57,21,19,0,0,1,0,0,2,3,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,
-18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,22,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,22,19,
-18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,22,19,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,
-22,19,0,0,1,0,12,2,24,1,1,0,15,109,0,0,1,1,0,12,118,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,
-18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,18,118,0,
-59,122,0,18,109,0,16,10,50,0,57,59,120,0,48,46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,120,0,
-48,46,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,
-57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,121,0,48,46,18,118,0,59,119,0,18,109,
-0,16,10,51,0,57,59,121,0,48,46,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,122,0,48,18,118,0,59,
-121,0,18,109,0,16,10,49,0,57,59,122,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,122,0,48,
-46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,122,0,48,46,0,18,118,0,59,120,0,18,109,0,16,8,48,0,
-57,59,119,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,119,0,48,46,18,118,0,59,122,0,18,109,0,
-16,10,50,0,57,59,119,0,48,46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,119,0,48,46,0,0,0,0,1,0,
-15,2,24,1,1,0,15,109,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,116,52,0,18,109,0,18,110,0,16,8,48,0,57,
-48,0,18,109,0,18,110,0,16,10,49,0,57,48,0,18,109,0,18,110,0,16,10,50,0,57,48,0,18,109,0,18,110,0,
-16,10,51,0,57,48,0,0,0,0,1,0,0,2,4,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,18,109,0,18,
-110,0,48,20,0,0,1,0,0,2,5,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,
-16,8,48,0,57,24,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,24,19,18,109,0,16,10,50,0,57,18,110,
-0,16,10,50,0,57,24,19,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,24,19,0,0,1,0,0,2,2,1,0,2,10,
-118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,21,18,118,0,59,121,0,18,97,0,21,19,0,0,1,0,
-0,2,3,1,0,2,10,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,18,118,0,59,121,0,18,97,0,
-22,19,0,0,1,0,0,2,4,1,0,2,10,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,23,18,118,0,59,
-121,0,18,97,0,23,19,0,0,1,0,0,2,5,1,0,2,10,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,
-24,18,118,0,59,121,0,18,97,0,24,19,0,0,1,0,0,2,2,1,0,2,11,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,
-120,0,18,97,0,21,18,118,0,59,121,0,18,97,0,21,19,18,118,0,59,122,0,18,97,0,21,19,0,0,1,0,0,2,3,1,0,
-2,11,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,18,118,0,59,121,0,18,97,0,22,19,18,
-118,0,59,122,0,18,97,0,22,19,0,0,1,0,0,2,4,1,0,2,11,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,
-18,97,0,23,18,118,0,59,121,0,18,97,0,23,19,18,118,0,59,122,0,18,97,0,23,19,0,0,1,0,0,2,5,1,0,2,11,
-118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,24,18,118,0,59,121,0,18,97,0,24,19,18,118,0,
-59,122,0,18,97,0,24,19,0,0,1,0,0,2,2,1,0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,
-0,21,18,118,0,59,121,0,18,97,0,21,19,18,118,0,59,122,0,18,97,0,21,19,18,118,0,59,119,0,18,97,0,21,
-19,0,0,1,0,0,2,3,1,0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,18,118,0,59,
-121,0,18,97,0,22,19,18,118,0,59,122,0,18,97,0,22,19,18,118,0,59,119,0,18,97,0,22,19,0,0,1,0,0,2,4,
-1,0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,23,18,118,0,59,121,0,18,97,0,23,19,
-18,118,0,59,122,0,18,97,0,23,19,18,118,0,59,119,0,18,97,0,23,19,0,0,1,0,0,2,5,1,0,2,12,118,0,0,1,1,
-0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,24,18,118,0,59,121,0,18,97,0,24,19,18,118,0,59,122,0,18,
-97,0,24,19,18,118,0,59,119,0,18,97,0,24,19,0,0,1,0,0,2,2,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,1,9,18,
-109,0,16,8,48,0,57,18,97,0,21,18,109,0,16,10,49,0,57,18,97,0,21,19,0,0,1,0,0,2,3,1,0,2,13,109,0,0,
-1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,22,18,109,0,16,10,49,0,57,18,97,0,22,19,0,0,1,0,
-0,2,4,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,18,109,0,16,10,49,0,
-57,18,97,0,23,19,0,0,1,0,0,2,5,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,
-24,18,109,0,16,10,49,0,57,18,97,0,24,19,0,0,1,0,0,2,2,1,0,2,14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,
-0,16,8,48,0,57,18,97,0,21,18,109,0,16,10,49,0,57,18,97,0,21,19,18,109,0,16,10,50,0,57,18,97,0,21,
-19,0,0,1,0,0,2,3,1,0,2,14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,22,18,109,0,
-16,10,49,0,57,18,97,0,22,19,18,109,0,16,10,50,0,57,18,97,0,22,19,0,0,1,0,0,2,4,1,0,2,14,109,0,0,1,
-1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,18,109,0,16,10,49,0,57,18,97,0,23,19,18,109,0,
-16,10,50,0,57,18,97,0,23,19,0,0,1,0,0,2,5,1,0,2,14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,
-57,18,97,0,24,18,109,0,16,10,49,0,57,18,97,0,24,19,18,109,0,16,10,50,0,57,18,97,0,24,19,0,0,1,0,0,
-2,2,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,21,18,109,0,16,10,49,0,57,
-18,97,0,21,19,18,109,0,16,10,50,0,57,18,97,0,21,19,18,109,0,16,10,51,0,57,18,97,0,21,19,0,0,1,0,0,
-2,3,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,22,18,109,0,16,10,49,0,57,
-18,97,0,22,19,18,109,0,16,10,50,0,57,18,97,0,22,19,18,109,0,16,10,51,0,57,18,97,0,22,19,0,0,1,0,0,
-2,4,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,18,109,0,16,10,49,0,57,
-18,97,0,23,19,18,109,0,16,10,50,0,57,18,97,0,23,19,18,109,0,16,10,51,0,57,18,97,0,23,19,0,0,1,0,0,
-2,5,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,24,18,109,0,16,10,49,0,57,
-18,97,0,24,19,18,109,0,16,10,50,0,57,18,97,0,24,19,18,109,0,16,10,51,0,57,18,97,0,24,19,0,0,1,0,10,
-2,24,1,1,0,10,118,0,0,1,1,0,13,109,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,109,0,16,8,48,
-0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,8,48,0,57,59,121,0,48,46,0,18,118,0,59,120,0,18,109,
-0,16,10,49,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,0,0,0,0,1,0,0,
-2,4,1,0,2,10,118,0,0,1,1,0,13,109,0,0,0,1,9,18,118,0,18,118,0,18,109,0,48,20,0,0,1,0,11,2,24,1,1,0,
-11,118,0,0,1,1,0,14,109,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,
-120,0,48,18,118,0,59,121,0,18,109,0,16,8,48,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,8,48,
-0,57,59,122,0,48,46,0,18,118,0,59,120,0,18,109,0,16,10,49,0,57,59,120,0,48,18,118,0,59,121,0,18,
-109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,49,0,57,59,122,0,48,46,0,18,
-118,0,59,120,0,18,109,0,16,10,50,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,50,0,57,59,121,
-0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,122,0,48,46,0,0,0,0,1,0,0,2,4,1,0,2,11,118,0,0,
-1,1,0,14,109,0,0,0,1,9,18,118,0,18,118,0,18,109,0,48,20,0,0,1,0,12,2,24,1,1,0,12,118,0,0,1,1,0,15,
-109,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,
-121,0,18,109,0,16,8,48,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,8,48,0,57,59,122,0,48,46,
-18,118,0,59,119,0,18,109,0,16,8,48,0,57,59,119,0,48,46,0,18,118,0,59,120,0,18,109,0,16,10,49,0,57,
-59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,
-10,49,0,57,59,122,0,48,46,18,118,0,59,119,0,18,109,0,16,10,49,0,57,59,119,0,48,46,0,18,118,0,59,
-120,0,18,109,0,16,10,50,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,50,0,57,59,121,0,48,46,
-18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,122,0,48,46,18,118,0,59,119,0,18,109,0,16,10,50,0,57,
-59,119,0,48,46,0,18,118,0,59,120,0,18,109,0,16,10,51,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,
-16,10,51,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,51,0,57,59,122,0,48,46,18,118,0,59,
-119,0,18,109,0,16,10,51,0,57,59,119,0,48,46,0,0,0,0,1,0,0,2,4,1,0,2,12,118,0,0,1,1,0,15,109,0,0,0,
-1,9,18,118,0,18,118,0,18,109,0,48,20,0,0,1,0,9,2,30,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,8,18,97,0,18,
-98,0,54,46,0,0,1,0,5,2,29,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,5,1,99,0,0,0,9,18,99,0,18,97,0,
-20,0,8,18,99,0,18,98,0,21,0,0,1,0,5,2,30,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,18,97,0,18,98,0,54,46,
-0,0,1,0,5,2,24,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,5,1,99,0,0,0,8,18,99,0,18,97,0,20,18,98,0,
-23,0,0,1,0,5,2,25,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,5,1,99,0,0,0,8,18,99,0,18,97,0,20,18,98,
-0,24,0,0,1,0,10,2,29,1,1,0,10,118,0,0,1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,
-18,117,0,59,120,0,46,0,18,118,0,59,121,0,18,117,0,59,121,0,46,0,0,0,0,1,0,10,2,30,1,1,0,10,118,0,0,
-1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,117,0,59,120,0,47,0,18,118,0,59,121,
-0,18,117,0,59,121,0,47,0,0,0,0,1,0,11,2,29,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,8,58,118,101,99,
-51,0,18,118,0,59,120,0,18,117,0,59,120,0,46,0,18,118,0,59,121,0,18,117,0,59,121,0,46,0,18,118,0,59,
-122,0,18,117,0,59,122,0,46,0,0,0,0,1,0,11,2,30,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,8,58,118,101,
-99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,47,0,18,118,0,59,121,0,18,117,0,59,121,0,47,0,18,118,0,
-59,122,0,18,117,0,59,122,0,47,0,0,0,0,1,0,12,2,29,1,1,0,12,118,0,0,1,1,0,12,117,0,0,0,1,8,58,118,
-101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,46,0,18,118,0,59,121,0,18,117,0,59,121,0,46,0,18,
-118,0,59,122,0,18,117,0,59,122,0,46,0,18,118,0,59,119,0,18,117,0,59,119,0,46,0,0,0,0,1,0,12,2,30,1,
-1,0,12,118,0,0,1,1,0,12,117,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,47,0,
-18,118,0,59,121,0,18,117,0,59,121,0,47,0,18,118,0,59,122,0,18,117,0,59,122,0,47,0,18,118,0,59,119,
-0,18,117,0,59,119,0,47,0,0,0,0,1,0,6,2,29,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,
-50,0,18,118,0,59,120,0,18,117,0,59,120,0,46,0,18,118,0,59,121,0,18,117,0,59,121,0,46,0,0,0,0,1,0,6,
-2,30,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,59,120,0,18,117,0,59,
-120,0,47,0,18,118,0,59,121,0,18,117,0,59,121,0,47,0,0,0,0,1,0,7,2,29,1,1,0,7,118,0,0,1,1,0,7,117,0,
-0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,46,0,18,118,0,59,121,0,18,117,0,
-59,121,0,46,0,18,118,0,59,122,0,18,117,0,59,122,0,46,0,0,0,0,1,0,7,2,30,1,1,0,7,118,0,0,1,1,0,7,
-117,0,0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,47,0,18,118,0,59,121,0,18,
-117,0,59,121,0,47,0,18,118,0,59,122,0,18,117,0,59,122,0,47,0,0,0,0,1,0,8,2,29,1,1,0,8,118,0,0,1,1,
-0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,46,0,18,118,0,59,121,
-0,18,117,0,59,121,0,46,0,18,118,0,59,122,0,18,117,0,59,122,0,46,0,18,118,0,59,119,0,18,117,0,59,
-119,0,46,0,0,0,0,1,0,8,2,30,1,1,0,8,118,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,
-59,120,0,18,117,0,59,120,0,47,0,18,118,0,59,121,0,18,117,0,59,121,0,47,0,18,118,0,59,122,0,18,117,
-0,59,122,0,47,0,18,118,0,59,119,0,18,117,0,59,119,0,47,0,0,0,0,1,0,13,2,29,1,1,0,13,109,0,0,1,1,0,
-13,110,0,0,0,1,8,58,109,97,116,50,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,46,0,18,109,0,16,
-10,49,0,57,18,110,0,16,10,49,0,57,46,0,0,0,0,1,0,13,2,30,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,8,
-58,109,97,116,50,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,47,0,18,109,0,16,10,49,0,57,18,110,
-0,16,10,49,0,57,47,0,0,0,0,1,0,14,2,29,1,1,0,14,109,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,51,0,
-18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,46,0,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,46,
-0,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,46,0,0,0,0,1,0,14,2,30,1,1,0,14,109,0,0,1,1,0,14,
-110,0,0,0,1,8,58,109,97,116,51,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,47,0,18,109,0,16,10,
-49,0,57,18,110,0,16,10,49,0,57,47,0,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,47,0,0,0,0,1,0,
-15,2,29,1,1,0,15,109,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,110,0,
-16,8,48,0,57,46,0,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,46,0,18,109,0,16,10,50,0,57,18,110,
-0,16,10,50,0,57,46,0,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,46,0,0,0,0,1,0,15,2,30,1,1,0,15,
-109,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,47,0,
-18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,47,0,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,
-47,0,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,47,0,0,0,0,1,0,10,2,29,1,1,0,9,97,0,0,1,1,0,10,
-117,0,0,0,1,8,58,118,101,99,50,0,18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,59,121,0,46,0,0,0,
-0,1,0,10,2,29,1,1,0,10,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,98,0,
-46,0,18,118,0,59,121,0,18,98,0,46,0,0,0,0,1,0,10,2,30,1,1,0,9,97,0,0,1,1,0,10,117,0,0,0,1,8,58,118,
-101,99,50,0,18,97,0,18,117,0,59,120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,0,0,0,1,0,10,2,30,1,1,0,
-10,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,98,0,47,0,18,118,0,59,121,
-0,18,98,0,47,0,0,0,0,1,0,10,2,24,1,1,0,9,97,0,0,1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,97,0,
-18,117,0,59,120,0,48,0,18,97,0,18,117,0,59,121,0,48,0,0,0,0,1,0,10,2,24,1,1,0,10,118,0,0,1,1,0,9,
-98,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,48,0,0,0,
-0,1,0,10,2,25,1,1,0,9,97,0,0,1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,97,0,18,117,0,59,120,0,
-49,0,18,97,0,18,117,0,59,121,0,49,0,0,0,0,1,0,10,2,25,1,1,0,10,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,
-101,99,50,0,18,118,0,59,120,0,18,98,0,49,0,18,118,0,59,121,0,18,98,0,49,0,0,0,0,1,0,11,2,29,1,1,0,
-9,97,0,0,1,1,0,11,117,0,0,0,1,8,58,118,101,99,51,0,18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,
-59,121,0,46,0,18,97,0,18,117,0,59,122,0,46,0,0,0,0,1,0,11,2,29,1,1,0,11,118,0,0,1,1,0,9,98,0,0,0,1,
-8,58,118,101,99,51,0,18,118,0,59,120,0,18,98,0,46,0,18,118,0,59,121,0,18,98,0,46,0,18,118,0,59,122,
-0,18,98,0,46,0,0,0,0,1,0,11,2,30,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,8,58,118,101,99,51,0,18,97,0,
-18,117,0,59,120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,18,97,0,18,117,0,59,122,0,47,0,0,0,0,1,0,11,
-2,30,1,1,0,11,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,18,98,0,47,0,18,
-118,0,59,121,0,18,98,0,47,0,18,118,0,59,122,0,18,98,0,47,0,0,0,0,1,0,11,2,24,1,1,0,9,97,0,0,1,1,0,
-11,117,0,0,0,1,8,58,118,101,99,51,0,18,97,0,18,117,0,59,120,0,48,0,18,97,0,18,117,0,59,121,0,48,0,
-18,97,0,18,117,0,59,122,0,48,0,0,0,0,1,0,11,2,24,1,1,0,11,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,
-99,51,0,18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,48,0,18,118,0,59,122,0,18,98,0,48,
-0,0,0,0,1,0,11,2,25,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,8,58,118,101,99,51,0,18,97,0,18,117,0,59,
-120,0,49,0,18,97,0,18,117,0,59,121,0,49,0,18,97,0,18,117,0,59,122,0,49,0,0,0,0,1,0,11,2,25,1,1,0,
-11,118,0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,18,98,0,49,0,18,118,0,59,121,
-0,18,98,0,49,0,18,118,0,59,122,0,18,98,0,49,0,0,0,0,1,0,12,2,29,1,1,0,9,97,0,0,1,1,0,12,117,0,0,0,
-1,8,58,118,101,99,52,0,18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,59,121,0,46,0,18,97,0,18,
-117,0,59,122,0,46,0,18,97,0,18,117,0,59,119,0,46,0,0,0,0,1,0,12,2,29,1,1,0,12,118,0,0,1,1,0,9,98,0,
-0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,98,0,46,0,18,118,0,59,121,0,18,98,0,46,0,18,118,0,
-59,122,0,18,98,0,46,0,18,118,0,59,119,0,18,98,0,46,0,0,0,0,1,0,12,2,30,1,1,0,9,97,0,0,1,1,0,12,117,
-0,0,0,1,8,58,118,101,99,52,0,18,97,0,18,117,0,59,120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,18,97,0,
-18,117,0,59,122,0,47,0,18,97,0,18,117,0,59,119,0,47,0,0,0,0,1,0,12,2,30,1,1,0,12,118,0,0,1,1,0,9,
-98,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,98,0,47,0,18,118,0,59,121,0,18,98,0,47,0,18,
-118,0,59,122,0,18,98,0,47,0,18,118,0,59,119,0,18,98,0,47,0,0,0,0,1,0,12,2,24,1,1,0,9,97,0,0,1,1,0,
-12,117,0,0,0,1,8,58,118,101,99,52,0,18,97,0,18,117,0,59,120,0,48,0,18,97,0,18,117,0,59,121,0,48,0,
-18,97,0,18,117,0,59,122,0,48,0,18,97,0,18,117,0,59,119,0,48,0,0,0,0,1,0,12,2,24,1,1,0,12,118,0,0,1,
-1,0,9,98,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,48,
-0,18,118,0,59,122,0,18,98,0,48,0,18,118,0,59,119,0,18,98,0,48,0,0,0,0,1,0,12,2,25,1,1,0,9,97,0,0,1,
-1,0,12,117,0,0,0,1,8,58,118,101,99,52,0,18,97,0,18,117,0,59,120,0,49,0,18,97,0,18,117,0,59,121,0,
-49,0,18,97,0,18,117,0,59,122,0,49,0,18,97,0,18,117,0,59,119,0,49,0,0,0,0,1,0,12,2,25,1,1,0,12,118,
-0,0,1,1,0,9,98,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,98,0,49,0,18,118,0,59,121,0,18,98,
-0,49,0,18,118,0,59,122,0,18,98,0,49,0,18,118,0,59,119,0,18,98,0,49,0,0,0,0,1,0,13,2,29,1,1,0,9,97,
-0,0,1,1,0,13,110,0,0,0,1,8,58,109,97,116,50,0,18,97,0,18,110,0,16,8,48,0,57,46,0,18,97,0,18,110,0,
-16,10,49,0,57,46,0,0,0,0,1,0,13,2,29,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,50,0,18,
-109,0,16,8,48,0,57,18,98,0,46,0,18,109,0,16,10,49,0,57,18,98,0,46,0,0,0,0,1,0,13,2,30,1,1,0,9,97,0,
-0,1,1,0,13,110,0,0,0,1,8,58,109,97,116,50,0,18,97,0,18,110,0,16,8,48,0,57,47,0,18,97,0,18,110,0,16,
-10,49,0,57,47,0,0,0,0,1,0,13,2,30,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,50,0,18,109,
-0,16,8,48,0,57,18,98,0,47,0,18,109,0,16,10,49,0,57,18,98,0,47,0,0,0,0,1,0,13,2,24,1,1,0,9,97,0,0,1,
-1,0,13,110,0,0,0,1,8,58,109,97,116,50,0,18,97,0,18,110,0,16,8,48,0,57,48,0,18,97,0,18,110,0,16,10,
-49,0,57,48,0,0,0,0,1,0,13,2,24,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,50,0,18,109,0,
-16,8,48,0,57,18,98,0,48,0,18,109,0,16,10,49,0,57,18,98,0,48,0,0,0,0,1,0,13,2,25,1,1,0,9,97,0,0,1,1,
-0,13,110,0,0,0,1,8,58,109,97,116,50,0,18,97,0,18,110,0,16,8,48,0,57,49,0,18,97,0,18,110,0,16,10,49,
-0,57,49,0,0,0,0,1,0,13,2,25,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,50,0,18,109,0,16,8,
-48,0,57,18,98,0,49,0,18,109,0,16,10,49,0,57,18,98,0,49,0,0,0,0,1,0,14,2,29,1,1,0,9,97,0,0,1,1,0,14,
-110,0,0,0,1,8,58,109,97,116,51,0,18,97,0,18,110,0,16,8,48,0,57,46,0,18,97,0,18,110,0,16,10,49,0,57,
-46,0,18,97,0,18,110,0,16,10,50,0,57,46,0,0,0,0,1,0,14,2,29,1,1,0,14,109,0,0,1,1,0,9,98,0,0,0,1,8,
-58,109,97,116,51,0,18,109,0,16,8,48,0,57,18,98,0,46,0,18,109,0,16,10,49,0,57,18,98,0,46,0,18,109,0,
-16,10,50,0,57,18,98,0,46,0,0,0,0,1,0,14,2,30,1,1,0,9,97,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,
-51,0,18,97,0,18,110,0,16,8,48,0,57,47,0,18,97,0,18,110,0,16,10,49,0,57,47,0,18,97,0,18,110,0,16,10,
-50,0,57,47,0,0,0,0,1,0,14,2,30,1,1,0,14,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,51,0,18,109,0,
-16,8,48,0,57,18,98,0,47,0,18,109,0,16,10,49,0,57,18,98,0,47,0,18,109,0,16,10,50,0,57,18,98,0,47,0,
-0,0,0,1,0,14,2,24,1,1,0,9,97,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,51,0,18,97,0,18,110,0,16,8,
-48,0,57,48,0,18,97,0,18,110,0,16,10,49,0,57,48,0,18,97,0,18,110,0,16,10,50,0,57,48,0,0,0,0,1,0,14,
-2,24,1,1,0,14,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,51,0,18,109,0,16,8,48,0,57,18,98,0,48,0,
-18,109,0,16,10,49,0,57,18,98,0,48,0,18,109,0,16,10,50,0,57,18,98,0,48,0,0,0,0,1,0,14,2,25,1,1,0,9,
-97,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,51,0,18,97,0,18,110,0,16,8,48,0,57,49,0,18,97,0,18,110,
-0,16,10,49,0,57,49,0,18,97,0,18,110,0,16,10,50,0,57,49,0,0,0,0,1,0,14,2,25,1,1,0,14,109,0,0,1,1,0,
-9,98,0,0,0,1,8,58,109,97,116,51,0,18,109,0,16,8,48,0,57,18,98,0,49,0,18,109,0,16,10,49,0,57,18,98,
-0,49,0,18,109,0,16,10,50,0,57,18,98,0,49,0,0,0,0,1,0,15,2,29,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,8,
-58,109,97,116,52,0,18,97,0,18,110,0,16,8,48,0,57,46,0,18,97,0,18,110,0,16,10,49,0,57,46,0,18,97,0,
-18,110,0,16,10,50,0,57,46,0,18,97,0,18,110,0,16,10,51,0,57,46,0,0,0,0,1,0,15,2,29,1,1,0,15,109,0,0,
-1,1,0,9,98,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,98,0,46,0,18,109,0,16,10,49,0,57,
-18,98,0,46,0,18,109,0,16,10,50,0,57,18,98,0,46,0,18,109,0,16,10,51,0,57,18,98,0,46,0,0,0,0,1,0,15,
-2,30,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,116,52,0,18,97,0,18,110,0,16,8,48,0,57,47,0,
-18,97,0,18,110,0,16,10,49,0,57,47,0,18,97,0,18,110,0,16,10,50,0,57,47,0,18,97,0,18,110,0,16,10,51,
-0,57,47,0,0,0,0,1,0,15,2,30,1,1,0,15,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,
-48,0,57,18,98,0,47,0,18,109,0,16,10,49,0,57,18,98,0,47,0,18,109,0,16,10,50,0,57,18,98,0,47,0,18,
-109,0,16,10,51,0,57,18,98,0,47,0,0,0,0,1,0,15,2,24,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,
-116,52,0,18,97,0,18,110,0,16,8,48,0,57,48,0,18,97,0,18,110,0,16,10,49,0,57,48,0,18,97,0,18,110,0,
-16,10,50,0,57,48,0,18,97,0,18,110,0,16,10,51,0,57,48,0,0,0,0,1,0,15,2,24,1,1,0,15,109,0,0,1,1,0,9,
-98,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,98,0,48,0,18,109,0,16,10,49,0,57,18,98,0,
-48,0,18,109,0,16,10,50,0,57,18,98,0,48,0,18,109,0,16,10,51,0,57,18,98,0,48,0,0,0,0,1,0,15,2,25,1,1,
-0,9,97,0,0,1,1,0,15,110,0,0,0,1,8,58,109,97,116,52,0,18,97,0,18,110,0,16,8,48,0,57,49,0,18,97,0,18,
-110,0,16,10,49,0,57,49,0,18,97,0,18,110,0,16,10,50,0,57,49,0,18,97,0,18,110,0,16,10,51,0,57,49,0,0,
-0,0,1,0,15,2,25,1,1,0,15,109,0,0,1,1,0,9,98,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,
-98,0,49,0,18,109,0,16,10,49,0,57,18,98,0,49,0,18,109,0,16,10,50,0,57,18,98,0,49,0,18,109,0,16,10,
-51,0,57,18,98,0,49,0,0,0,0,1,0,6,2,29,1,1,0,5,97,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,
-18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,59,121,0,46,0,0,0,0,1,0,6,2,29,1,1,0,6,118,0,0,1,1,
-0,5,98,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,59,120,0,18,98,0,46,0,18,118,0,59,121,0,18,98,0,
-46,0,0,0,0,1,0,6,2,30,1,1,0,5,97,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,18,117,0,
-59,120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,0,0,0,1,0,6,2,30,1,1,0,6,118,0,0,1,1,0,5,98,0,0,0,1,8,
-58,105,118,101,99,50,0,18,118,0,59,120,0,18,98,0,47,0,18,118,0,59,121,0,18,98,0,47,0,0,0,0,1,0,6,2,
-24,1,1,0,5,97,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,18,117,0,59,120,0,48,0,18,
-97,0,18,117,0,59,121,0,48,0,0,0,0,1,0,6,2,24,1,1,0,6,118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,
-99,50,0,18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,48,0,0,0,0,1,0,6,2,25,1,1,0,5,97,
-0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,18,117,0,59,120,0,49,0,18,97,0,18,117,0,
-59,121,0,49,0,0,0,0,1,0,6,2,25,1,1,0,6,118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,99,50,0,18,118,
-0,59,120,0,18,98,0,49,0,18,118,0,59,121,0,18,98,0,49,0,0,0,0,1,0,7,2,29,1,1,0,5,97,0,0,1,1,0,7,117,
-0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,59,121,0,46,0,18,
-97,0,18,117,0,59,122,0,46,0,0,0,0,1,0,7,2,29,1,1,0,7,118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,
-99,51,0,18,118,0,59,120,0,18,98,0,46,0,18,118,0,59,121,0,18,98,0,46,0,18,118,0,59,122,0,18,98,0,46,
-0,0,0,0,1,0,7,2,30,1,1,0,5,97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,18,117,0,59,
-120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,18,97,0,18,117,0,59,122,0,47,0,0,0,0,1,0,7,2,30,1,1,0,7,
-118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,98,0,47,0,18,118,0,59,121,
-0,18,98,0,47,0,18,118,0,59,122,0,18,98,0,47,0,0,0,0,1,0,7,2,24,1,1,0,5,97,0,0,1,1,0,7,117,0,0,0,1,
-8,58,105,118,101,99,51,0,18,97,0,18,117,0,59,120,0,48,0,18,97,0,18,117,0,59,121,0,48,0,18,97,0,18,
-117,0,59,122,0,48,0,0,0,0,1,0,7,2,24,1,1,0,7,118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,99,51,0,
-18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,48,0,18,118,0,59,122,0,18,98,0,48,0,0,0,0,
-1,0,7,2,25,1,1,0,5,97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,18,117,0,59,120,0,
-49,0,18,97,0,18,117,0,59,121,0,49,0,18,97,0,18,117,0,59,122,0,49,0,0,0,0,1,0,7,2,25,1,1,0,7,118,0,
-0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,98,0,49,0,18,118,0,59,121,0,18,
-98,0,49,0,18,118,0,59,122,0,18,98,0,49,0,0,0,0,1,0,8,2,29,1,1,0,5,97,0,0,1,1,0,8,117,0,0,0,1,8,58,
-105,118,101,99,52,0,18,97,0,18,117,0,59,120,0,46,0,18,97,0,18,117,0,59,121,0,46,0,18,97,0,18,117,0,
-59,122,0,46,0,18,97,0,18,117,0,59,119,0,46,0,0,0,0,1,0,8,2,29,1,1,0,8,118,0,0,1,1,0,5,98,0,0,0,1,8,
-58,105,118,101,99,52,0,18,118,0,59,120,0,18,98,0,46,0,18,118,0,59,121,0,18,98,0,46,0,18,118,0,59,
-122,0,18,98,0,46,0,18,118,0,59,119,0,18,98,0,46,0,0,0,0,1,0,8,2,30,1,1,0,5,97,0,0,1,1,0,8,117,0,0,
-0,1,8,58,105,118,101,99,52,0,18,97,0,18,117,0,59,120,0,47,0,18,97,0,18,117,0,59,121,0,47,0,18,97,0,
-18,117,0,59,122,0,47,0,18,97,0,18,117,0,59,119,0,47,0,0,0,0,1,0,8,2,30,1,1,0,8,118,0,0,1,1,0,5,98,
-0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,98,0,47,0,18,118,0,59,121,0,18,98,0,47,0,18,
-118,0,59,122,0,18,98,0,47,0,18,118,0,59,119,0,18,98,0,47,0,0,0,0,1,0,8,2,24,1,1,0,5,97,0,0,1,1,0,8,
-117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,18,117,0,59,120,0,48,0,18,97,0,18,117,0,59,121,0,48,0,
-18,97,0,18,117,0,59,122,0,48,0,18,97,0,18,117,0,59,119,0,48,0,0,0,0,1,0,8,2,24,1,1,0,8,118,0,0,1,1,
-0,5,98,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,98,0,48,0,18,118,0,59,121,0,18,98,0,
-48,0,18,118,0,59,122,0,18,98,0,48,0,18,118,0,59,119,0,18,98,0,48,0,0,0,0,1,0,8,2,25,1,1,0,5,97,0,0,
-1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,18,117,0,59,120,0,49,0,18,97,0,18,117,0,59,
-121,0,49,0,18,97,0,18,117,0,59,122,0,49,0,18,97,0,18,117,0,59,119,0,49,0,0,0,0,1,0,8,2,25,1,1,0,8,
-118,0,0,1,1,0,5,98,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,98,0,49,0,18,118,0,59,121,
-0,18,98,0,49,0,18,118,0,59,122,0,18,98,0,49,0,18,118,0,59,119,0,18,98,0,49,0,0,0,0,1,0,10,2,24,1,1,
-0,10,118,0,0,1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,117,0,59,120,0,48,0,18,
-118,0,59,121,0,18,117,0,59,121,0,48,0,0,0,0,1,0,11,2,24,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,8,58,
-118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,48,0,18,118,0,59,121,0,18,117,0,59,121,0,48,0,
-18,118,0,59,122,0,18,117,0,59,122,0,48,0,0,0,0,1,0,12,2,24,1,1,0,12,118,0,0,1,1,0,12,117,0,0,0,1,8,
-58,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,48,0,18,118,0,59,121,0,18,117,0,59,121,0,48,
-0,18,118,0,59,122,0,18,117,0,59,122,0,48,0,18,118,0,59,119,0,18,117,0,59,119,0,48,0,0,0,0,1,0,6,2,
-24,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,59,120,0,18,117,0,59,120,
-0,48,0,18,118,0,59,121,0,18,117,0,59,121,0,48,0,0,0,0,1,0,7,2,24,1,1,0,7,118,0,0,1,1,0,7,117,0,0,0,
-1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,48,0,18,118,0,59,121,0,18,117,0,59,
-121,0,48,0,18,118,0,59,122,0,18,117,0,59,122,0,48,0,0,0,0,1,0,8,2,24,1,1,0,8,118,0,0,1,1,0,8,117,0,
-0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,48,0,18,118,0,59,121,0,18,117,0,
-59,121,0,48,0,18,118,0,59,122,0,18,117,0,59,122,0,48,0,18,118,0,59,119,0,18,117,0,59,119,0,48,0,0,
-0,0,1,0,10,2,25,1,1,0,10,118,0,0,1,1,0,10,117,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,18,
-117,0,59,120,0,49,0,18,118,0,59,121,0,18,117,0,59,121,0,49,0,0,0,0,1,0,11,2,25,1,1,0,11,118,0,0,1,
-1,0,11,117,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,49,0,18,118,0,59,121,0,
-18,117,0,59,121,0,49,0,18,118,0,59,122,0,18,117,0,59,122,0,49,0,0,0,0,1,0,12,2,25,1,1,0,12,118,0,0,
-1,1,0,12,117,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,49,0,18,118,0,59,121,
-0,18,117,0,59,121,0,49,0,18,118,0,59,122,0,18,117,0,59,122,0,49,0,18,118,0,59,119,0,18,117,0,59,
-119,0,49,0,0,0,0,1,0,6,2,25,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,
-59,120,0,18,117,0,59,120,0,49,0,18,118,0,59,121,0,18,117,0,59,121,0,49,0,0,0,0,1,0,7,2,25,1,1,0,7,
-118,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,18,117,0,59,120,0,49,0,18,
-118,0,59,121,0,18,117,0,59,121,0,49,0,18,118,0,59,122,0,18,117,0,59,122,0,49,0,0,0,0,1,0,8,2,25,1,
-1,0,8,118,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,18,117,0,59,120,0,49,
-0,18,118,0,59,121,0,18,117,0,59,121,0,49,0,18,118,0,59,122,0,18,117,0,59,122,0,49,0,18,118,0,59,
-119,0,18,117,0,59,119,0,49,0,0,0,0,1,0,13,2,25,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,8,58,109,97,
-116,50,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,49,0,18,109,0,16,10,49,0,57,18,110,0,16,10,49,
-0,57,49,0,0,0,0,1,0,14,2,25,1,1,0,14,109,0,0,1,1,0,14,110,0,0,0,1,8,58,109,97,116,51,0,18,109,0,16,
-8,48,0,57,18,110,0,16,8,48,0,57,49,0,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,49,0,18,109,0,
-16,10,50,0,57,18,110,0,16,10,50,0,57,49,0,0,0,0,1,0,15,2,25,1,1,0,15,109,0,0,1,1,0,15,110,0,0,0,1,
-8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,49,0,18,109,0,16,10,49,0,57,18,
-110,0,16,10,49,0,57,49,0,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,49,0,18,109,0,16,10,51,0,57,
-18,110,0,16,10,51,0,57,49,0,0,0,0,1,0,10,2,30,1,1,0,10,118,0,0,0,1,8,58,118,101,99,50,0,18,118,0,
-59,120,0,54,0,18,118,0,59,121,0,54,0,0,0,0,1,0,11,2,30,1,1,0,11,118,0,0,0,1,8,58,118,101,99,51,0,
-18,118,0,59,120,0,54,0,18,118,0,59,121,0,54,0,18,118,0,59,122,0,54,0,0,0,0,1,0,12,2,30,1,1,0,12,
-118,0,0,0,1,8,58,118,101,99,52,0,18,118,0,59,120,0,54,0,18,118,0,59,121,0,54,0,18,118,0,59,122,0,
-54,0,18,118,0,59,119,0,54,0,0,0,0,1,0,6,2,30,1,1,0,6,118,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,
-59,120,0,54,0,18,118,0,59,121,0,54,0,0,0,0,1,0,7,2,30,1,1,0,7,118,0,0,0,1,8,58,105,118,101,99,51,0,
-18,118,0,59,120,0,54,0,18,118,0,59,121,0,54,0,18,118,0,59,122,0,54,0,0,0,0,1,0,8,2,30,1,1,0,8,118,
-0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,54,0,18,118,0,59,121,0,54,0,18,118,0,59,122,0,
-54,0,18,118,0,59,119,0,54,0,0,0,0,1,0,13,2,30,1,1,0,13,109,0,0,0,1,8,58,109,97,116,50,0,18,109,0,
-16,8,48,0,57,54,0,18,109,0,16,10,49,0,57,54,0,0,0,0,1,0,14,2,30,1,1,0,14,109,0,0,0,1,8,58,109,97,
-116,51,0,18,109,0,16,8,48,0,57,54,0,18,109,0,16,10,49,0,57,54,0,18,109,0,16,10,50,0,57,54,0,0,0,0,
-1,0,15,2,30,1,1,0,15,109,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,54,0,18,109,0,16,10,49,
-0,57,54,0,18,109,0,16,10,50,0,57,54,0,18,109,0,16,10,51,0,57,54,0,0,0,0,1,0,0,2,28,1,0,2,9,97,0,0,
-0,1,9,18,97,0,17,49,0,48,0,0,22,0,0,1,0,0,2,28,1,0,2,5,97,0,0,0,1,9,18,97,0,16,10,49,0,22,0,0,1,0,
-0,2,28,1,0,2,10,118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,0,0,1,0,0,2,28,1,0,2,11,
-118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,18,118,0,59,122,0,52,19,0,0,1,0,0,2,28,
-1,0,2,12,118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,18,118,0,59,122,0,52,19,18,118,
-0,59,119,0,52,19,0,0,1,0,0,2,28,1,0,2,6,118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,
-0,0,1,0,0,2,28,1,0,2,7,118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,18,118,0,59,122,
-0,52,19,0,0,1,0,0,2,28,1,0,2,8,118,0,0,0,1,9,18,118,0,59,120,0,52,18,118,0,59,121,0,52,19,18,118,0,
-59,122,0,52,19,18,118,0,59,119,0,52,19,0,0,1,0,0,2,28,1,0,2,13,109,0,0,0,1,9,18,109,0,16,8,48,0,57,
-52,18,109,0,16,10,49,0,57,52,19,0,0,1,0,0,2,28,1,0,2,14,109,0,0,0,1,9,18,109,0,16,8,48,0,57,52,18,
-109,0,16,10,49,0,57,52,19,18,109,0,16,10,50,0,57,52,19,0,0,1,0,0,2,28,1,0,2,15,109,0,0,0,1,9,18,
-109,0,16,8,48,0,57,52,18,109,0,16,10,49,0,57,52,19,18,109,0,16,10,50,0,57,52,19,18,109,0,16,10,51,
-0,57,52,19,0,0,1,0,0,2,27,1,0,2,9,97,0,0,0,1,9,18,97,0,17,49,0,48,0,0,21,0,0,1,0,0,2,27,1,0,2,5,97,
-0,0,0,1,9,18,97,0,16,10,49,0,21,0,0,1,0,0,2,27,1,0,2,10,118,0,0,0,1,9,18,118,0,59,120,0,51,18,118,
-0,59,121,0,51,19,0,0,1,0,0,2,27,1,0,2,11,118,0,0,0,1,9,18,118,0,59,120,0,51,18,118,0,59,121,0,51,
-19,18,118,0,59,122,0,51,19,0,0,1,0,0,2,27,1,0,2,12,118,0,0,0,1,9,18,118,0,59,120,0,51,18,118,0,59,
-121,0,51,19,18,118,0,59,122,0,51,19,18,118,0,59,119,0,51,19,0,0,1,0,0,2,27,1,0,2,6,118,0,0,0,1,9,
-18,118,0,59,120,0,51,18,118,0,59,121,0,51,19,0,0,1,0,0,2,27,1,0,2,7,118,0,0,0,1,9,18,118,0,59,120,
-0,51,18,118,0,59,121,0,51,19,18,118,0,59,122,0,51,19,0,0,1,0,0,2,27,1,0,2,8,118,0,0,0,1,9,18,118,0,
-59,120,0,51,18,118,0,59,121,0,51,19,18,118,0,59,122,0,51,19,18,118,0,59,119,0,51,19,0,0,1,0,0,2,27,
-1,0,2,13,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,18,109,0,16,10,49,0,57,51,19,0,0,1,0,0,2,27,1,0,2,
-14,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,18,109,0,16,10,49,0,57,51,19,18,109,0,16,10,50,0,57,51,
-19,0,0,1,0,0,2,27,1,0,2,15,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,18,109,0,16,10,49,0,57,51,19,18,
-109,0,16,10,50,0,57,51,19,18,109,0,16,10,51,0,57,51,19,0,0,1,0,9,2,28,1,0,2,9,97,0,0,1,1,0,5,0,0,0,
-1,3,2,0,9,1,99,0,0,0,9,18,99,0,18,97,0,20,0,9,18,97,0,52,0,8,18,99,0,0,0,1,0,5,2,28,1,0,2,5,97,0,0,
-1,1,0,5,0,0,0,1,3,2,0,5,1,99,0,0,0,9,18,99,0,18,97,0,20,0,9,18,97,0,52,0,8,18,99,0,0,0,1,0,10,2,28,
-1,0,2,10,118,0,0,1,1,0,5,0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,61,0,18,118,0,59,121,0,61,
-0,0,0,0,1,0,11,2,28,1,0,2,11,118,0,0,1,1,0,5,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,61,0,
-18,118,0,59,121,0,61,0,18,118,0,59,122,0,61,0,0,0,0,1,0,12,2,28,1,0,2,12,118,0,0,1,1,0,5,0,0,0,1,8,
-58,118,101,99,52,0,18,118,0,59,120,0,61,0,18,118,0,59,121,0,61,0,18,118,0,59,122,0,61,0,18,118,0,
-59,119,0,61,0,0,0,0,1,0,6,2,28,1,0,2,6,118,0,0,1,1,0,5,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,
-59,120,0,61,0,18,118,0,59,121,0,61,0,0,0,0,1,0,7,2,28,1,0,2,7,118,0,0,1,1,0,5,0,0,0,1,8,58,105,118,
-101,99,51,0,18,118,0,59,120,0,61,0,18,118,0,59,121,0,61,0,18,118,0,59,122,0,61,0,0,0,0,1,0,8,2,28,
-1,0,2,8,118,0,0,1,1,0,5,0,0,0,1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,61,0,18,118,0,59,121,0,
-61,0,18,118,0,59,122,0,61,0,18,118,0,59,119,0,61,0,0,0,0,1,0,13,2,28,1,0,2,13,109,0,0,1,1,0,5,0,0,
-0,1,8,58,109,97,116,50,0,18,109,0,16,8,48,0,57,61,0,18,109,0,16,10,49,0,57,61,0,0,0,0,1,0,14,2,28,
-1,0,2,14,109,0,0,1,1,0,5,0,0,0,1,8,58,109,97,116,51,0,18,109,0,16,8,48,0,57,61,0,18,109,0,16,10,49,
-0,57,61,0,18,109,0,16,10,50,0,57,61,0,0,0,0,1,0,15,2,28,1,0,2,15,109,0,0,1,1,0,5,0,0,0,1,8,58,109,
-97,116,52,0,18,109,0,16,8,48,0,57,61,0,18,109,0,16,10,49,0,57,61,0,18,109,0,16,10,50,0,57,61,0,18,
-109,0,16,10,51,0,57,61,0,0,0,0,1,0,9,2,27,1,0,2,9,97,0,0,1,1,0,5,0,0,0,1,3,2,0,9,1,99,0,0,0,9,18,
-99,0,18,97,0,20,0,9,18,97,0,51,0,8,18,99,0,0,0,1,0,5,2,27,1,0,2,5,97,0,0,1,1,0,5,0,0,0,1,3,2,0,5,1,
-99,0,0,0,9,18,99,0,18,97,0,20,0,9,18,97,0,51,0,8,18,99,0,0,0,1,0,10,2,27,1,0,2,10,118,0,0,1,1,0,5,
-0,0,0,1,8,58,118,101,99,50,0,18,118,0,59,120,0,60,0,18,118,0,59,121,0,60,0,0,0,0,1,0,11,2,27,1,0,2,
-11,118,0,0,1,1,0,5,0,0,0,1,8,58,118,101,99,51,0,18,118,0,59,120,0,60,0,18,118,0,59,121,0,60,0,18,
-118,0,59,122,0,60,0,0,0,0,1,0,12,2,27,1,0,2,12,118,0,0,1,1,0,5,0,0,0,1,8,58,118,101,99,52,0,18,118,
-0,59,120,0,60,0,18,118,0,59,121,0,60,0,18,118,0,59,122,0,60,0,18,118,0,59,119,0,60,0,0,0,0,1,0,6,2,
-27,1,0,2,6,118,0,0,1,1,0,5,0,0,0,1,8,58,105,118,101,99,50,0,18,118,0,59,120,0,60,0,18,118,0,59,121,
-0,60,0,0,0,0,1,0,7,2,27,1,0,2,7,118,0,0,1,1,0,5,0,0,0,1,8,58,105,118,101,99,51,0,18,118,0,59,120,0,
-60,0,18,118,0,59,121,0,60,0,18,118,0,59,122,0,60,0,0,0,0,1,0,8,2,27,1,0,2,8,118,0,0,1,1,0,5,0,0,0,
-1,8,58,105,118,101,99,52,0,18,118,0,59,120,0,60,0,18,118,0,59,121,0,60,0,18,118,0,59,122,0,60,0,18,
-118,0,59,119,0,60,0,0,0,0,1,0,13,2,27,1,0,2,13,109,0,0,1,1,0,5,0,0,0,1,8,58,109,97,116,50,0,18,109,
-0,16,8,48,0,57,60,0,18,109,0,16,10,49,0,57,60,0,0,0,0,1,0,14,2,27,1,0,2,14,109,0,0,1,1,0,5,0,0,0,1,
-8,58,109,97,116,51,0,18,109,0,16,8,48,0,57,60,0,18,109,0,16,10,49,0,57,60,0,18,109,0,16,10,50,0,57,
-60,0,0,0,0,1,0,15,2,27,1,0,2,15,109,0,0,1,1,0,5,0,0,0,1,8,58,109,97,116,52,0,18,109,0,16,8,48,0,57,
-60,0,18,109,0,16,10,49,0,57,60,0,18,109,0,16,10,50,0,57,60,0,18,109,0,16,10,51,0,57,60,0,0,0,0,1,0,
-1,2,18,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,1,1,99,0,0,0,4,102,108,111,97,116,95,108,101,115,
-115,0,18,99,0,0,18,97,0,0,18,98,0,0,0,8,18,99,0,0,0,1,0,1,2,18,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,
-58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,40,0,0,1,0,1,2,19,1,1,0,9,
-97,0,0,1,1,0,9,98,0,0,0,1,8,18,98,0,18,97,0,40,0,0,1,0,1,2,19,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,
-18,98,0,18,97,0,40,0,0,1,0,1,2,21,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,8,18,97,0,18,98,0,41,18,97,0,
-18,98,0,38,32,0,0,1,0,1,2,21,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,18,97,0,18,98,0,41,18,97,0,18,98,
-0,38,32,0,0,1,0,1,2,20,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,8,18,97,0,18,98,0,40,18,97,0,18,98,0,38,
-32,0,0,1,0,1,2,20,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,18,97,0,18,98,0,40,18,97,0,18,98,0,38,32,0,0,
-1,0,1,2,12,1,1,0,1,97,0,0,1,1,0,1,98,0,0,0,1,8,18,97,0,18,98,0,39,0,0,1,0,1,2,32,1,1,0,1,97,0,0,0,
-1,8,18,97,0,15,2,48,0,38,0,0,0
+\r
+/* DO NOT EDIT - THIS FILE AUTOMATICALLY GENERATED FROM THE FOLLOWING FILE: */\r
+/* slang_core.gc */\r
+\r
+3,1,0,5,1,1,1,0,9,102,0,0,0,1,3,2,0,5,1,105,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,116,0,\r
+18,105,0,0,18,102,0,0,0,8,18,105,0,0,0,1,0,1,1,1,1,0,5,105,0,0,0,1,8,18,105,0,16,8,48,0,39,0,0,1,0,\r
+1,1,1,1,0,9,102,0,0,0,1,8,18,102,0,17,48,0,48,0,0,39,0,0,1,0,5,1,1,1,0,1,98,0,0,0,1,8,18,98,0,16,\r
+10,49,0,16,8,48,0,31,0,0,1,0,9,1,1,1,0,1,98,0,0,0,1,8,18,98,0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,\r
+1,0,9,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,102,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,\r
+18,102,0,0,18,105,0,0,0,8,18,102,0,0,0,1,0,1,1,1,1,0,1,98,0,0,0,1,8,18,98,0,0,0,1,0,5,1,1,1,0,5,\r
+105,0,0,0,1,8,18,105,0,0,0,1,0,9,1,1,1,0,9,102,0,0,0,1,8,18,102,0,0,0,1,0,10,1,1,1,0,9,102,0,0,0,1,\r
+3,2,0,10,1,117,0,0,0,9,18,117,0,59,120,0,18,102,0,20,0,9,18,117,0,59,121,0,18,102,0,20,0,8,18,117,\r
+0,0,0,1,0,10,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,\r
+116,0,18,120,0,0,18,105,0,0,0,8,58,118,101,99,50,0,18,120,0,0,0,0,0,1,0,10,1,1,1,0,1,98,0,0,0,1,8,\r
+58,118,101,99,50,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,0,0,1,0,11,1,1,1,0,9,102,0,0,0,1,3,\r
+2,0,11,1,117,0,0,0,9,18,117,0,59,120,0,18,102,0,20,0,9,18,117,0,59,121,0,18,102,0,20,0,9,18,117,0,\r
+59,122,0,18,102,0,20,0,8,18,117,0,0,0,1,0,11,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,0,4,105,110,\r
+116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,105,0,0,0,8,58,118,101,99,51,0,18,120,0,0,0,0,\r
+0,1,0,11,1,1,1,0,1,98,0,0,0,1,8,58,118,101,99,51,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,0,\r
+0,1,0,12,1,1,1,0,9,102,0,0,0,1,3,2,0,12,1,117,0,0,0,9,18,117,0,59,120,0,18,102,0,20,0,9,18,117,0,\r
+59,121,0,18,102,0,20,0,9,18,117,0,59,122,0,18,102,0,20,0,9,18,117,0,59,119,0,18,102,0,20,0,8,18,\r
+117,0,0,0,1,0,12,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,0,4,105,110,116,95,116,111,95,102,108,111,\r
+97,116,0,18,120,0,0,18,105,0,0,0,8,58,118,101,99,52,0,18,120,0,0,0,0,0,1,0,12,1,1,1,0,1,98,0,0,0,1,\r
+8,58,118,101,99,52,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,0,0,1,0,6,1,1,1,0,5,105,0,0,0,1,\r
+3,2,0,6,1,117,0,0,0,9,18,117,0,59,120,0,18,105,0,20,0,9,18,117,0,59,121,0,18,105,0,20,0,8,18,117,0,\r
+0,0,1,0,6,1,1,1,0,9,102,0,0,0,1,8,58,105,118,101,99,50,0,58,105,110,116,0,18,102,0,0,0,0,0,0,0,1,0,\r
+6,1,1,1,0,1,98,0,0,0,1,8,58,105,118,101,99,50,0,58,105,110,116,0,18,98,0,0,0,0,0,0,0,1,0,7,1,1,1,0,\r
+5,105,0,0,0,1,3,2,0,7,1,117,0,0,0,9,18,117,0,59,120,0,18,105,0,20,0,9,18,117,0,59,121,0,18,105,0,\r
+20,0,9,18,117,0,59,122,0,18,105,0,20,0,8,18,117,0,0,0,1,0,7,1,1,1,0,9,102,0,0,0,1,8,58,105,118,101,\r
+99,51,0,58,105,110,116,0,18,102,0,0,0,0,0,0,0,1,0,7,1,1,1,0,1,98,0,0,0,1,8,58,105,118,101,99,51,0,\r
+58,105,110,116,0,18,98,0,0,0,0,0,0,0,1,0,8,1,1,1,0,5,105,0,0,0,1,3,2,0,8,1,117,0,0,0,9,18,117,0,59,\r
+120,0,18,105,0,20,0,9,18,117,0,59,121,0,18,105,0,20,0,9,18,117,0,59,122,0,18,105,0,20,0,9,18,117,0,\r
+59,119,0,18,105,0,20,0,8,18,117,0,0,0,1,0,8,1,1,1,0,9,102,0,0,0,1,8,58,105,118,101,99,52,0,58,105,\r
+110,116,0,18,102,0,0,0,0,0,0,0,1,0,8,1,1,1,0,1,98,0,0,0,1,8,58,105,118,101,99,52,0,58,105,110,116,\r
+0,18,98,0,0,0,0,0,0,0,1,0,2,1,1,1,0,1,98,0,0,0,1,3,2,0,2,1,117,0,0,0,9,18,117,0,59,120,0,18,98,0,\r
+20,0,9,18,117,0,59,121,0,18,98,0,20,0,8,18,117,0,0,0,1,0,2,1,1,1,0,9,102,0,0,0,1,8,58,98,118,101,\r
+99,50,0,58,98,111,111,108,0,18,102,0,0,0,0,0,0,0,1,0,2,1,1,1,0,5,105,0,0,0,1,8,58,98,118,101,99,50,\r
+0,58,98,111,111,108,0,18,105,0,0,0,0,0,0,0,1,0,3,1,1,1,0,1,98,0,0,0,1,3,2,0,3,1,117,0,0,0,9,18,117,\r
+0,59,120,0,18,98,0,20,0,9,18,117,0,59,121,0,18,98,0,20,0,9,18,117,0,59,122,0,18,98,0,20,0,8,18,117,\r
+0,0,0,1,0,3,1,1,1,0,9,102,0,0,0,1,8,58,98,118,101,99,51,0,58,98,111,111,108,0,18,102,0,0,0,0,0,0,0,\r
+1,0,3,1,1,1,0,5,105,0,0,0,1,8,58,98,118,101,99,51,0,58,98,111,111,108,0,18,105,0,0,0,0,0,0,0,1,0,4,\r
+1,1,1,0,1,98,0,0,0,1,3,2,0,4,1,117,0,0,0,9,18,117,0,59,120,0,18,98,0,20,0,9,18,117,0,59,121,0,18,\r
+98,0,20,0,9,18,117,0,59,122,0,18,98,0,20,0,9,18,117,0,59,119,0,18,98,0,20,0,8,18,117,0,0,0,1,0,4,1,\r
+1,1,0,9,102,0,0,0,1,8,58,98,118,101,99,52,0,58,98,111,111,108,0,18,102,0,0,0,0,0,0,0,1,0,4,1,1,1,0,\r
+5,105,0,0,0,1,8,58,98,118,101,99,52,0,58,98,111,111,108,0,18,105,0,0,0,0,0,0,0,1,0,13,1,1,1,0,9,\r
+102,0,0,0,1,3,2,0,13,1,109,0,0,0,9,18,109,0,16,8,48,0,57,59,120,0,18,102,0,20,0,9,18,109,0,16,8,48,\r
+0,57,59,121,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,\r
+16,10,49,0,57,59,121,0,18,102,0,20,0,8,18,109,0,0,0,1,0,13,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,\r
+0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,105,0,0,0,8,58,109,97,116,50,0,18,\r
+120,0,0,0,0,0,1,0,13,1,1,1,0,1,98,0,0,0,1,8,58,109,97,116,50,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,\r
+0,31,0,0,0,0,1,0,14,1,1,1,0,9,102,0,0,0,1,3,2,0,14,1,109,0,0,0,9,18,109,0,16,8,48,0,57,59,120,0,18,\r
+102,0,20,0,9,18,109,0,16,8,48,0,57,59,121,0,17,48,0,48,0,0,20,0,9,18,109,0,16,8,48,0,57,59,122,0,\r
+17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,\r
+59,121,0,18,102,0,20,0,9,18,109,0,16,10,49,0,57,59,122,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,50,0,\r
+57,59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,50,0,57,59,121,0,17,48,0,48,0,0,20,0,9,18,109,0,\r
+16,10,50,0,57,59,122,0,18,102,0,20,0,8,18,109,0,0,0,1,0,14,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,\r
+0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,105,0,0,0,8,58,109,97,116,51,0,18,\r
+120,0,0,0,0,0,1,0,14,1,1,1,0,1,98,0,0,0,1,8,58,109,97,116,51,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,\r
+0,31,0,0,0,0,1,0,15,1,1,1,0,9,102,0,0,0,1,3,2,0,15,1,109,0,0,0,9,18,109,0,16,8,48,0,57,59,120,0,18,\r
+102,0,20,0,9,18,109,0,16,8,48,0,57,59,121,0,17,48,0,48,0,0,20,0,9,18,109,0,16,8,48,0,57,59,122,0,\r
+17,48,0,48,0,0,20,0,9,18,109,0,16,8,48,0,57,59,119,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,\r
+59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,59,121,0,18,102,0,20,0,9,18,109,0,16,10,49,0,\r
+57,59,122,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,49,0,57,59,119,0,17,48,0,48,0,0,20,0,9,18,109,0,\r
+16,10,50,0,57,59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,50,0,57,59,121,0,17,48,0,48,0,0,20,0,9,\r
+18,109,0,16,10,50,0,57,59,122,0,18,102,0,20,0,9,18,109,0,16,10,50,0,57,59,119,0,17,48,0,48,0,0,20,\r
+0,9,18,109,0,16,10,51,0,57,59,120,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,51,0,57,59,121,0,17,48,0,\r
+48,0,0,20,0,9,18,109,0,16,10,51,0,57,59,122,0,17,48,0,48,0,0,20,0,9,18,109,0,16,10,51,0,57,59,119,\r
+0,18,102,0,20,0,8,18,109,0,0,0,1,0,15,1,1,1,0,5,105,0,0,0,1,3,2,0,9,1,120,0,0,0,4,105,110,116,95,\r
+116,111,95,102,108,111,97,116,0,18,120,0,0,18,105,0,0,0,8,58,109,97,116,52,0,18,120,0,0,0,0,0,1,0,\r
+15,1,1,1,0,1,98,0,0,0,1,8,58,109,97,116,52,0,18,98,0,17,49,0,48,0,0,17,48,0,48,0,0,31,0,0,0,0,1,0,\r
+0,2,1,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,4,102,108,111,97,116,95,97,100,100,0,18,97,0,0,18,97,0,0,\r
+18,98,0,0,0,0,1,0,9,2,27,1,1,0,9,97,0,0,0,1,3,2,0,9,1,98,0,0,0,4,102,108,111,97,116,95,110,101,103,\r
+97,116,101,0,18,98,0,0,18,97,0,0,0,8,18,98,0,0,0,1,0,0,2,2,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,\r
+9,1,99,0,0,0,4,102,108,111,97,116,95,110,101,103,97,116,101,0,18,99,0,0,18,98,0,0,0,4,102,108,111,\r
+97,116,95,97,100,100,0,18,97,0,0,18,97,0,0,18,99,0,0,0,0,1,0,0,2,3,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,\r
+1,4,102,108,111,97,116,95,109,117,108,116,105,112,108,121,0,18,97,0,0,18,97,0,0,18,98,0,0,0,0,1,0,\r
+0,2,4,1,0,2,9,97,0,0,1,1,0,9,98,0,0,0,1,4,102,108,111,97,116,95,100,105,118,105,100,101,0,18,97,0,\r
+0,18,97,0,0,18,98,0,0,0,0,1,0,9,2,26,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,4,102,\r
+108,111,97,116,95,97,100,100,0,18,99,0,0,18,97,0,0,18,98,0,0,0,8,18,99,0,0,0,1,0,0,2,1,1,0,2,5,97,\r
+0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,105,110,116,0,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,\r
+111,97,116,0,18,98,0,0,0,46,0,0,20,0,0,1,0,5,2,27,1,1,0,5,97,0,0,0,1,3,2,0,9,1,120,0,0,0,3,2,0,5,1,\r
+98,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,97,0,0,0,4,102,108,111,97,\r
+116,95,110,101,103,97,116,101,0,18,120,0,0,18,120,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,\r
+116,0,18,98,0,0,18,120,0,0,0,8,18,98,0,0,0,1,0,0,2,2,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,\r
+18,98,0,54,21,0,0,1,0,9,2,21,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,4,102,108,111,97,\r
+116,95,109,117,108,116,105,112,108,121,0,18,99,0,0,18,97,0,0,18,98,0,0,0,8,18,99,0,0,0,1,0,0,2,3,1,\r
+0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,105,110,116,0,58,102,108,111,97,116,0,18,97,0,0,0,58,\r
+102,108,111,97,116,0,18,98,0,0,0,48,0,0,20,0,0,1,0,9,2,22,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,\r
+9,1,99,0,0,0,4,102,108,111,97,116,95,100,105,118,105,100,101,0,18,99,0,0,18,97,0,0,18,98,0,0,0,8,\r
+18,99,0,0,0,1,0,0,2,4,1,0,2,5,97,0,0,1,1,0,5,98,0,0,0,1,9,18,97,0,58,105,110,116,0,58,102,108,111,\r
+97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,49,0,0,20,0,0,1,0,0,2,1,1,0,2,10,118,0,0,\r
+1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,0,9,18,118,0,59,121,0,18,117,0,59,\r
+121,0,21,0,0,1,0,0,2,2,1,0,2,10,118,0,0,1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,\r
+22,0,9,18,118,0,59,121,0,18,117,0,59,121,0,22,0,0,1,0,0,2,3,1,0,2,10,118,0,0,1,1,0,10,117,0,0,0,1,\r
+9,18,118,0,59,120,0,18,117,0,59,120,0,23,0,9,18,118,0,59,121,0,18,117,0,59,121,0,23,0,0,1,0,0,2,4,\r
+1,0,2,10,118,0,0,1,1,0,10,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,0,9,18,118,0,59,121,\r
+0,18,117,0,59,121,0,24,0,0,1,0,0,2,1,1,0,2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,\r
+117,0,59,120,0,21,0,9,18,118,0,59,121,0,18,117,0,59,121,0,21,0,9,18,118,0,59,122,0,18,117,0,59,122,\r
+0,21,0,0,1,0,0,2,2,1,0,2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,\r
+0,9,18,118,0,59,121,0,18,117,0,59,121,0,22,0,9,18,118,0,59,122,0,18,117,0,59,122,0,22,0,0,1,0,0,2,\r
+3,1,0,2,11,118,0,0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,0,9,18,118,0,59,\r
+121,0,18,117,0,59,121,0,23,0,9,18,118,0,59,122,0,18,117,0,59,122,0,23,0,0,1,0,0,2,4,1,0,2,11,118,0,\r
+0,1,1,0,11,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,0,9,18,118,0,59,121,0,18,117,0,59,\r
+121,0,24,0,9,18,118,0,59,122,0,18,117,0,59,122,0,24,0,0,1,0,0,2,1,1,0,2,12,118,0,0,1,1,0,12,117,0,\r
+0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,0,9,18,118,0,59,121,0,18,117,0,59,121,0,21,0,9,18,\r
+118,0,59,122,0,18,117,0,59,122,0,21,0,9,18,118,0,59,119,0,18,117,0,59,119,0,21,0,0,1,0,0,2,2,1,0,2,\r
+12,118,0,0,1,1,0,12,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,0,9,18,118,0,59,121,0,18,\r
+117,0,59,121,0,22,0,9,18,118,0,59,122,0,18,117,0,59,122,0,22,0,9,18,118,0,59,119,0,18,117,0,59,119,\r
+0,22,0,0,1,0,0,2,3,1,0,2,12,118,0,0,1,1,0,12,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,\r
+0,9,18,118,0,59,121,0,18,117,0,59,121,0,23,0,9,18,118,0,59,122,0,18,117,0,59,122,0,23,0,9,18,118,0,\r
+59,119,0,18,117,0,59,119,0,23,0,0,1,0,0,2,4,1,0,2,12,118,0,0,1,1,0,12,117,0,0,0,1,9,18,118,0,59,\r
+120,0,18,117,0,59,120,0,24,0,9,18,118,0,59,121,0,18,117,0,59,121,0,24,0,9,18,118,0,59,122,0,18,117,\r
+0,59,122,0,24,0,9,18,118,0,59,119,0,18,117,0,59,119,0,24,0,0,1,0,0,2,1,1,0,2,6,118,0,0,1,1,0,6,117,\r
+0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,0,9,18,118,0,59,121,0,18,117,0,59,121,0,21,0,0,1,\r
+0,0,2,2,1,0,2,6,118,0,0,1,1,0,6,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,0,9,18,118,0,\r
+59,121,0,18,117,0,59,121,0,22,0,0,1,0,0,2,3,1,0,2,6,118,0,0,1,1,0,6,117,0,0,0,1,9,18,118,0,59,120,\r
+0,18,117,0,59,120,0,23,0,9,18,118,0,59,121,0,18,117,0,59,121,0,23,0,0,1,0,0,2,4,1,0,2,6,118,0,0,1,\r
+1,0,6,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,0,9,18,118,0,59,121,0,18,117,0,59,121,0,\r
+24,0,0,1,0,0,2,1,1,0,2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,21,0,9,\r
+18,118,0,59,121,0,18,117,0,59,121,0,21,0,9,18,118,0,59,122,0,18,117,0,59,122,0,21,0,0,1,0,0,2,2,1,\r
+0,2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,0,9,18,118,0,59,121,0,\r
+18,117,0,59,121,0,22,0,9,18,118,0,59,122,0,18,117,0,59,122,0,22,0,0,1,0,0,2,3,1,0,2,7,118,0,0,1,1,\r
+0,7,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,0,9,18,118,0,59,121,0,18,117,0,59,121,0,\r
+23,0,9,18,118,0,59,122,0,18,117,0,59,122,0,23,0,0,1,0,0,2,4,1,0,2,7,118,0,0,1,1,0,7,117,0,0,0,1,9,\r
+18,118,0,59,120,0,18,117,0,59,120,0,24,0,9,18,118,0,59,121,0,18,117,0,59,121,0,24,0,9,18,118,0,59,\r
+122,0,18,117,0,59,122,0,24,0,0,1,0,0,2,1,1,0,2,8,118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,0,59,120,0,\r
+18,117,0,59,120,0,21,0,9,18,118,0,59,121,0,18,117,0,59,121,0,21,0,9,18,118,0,59,122,0,18,117,0,59,\r
+122,0,21,0,9,18,118,0,59,119,0,18,117,0,59,119,0,21,0,0,1,0,0,2,2,1,0,2,8,118,0,0,1,1,0,8,117,0,0,\r
+0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,22,0,9,18,118,0,59,121,0,18,117,0,59,121,0,22,0,9,18,118,\r
+0,59,122,0,18,117,0,59,122,0,22,0,9,18,118,0,59,119,0,18,117,0,59,119,0,22,0,0,1,0,0,2,3,1,0,2,8,\r
+118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,23,0,9,18,118,0,59,121,0,18,117,\r
+0,59,121,0,23,0,9,18,118,0,59,122,0,18,117,0,59,122,0,23,0,9,18,118,0,59,119,0,18,117,0,59,119,0,\r
+23,0,0,1,0,0,2,4,1,0,2,8,118,0,0,1,1,0,8,117,0,0,0,1,9,18,118,0,59,120,0,18,117,0,59,120,0,24,0,9,\r
+18,118,0,59,121,0,18,117,0,59,121,0,24,0,9,18,118,0,59,122,0,18,117,0,59,122,0,24,0,9,18,118,0,59,\r
+119,0,18,117,0,59,119,0,24,0,0,1,0,0,2,1,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,16,8,48,\r
+0,57,18,110,0,16,8,48,0,57,21,0,9,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,21,0,0,1,0,0,2,2,1,\r
+0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,22,0,9,18,109,0,\r
+16,10,49,0,57,18,110,0,16,10,49,0,57,22,0,0,1,0,10,2,21,1,1,0,13,109,0,0,1,1,0,10,118,0,0,0,1,3,2,\r
+0,10,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,\r
+59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,20,0,9,18,117,0,59,121,0,18,118,0,59,120,0,18,109,0,\r
+16,8,48,0,57,59,121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,20,0,8,18,117,0,0,\r
+0,1,0,13,2,21,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,\r
+18,109,0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,0,16,10,49,0,57,18,109,0,18,110,0,16,10,49,0,57,48,\r
+20,0,8,18,111,0,0,0,1,0,0,2,3,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,18,109,0,18,110,0,\r
+48,20,0,0,1,0,0,2,4,1,0,2,13,109,0,0,1,1,0,13,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,\r
+0,57,24,0,9,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,24,0,0,1,0,0,2,1,1,0,2,14,109,0,0,1,1,0,\r
+14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,21,0,9,18,109,0,16,10,49,0,57,18,110,\r
+0,16,10,49,0,57,21,0,9,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,21,0,0,1,0,0,2,2,1,0,2,14,109,\r
+0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,22,0,9,18,109,0,16,10,49,0,\r
+57,18,110,0,16,10,49,0,57,22,0,9,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,22,0,0,1,0,11,2,21,\r
+1,1,0,14,109,0,0,1,1,0,11,118,0,0,0,1,3,2,0,11,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,\r
+18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,18,118,0,\r
+59,122,0,18,109,0,16,10,50,0,57,59,120,0,48,46,20,0,9,18,117,0,59,121,0,18,118,0,59,120,0,18,109,0,\r
+16,8,48,0,57,59,121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,\r
+18,109,0,16,10,50,0,57,59,121,0,48,46,20,0,9,18,117,0,59,122,0,18,118,0,59,120,0,18,109,0,16,8,48,\r
+0,57,59,122,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,122,0,48,46,18,118,0,59,122,0,18,109,\r
+0,16,10,50,0,57,59,122,0,48,46,20,0,8,18,117,0,0,0,1,0,14,2,21,1,1,0,14,109,0,0,1,1,0,14,110,0,0,0,\r
+1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,0,\r
+16,10,49,0,57,18,109,0,18,110,0,16,10,49,0,57,48,20,0,9,18,111,0,16,10,50,0,57,18,109,0,18,110,0,\r
+16,10,50,0,57,48,20,0,8,18,111,0,0,0,1,0,0,2,3,1,0,2,14,109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,18,\r
+109,0,18,110,0,48,20,0,0,1,0,0,2,4,1,0,2,14,109,0,0,1,1,0,14,110,0,0,0,1,9,18,109,0,16,8,48,0,57,\r
+18,110,0,16,8,48,0,57,24,0,9,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,24,0,9,18,109,0,16,10,\r
+50,0,57,18,110,0,16,10,50,0,57,24,0,0,1,0,0,2,1,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,\r
+16,8,48,0,57,18,110,0,16,8,48,0,57,21,0,9,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,21,0,9,18,\r
+109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,21,0,9,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,21,\r
+0,0,1,0,0,2,2,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,\r
+22,0,9,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,22,0,9,18,109,0,16,10,50,0,57,18,110,0,16,10,\r
+50,0,57,22,0,9,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,22,0,0,1,0,12,2,21,1,1,0,15,109,0,0,1,\r
+1,0,12,118,0,0,0,1,3,2,0,12,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,18,109,0,16,8,48,0,\r
+57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,120,0,48,46,18,118,0,59,122,0,18,109,0,\r
+16,10,50,0,57,59,120,0,48,46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,120,0,48,46,20,0,9,18,117,\r
+0,59,121,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,121,0,48,18,118,0,59,121,0,18,109,0,16,10,49,\r
+0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,121,0,48,46,18,118,0,59,119,0,18,\r
+109,0,16,10,51,0,57,59,121,0,48,46,20,0,9,18,117,0,59,122,0,18,118,0,59,120,0,18,109,0,16,8,48,0,\r
+57,59,122,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,122,0,48,46,18,118,0,59,122,0,18,109,0,\r
+16,10,50,0,57,59,122,0,48,46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,122,0,48,46,20,0,9,18,117,\r
+0,59,119,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,119,0,48,18,118,0,59,121,0,18,109,0,16,10,49,\r
+0,57,59,119,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,119,0,48,46,18,118,0,59,119,0,18,\r
+109,0,16,10,51,0,57,59,119,0,48,46,20,0,8,18,117,0,0,0,1,0,15,2,21,1,1,0,15,109,0,0,1,1,0,15,110,0,\r
+0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,\r
+0,16,10,49,0,57,18,109,0,18,110,0,16,10,49,0,57,48,20,0,9,18,111,0,16,10,50,0,57,18,109,0,18,110,0,\r
+16,10,50,0,57,48,20,0,9,18,111,0,16,10,51,0,57,18,109,0,18,110,0,16,10,51,0,57,48,20,0,8,18,111,0,\r
+0,0,1,0,0,2,3,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,18,109,0,18,110,0,48,20,0,0,1,0,0,2,\r
+4,1,0,2,15,109,0,0,1,1,0,15,110,0,0,0,1,9,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,24,0,9,18,\r
+109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,24,0,9,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,24,\r
+0,9,18,109,0,16,10,51,0,57,18,110,0,16,10,51,0,57,24,0,0,1,0,0,2,1,1,0,2,10,118,0,0,1,1,0,9,97,0,0,\r
+0,1,9,18,118,0,59,120,0,18,97,0,21,0,9,18,118,0,59,121,0,18,97,0,21,0,0,1,0,0,2,2,1,0,2,10,118,0,0,\r
+1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,0,9,18,118,0,59,121,0,18,97,0,22,0,0,1,0,0,2,3,1,\r
+0,2,10,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,23,0,9,18,118,0,59,121,0,18,97,0,23,\r
+0,0,1,0,0,2,4,1,0,2,10,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,24,0,9,18,118,0,59,\r
+121,0,18,97,0,24,0,0,1,0,0,2,1,1,0,2,11,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,21,\r
+0,9,18,118,0,59,121,0,18,97,0,21,0,9,18,118,0,59,122,0,18,97,0,21,0,0,1,0,0,2,2,1,0,2,11,118,0,0,1,\r
+1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,0,9,18,118,0,59,121,0,18,97,0,22,0,9,18,118,0,59,\r
+122,0,18,97,0,22,0,0,1,0,0,2,3,1,0,2,11,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,23,\r
+0,9,18,118,0,59,121,0,18,97,0,23,0,9,18,118,0,59,122,0,18,97,0,23,0,0,1,0,0,2,4,1,0,2,11,118,0,0,1,\r
+1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,24,0,9,18,118,0,59,121,0,18,97,0,24,0,9,18,118,0,59,\r
+122,0,18,97,0,24,0,0,1,0,0,2,1,1,0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,21,\r
+0,9,18,118,0,59,121,0,18,97,0,21,0,9,18,118,0,59,122,0,18,97,0,21,0,9,18,118,0,59,119,0,18,97,0,21,\r
+0,0,1,0,0,2,2,1,0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,22,0,9,18,118,0,59,\r
+121,0,18,97,0,22,0,9,18,118,0,59,122,0,18,97,0,22,0,9,18,118,0,59,119,0,18,97,0,22,0,0,1,0,0,2,3,1,\r
+0,2,12,118,0,0,1,1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,23,0,9,18,118,0,59,121,0,18,97,0,23,\r
+0,9,18,118,0,59,122,0,18,97,0,23,0,9,18,118,0,59,119,0,18,97,0,23,0,0,1,0,0,2,4,1,0,2,12,118,0,0,1,\r
+1,0,9,97,0,0,0,1,9,18,118,0,59,120,0,18,97,0,24,0,9,18,118,0,59,121,0,18,97,0,24,0,9,18,118,0,59,\r
+122,0,18,97,0,24,0,9,18,118,0,59,119,0,18,97,0,24,0,0,1,0,0,2,1,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,\r
+1,9,18,109,0,16,8,48,0,57,18,97,0,21,0,9,18,109,0,16,10,49,0,57,18,97,0,21,0,0,1,0,0,2,2,1,0,2,13,\r
+109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,22,0,9,18,109,0,16,10,49,0,57,18,97,0,\r
+22,0,0,1,0,0,2,3,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,0,9,18,109,\r
+0,16,10,49,0,57,18,97,0,23,0,0,1,0,0,2,4,1,0,2,13,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,\r
+57,18,97,0,24,0,9,18,109,0,16,10,49,0,57,18,97,0,24,0,0,1,0,0,2,1,1,0,2,14,109,0,0,1,1,0,9,97,0,0,\r
+0,1,9,18,109,0,16,8,48,0,57,18,97,0,21,0,9,18,109,0,16,10,49,0,57,18,97,0,21,0,9,18,109,0,16,10,50,\r
+0,57,18,97,0,21,0,0,1,0,0,2,2,1,0,2,14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,\r
+22,0,9,18,109,0,16,10,49,0,57,18,97,0,22,0,9,18,109,0,16,10,50,0,57,18,97,0,22,0,0,1,0,0,2,3,1,0,2,\r
+14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,0,9,18,109,0,16,10,49,0,57,18,97,\r
+0,23,0,9,18,109,0,16,10,50,0,57,18,97,0,23,0,0,1,0,0,2,4,1,0,2,14,109,0,0,1,1,0,9,97,0,0,0,1,9,18,\r
+109,0,16,8,48,0,57,18,97,0,24,0,9,18,109,0,16,10,49,0,57,18,97,0,24,0,9,18,109,0,16,10,50,0,57,18,\r
+97,0,24,0,0,1,0,0,2,1,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,21,0,9,\r
+18,109,0,16,10,49,0,57,18,97,0,21,0,9,18,109,0,16,10,50,0,57,18,97,0,21,0,9,18,109,0,16,10,51,0,57,\r
+18,97,0,21,0,0,1,0,0,2,2,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,22,0,\r
+9,18,109,0,16,10,49,0,57,18,97,0,22,0,9,18,109,0,16,10,50,0,57,18,97,0,22,0,9,18,109,0,16,10,51,0,\r
+57,18,97,0,22,0,0,1,0,0,2,3,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,23,\r
+0,9,18,109,0,16,10,49,0,57,18,97,0,23,0,9,18,109,0,16,10,50,0,57,18,97,0,23,0,9,18,109,0,16,10,51,\r
+0,57,18,97,0,23,0,0,1,0,0,2,4,1,0,2,15,109,0,0,1,1,0,9,97,0,0,0,1,9,18,109,0,16,8,48,0,57,18,97,0,\r
+24,0,9,18,109,0,16,10,49,0,57,18,97,0,24,0,9,18,109,0,16,10,50,0,57,18,97,0,24,0,9,18,109,0,16,10,\r
+51,0,57,18,97,0,24,0,0,1,0,10,2,21,1,1,0,10,118,0,0,1,1,0,13,109,0,0,0,1,3,2,0,10,1,117,0,0,0,9,18,\r
+117,0,59,120,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,8,\r
+48,0,57,59,121,0,48,46,20,0,9,18,117,0,59,121,0,18,118,0,59,120,0,18,109,0,16,10,49,0,57,59,120,0,\r
+48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,20,0,8,18,117,0,0,0,1,0,0,2,3,1,0,2,10,\r
+118,0,0,1,1,0,13,109,0,0,0,1,9,18,118,0,18,118,0,18,109,0,48,20,0,0,1,0,11,2,21,1,1,0,11,118,0,0,1,\r
+1,0,14,109,0,0,0,1,3,2,0,11,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,18,109,0,16,8,48,0,\r
+57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,8,48,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,\r
+16,8,48,0,57,59,122,0,48,46,20,0,9,18,117,0,59,121,0,18,118,0,59,120,0,18,109,0,16,10,49,0,57,59,\r
+120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,\r
+49,0,57,59,122,0,48,46,20,0,9,18,117,0,59,122,0,18,118,0,59,120,0,18,109,0,16,10,50,0,57,59,120,0,\r
+48,18,118,0,59,121,0,18,109,0,16,10,50,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,\r
+57,59,122,0,48,46,20,0,8,18,117,0,0,0,1,0,0,2,3,1,0,2,11,118,0,0,1,1,0,14,109,0,0,0,1,9,18,118,0,\r
+18,118,0,18,109,0,48,20,0,0,1,0,12,2,21,1,1,0,12,118,0,0,1,1,0,15,109,0,0,0,1,3,2,0,12,1,117,0,0,0,\r
+9,18,117,0,59,120,0,18,118,0,59,120,0,18,109,0,16,8,48,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,\r
+16,8,48,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,8,48,0,57,59,122,0,48,46,18,118,0,59,119,\r
+0,18,109,0,16,8,48,0,57,59,119,0,48,46,20,0,9,18,117,0,59,121,0,18,118,0,59,120,0,18,109,0,16,10,\r
+49,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,49,0,57,59,121,0,48,46,18,118,0,59,122,0,18,\r
+109,0,16,10,49,0,57,59,122,0,48,46,18,118,0,59,119,0,18,109,0,16,10,49,0,57,59,119,0,48,46,20,0,9,\r
+18,117,0,59,122,0,18,118,0,59,120,0,18,109,0,16,10,50,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,\r
+16,10,50,0,57,59,121,0,48,46,18,118,0,59,122,0,18,109,0,16,10,50,0,57,59,122,0,48,46,18,118,0,59,\r
+119,0,18,109,0,16,10,50,0,57,59,119,0,48,46,20,0,9,18,117,0,59,119,0,18,118,0,59,120,0,18,109,0,16,\r
+10,51,0,57,59,120,0,48,18,118,0,59,121,0,18,109,0,16,10,51,0,57,59,121,0,48,46,18,118,0,59,122,0,\r
+18,109,0,16,10,51,0,57,59,122,0,48,46,18,118,0,59,119,0,18,109,0,16,10,51,0,57,59,119,0,48,46,20,0,\r
+8,18,117,0,0,0,1,0,0,2,3,1,0,2,12,118,0,0,1,1,0,15,109,0,0,0,1,9,18,118,0,18,118,0,18,109,0,48,20,\r
+0,0,1,0,9,2,27,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,9,1,99,0,0,0,4,102,108,111,97,116,95,110,\r
+101,103,97,116,101,0,18,99,0,0,18,98,0,0,0,4,102,108,111,97,116,95,97,100,100,0,18,99,0,0,18,97,0,\r
+0,18,99,0,0,0,8,18,99,0,0,0,1,0,5,2,26,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,9,1,120,0,0,1,1,121,\r
+0,0,0,3,2,0,5,1,99,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,97,0,0,0,4,\r
+105,110,116,95,116,111,95,102,108,111,97,116,0,18,121,0,0,18,98,0,0,0,4,102,108,111,97,116,95,97,\r
+100,100,0,18,120,0,0,18,120,0,0,18,121,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,116,0,18,\r
+99,0,0,18,120,0,0,0,8,18,99,0,0,0,1,0,5,2,27,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,9,1,120,0,0,1,\r
+1,121,0,0,0,3,2,0,5,1,99,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,97,0,\r
+0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,121,0,0,18,98,0,0,0,4,102,108,111,97,116,\r
+95,110,101,103,97,116,101,0,18,121,0,0,18,121,0,0,0,4,102,108,111,97,116,95,97,100,100,0,18,120,0,\r
+0,18,120,0,0,18,121,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,116,0,18,99,0,0,18,120,0,0,0,\r
+8,18,99,0,0,0,1,0,5,2,21,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,9,1,120,0,0,1,1,121,0,0,0,3,2,0,5,\r
+1,99,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,0,18,97,0,0,0,4,105,110,116,\r
+95,116,111,95,102,108,111,97,116,0,18,121,0,0,18,98,0,0,0,4,102,108,111,97,116,95,109,117,108,116,\r
+105,112,108,121,0,18,120,0,0,18,120,0,0,18,121,0,0,0,4,102,108,111,97,116,95,116,111,95,105,110,\r
+116,0,18,99,0,0,18,120,0,0,0,8,18,99,0,0,0,1,0,5,2,22,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,3,2,0,9,1,\r
+120,0,0,1,1,121,0,0,0,3,2,0,5,1,99,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,120,0,\r
+0,18,97,0,0,0,4,105,110,116,95,116,111,95,102,108,111,97,116,0,18,121,0,0,18,98,0,0,0,4,102,108,\r
+111,97,116,95,100,105,118,105,100,101,0,18,120,0,0,18,120,0,0,18,121,0,0,0,4,102,108,111,97,116,95,\r
+116,111,95,105,110,116,0,18,99,0,0,18,120,0,0,0,8,18,99,0,0,0,1,0,10,2,26,1,1,0,10,118,0,0,1,1,0,\r
+10,117,0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,20,\r
+0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,46,20,0,8,18,116,0,0,0,1,0,10,2,27,1,1,0,\r
+10,118,0,0,1,1,0,10,117,0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,\r
+0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,47,20,0,8,18,116,0,0,0,\r
+1,0,10,2,21,1,1,0,10,118,0,0,1,1,0,10,117,0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,118,\r
+0,59,120,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,48,20,\r
+0,8,18,116,0,0,0,1,0,10,2,22,1,1,0,10,118,0,0,1,1,0,10,117,0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,\r
+59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,\r
+0,59,121,0,49,20,0,8,18,116,0,0,0,1,0,11,2,26,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,\r
+0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,20,0,9,18,116,0,59,121,0,18,118,0,\r
+59,121,0,18,117,0,59,121,0,46,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,46,20,0,\r
+8,18,116,0,0,0,1,0,11,2,27,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,\r
+59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,\r
+0,59,121,0,47,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,47,20,0,8,18,116,0,0,0,\r
+1,0,11,2,21,1,1,0,11,118,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,\r
+0,59,120,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,48,20,\r
+0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,48,20,0,8,18,116,0,0,0,1,0,11,2,22,1,1,0,\r
+11,118,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,\r
+0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,49,20,0,9,18,116,0,59,\r
+122,0,18,118,0,59,122,0,18,117,0,59,122,0,49,20,0,8,18,116,0,0,0,1,0,12,2,26,1,1,0,12,118,0,0,1,1,\r
+0,12,117,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,\r
+20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,46,20,0,9,18,116,0,59,122,0,18,118,0,\r
+59,122,0,18,117,0,59,122,0,46,20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,117,0,59,119,0,46,20,0,\r
+8,18,116,0,0,0,1,0,12,2,27,1,1,0,12,118,0,0,1,1,0,12,117,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,\r
+59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,\r
+0,59,121,0,47,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,47,20,0,9,18,116,0,59,\r
+119,0,18,118,0,59,119,0,18,117,0,59,119,0,47,20,0,8,18,116,0,0,0,1,0,12,2,21,1,1,0,12,118,0,0,1,1,\r
+0,12,117,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,48,\r
+20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,48,20,0,9,18,116,0,59,122,0,18,118,0,\r
+59,122,0,18,117,0,59,122,0,48,20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,117,0,59,119,0,48,20,0,\r
+8,18,116,0,0,0,1,0,12,2,22,1,1,0,12,118,0,0,1,1,0,12,117,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,\r
+59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,\r
+0,59,121,0,49,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,49,20,0,9,18,116,0,59,\r
+119,0,18,118,0,59,119,0,18,117,0,59,119,0,49,20,0,8,18,116,0,0,0,1,0,6,2,26,1,1,0,6,118,0,0,1,1,0,\r
+6,117,0,0,0,1,3,2,0,6,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,20,0,\r
+9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,46,20,0,8,18,116,0,0,0,1,0,6,2,27,1,1,0,6,\r
+118,0,0,1,1,0,6,117,0,0,0,1,3,2,0,6,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,\r
+120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,47,20,0,8,18,116,0,0,0,1,0,6,\r
+2,21,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,3,2,0,6,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,\r
+18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,48,20,0,8,18,116,\r
+0,0,0,1,0,6,2,22,1,1,0,6,118,0,0,1,1,0,6,117,0,0,0,1,3,2,0,6,1,116,0,0,0,9,18,116,0,59,120,0,18,\r
+118,0,59,120,0,18,117,0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,\r
+49,20,0,8,18,116,0,0,0,1,0,7,2,26,1,1,0,7,118,0,0,1,1,0,7,117,0,0,0,1,3,2,0,7,1,116,0,0,0,9,18,116,\r
+0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,\r
+117,0,59,121,0,46,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,46,20,0,8,18,116,0,\r
+0,0,1,0,7,2,27,1,1,0,7,118,0,0,1,1,0,7,117,0,0,0,1,3,2,0,7,1,116,0,0,0,9,18,116,0,59,120,0,18,118,\r
+0,59,120,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,47,20,\r
+0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,47,20,0,8,18,116,0,0,0,1,0,7,2,21,1,1,0,\r
+7,118,0,0,1,1,0,7,117,0,0,0,1,3,2,0,7,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,\r
+59,120,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,48,20,0,9,18,116,0,59,122,\r
+0,18,118,0,59,122,0,18,117,0,59,122,0,48,20,0,8,18,116,0,0,0,1,0,7,2,22,1,1,0,7,118,0,0,1,1,0,7,\r
+117,0,0,0,1,3,2,0,7,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,49,20,0,9,\r
+18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,49,20,0,9,18,116,0,59,122,0,18,118,0,59,122,\r
+0,18,117,0,59,122,0,49,20,0,8,18,116,0,0,0,1,0,8,2,26,1,1,0,8,118,0,0,1,1,0,8,117,0,0,0,1,3,2,0,8,\r
+1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,46,20,0,9,18,116,0,59,121,0,18,\r
+118,0,59,121,0,18,117,0,59,121,0,46,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,\r
+46,20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,117,0,59,119,0,46,20,0,8,18,116,0,0,0,1,0,8,2,27,\r
+1,1,0,8,118,0,0,1,1,0,8,117,0,0,0,1,3,2,0,8,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,\r
+117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,47,20,0,9,18,116,0,\r
+59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,47,20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,117,\r
+0,59,119,0,47,20,0,8,18,116,0,0,0,1,0,8,2,21,1,1,0,8,118,0,0,1,1,0,8,117,0,0,0,1,3,2,0,8,1,116,0,0,\r
+0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,\r
+121,0,18,117,0,59,121,0,48,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,117,0,59,122,0,48,20,0,9,\r
+18,116,0,59,119,0,18,118,0,59,119,0,18,117,0,59,119,0,48,20,0,8,18,116,0,0,0,1,0,8,2,22,1,1,0,8,\r
+118,0,0,1,1,0,8,117,0,0,0,1,3,2,0,8,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,117,0,59,\r
+120,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,117,0,59,121,0,49,20,0,9,18,116,0,59,122,0,\r
+18,118,0,59,122,0,18,117,0,59,122,0,49,20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,117,0,59,119,\r
+0,49,20,0,8,18,116,0,0,0,1,0,13,2,26,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,\r
+18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,46,20,0,9,18,111,0,16,10,49,0,57,\r
+18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,46,20,0,8,18,111,0,0,0,1,0,13,2,27,1,1,0,13,109,0,0,\r
+1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,\r
+16,8,48,0,57,47,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,47,20,\r
+0,8,18,111,0,0,0,1,0,13,2,22,1,1,0,13,109,0,0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,\r
+16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,49,20,0,9,18,111,0,16,10,49,0,57,18,109,0,\r
+16,10,49,0,57,18,110,0,16,10,49,0,57,49,20,0,8,18,111,0,0,0,1,0,14,2,26,1,1,0,14,109,0,0,1,1,0,14,\r
+110,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,\r
+57,46,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,46,20,0,9,18,111,\r
+0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,46,20,0,8,18,111,0,0,0,1,0,14,2,27,1,\r
+1,0,14,109,0,0,1,1,0,14,110,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,\r
+0,57,18,110,0,16,8,48,0,57,47,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,\r
+49,0,57,47,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,47,20,0,8,\r
+18,111,0,0,0,1,0,14,2,22,1,1,0,14,109,0,0,1,1,0,14,110,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,\r
+8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,49,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,\r
+10,49,0,57,18,110,0,16,10,49,0,57,49,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,110,0,\r
+16,10,50,0,57,49,20,0,8,18,111,0,0,0,1,0,15,2,26,1,1,0,15,109,0,0,1,1,0,15,110,0,0,0,1,3,2,0,15,1,\r
+111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,46,20,0,9,18,111,0,\r
+16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,46,20,0,9,18,111,0,16,10,50,0,57,18,\r
+109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,46,20,0,9,18,111,0,16,10,51,0,57,18,109,0,16,10,51,0,57,\r
+18,110,0,16,10,51,0,57,46,20,0,8,18,111,0,0,0,1,0,15,2,27,1,1,0,15,109,0,0,1,1,0,15,110,0,0,0,1,3,\r
+2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,47,20,0,9,\r
+18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,47,20,0,9,18,111,0,16,10,50,0,\r
+57,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,47,20,0,9,18,111,0,16,10,51,0,57,18,109,0,16,10,\r
+51,0,57,18,110,0,16,10,51,0,57,47,20,0,8,18,111,0,0,0,1,0,15,2,22,1,1,0,15,109,0,0,1,1,0,15,110,0,\r
+0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,110,0,16,8,48,0,57,49,\r
+20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,110,0,16,10,49,0,57,49,20,0,9,18,111,0,16,\r
+10,50,0,57,18,109,0,16,10,50,0,57,18,110,0,16,10,50,0,57,49,20,0,9,18,111,0,16,10,51,0,57,18,109,0,\r
+16,10,51,0,57,18,110,0,16,10,51,0,57,49,20,0,8,18,111,0,0,0,1,0,10,2,26,1,1,0,9,97,0,0,1,1,0,10,\r
+117,0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,46,20,0,9,18,116,0,\r
+59,121,0,18,97,0,18,117,0,59,121,0,46,20,0,8,18,116,0,0,0,1,0,10,2,26,1,1,0,10,118,0,0,1,1,0,9,98,\r
+0,0,0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,46,20,0,9,18,116,0,59,\r
+121,0,18,118,0,59,121,0,18,98,0,46,20,0,8,18,116,0,0,0,1,0,10,2,27,1,1,0,9,97,0,0,1,1,0,10,117,0,0,\r
+0,1,3,2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,\r
+18,97,0,18,117,0,59,121,0,47,20,0,8,18,116,0,0,0,1,0,10,2,27,1,1,0,10,118,0,0,1,1,0,9,98,0,0,0,1,3,\r
+2,0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,47,20,0,9,18,116,0,59,121,0,18,\r
+118,0,59,121,0,18,98,0,47,20,0,8,18,116,0,0,0,1,0,10,2,21,1,1,0,9,97,0,0,1,1,0,10,117,0,0,0,1,3,2,\r
+0,10,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,97,0,\r
+18,117,0,59,121,0,48,20,0,8,18,116,0,0,0,1,0,10,2,21,1,1,0,10,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,10,\r
+1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,48,20,0,9,18,116,0,59,121,0,18,118,0,59,\r
+121,0,18,98,0,48,20,0,8,18,116,0,0,0,1,0,10,2,22,1,1,0,9,97,0,0,1,1,0,10,117,0,0,0,1,3,2,0,10,1,\r
+116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,97,0,18,117,\r
+0,59,121,0,49,20,0,8,18,116,0,0,0,1,0,10,2,22,1,1,0,10,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,10,1,116,0,\r
+0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,\r
+98,0,49,20,0,8,18,116,0,0,0,1,0,11,2,26,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,0,0,9,\r
+18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,46,20,0,9,18,116,0,59,121,0,18,97,0,18,117,0,59,121,0,\r
+46,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,46,20,0,8,18,116,0,0,0,1,0,11,2,26,1,1,0,11,\r
+118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,46,\r
+20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,98,0,46,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,\r
+18,98,0,46,20,0,8,18,116,0,0,0,1,0,11,2,27,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,0,\r
+0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,97,0,18,117,0,59,\r
+121,0,47,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,47,20,0,8,18,116,0,0,0,1,0,11,2,27,1,1,\r
+0,11,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,\r
+47,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,98,0,47,20,0,9,18,116,0,59,122,0,18,118,0,59,122,\r
+0,18,98,0,47,20,0,8,18,116,0,0,0,1,0,11,2,21,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,\r
+0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,18,97,0,18,117,0,59,\r
+121,0,48,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,48,20,0,8,18,116,0,0,0,1,0,11,2,21,1,1,\r
+0,11,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,\r
+48,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,98,0,48,20,0,9,18,116,0,59,122,0,18,118,0,59,122,\r
+0,18,98,0,48,20,0,8,18,116,0,0,0,1,0,11,2,22,1,1,0,9,97,0,0,1,1,0,11,117,0,0,0,1,3,2,0,11,1,116,0,\r
+0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,49,20,0,9,18,116,0,59,121,0,18,97,0,18,117,0,59,\r
+121,0,49,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,49,20,0,8,18,116,0,0,0,1,0,11,2,22,1,1,\r
+0,11,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,11,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,\r
+49,20,0,9,18,116,0,59,121,0,18,118,0,59,121,0,18,98,0,49,20,0,9,18,116,0,59,122,0,18,118,0,59,122,\r
+0,18,98,0,49,20,0,8,18,116,0,0,0,1,0,12,2,26,1,1,0,9,97,0,0,1,1,0,12,117,0,0,0,1,3,2,0,12,1,116,0,\r
+0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,46,20,0,9,18,116,0,59,121,0,18,97,0,18,117,0,59,\r
+121,0,46,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,46,20,0,9,18,116,0,59,119,0,18,97,0,18,\r
+117,0,59,119,0,46,20,0,8,18,116,0,0,0,1,0,12,2,26,1,1,0,12,118,0,0,1,1,0,9,98,0,0,0,1,3,2,0,12,1,\r
+116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,46,20,0,9,18,116,0,59,121,0,18,118,0,59,\r
+121,0,18,98,0,46,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,98,0,46,20,0,9,18,116,0,59,119,0,18,\r
+118,0,59,119,0,18,98,0,46,20,0,8,18,116,0,0,0,1,0,12,2,27,1,1,0,9,97,0,0,1,1,0,12,117,0,0,0,1,3,2,\r
+0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,47,20,0,9,18,116,0,59,121,0,18,97,0,\r
+18,117,0,59,121,0,47,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,47,20,0,9,18,116,0,59,119,\r
+0,18,97,0,18,117,0,59,119,0,47,20,0,8,18,116,0,0,0,1,0,12,2,27,1,1,0,12,118,0,0,1,1,0,9,98,0,0,0,1,\r
+3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,47,20,0,9,18,116,0,59,121,0,18,\r
+118,0,59,121,0,18,98,0,47,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,98,0,47,20,0,9,18,116,0,59,\r
+119,0,18,118,0,59,119,0,18,98,0,47,20,0,8,18,116,0,0,0,1,0,12,2,21,1,1,0,9,97,0,0,1,1,0,12,117,0,0,\r
+0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,48,20,0,9,18,116,0,59,121,0,\r
+18,97,0,18,117,0,59,121,0,48,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,48,20,0,9,18,116,0,\r
+59,119,0,18,97,0,18,117,0,59,119,0,48,20,0,8,18,116,0,0,0,1,0,12,2,21,1,1,0,12,118,0,0,1,1,0,9,98,\r
+0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,48,20,0,9,18,116,0,59,\r
+121,0,18,118,0,59,121,0,18,98,0,48,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,98,0,48,20,0,9,18,\r
+116,0,59,119,0,18,118,0,59,119,0,18,98,0,48,20,0,8,18,116,0,0,0,1,0,12,2,22,1,1,0,9,97,0,0,1,1,0,\r
+12,117,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,97,0,18,117,0,59,120,0,49,20,0,9,18,116,\r
+0,59,121,0,18,97,0,18,117,0,59,121,0,49,20,0,9,18,116,0,59,122,0,18,97,0,18,117,0,59,122,0,49,20,0,\r
+9,18,116,0,59,119,0,18,97,0,18,117,0,59,119,0,49,20,0,8,18,116,0,0,0,1,0,12,2,22,1,1,0,12,118,0,0,\r
+1,1,0,9,98,0,0,0,1,3,2,0,12,1,116,0,0,0,9,18,116,0,59,120,0,18,118,0,59,120,0,18,98,0,49,20,0,9,18,\r
+116,0,59,121,0,18,118,0,59,121,0,18,98,0,49,20,0,9,18,116,0,59,122,0,18,118,0,59,122,0,18,98,0,49,\r
+20,0,9,18,116,0,59,119,0,18,118,0,59,119,0,18,98,0,49,20,0,8,18,116,0,0,0,1,0,13,2,26,1,1,0,9,97,0,\r
+0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,\r
+46,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,46,20,0,8,18,111,0,0,0,1,0,13,2,26,\r
+1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,\r
+0,57,18,98,0,46,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,46,20,0,8,18,111,0,0,\r
+0,1,0,13,2,27,1,1,0,9,97,0,0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,\r
+97,0,18,110,0,16,8,48,0,57,47,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,47,20,0,\r
+8,18,111,0,0,0,1,0,13,2,27,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,\r
+8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,47,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,\r
+98,0,47,20,0,8,18,111,0,0,0,1,0,13,2,21,1,1,0,9,97,0,0,1,1,0,13,110,0,0,0,1,3,2,0,13,1,111,0,0,0,9,\r
+18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,\r
+110,0,16,10,49,0,57,48,20,0,8,18,111,0,0,0,1,0,13,2,21,1,1,0,13,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,\r
+13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,48,20,0,9,18,111,0,16,10,49,0,\r
+57,18,109,0,16,10,49,0,57,18,98,0,48,20,0,8,18,111,0,0,0,1,0,13,2,22,1,1,0,9,97,0,0,1,1,0,13,110,0,\r
+0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,49,20,0,9,18,111,\r
+0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,49,20,0,8,18,111,0,0,0,1,0,13,2,22,1,1,0,13,109,0,0,\r
+1,1,0,9,98,0,0,0,1,3,2,0,13,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,49,\r
+20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,49,20,0,8,18,111,0,0,0,1,0,14,2,26,1,\r
+1,0,9,97,0,0,1,1,0,14,110,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,\r
+8,48,0,57,46,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,46,20,0,9,18,111,0,16,10,\r
+50,0,57,18,97,0,18,110,0,16,10,50,0,57,46,20,0,8,18,111,0,0,0,1,0,14,2,26,1,1,0,14,109,0,0,1,1,0,9,\r
+98,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,46,20,0,9,18,\r
+111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,46,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,\r
+50,0,57,18,98,0,46,20,0,8,18,111,0,0,0,1,0,14,2,27,1,1,0,9,97,0,0,1,1,0,14,110,0,0,0,1,3,2,0,14,1,\r
+111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,47,20,0,9,18,111,0,16,10,49,0,57,\r
+18,97,0,18,110,0,16,10,49,0,57,47,20,0,9,18,111,0,16,10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,47,\r
+20,0,8,18,111,0,0,0,1,0,14,2,27,1,1,0,14,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,\r
+0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,47,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,\r
+57,18,98,0,47,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,98,0,47,20,0,8,18,111,0,0,0,\r
+1,0,14,2,21,1,1,0,9,97,0,0,1,1,0,14,110,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,\r
+0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,48,20,0,9,\r
+18,111,0,16,10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,48,20,0,8,18,111,0,0,0,1,0,14,2,21,1,1,0,14,\r
+109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,\r
+98,0,48,20,0,9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,48,20,0,9,18,111,0,16,10,50,0,\r
+57,18,109,0,16,10,50,0,57,18,98,0,48,20,0,8,18,111,0,0,0,1,0,14,2,22,1,1,0,9,97,0,0,1,1,0,14,110,0,\r
+0,0,1,3,2,0,14,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,49,20,0,9,18,111,\r
+0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,49,20,0,9,18,111,0,16,10,50,0,57,18,97,0,18,110,0,\r
+16,10,50,0,57,49,20,0,8,18,111,0,0,0,1,0,14,2,22,1,1,0,14,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,14,1,\r
+111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,49,20,0,9,18,111,0,16,10,49,0,57,\r
+18,109,0,16,10,49,0,57,18,98,0,49,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,98,0,49,\r
+20,0,8,18,111,0,0,0,1,0,15,2,26,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,\r
+0,16,8,48,0,57,18,97,0,18,110,0,16,8,48,0,57,46,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,\r
+10,49,0,57,46,20,0,9,18,111,0,16,10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,46,20,0,9,18,111,0,16,\r
+10,51,0,57,18,97,0,18,110,0,16,10,51,0,57,46,20,0,8,18,111,0,0,0,1,0,15,2,26,1,1,0,15,109,0,0,1,1,\r
+0,9,98,0,0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,46,20,0,\r
+9,18,111,0,16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,46,20,0,9,18,111,0,16,10,50,0,57,18,109,0,\r
+16,10,50,0,57,18,98,0,46,20,0,9,18,111,0,16,10,51,0,57,18,109,0,16,10,51,0,57,18,98,0,46,20,0,8,18,\r
+111,0,0,0,1,0,15,2,27,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,\r
+0,57,18,97,0,18,110,0,16,8,48,0,57,47,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,\r
+47,20,0,9,18,111,0,16,10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,47,20,0,9,18,111,0,16,10,51,0,57,\r
+18,97,0,18,110,0,16,10,51,0,57,47,20,0,8,18,111,0,0,0,1,0,15,2,27,1,1,0,15,109,0,0,1,1,0,9,98,0,0,\r
+0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,47,20,0,9,18,111,0,\r
+16,10,49,0,57,18,109,0,16,10,49,0,57,18,98,0,47,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,\r
+57,18,98,0,47,20,0,9,18,111,0,16,10,51,0,57,18,109,0,16,10,51,0,57,18,98,0,47,20,0,8,18,111,0,0,0,\r
+1,0,15,2,21,1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,\r
+0,18,110,0,16,8,48,0,57,48,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,48,20,0,9,\r
+18,111,0,16,10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,48,20,0,9,18,111,0,16,10,51,0,57,18,97,0,18,\r
+110,0,16,10,51,0,57,48,20,0,8,18,111,0,0,0,1,0,15,2,21,1,1,0,15,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,\r
+15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,48,20,0,9,18,111,0,16,10,49,0,\r
+57,18,109,0,16,10,49,0,57,18,98,0,48,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,98,0,\r
+48,20,0,9,18,111,0,16,10,51,0,57,18,109,0,16,10,51,0,57,18,98,0,48,20,0,8,18,111,0,0,0,1,0,15,2,22,\r
+1,1,0,9,97,0,0,1,1,0,15,110,0,0,0,1,3,2,0,15,1,111,0,0,0,9,18,111,0,16,8,48,0,57,18,97,0,18,110,0,\r
+16,8,48,0,57,49,20,0,9,18,111,0,16,10,49,0,57,18,97,0,18,110,0,16,10,49,0,57,49,20,0,9,18,111,0,16,\r
+10,50,0,57,18,97,0,18,110,0,16,10,50,0,57,49,20,0,9,18,111,0,16,10,51,0,57,18,97,0,18,110,0,16,10,\r
+51,0,57,49,20,0,8,18,111,0,0,0,1,0,15,2,22,1,1,0,15,109,0,0,1,1,0,9,98,0,0,0,1,3,2,0,15,1,111,0,0,\r
+0,9,18,111,0,16,8,48,0,57,18,109,0,16,8,48,0,57,18,98,0,49,20,0,9,18,111,0,16,10,49,0,57,18,109,0,\r
+16,10,49,0,57,18,98,0,49,20,0,9,18,111,0,16,10,50,0,57,18,109,0,16,10,50,0,57,18,98,0,49,20,0,9,18,\r
+111,0,16,10,51,0,57,18,109,0,16,10,51,0,57,18,98,0,49,20,0,8,18,111,0,0,0,1,0,6,2,26,1,1,0,5,97,0,\r
+0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,0,0,18,117,0,46,0,0,1,0,6,2,26,1,1,0,6,118,\r
+0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,50,0,18,98,0,0,0,46,0,0,1,0,6,2,27,1,1,0,5,97,\r
+0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,0,0,18,117,0,47,0,0,1,0,6,2,27,1,1,0,6,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,50,0,18,98,0,0,0,47,0,0,1,0,6,2,21,1,1,0,5,\r
+97,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,0,0,18,117,0,48,0,0,1,0,6,2,21,1,1,0,6,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,50,0,18,98,0,0,0,48,0,0,1,0,6,2,22,1,1,0,5,\r
+97,0,0,1,1,0,6,117,0,0,0,1,8,58,105,118,101,99,50,0,18,97,0,0,0,18,117,0,49,0,0,1,0,6,2,22,1,1,0,6,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,50,0,18,98,0,0,0,49,0,0,1,0,7,2,26,1,1,0,5,\r
+97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,0,0,18,117,0,46,0,0,1,0,7,2,26,1,1,0,7,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,51,0,18,98,0,0,0,46,0,0,1,0,7,2,27,1,1,0,5,\r
+97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,0,0,18,117,0,47,0,0,1,0,7,2,27,1,1,0,7,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,51,0,18,98,0,0,0,47,0,0,1,0,7,2,21,1,1,0,5,\r
+97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,0,0,18,117,0,48,0,0,1,0,7,2,21,1,1,0,7,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,51,0,18,98,0,0,0,48,0,0,1,0,7,2,22,1,1,0,5,\r
+97,0,0,1,1,0,7,117,0,0,0,1,8,58,105,118,101,99,51,0,18,97,0,0,0,18,117,0,49,0,0,1,0,7,2,22,1,1,0,7,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,51,0,18,98,0,0,0,49,0,0,1,0,8,2,26,1,1,0,5,\r
+97,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,0,0,18,117,0,46,0,0,1,0,8,2,26,1,1,0,8,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,52,0,18,98,0,0,0,46,0,0,1,0,8,2,27,1,1,0,5,\r
+97,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,0,0,18,117,0,47,0,0,1,0,8,2,27,1,1,0,8,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,52,0,18,98,0,0,0,47,0,0,1,0,8,2,21,1,1,0,5,\r
+97,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,0,0,18,117,0,48,0,0,1,0,8,2,21,1,1,0,8,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,52,0,18,98,0,0,0,48,0,0,1,0,8,2,22,1,1,0,5,\r
+97,0,0,1,1,0,8,117,0,0,0,1,8,58,105,118,101,99,52,0,18,97,0,0,0,18,117,0,49,0,0,1,0,8,2,22,1,1,0,8,\r
+118,0,0,1,1,0,5,98,0,0,0,1,8,18,118,0,58,105,118,101,99,52,0,18,98,0,0,0,49,0,0,1,0,10,2,27,1,1,0,\r
+10,118,0,0,0,1,3,2,0,10,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,54,20,0,9,18,117,0,59,\r
+121,0,18,118,0,59,121,0,54,20,0,8,18,117,0,0,0,1,0,11,2,27,1,1,0,11,118,0,0,0,1,3,2,0,11,1,117,0,0,\r
+0,9,18,117,0,59,120,0,18,118,0,59,120,0,54,20,0,9,18,117,0,59,121,0,18,118,0,59,121,0,54,20,0,9,18,\r
+117,0,59,122,0,18,118,0,59,122,0,54,20,0,8,18,117,0,0,0,1,0,12,2,27,1,1,0,12,118,0,0,0,1,3,2,0,12,\r
+1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,54,20,0,9,18,117,0,59,121,0,18,118,0,59,121,0,54,\r
+20,0,9,18,117,0,59,122,0,18,118,0,59,122,0,54,20,0,9,18,117,0,59,119,0,18,118,0,59,119,0,54,20,0,8,\r
+18,117,0,0,0,1,0,6,2,27,1,1,0,6,118,0,0,0,1,3,2,0,6,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,\r
+120,0,54,20,0,9,18,117,0,59,121,0,18,118,0,59,121,0,54,20,0,8,18,117,0,0,0,1,0,7,2,27,1,1,0,7,118,\r
+0,0,0,1,3,2,0,7,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,54,20,0,9,18,117,0,59,121,0,18,\r
+118,0,59,121,0,54,20,0,9,18,117,0,59,122,0,18,118,0,59,122,0,54,20,0,8,18,117,0,0,0,1,0,8,2,27,1,1,\r
+0,8,118,0,0,0,1,3,2,0,8,1,117,0,0,0,9,18,117,0,59,120,0,18,118,0,59,120,0,54,20,0,9,18,117,0,59,\r
+121,0,18,118,0,59,121,0,54,20,0,9,18,117,0,59,122,0,18,118,0,59,122,0,54,20,0,9,18,117,0,59,119,0,\r
+18,118,0,59,119,0,54,20,0,8,18,117,0,0,0,1,0,13,2,27,1,1,0,13,109,0,0,0,1,3,2,0,13,1,110,0,0,0,9,\r
+18,110,0,16,8,48,0,57,18,109,0,16,8,48,0,57,54,20,0,9,18,110,0,16,10,49,0,57,18,109,0,16,10,49,0,\r
+57,54,20,0,8,18,110,0,0,0,1,0,14,2,27,1,1,0,14,109,0,0,0,1,3,2,0,14,1,110,0,0,0,9,18,110,0,16,8,48,\r
+0,57,18,109,0,16,8,48,0,57,54,20,0,9,18,110,0,16,10,49,0,57,18,109,0,16,10,49,0,57,54,20,0,9,18,\r
+110,0,16,10,50,0,57,18,109,0,16,10,50,0,57,54,20,0,8,18,110,0,0,0,1,0,15,2,27,1,1,0,15,109,0,0,0,1,\r
+3,2,0,15,1,110,0,0,0,9,18,110,0,16,8,48,0,57,18,109,0,16,8,48,0,57,54,20,0,9,18,110,0,16,10,49,0,\r
+57,18,109,0,16,10,49,0,57,54,20,0,9,18,110,0,16,10,50,0,57,18,109,0,16,10,50,0,57,54,20,0,9,18,110,\r
+0,16,10,51,0,57,18,109,0,16,10,51,0,57,54,20,0,8,18,110,0,0,0,1,0,0,2,25,1,0,2,9,97,0,0,0,1,9,18,\r
+97,0,17,49,0,48,0,0,22,0,0,1,0,0,2,25,1,0,2,5,97,0,0,0,1,9,18,97,0,16,10,49,0,22,0,0,1,0,0,2,25,1,\r
+0,2,10,118,0,0,0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,0,1,0,0,2,25,1,0,2,11,118,0,0,\r
+0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,118,0,59,122,0,52,0,0,1,0,0,2,25,1,0,2,\r
+12,118,0,0,0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,118,0,59,122,0,52,0,9,18,118,\r
+0,59,119,0,52,0,0,1,0,0,2,25,1,0,2,6,118,0,0,0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,\r
+0,1,0,0,2,25,1,0,2,7,118,0,0,0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,118,0,59,\r
+122,0,52,0,0,1,0,0,2,25,1,0,2,8,118,0,0,0,1,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,\r
+118,0,59,122,0,52,0,9,18,118,0,59,119,0,52,0,0,1,0,0,2,25,1,0,2,13,109,0,0,0,1,9,18,109,0,16,8,48,\r
+0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,0,1,0,0,2,25,1,0,2,14,109,0,0,0,1,9,18,109,0,16,8,48,0,57,\r
+52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,0,1,0,0,2,25,1,0,2,15,109,0,0,0,1,\r
+9,18,109,0,16,8,48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,9,18,109,\r
+0,16,10,51,0,57,52,0,0,1,0,0,2,24,1,0,2,9,97,0,0,0,1,9,18,97,0,17,49,0,48,0,0,21,0,0,1,0,0,2,24,1,\r
+0,2,5,97,0,0,0,1,9,18,97,0,16,10,49,0,21,0,0,1,0,0,2,24,1,0,2,10,118,0,0,0,1,9,18,118,0,59,120,0,\r
+51,0,9,18,118,0,59,121,0,51,0,0,1,0,0,2,24,1,0,2,11,118,0,0,0,1,9,18,118,0,59,120,0,51,0,9,18,118,\r
+0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,0,1,0,0,2,24,1,0,2,12,118,0,0,0,1,9,18,118,0,59,120,0,51,\r
+0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,9,18,118,0,59,119,0,51,0,0,1,0,0,2,24,1,0,2,6,\r
+118,0,0,0,1,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,0,1,0,0,2,24,1,0,2,7,118,0,0,0,1,9,\r
+18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,0,1,0,0,2,24,1,0,2,8,118,\r
+0,0,0,1,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,9,18,118,0,59,\r
+119,0,51,0,0,1,0,0,2,24,1,0,2,13,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,0,9,18,109,0,16,10,49,0,57,\r
+51,0,0,1,0,0,2,24,1,0,2,14,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,0,9,18,109,0,16,10,49,0,57,51,0,\r
+9,18,109,0,16,10,50,0,57,51,0,0,1,0,0,2,24,1,0,2,15,109,0,0,0,1,9,18,109,0,16,8,48,0,57,51,0,9,18,\r
+109,0,16,10,49,0,57,51,0,9,18,109,0,16,10,50,0,57,51,0,9,18,109,0,16,10,51,0,57,51,0,0,1,0,9,2,25,\r
+1,0,2,9,97,0,0,1,1,0,5,0,0,0,1,3,2,0,9,1,98,0,0,0,9,18,98,0,18,97,0,20,0,9,18,97,0,52,0,8,18,98,0,\r
+0,0,1,0,5,2,25,1,0,2,5,97,0,0,1,1,0,5,0,0,0,1,3,2,0,5,1,98,0,0,0,9,18,98,0,18,97,0,20,0,9,18,97,0,\r
+52,0,8,18,98,0,0,0,1,0,10,2,25,1,0,2,10,118,0,0,1,1,0,5,0,0,0,1,3,2,0,10,1,117,0,0,0,9,18,117,0,18,\r
+118,0,20,0,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,8,18,117,0,0,0,1,0,11,2,25,1,0,2,11,\r
+118,0,0,1,1,0,5,0,0,0,1,3,2,0,11,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,52,0,9,\r
+18,118,0,59,121,0,52,0,9,18,118,0,59,122,0,52,0,8,18,117,0,0,0,1,0,12,2,25,1,0,2,12,118,0,0,1,1,0,\r
+5,0,0,0,1,3,2,0,12,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,\r
+0,52,0,9,18,118,0,59,122,0,52,0,9,18,118,0,59,119,0,52,0,8,18,117,0,0,0,1,0,6,2,25,1,0,2,6,118,0,0,\r
+1,1,0,5,0,0,0,1,3,2,0,6,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,52,0,9,18,118,0,\r
+59,121,0,52,0,8,18,117,0,0,0,1,0,7,2,25,1,0,2,7,118,0,0,1,1,0,5,0,0,0,1,3,2,0,7,1,117,0,0,0,9,18,\r
+117,0,18,118,0,20,0,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,118,0,59,122,0,52,0,8,\r
+18,117,0,0,0,1,0,8,2,25,1,0,2,8,118,0,0,1,1,0,5,0,0,0,1,3,2,0,8,1,117,0,0,0,9,18,117,0,18,118,0,20,\r
+0,9,18,118,0,59,120,0,52,0,9,18,118,0,59,121,0,52,0,9,18,118,0,59,122,0,52,0,9,18,118,0,59,119,0,\r
+52,0,8,18,117,0,0,0,1,0,13,2,25,1,0,2,13,109,0,0,1,1,0,5,0,0,0,1,3,2,0,13,1,110,0,0,0,9,18,110,0,\r
+18,109,0,20,0,9,18,109,0,16,8,48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,8,18,110,0,0,0,1,0,14,2,\r
+25,1,0,2,14,109,0,0,1,1,0,5,0,0,0,1,3,2,0,14,1,110,0,0,0,9,18,110,0,18,109,0,20,0,9,18,109,0,16,8,\r
+48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,8,18,110,0,0,0,1,0,15,2,\r
+25,1,0,2,15,109,0,0,1,1,0,5,0,0,0,1,3,2,0,15,1,110,0,0,0,9,18,110,0,18,109,0,20,0,9,18,109,0,16,8,\r
+48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,9,18,109,0,16,10,51,0,57,\r
+52,0,8,18,110,0,0,0,1,0,9,2,24,1,0,2,9,97,0,0,1,1,0,5,0,0,0,1,3,2,0,9,1,98,0,0,0,9,18,98,0,18,97,0,\r
+20,0,9,18,97,0,51,0,8,18,98,0,0,0,1,0,5,2,24,1,0,2,5,97,0,0,1,1,0,5,0,0,0,1,3,2,0,5,1,98,0,0,0,9,\r
+18,98,0,18,97,0,20,0,9,18,97,0,51,0,8,18,98,0,0,0,1,0,10,2,24,1,0,2,10,118,0,0,1,1,0,5,0,0,0,1,3,2,\r
+0,10,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,8,18,\r
+117,0,0,0,1,0,11,2,24,1,0,2,11,118,0,0,1,1,0,5,0,0,0,1,3,2,0,11,1,117,0,0,0,9,18,117,0,18,118,0,20,\r
+0,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,8,18,117,0,0,0,1,0,12,\r
+2,24,1,0,2,12,118,0,0,1,1,0,5,0,0,0,1,3,2,0,12,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,\r
+120,0,51,0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,51,0,9,18,118,0,59,119,0,51,0,8,18,117,0,0,\r
+0,1,0,6,2,24,1,0,2,6,118,0,0,1,1,0,5,0,0,0,1,3,2,0,6,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,\r
+0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,8,18,117,0,0,0,1,0,7,2,24,1,0,2,7,118,0,0,1,1,0,5,0,0,0,1,\r
+3,2,0,7,1,117,0,0,0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,9,\r
+18,118,0,59,122,0,51,0,8,18,117,0,0,0,1,0,8,2,24,1,0,2,8,118,0,0,1,1,0,5,0,0,0,1,3,2,0,8,1,117,0,0,\r
+0,9,18,117,0,18,118,0,20,0,9,18,118,0,59,120,0,51,0,9,18,118,0,59,121,0,51,0,9,18,118,0,59,122,0,\r
+51,0,9,18,118,0,59,119,0,51,0,8,18,117,0,0,0,1,0,13,2,24,1,0,2,13,109,0,0,1,1,0,5,0,0,0,1,3,2,0,13,\r
+1,110,0,0,0,9,18,110,0,18,109,0,20,0,9,18,109,0,16,8,48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,8,\r
+18,110,0,0,0,1,0,14,2,24,1,0,2,14,109,0,0,1,1,0,5,0,0,0,1,3,2,0,14,1,110,0,0,0,9,18,110,0,18,109,0,\r
+20,0,9,18,109,0,16,8,48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,8,18,\r
+110,0,0,0,1,0,15,2,24,1,0,2,15,109,0,0,1,1,0,5,0,0,0,1,3,2,0,15,1,110,0,0,0,9,18,110,0,18,109,0,20,\r
+0,9,18,109,0,16,8,48,0,57,52,0,9,18,109,0,16,10,49,0,57,52,0,9,18,109,0,16,10,50,0,57,52,0,9,18,\r
+109,0,16,10,51,0,57,52,0,8,18,110,0,0,0,1,0,1,2,15,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,1,1,99,\r
+0,0,0,4,102,108,111,97,116,95,108,101,115,115,0,18,99,0,0,18,97,0,0,18,98,0,0,0,8,18,99,0,0,0,1,0,\r
+1,2,15,1,1,0,5,97,0,0,1,1,0,5,98,0,0,0,1,8,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,\r
+116,0,18,98,0,0,0,40,0,0,1,0,1,2,16,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,1,1,99,0,0,0,4,102,108,\r
+111,97,116,95,108,101,115,115,0,18,99,0,0,18,98,0,0,18,97,0,0,0,8,18,99,0,0,0,1,0,1,2,16,1,1,0,5,\r
+97,0,0,1,1,0,5,98,0,0,0,1,8,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,\r
+0,41,0,0,1,0,1,2,18,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,1,1,103,0,0,1,1,101,0,0,0,4,102,108,\r
+111,97,116,95,108,101,115,115,0,18,103,0,0,18,98,0,0,18,97,0,0,0,4,102,108,111,97,116,95,101,113,\r
+117,97,108,0,18,101,0,0,18,97,0,0,18,98,0,0,0,8,18,103,0,18,101,0,32,0,0,1,0,1,2,18,1,1,0,5,97,0,0,\r
+1,1,0,5,98,0,0,0,1,8,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,43,0,\r
+0,1,0,1,2,17,1,1,0,9,97,0,0,1,1,0,9,98,0,0,0,1,3,2,0,1,1,103,0,0,1,1,101,0,0,0,4,102,108,111,97,\r
+116,95,108,101,115,115,0,18,103,0,0,18,97,0,0,18,98,0,0,0,4,102,108,111,97,116,95,101,113,117,97,\r
+108,0,18,101,0,0,18,97,0,0,18,98,0,0,0,8,18,103,0,18,101,0,32,0,0,1,0,1,2,17,1,1,0,5,97,0,0,1,1,0,\r
+5,98,0,0,0,1,8,58,102,108,111,97,116,0,18,97,0,0,0,58,102,108,111,97,116,0,18,98,0,0,0,42,0,0,1,0,\r
+1,2,11,1,1,0,1,97,0,0,1,1,0,1,98,0,0,0,1,8,18,97,0,18,98,0,39,0,0,1,0,1,2,29,1,1,0,1,97,0,0,0,1,8,\r
+18,97,0,15,2,48,0,38,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,9,102,0,0,0,1,4,102,108,111,97,116,95,\r
+112,114,105,110,116,0,18,102,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,5,105,0,0,0,1,4,105,110,\r
+116,95,112,114,105,110,116,0,18,105,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,1,98,0,0,0,1,4,98,\r
+111,111,108,95,112,114,105,110,116,0,18,98,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,10,118,0,0,\r
+0,1,9,58,112,114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,\r
+0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,11,118,0,0,0,1,9,58,112,114,105,110,116,0,18,118,0,\r
+59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,0,0,0,0,9,58,112,114,105,110,116,0,18,\r
+118,0,59,122,0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,12,118,0,0,0,1,9,58,112,114,105,110,116,\r
+0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,0,0,0,0,9,58,112,114,105,110,\r
+116,0,18,118,0,59,122,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,119,0,0,0,0,0,1,0,0,0,112,114,\r
+105,110,116,0,1,1,0,6,118,0,0,0,1,9,58,112,114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,\r
+105,110,116,0,18,118,0,59,121,0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,7,118,0,0,0,1,9,58,112,\r
+114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,0,0,0,0,9,58,\r
+112,114,105,110,116,0,18,118,0,59,122,0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,8,118,0,0,0,1,\r
+9,58,112,114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,0,0,\r
+0,0,9,58,112,114,105,110,116,0,18,118,0,59,122,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,119,\r
+0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,2,118,0,0,0,1,9,58,112,114,105,110,116,0,18,118,0,59,\r
+120,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,121,0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,\r
+0,3,118,0,0,0,1,9,58,112,114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,116,0,18,\r
+118,0,59,121,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,122,0,0,0,0,0,1,0,0,0,112,114,105,110,\r
+116,0,1,1,0,4,118,0,0,0,1,9,58,112,114,105,110,116,0,18,118,0,59,120,0,0,0,0,9,58,112,114,105,110,\r
+116,0,18,118,0,59,121,0,0,0,0,9,58,112,114,105,110,116,0,18,118,0,59,122,0,0,0,0,9,58,112,114,105,\r
+110,116,0,18,118,0,59,119,0,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,13,109,0,0,0,1,9,58,112,\r
+114,105,110,116,0,18,109,0,16,8,48,0,57,0,0,0,9,58,112,114,105,110,116,0,18,109,0,16,10,49,0,57,0,\r
+0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,14,109,0,0,0,1,9,58,112,114,105,110,116,0,18,109,0,16,8,\r
+48,0,57,0,0,0,9,58,112,114,105,110,116,0,18,109,0,16,10,49,0,57,0,0,0,9,58,112,114,105,110,116,0,\r
+18,109,0,16,10,50,0,57,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,15,109,0,0,0,1,9,58,112,114,105,\r
+110,116,0,18,109,0,16,8,48,0,57,0,0,0,9,58,112,114,105,110,116,0,18,109,0,16,10,49,0,57,0,0,0,9,58,\r
+112,114,105,110,116,0,18,109,0,16,10,50,0,57,0,0,0,9,58,112,114,105,110,116,0,18,109,0,16,10,51,0,\r
+57,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,16,101,0,0,0,1,4,105,110,116,95,112,114,105,110,116,\r
+0,18,101,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,17,101,0,0,0,1,4,105,110,116,95,112,114,105,\r
+110,116,0,18,101,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,18,101,0,0,0,1,4,105,110,116,95,112,\r
+114,105,110,116,0,18,101,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,19,101,0,0,0,1,4,105,110,116,\r
+95,112,114,105,110,116,0,18,101,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,20,101,0,0,0,1,4,105,\r
+110,116,95,112,114,105,110,116,0,18,101,0,0,0,0,1,0,0,0,112,114,105,110,116,0,1,1,0,21,101,0,0,0,1,\r
+4,105,110,116,95,112,114,105,110,116,0,18,101,0,0,0,0,0\r