/* #version:1# (machine generated, don't edit!) Generated by sokol-shdc (https://github.com/floooh/sokol-tools) Cmdline: sokol-shdc -i shader_trile.glsl -o ./jai/shader_trile.jai -l glsl430:glsl300es:metal_macos -f sokol_jai Overview: ========= Shader program: 'trile': Get shader desc: trile_shader_desc(sg_query_backend()) Vertex Shader: vs_trile Fragment Shader: fs_trile Attributes: ATTR_trile_position => 0 ATTR_trile_normal => 1 ATTR_trile_centre => 2 ATTR_trile_instance => 3 Bindings: Uniform block 'trile_vs_params': Jai struct: Trile_Vs_Params Bind slot: UB_trile_vs_params => 0 Uniform block 'trile_world_config': Jai struct: Trile_World_Config Bind slot: UB_trile_world_config => 1 Uniform block 'trile_fs_params': Jai struct: Trile_Fs_Params Bind slot: UB_trile_fs_params => 3 Image 'rdm_lookup': Image type: ._2D Sample type: .FLOAT Multisampled: false Bind slot: IMG_rdm_lookup => 3 Image 'rdm_atlas': Image type: ._2D Sample type: .FLOAT Multisampled: false Bind slot: IMG_rdm_atlas => 4 Image 'triletex': Image type: ._2D Sample type: .FLOAT Multisampled: false Bind slot: IMG_triletex => 0 Image 'shadowtex': Image type: ._2D Sample type: .DEPTH Multisampled: false Bind slot: IMG_shadowtex => 2 Image 'ssaotex': Image type: ._2D Sample type: .FLOAT Multisampled: false Bind slot: IMG_ssaotex => 1 Image 'brdf_lut': Image type: ._2D Sample type: .FLOAT Multisampled: false Bind slot: IMG_brdf_lut => 5 Sampler 'trilesmp': Type: .FILTERING Bind slot: SMP_trilesmp => 0 Sampler 'rdmsmp': Type: .FILTERING Bind slot: SMP_rdmsmp => 3 Sampler 'shadowsmp': Type: .COMPARISON Bind slot: SMP_shadowsmp => 2 */ ATTR_trile_position :: 0; ATTR_trile_normal :: 1; ATTR_trile_centre :: 2; ATTR_trile_instance :: 3; UB_trile_vs_params :: 0; UB_trile_world_config :: 1; UB_trile_fs_params :: 3; IMG_rdm_lookup :: 3; IMG_rdm_atlas :: 4; IMG_triletex :: 0; IMG_shadowtex :: 2; IMG_ssaotex :: 1; IMG_brdf_lut :: 5; SMP_trilesmp :: 0; SMP_rdmsmp :: 3; SMP_shadowsmp :: 2; Trile_Vs_Params :: struct { mvp: [16]float; mvp_shadow: [16]float; camera: [3]float; _: [4]u8; }; Trile_World_Config :: struct { skyBase: [3]float; _: [4]u8; skyTop: [3]float; _: [4]u8; sunDisk: [3]float; _: [4]u8; horizonHalo: [3]float; _: [4]u8; sunHalo: [3]float; _: [4]u8; sunLightColor: [3]float; _: [4]u8; sunPosition: [3]float; sunIntensity: float; skyIntensity: float; hasClouds: s32; planeHeight: float; planeType: s32; waterColor: [3]float; _: [4]u8; deepColor: [3]float; time: float; }; Trile_Fs_Params :: struct { mvp_shadow: [16]float; is_reflection: s32; screen_h: s32; screen_w: s32; _: [4]u8; }; /* #version 430 uniform vec4 trile_vs_params[9]; layout(location = 0) in vec4 position; layout(location = 3) in vec4 instance; layout(location = 4) out vec4 fnormal; layout(location = 1) in vec4 normal; layout(location = 1) out vec3 to_center; layout(location = 2) in vec4 centre; layout(location = 2) out vec3 vpos; layout(location = 3) out vec3 ipos; layout(location = 0) out vec3 cam; layout(location = 6) out vec3 cv; layout(location = 5) out vec3 trileCenter; void main() { vec3 _31 = position.xyz + instance.xyz; gl_Position = mat4(trile_vs_params[0], trile_vs_params[1], trile_vs_params[2], trile_vs_params[3]) * vec4(_31, 1.0); fnormal = normal; to_center = centre.xyz - position.xyz; vpos = _31; ipos = position.xyz; cam = trile_vs_params[8].xyz; cv = normalize(trile_vs_params[8].xyz - vpos); trileCenter = (vpos - ipos) + vec3(0.5); } */ vs_trile_source_glsl430 := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x6c,0x65, 0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x39,0x5d,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x6f,0x73,0x69, 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63, 0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65, 0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x6c,0x61,0x79, 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x34, 0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34, 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x6f,0x75, 0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x63, 0x65,0x6e,0x74,0x72,0x65,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x6f,0x75,0x74,0x20, 0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20, 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x36,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20, 0x63,0x76,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x35,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, 0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x0a, 0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x31,0x20,0x3d,0x20,0x70,0x6f,0x73, 0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x73,0x74, 0x61,0x6e,0x63,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c, 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34, 0x28,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 0x5b,0x30,0x5d,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61, 0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76, 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x74,0x72,0x69, 0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29, 0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x33,0x31,0x2c,0x20,0x31,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d, 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x5f, 0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x63,0x65,0x6e,0x74,0x72,0x65,0x2e, 0x78,0x79,0x7a,0x20,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78, 0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x70,0x6f,0x73,0x20,0x3d,0x20,0x5f, 0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x63,0x61,0x6d,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f, 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x38,0x5d,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x63,0x76,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, 0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, 0x73,0x5b,0x38,0x5d,0x2e,0x78,0x79,0x7a,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, 0x72,0x20,0x3d,0x20,0x28,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x69,0x70,0x6f,0x73, 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x00, ]; /* #version 430 struct trile_world_config { vec3 skyBase; vec3 skyTop; vec3 sunDisk; vec3 horizonHalo; vec3 sunHalo; vec3 sunLightColor; vec3 sunPosition; float sunIntensity; float skyIntensity; int hasClouds; float planeHeight; int planeType; vec3 waterColor; vec3 deepColor; float time; }; uniform trile_world_config _271; struct trile_fs_params { mat4 mvp_shadow; int is_reflection; int screen_h; int screen_w; }; uniform trile_fs_params _1275; layout(binding = 16) uniform sampler2D triletex_trilesmp; layout(binding = 17) uniform sampler2DShadow shadowtex_shadowsmp; layout(binding = 18) uniform sampler2D rdm_lookup_trilesmp; layout(binding = 19) uniform sampler2D ssaotex_trilesmp; layout(binding = 20) uniform sampler2D rdm_atlas_rdmsmp; layout(binding = 21) uniform sampler2D brdf_lut_rdmsmp; layout(location = 3) in vec3 ipos; layout(location = 2) in vec3 vpos; layout(location = 4) in vec4 fnormal; layout(location = 1) in vec3 to_center; layout(location = 0) in vec3 cam; layout(location = 5) in vec3 trileCenter; layout(location = 6) in vec3 cv; layout(location = 0) out vec4 frag_color; vec3 fresnelSchlick(float cosTheta, vec3 F0) { return F0 + ((vec3(1.0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } float DistributionGGX(vec3 N, vec3 H, float roughness) { float _389 = roughness * roughness; float _393 = _389 * _389; float _398 = max(dot(N, H), 0.0); float _410 = ((_398 * _398) * (_393 - 1.0)) + 1.0; return _393 / ((3.141285419464111328125 * _410) * _410); } float GeometrySchlickGGX(float NdotV, float roughness) { float _423 = roughness + 1.0; float _429 = (_423 * _423) * 0.125; return NdotV / ((NdotV * (1.0 - _429)) + _429); } float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) { float param = max(dot(N, V), 0.0); float param_1 = roughness; float param_2 = max(dot(N, L), 0.0); float param_3 = roughness; return GeometrySchlickGGX(param_2, param_3) * GeometrySchlickGGX(param, param_1); } vec4 rdm_get_atlas_rect(ivec3 local_pos, int roughness) { int _667 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); return texelFetch(rdm_lookup_trilesmp, ivec2(_667 % 512, _667 / 512), 0); } vec3 FresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness) { return F0 + ((max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } int rdm_index_from_normal(vec3 N) { return (((int(dot(vec3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(vec3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(vec3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } float roughness_to_rdm_size(int roughness) { return pow(2.0, float(8 - roughness)); } ivec2 rdm_face_pixel_offset(vec4 atlas_rect, int face, int rdmSize) { ivec2 _700 = textureSize(rdm_atlas_rdmsmp, 0); return ivec2(int(atlas_rect.x * float(_700.x)) + ((face % 2) * rdmSize), int(atlas_rect.y * float(_700.y)) + ((face / 2) * rdmSize)); } vec2 rdm_get_hemioct(vec3 v, int index, vec2 off) { vec3 vc = v; if ((index / 2) == 0) { vec3 _1781 = vc; _1781.z = v.y; _1781.y = v.z; vc = _1781; } if ((index / 2) == 2) { vec3 _1785 = vc; _1785.z = v.x; _1785.x = v.z; vc = _1785; } if ((index % 2) == 1) { vec3 _1789 = vc; _1789.z = _1789.z * (-1.0); vc = _1789; } vec3 _1792 = vc; float _601 = _1792.x + off.x; vec3 _1794 = _1792; _1794.x = _601; float _607 = _1792.y + off.y; _1794.y = _607; vc = _1794; vec2 _625 = _1794.xy * (1.0 / ((abs(_601) + abs(_607)) + _1792.z)); float _628 = _625.x; float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); } float hash(float n) { return fract(sin(n) * 43758.546875); } float _noise(vec3 x) { vec3 _129 = fract(x); float _137 = dot(floor(x), vec3(1.0, 157.0, 113.0)); float param = _137; float param_1 = _137 + 1.0; float _150 = _129.x; float param_2 = _137 + 157.0; float param_3 = _137 + 158.0; float _166 = _129.y; float param_4 = _137 + 113.0; float param_5 = _137 + 114.0; float param_6 = _137 + 270.0; float param_7 = _137 + 271.0; return mix(mix(mix(hash(param), hash(param_1), _150), mix(hash(param_2), hash(param_3), _150), _166), mix(mix(hash(param_4), hash(param_5), _150), mix(hash(param_6), hash(param_7), _150), _166), _129.z); } float fbm(inout vec3 p) { float f = 0.0; vec3 param = p; f += (_noise(param) * 0.5); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.10000002384185791015625; vec3 param_1 = p; f += (_noise(param_1) * 0.25); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2000000476837158203125; vec3 param_2 = p; f += (_noise(param_2) * 0.16666667163372039794921875); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2999999523162841796875; vec3 param_3 = p; f += (_noise(param_3) * 0.083333335816860198974609375); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.39999997615814208984375; vec3 param_4 = p; float _263 = f; float _264 = _263 + (_noise(param_4) * 0.0416666679084300994873046875); f = _264; return _264; } vec3 sky(vec3 skypos, vec3 sunpos) { float _289 = dot(normalize(skypos), normalize(sunpos)); vec3 _292 = normalize(skypos); vec3 final = mix(_271.skyBase, _271.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_271.sunHalo * clamp((_289 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); if (_289 > 0.99989998340606689453125) { final = _271.sunDisk; } float _333 = _292.y; final += (mix(_271.horizonHalo, vec3(0.0), vec3(clamp(abs(_333) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); if (_271.hasClouds == 1) { vec3 param = ((_292 / vec3(_333)) * 2.0) + vec3(_271.time * 0.0500000007450580596923828125); float _369 = fbm(param); final = mix(final, vec3(1.0), vec3((max(0.0, _333) * (smoothstep(0.5, 1.0, _369) * 0.300000011920928955078125)) * 2.0)); } return final; } vec3 sample_rdm(vec3 N, vec3 V, vec3 rdm_center, vec3 diff, int roughness, ivec3 local_pos) { vec3 param = N; int _739 = rdm_index_from_normal(param); int param_1 = roughness; int _744 = int(roughness_to_rdm_size(param_1)); float _747 = float(_744); ivec3 param_2 = local_pos; int param_3 = roughness; vec4 _753 = rdm_get_atlas_rect(param_2, param_3); if (_753.z <= 0.0) { return vec3(1.0, 0.0, 1.0); } vec4 param_4 = _753; int param_5 = _739; int param_6 = _744; ivec2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6); vec3 _808 = normalize(reflect(V, N)); if (roughness > 1) { vec3 param_7 = normalize(diff + (_808 * 2.0)); int param_8 = _739; vec2 param_9 = vec2(0.0); return texture(rdm_atlas_rdmsmp, (vec2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; } for (int i = 0; i < 40; i++) { vec3 _877 = diff + (_808 * (float(i + 1) * 0.5)); if (dot(_877, N) < 0.0) { continue; } vec3 param_10 = normalize(_877); int param_11 = _739; vec2 param_12 = vec2(0.0); vec2 _892 = rdm_get_hemioct(param_10, param_11, param_12); vec4 _917 = texelFetch(rdm_atlas_rdmsmp, ivec2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747)), 0); float _921 = _917.w; float _924 = length(_877); bool _935 = (_921 > 0.0) && (_921 < _924); bool _943; if (_935) { _943 = (_921 + 0.5) > _924; } else { _943 = _935; } if (_943) { return _917.xyz; } } vec3 skyDir = _808; if (_808.y < 0.0) { skyDir = reflect(skyDir, vec3(0.0, 1.0, 0.0)); } vec3 param_13 = skyDir; vec3 param_14 = _271.sunPosition; return sky(param_13, param_14); } int isign(float f) { return (f < 0.0) ? (-1) : 1; } vec3 sample_rdm_diff_map(vec3 N, ivec3 local_pos, vec3 fallback) { ivec3 param = local_pos; int param_1 = 7; vec4 _973 = rdm_get_atlas_rect(param, param_1); if (_973.z <= 0.0) { return fallback; } vec3 param_2 = N; int _984 = rdm_index_from_normal(param_2); int param_3 = 7; int _988 = int(roughness_to_rdm_size(param_3)); vec4 param_4 = _973; int param_5 = _984; int param_6 = _988; ivec2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6); vec3 param_7 = N; int param_8 = _984; vec2 param_9 = vec2(0.0); vec2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); float _1010 = float(_988); return texelFetch(rdm_atlas_rdmsmp, ivec2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010)), 0).xyz; } vec3 smix(vec3 a, vec3 b, float t) { return mix(a, b, vec3(pow(t, 1.60000002384185791015625) / (pow(t, 1.60000002384185791015625) + pow(1.0 - t, 1.60000002384185791015625)))); } vec3 sample_rdm_diff(vec3 N, vec3 diff, ivec3 local_pos) { vec3 param = N; int _1063 = rdm_index_from_normal(param); vec2 delta = vec2(0.0); bool _1072 = (_1063 == 0) || (_1063 == 1); if (_1072) { delta = vec2(diff.x, diff.z); } else { if ((_1063 == 2) || (_1063 == 3)) { delta = vec2(diff.x, diff.y); } else { delta = vec2(diff.z, diff.y); } } ivec3 s1; ivec3 s2; ivec3 s3; if (_1072) { float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); float param_2 = delta.y; s2 = ivec3(0, 0, isign(param_2)); float param_3 = delta.x; float param_4 = delta.y; s3 = ivec3(isign(param_3), 0, isign(param_4)); } else { if ((_1063 == 2) || (_1063 == 3)) { float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); float param_6 = delta.y; s2 = ivec3(0, isign(param_6), 0); float param_7 = delta.x; float param_8 = delta.y; s3 = ivec3(isign(param_7), isign(param_8), 0); } else { float param_9 = delta.x; s1 = ivec3(0, 0, isign(param_9)); float param_10 = delta.y; s2 = ivec3(0, isign(param_10), 0); float param_11 = delta.y; float param_12 = delta.x; s3 = ivec3(0, isign(param_11), isign(param_12)); } } vec3 param_13 = N; ivec3 param_14 = ivec3(mod(vec3(local_pos), vec3(32.0))); vec3 param_15 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_16 = N; ivec3 param_17 = ivec3(mod(vec3(local_pos + s1), vec3(32.0))); vec3 param_18 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_19 = N; ivec3 param_20 = ivec3(mod(vec3(local_pos + s2), vec3(32.0))); vec3 param_21 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_22 = N; ivec3 param_23 = ivec3(mod(vec3(local_pos + s3), vec3(32.0))); vec3 param_24 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_25 = sample_rdm_diff_map(param_13, param_14, param_15); vec3 param_26 = sample_rdm_diff_map(param_16, param_17, param_18); float param_27 = abs(delta.x); vec3 param_28 = sample_rdm_diff_map(param_19, param_20, param_21); vec3 param_29 = sample_rdm_diff_map(param_22, param_23, param_24); float param_30 = abs(delta.x); vec3 param_31 = smix(param_25, param_26, param_27); vec3 param_32 = smix(param_28, param_29, param_30); float param_33 = abs(delta.y); return smix(param_31, param_32, param_33); } void main() { bool _1269 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); bool _1279; if (_1269) { _1279 = _1275.is_reflection == 1; } else { _1279 = _1269; } if (_1279) { discard; } vec3 pos_after_adjust = ipos - (fnormal.xyz * 0.0199999995529651641845703125); int count = 0; vec4 trixel_material; while (count < 5) { vec4 _1334 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); trixel_material = _1334; if (length(_1334) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (to_center * 0.100000001490116119384765625); count++; } int _1357 = int(round(trixel_material.w * 255.0)); int _1368 = (_1357 >> 5) & 7; float _1374 = max(float(_1368) * 0.14285714924335479736328125, 0.0500000007450580596923828125); float _1380 = float((_1357 >> 3) & 3) * 0.3333333432674407958984375; vec3 _1384 = abs(fnormal.xyz); float _1386 = _1384.x; float _1388 = _1384.y; bool _1389 = _1386 >= _1388; bool _1397; if (_1389) { _1397 = _1386 >= _1384.z; } else { _1397 = _1389; } vec3 N; if (_1397) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { bool _1410 = _1388 >= _1386; bool _1418; if (_1410) { _1418 = _1388 >= _1384.z; } else { _1418 = _1410; } if (_1418) { N = vec3(0.0, sign(fnormal.y), 0.0); } else { N = vec3(0.0, 0.0, sign(fnormal.z)); } } vec3 _1435 = normalize(cam - vpos); vec3 _1439 = normalize(_271.sunPosition); vec3 _1444 = normalize(_1435 + _1439); vec3 _1452 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_1380)); float param = max(dot(_1444, _1435), 0.0); vec3 param_1 = _1452; vec3 _1461 = fresnelSchlick(param, param_1); vec3 param_2 = N; vec3 param_3 = _1444; float param_4 = _1374; vec3 param_5 = N; vec3 param_6 = _1435; vec3 param_7 = _1439; float param_8 = _1374; float _1495 = max(dot(N, _1439), 0.0); float _1512 = 1.0 - _1380; vec4 _1528 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); vec3 _1539 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); float _1543 = _1539.z - 0.001000000047497451305389404296875; vec3 _1766 = _1539; _1766.z = _1543; vec3 light = ((((((((vec3(1.0) - _1461) * _1512) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1766.xy, _1543))) * _1495) * _271.sunLightColor) * _271.sunIntensity; vec3 _1580 = trileCenter + (N * 0.4900000095367431640625); ivec3 _1586 = ivec3(mod(floor(trileCenter), vec3(32.0))); ivec3 param_9 = _1586; int param_10 = _1368; vec4 _1612 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); float _1613 = _1612.x; if (rdm_get_atlas_rect(param_9, param_10).z > 0.0) { float param_11 = max(dot(N, _1435), 0.0); vec3 param_12 = _1452; float param_13 = _1374; vec3 _1629 = FresnelSchlickRoughness(param_11, param_12, param_13); vec3 _1636 = vpos - _1580; vec3 param_14 = N; vec3 param_15 = -cv; vec3 param_16 = _1580; vec3 param_17 = _1636; int param_18 = _1368; ivec3 param_19 = _1586; vec4 _1659 = texture(brdf_lut_rdmsmp, vec2(max(dot(N, _1435), 0.0), _1374)); light += (sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * ((_1629 * _1659.x) + vec3(_1659.y))); vec3 param_20 = N; vec3 param_21 = _1636; ivec3 param_22 = _1586; light += ((((((vec3(1.0) - _1629) * _1512) * sample_rdm_diff(param_20, param_21, param_22)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1613); } else { light += ((trixel_material.xyz * 0.3499999940395355224609375) * _1613); vec3 _1714 = reflect(-_1435, N); vec3 R = _1714; if (_1714.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } vec3 param_23 = R; vec3 param_24 = _271.sunPosition; light += ((_1461 * sky(param_23, param_24)) * 0.100000001490116119384765625); } frag_color = vec4(mix(_271.deepColor, light, vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); } */ fs_trile_source_glsl430 := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x73,0x74, 0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64, 0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x54,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48, 0x61,0x6c,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75, 0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74, 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73, 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x6b,0x79,0x49,0x6e,0x74,0x65,0x6e,0x73, 0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x68,0x61,0x73, 0x43,0x6c,0x6f,0x75,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x61,0x74,0x65,0x72, 0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75, 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72, 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x37,0x31,0x3b,0x0a, 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73, 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61, 0x74,0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63, 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x73,0x63, 0x72,0x65,0x65,0x6e,0x5f,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70, 0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x37,0x35,0x3b,0x0a,0x0a,0x6c,0x61, 0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31, 0x36,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c, 0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72, 0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62, 0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x37,0x29,0x20,0x75,0x6e,0x69, 0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x53,0x68, 0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73, 0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, 0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x38,0x29,0x20,0x75, 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44, 0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c, 0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e, 0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x39,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61, 0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, 0x32,0x30,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, 0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62, 0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x31,0x29,0x20,0x75,0x6e,0x69, 0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62, 0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a, 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, 0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70, 0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33, 0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x76, 0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79, 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31, 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e, 0x74,0x65,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63, 0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x35,0x29,0x20,0x69,0x6e,0x20,0x76, 0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b, 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, 0x20,0x3d,0x20,0x36,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20, 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76,0x65,0x63, 0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, 0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c, 0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65, 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20, 0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, 0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f, 0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63, 0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, 0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, 0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d, 0x20,0x5f,0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x6d, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, 0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f,0x33, 0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31,0x2e, 0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28,0x33, 0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31, 0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20,0x2a, 0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, 0x47,0x47,0x58,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, 0x32,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b, 0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28,0x5f,0x34,0x32,0x33,0x20,0x2a,0x20,0x5f, 0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f, 0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, 0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29,0x20,0x2b,0x20,0x5f,0x34,0x32,0x39,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65, 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, 0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, 0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72, 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61, 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f, 0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c, 0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x34,0x20, 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, 0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, 0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36, 0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, 0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79, 0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c, 0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20, 0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33, 0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d, 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35, 0x31,0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x2c, 0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x46,0x72,0x65, 0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68, 0x6e,0x65,0x73,0x73,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68, 0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b, 0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x20, 0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46,0x30, 0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c, 0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65, 0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35, 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d, 0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74,0x28,0x64, 0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31, 0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d, 0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34, 0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74, 0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30, 0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29, 0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f, 0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e, 0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20, 0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38, 0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20,0x2b, 0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39, 0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32, 0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x69, 0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x30, 0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e, 0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39, 0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20, 0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69, 0x7a,0x65,0x28,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70, 0x6f,0x77,0x28,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x38,0x20, 0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65, 0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x76,0x65, 0x63,0x34,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2c,0x20,0x69, 0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d, 0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, 0x32,0x20,0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, 0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, 0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28, 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20, 0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64, 0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61, 0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x28,0x5f,0x37,0x30,0x30,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61, 0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a, 0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d, 0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x76,0x65,0x63, 0x33,0x20,0x76,0x2c,0x20,0x69,0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20, 0x76,0x65,0x63,0x32,0x20,0x6f,0x66,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29, 0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x38,0x31,0x20, 0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, 0x37,0x38,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x31,0x2e,0x79,0x20,0x3d,0x20,0x76, 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d, 0x20,0x5f,0x31,0x37,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32, 0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x38,0x35, 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, 0x31,0x37,0x38,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x35,0x2e,0x78,0x20,0x3d,0x20, 0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20, 0x3d,0x20,0x5f,0x31,0x37,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20, 0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x38, 0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x5f,0x31,0x37,0x38,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x39,0x2e, 0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x39,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, 0x31,0x37,0x39,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39, 0x32,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31, 0x37,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x39,0x34,0x2e,0x78, 0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x32,0x2e, 0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f, 0x31,0x37,0x39,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x34,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d,0x20,0x5f, 0x31,0x37,0x39,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f, 0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b,0x20,0x61, 0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x37,0x39, 0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x78,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30,0x20,0x3d, 0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, 0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x5f,0x36,0x32,0x38,0x20, 0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a, 0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2d,0x20,0x5f, 0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e, 0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x68,0x61,0x73, 0x68,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69, 0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36, 0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, 0x6e,0x6f,0x69,0x73,0x65,0x28,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20, 0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66, 0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, 0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20,0x31,0x31,0x33,0x2e,0x30,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f, 0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39, 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31, 0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b, 0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x79,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x33,0x2e, 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31, 0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20, 0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, 0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, 0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28, 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68,0x61,0x73, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30, 0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36, 0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20, 0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29, 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20, 0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x66,0x62,0x6d,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61, 0x72,0x61,0x6d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28, 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, 0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32, 0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32, 0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39, 0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37, 0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30, 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, 0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38, 0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c, 0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37, 0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29, 0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e, 0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28, 0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30, 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30, 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, 0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32, 0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20, 0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33, 0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65, 0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30, 0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37, 0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39, 0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38, 0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32, 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, 0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x36, 0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34,0x39, 0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20, 0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20, 0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30, 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, 0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30, 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, 0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30, 0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c, 0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32, 0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76, 0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d, 0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32, 0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37, 0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37, 0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e, 0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34,0x31, 0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x38,0x33,0x33, 0x33,0x33,0x33,0x33,0x35,0x38,0x31,0x36,0x38,0x36,0x30,0x31,0x39,0x38,0x39,0x37, 0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20, 0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32, 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, 0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e, 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30, 0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37, 0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35, 0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c, 0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, 0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c, 0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32, 0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e, 0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35, 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20, 0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34, 0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x70,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x33,0x20, 0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, 0x32,0x36,0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20,0x2b,0x20,0x28,0x5f,0x6e, 0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37,0x39,0x30,0x38,0x34,0x33, 0x30,0x30,0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a, 0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x28,0x76,0x65,0x63,0x33, 0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75, 0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72, 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c,0x20, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x39, 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b, 0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31, 0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, 0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d, 0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30, 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, 0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, 0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f, 0x32,0x38,0x39,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38, 0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35, 0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30, 0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32, 0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39, 0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34, 0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37, 0x31,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20, 0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69, 0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31, 0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65, 0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c, 0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20, 0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29, 0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x37,0x31, 0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32, 0x39,0x32,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x33,0x33,0x29,0x29, 0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, 0x32,0x37,0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36, 0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d, 0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78, 0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30, 0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74, 0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, 0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66, 0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x61, 0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, 0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64, 0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64, 0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, 0x73,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, 0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e, 0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28, 0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x34, 0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, 0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x5f,0x37,0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c, 0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x35,0x33, 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, 0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, 0x28,0x5f,0x37,0x35,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30, 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, 0x20,0x3d,0x20,0x5f,0x37,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, 0x20,0x3d,0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65, 0x63,0x32,0x20,0x5f,0x37,0x36,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61, 0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c, 0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38, 0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, 0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x65,0x63, 0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72, 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, 0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x29,0x20,0x2b,0x20,0x28, 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x20,0x2a,0x20,0x5f,0x37,0x34, 0x37,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x29,0x2e,0x78,0x79, 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72, 0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c, 0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x37, 0x37,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38, 0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29, 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x37,0x37,0x2c,0x20, 0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x31,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, 0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x38,0x39,0x32,0x20,0x3d, 0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x31, 0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72, 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20, 0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x37,0x34, 0x37,0x29,0x2c,0x20,0x5f,0x37,0x36,0x38,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74, 0x28,0x5f,0x38,0x39,0x32,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x29, 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20,0x3d,0x20,0x5f,0x39,0x31,0x37,0x2e, 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f, 0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, 0x6f,0x6c,0x20,0x5f,0x39,0x33,0x35,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x31,0x20, 0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20,0x28,0x5f,0x39,0x32,0x31,0x20, 0x3c,0x20,0x5f,0x39,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x28,0x5f,0x39,0x32,0x31, 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x39,0x32,0x34,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34, 0x33,0x20,0x3d,0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x5f,0x39,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x5f,0x39,0x31,0x37,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x5f, 0x38,0x30,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x30, 0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20, 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44,0x69,0x72, 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c, 0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20, 0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32, 0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x34,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e, 0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29, 0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a, 0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f, 0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, 0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39, 0x37,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c, 0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, 0x28,0x5f,0x39,0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x5f,0x39,0x38,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e, 0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x38,0x20,0x3d,0x20,0x69,0x6e, 0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72, 0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39, 0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x39,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x39,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d, 0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73, 0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20, 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x32,0x20,0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, 0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, 0x5f,0x39,0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d, 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69, 0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x39,0x36,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e, 0x74,0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31, 0x30,0x29,0x2c,0x20,0x5f,0x39,0x39,0x36,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74, 0x28,0x5f,0x31,0x30,0x30,0x33,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x30, 0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, 0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x20,0x61,0x2c, 0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d, 0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f, 0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20, 0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, 0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d, 0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29, 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c, 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x76,0x65,0x63,0x33,0x20, 0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76, 0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30, 0x36,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66, 0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74, 0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x32,0x20,0x3d,0x20, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, 0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e, 0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, 0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69, 0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, 0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73, 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x33,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65, 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, 0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69, 0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, 0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, 0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20, 0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20, 0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, 0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c, 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20, 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69, 0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20, 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, 0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69, 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64, 0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69, 0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64, 0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29, 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, 0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34, 0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, 0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, 0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, 0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63, 0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, 0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65, 0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73, 0x32,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, 0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36, 0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x76,0x65, 0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61, 0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x76,0x65,0x63, 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76, 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x73,0x61, 0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61, 0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x36,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f, 0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73, 0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73, 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d, 0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, 0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62, 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20, 0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d, 0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a, 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x39,0x20,0x3d,0x20, 0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x70, 0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30, 0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38, 0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x37,0x39,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x39,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x37, 0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66, 0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x37,0x39, 0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x39,0x29,0x0a,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73, 0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61, 0x64,0x6a,0x75,0x73,0x74,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28, 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e, 0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31, 0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x35, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x33,0x34,0x20,0x3d,0x20,0x74,0x65,0x78, 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78, 0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, 0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61, 0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39, 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, 0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d, 0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, 0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39, 0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33, 0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20, 0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61, 0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39, 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x33,0x33,0x34,0x29,0x20,0x3e,0x20, 0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38, 0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74, 0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a, 0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31, 0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x5f,0x31,0x33,0x35,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e, 0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, 0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x38,0x20,0x3d,0x20,0x28, 0x5f,0x31,0x33,0x35,0x37,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x34, 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33, 0x36,0x38,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, 0x31,0x33,0x38,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31, 0x33,0x35,0x37,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a, 0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34, 0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x38,0x34,0x20,0x3d,0x20,0x61, 0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x36, 0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3d,0x20,0x5f,0x31, 0x33,0x38,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, 0x5f,0x31,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3e,0x3d, 0x20,0x5f,0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, 0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x5f,0x31,0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39, 0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65, 0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, 0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, 0x20,0x5f,0x31,0x34,0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e, 0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x30,0x29,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31, 0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34, 0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, 0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e, 0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67, 0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30, 0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, 0x31,0x34,0x33,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, 0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x39,0x20,0x3d,0x20,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72, 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x33,0x35,0x20,0x2b,0x20,0x5f, 0x31,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x5f,0x31,0x34,0x35,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33, 0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39, 0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x33,0x38,0x30, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31, 0x34,0x34,0x34,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x72, 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72, 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, 0x3d,0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20, 0x3d,0x20,0x5f,0x31,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33, 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x39,0x35,0x20,0x3d,0x20, 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x39, 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x31,0x35,0x31,0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d, 0x20,0x5f,0x31,0x33,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, 0x20,0x5f,0x31,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d, 0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34, 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36, 0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32, 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35, 0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31, 0x35,0x32,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31, 0x35,0x33,0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33, 0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31, 0x35,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x36,0x36,0x2e,0x7a, 0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, 0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f, 0x31,0x34,0x36,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, 0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37, 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36, 0x31,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f, 0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20, 0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34, 0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20, 0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20, 0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, 0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31, 0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29, 0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64, 0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c, 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x36,0x36,0x2e,0x78,0x79,0x2c,0x20, 0x5f,0x31,0x35,0x34,0x33,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35, 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68, 0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x30,0x20,0x3d,0x20,0x74,0x72, 0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a, 0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37, 0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x36,0x20,0x3d,0x20,0x69,0x76, 0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72, 0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, 0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31, 0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x38,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x31,0x32,0x20,0x3d,0x20, 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f, 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67, 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65, 0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f, 0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, 0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20, 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x5f,0x31,0x36,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x31,0x32,0x2e,0x78,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74, 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2e,0x7a, 0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, 0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x32, 0x39,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, 0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x33,0x36,0x20,0x3d,0x20, 0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d, 0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31, 0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36, 0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x38, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, 0x31,0x36,0x35,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62, 0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, 0x76,0x65,0x63,0x32,0x28,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20, 0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x31, 0x33,0x37,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c, 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, 0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20, 0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x32,0x39,0x20,0x2a,0x20,0x5f,0x31,0x36,0x35, 0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x35, 0x39,0x2e,0x79,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20, 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x36, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, 0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x32,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31, 0x35,0x31,0x32,0x29,0x20,0x2a,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, 0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x32,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, 0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37, 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, 0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, 0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39,0x39,0x39,0x39,0x39, 0x39,0x34,0x30,0x33,0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34,0x36,0x30,0x39,0x33, 0x37,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x31,0x34, 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x33, 0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, 0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x37,0x31,0x34,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x31,0x34, 0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76, 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20, 0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69, 0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68, 0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31,0x20,0x2a,0x20,0x73, 0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38, 0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, 0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64, 0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c, 0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65, 0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29, 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es uniform vec4 trile_vs_params[9]; layout(location = 0) in vec4 position; layout(location = 3) in vec4 instance; out vec4 fnormal; layout(location = 1) in vec4 normal; out vec3 to_center; layout(location = 2) in vec4 centre; out vec3 vpos; out vec3 ipos; out vec3 cam; out vec3 cv; out vec3 trileCenter; void main() { vec3 _31 = position.xyz + instance.xyz; gl_Position = mat4(trile_vs_params[0], trile_vs_params[1], trile_vs_params[2], trile_vs_params[3]) * vec4(_31, 1.0); fnormal = normal; to_center = centre.xyz - position.xyz; vpos = _31; ipos = position.xyz; cam = trile_vs_params[8].xyz; cv = normalize(trile_vs_params[8].xyz - vpos); trileCenter = (vpos - ipos) + vec3(0.5); } */ vs_trile_source_glsl300es := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72, 0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x39,0x5d, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x70, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20,0x69,0x6e, 0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a, 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20, 0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20, 0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x65,0x6e,0x74,0x72,0x65,0x3b,0x0a, 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6f, 0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x6f,0x75, 0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x6f,0x75,0x74,0x20, 0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, 0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x0a, 0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x31,0x20,0x3d,0x20,0x70,0x6f,0x73, 0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x73,0x74, 0x61,0x6e,0x63,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c, 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x61,0x74,0x34, 0x28,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 0x5b,0x30,0x5d,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61, 0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76, 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x74,0x72,0x69, 0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x33,0x5d,0x29, 0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x33,0x31,0x2c,0x20,0x31,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d, 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x5f, 0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x63,0x65,0x6e,0x74,0x72,0x65,0x2e, 0x78,0x79,0x7a,0x20,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78, 0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x70,0x6f,0x73,0x20,0x3d,0x20,0x5f, 0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x63,0x61,0x6d,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f, 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x38,0x5d,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x63,0x76,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, 0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, 0x73,0x5b,0x38,0x5d,0x2e,0x78,0x79,0x7a,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, 0x72,0x20,0x3d,0x20,0x28,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x69,0x70,0x6f,0x73, 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x00, ]; /* #version 300 es precision mediump float; precision highp int; struct trile_world_config { highp vec3 skyBase; highp vec3 skyTop; highp vec3 sunDisk; highp vec3 horizonHalo; highp vec3 sunHalo; highp vec3 sunLightColor; highp vec3 sunPosition; highp float sunIntensity; highp float skyIntensity; int hasClouds; highp float planeHeight; int planeType; highp vec3 waterColor; highp vec3 deepColor; highp float time; }; uniform trile_world_config _271; struct trile_fs_params { highp mat4 mvp_shadow; int is_reflection; int screen_h; int screen_w; }; uniform trile_fs_params _1275; uniform highp sampler2D triletex_trilesmp; uniform highp sampler2DShadow shadowtex_shadowsmp; uniform highp sampler2D rdm_lookup_trilesmp; uniform highp sampler2D ssaotex_trilesmp; uniform highp sampler2D rdm_atlas_rdmsmp; uniform highp sampler2D brdf_lut_rdmsmp; in highp vec3 ipos; in highp vec3 vpos; in highp vec4 fnormal; in highp vec3 to_center; in highp vec3 cam; in highp vec3 trileCenter; in highp vec3 cv; layout(location = 0) out highp vec4 frag_color; highp vec3 fresnelSchlick(highp float cosTheta, highp vec3 F0) { return F0 + ((vec3(1.0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } highp float DistributionGGX(highp vec3 N, highp vec3 H, highp float roughness) { highp float _389 = roughness * roughness; highp float _393 = _389 * _389; highp float _398 = max(dot(N, H), 0.0); highp float _410 = ((_398 * _398) * (_393 - 1.0)) + 1.0; return _393 / ((3.141285419464111328125 * _410) * _410); } highp float GeometrySchlickGGX(highp float NdotV, highp float roughness) { highp float _423 = roughness + 1.0; highp float _429 = (_423 * _423) * 0.125; return NdotV / ((NdotV * (1.0 - _429)) + _429); } highp float GeometrySmith(highp vec3 N, highp vec3 V, highp vec3 L, highp float roughness) { highp float param = max(dot(N, V), 0.0); highp float param_1 = roughness; highp float param_2 = max(dot(N, L), 0.0); highp float param_3 = roughness; return GeometrySchlickGGX(param_2, param_3) * GeometrySchlickGGX(param, param_1); } highp vec4 rdm_get_atlas_rect(ivec3 local_pos, int roughness) { int _667 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); return texelFetch(rdm_lookup_trilesmp, ivec2(_667 % 512, _667 / 512), 0); } highp vec3 FresnelSchlickRoughness(highp float cosTheta, highp vec3 F0, highp float roughness) { return F0 + ((max(vec3(1.0 - roughness), F0) - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } int rdm_index_from_normal(highp vec3 N) { return (((int(dot(vec3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(vec3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(vec3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } highp float roughness_to_rdm_size(int roughness) { return pow(2.0, float(8 - roughness)); } ivec2 rdm_face_pixel_offset(highp vec4 atlas_rect, int face, int rdmSize) { ivec2 _700 = textureSize(rdm_atlas_rdmsmp, 0); return ivec2(int(atlas_rect.x * float(_700.x)) + ((face % 2) * rdmSize), int(atlas_rect.y * float(_700.y)) + ((face / 2) * rdmSize)); } highp vec2 rdm_get_hemioct(highp vec3 v, int index, highp vec2 off) { highp vec3 vc = v; if ((index / 2) == 0) { highp vec3 _1781 = vc; _1781.z = v.y; _1781.y = v.z; vc = _1781; } if ((index / 2) == 2) { highp vec3 _1785 = vc; _1785.z = v.x; _1785.x = v.z; vc = _1785; } if ((index % 2) == 1) { highp vec3 _1789 = vc; _1789.z = _1789.z * (-1.0); vc = _1789; } highp vec3 _1792 = vc; highp float _601 = _1792.x + off.x; highp vec3 _1794 = _1792; _1794.x = _601; highp float _607 = _1792.y + off.y; _1794.y = _607; vc = _1794; highp vec2 _625 = _1794.xy * (1.0 / ((abs(_601) + abs(_607)) + _1792.z)); highp float _628 = _625.x; highp float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); } highp float hash(highp float n) { return fract(sin(n) * 43758.546875); } highp float _noise(highp vec3 x) { highp vec3 _129 = fract(x); highp float _137 = dot(floor(x), vec3(1.0, 157.0, 113.0)); highp float param = _137; highp float param_1 = _137 + 1.0; highp float _150 = _129.x; highp float param_2 = _137 + 157.0; highp float param_3 = _137 + 158.0; highp float _166 = _129.y; highp float param_4 = _137 + 113.0; highp float param_5 = _137 + 114.0; highp float param_6 = _137 + 270.0; highp float param_7 = _137 + 271.0; return mix(mix(mix(hash(param), hash(param_1), _150), mix(hash(param_2), hash(param_3), _150), _166), mix(mix(hash(param_4), hash(param_5), _150), mix(hash(param_6), hash(param_7), _150), _166), _129.z); } highp float fbm(inout highp vec3 p) { highp float f = 0.0; highp vec3 param = p; f += (_noise(param) * 0.5); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.10000002384185791015625; highp vec3 param_1 = p; f += (_noise(param_1) * 0.25); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2000000476837158203125; highp vec3 param_2 = p; f += (_noise(param_2) * 0.16666667163372039794921875); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2999999523162841796875; highp vec3 param_3 = p; f += (_noise(param_3) * 0.083333335816860198974609375); p = (mat3(vec3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), vec3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), vec3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.39999997615814208984375; highp vec3 param_4 = p; highp float _263 = f; highp float _264 = _263 + (_noise(param_4) * 0.0416666679084300994873046875); f = _264; return _264; } highp vec3 sky(highp vec3 skypos, highp vec3 sunpos) { highp float _289 = dot(normalize(skypos), normalize(sunpos)); highp vec3 _292 = normalize(skypos); highp vec3 final = mix(_271.skyBase, _271.skyTop, vec3(clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_271.sunHalo * clamp((_289 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); if (_289 > 0.99989998340606689453125) { final = _271.sunDisk; } highp float _333 = _292.y; final += (mix(_271.horizonHalo, vec3(0.0), vec3(clamp(abs(_333) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); if (_271.hasClouds == 1) { highp vec3 param = ((_292 / vec3(_333)) * 2.0) + vec3(_271.time * 0.0500000007450580596923828125); highp float _369 = fbm(param); final = mix(final, vec3(1.0), vec3((max(0.0, _333) * (smoothstep(0.5, 1.0, _369) * 0.300000011920928955078125)) * 2.0)); } return final; } highp vec3 sample_rdm(highp vec3 N, highp vec3 V, highp vec3 rdm_center, highp vec3 diff, int roughness, ivec3 local_pos) { highp vec3 param = N; int _739 = rdm_index_from_normal(param); int param_1 = roughness; int _744 = int(roughness_to_rdm_size(param_1)); highp float _747 = float(_744); ivec3 param_2 = local_pos; int param_3 = roughness; highp vec4 _753 = rdm_get_atlas_rect(param_2, param_3); if (_753.z <= 0.0) { return vec3(1.0, 0.0, 1.0); } highp vec4 param_4 = _753; int param_5 = _739; int param_6 = _744; ivec2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6); highp vec3 _808 = normalize(reflect(V, N)); if (roughness > 1) { highp vec3 param_7 = normalize(diff + (_808 * 2.0)); int param_8 = _739; highp vec2 param_9 = vec2(0.0); return texture(rdm_atlas_rdmsmp, (vec2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / vec2(textureSize(rdm_atlas_rdmsmp, 0))).xyz; } for (int i = 0; i < 40; i++) { highp vec3 _877 = diff + (_808 * (float(i + 1) * 0.5)); if (dot(_877, N) < 0.0) { continue; } highp vec3 param_10 = normalize(_877); int param_11 = _739; highp vec2 param_12 = vec2(0.0); highp vec2 _892 = rdm_get_hemioct(param_10, param_11, param_12); highp vec4 _917 = texelFetch(rdm_atlas_rdmsmp, ivec2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747)), 0); highp float _921 = _917.w; highp float _924 = length(_877); bool _935 = (_921 > 0.0) && (_921 < _924); bool _943; if (_935) { _943 = (_921 + 0.5) > _924; } else { _943 = _935; } if (_943) { return _917.xyz; } } highp vec3 skyDir = _808; if (_808.y < 0.0) { skyDir = reflect(skyDir, vec3(0.0, 1.0, 0.0)); } highp vec3 param_13 = skyDir; highp vec3 param_14 = _271.sunPosition; return sky(param_13, param_14); } int isign(highp float f) { return (f < 0.0) ? (-1) : 1; } highp vec3 sample_rdm_diff_map(highp vec3 N, ivec3 local_pos, highp vec3 fallback) { ivec3 param = local_pos; int param_1 = 7; highp vec4 _973 = rdm_get_atlas_rect(param, param_1); if (_973.z <= 0.0) { return fallback; } highp vec3 param_2 = N; int _984 = rdm_index_from_normal(param_2); int param_3 = 7; int _988 = int(roughness_to_rdm_size(param_3)); highp vec4 param_4 = _973; int param_5 = _984; int param_6 = _988; ivec2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6); highp vec3 param_7 = N; int param_8 = _984; highp vec2 param_9 = vec2(0.0); highp vec2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); highp float _1010 = float(_988); return texelFetch(rdm_atlas_rdmsmp, ivec2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010)), 0).xyz; } highp vec3 smix(highp vec3 a, highp vec3 b, highp float t) { return mix(a, b, vec3(pow(t, 1.60000002384185791015625) / (pow(t, 1.60000002384185791015625) + pow(1.0 - t, 1.60000002384185791015625)))); } highp vec3 sample_rdm_diff(highp vec3 N, highp vec3 diff, ivec3 local_pos) { highp vec3 param = N; int _1063 = rdm_index_from_normal(param); highp vec2 delta = vec2(0.0); bool _1072 = (_1063 == 0) || (_1063 == 1); if (_1072) { delta = vec2(diff.x, diff.z); } else { if ((_1063 == 2) || (_1063 == 3)) { delta = vec2(diff.x, diff.y); } else { delta = vec2(diff.z, diff.y); } } ivec3 s1; ivec3 s2; ivec3 s3; if (_1072) { highp float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); highp float param_2 = delta.y; s2 = ivec3(0, 0, isign(param_2)); highp float param_3 = delta.x; highp float param_4 = delta.y; s3 = ivec3(isign(param_3), 0, isign(param_4)); } else { if ((_1063 == 2) || (_1063 == 3)) { highp float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); highp float param_6 = delta.y; s2 = ivec3(0, isign(param_6), 0); highp float param_7 = delta.x; highp float param_8 = delta.y; s3 = ivec3(isign(param_7), isign(param_8), 0); } else { highp float param_9 = delta.x; s1 = ivec3(0, 0, isign(param_9)); highp float param_10 = delta.y; s2 = ivec3(0, isign(param_10), 0); highp float param_11 = delta.y; highp float param_12 = delta.x; s3 = ivec3(0, isign(param_11), isign(param_12)); } } highp vec3 param_13 = N; ivec3 param_14 = ivec3(mod(vec3(local_pos), vec3(32.0))); highp vec3 param_15 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_16 = N; ivec3 param_17 = ivec3(mod(vec3(local_pos + s1), vec3(32.0))); highp vec3 param_18 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_19 = N; ivec3 param_20 = ivec3(mod(vec3(local_pos + s2), vec3(32.0))); highp vec3 param_21 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_22 = N; ivec3 param_23 = ivec3(mod(vec3(local_pos + s3), vec3(32.0))); highp vec3 param_24 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_25 = sample_rdm_diff_map(param_13, param_14, param_15); highp vec3 param_26 = sample_rdm_diff_map(param_16, param_17, param_18); highp float param_27 = abs(delta.x); highp vec3 param_28 = sample_rdm_diff_map(param_19, param_20, param_21); highp vec3 param_29 = sample_rdm_diff_map(param_22, param_23, param_24); highp float param_30 = abs(delta.x); highp vec3 param_31 = smix(param_25, param_26, param_27); highp vec3 param_32 = smix(param_28, param_29, param_30); highp float param_33 = abs(delta.y); return smix(param_31, param_32, param_33); } void main() { bool _1269 = vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); bool _1279; if (_1269) { _1279 = _1275.is_reflection == 1; } else { _1279 = _1269; } if (_1279) { discard; } highp vec3 pos_after_adjust = ipos - (fnormal.xyz * 0.0199999995529651641845703125); int count = 0; highp vec4 trixel_material; while (count < 5) { highp vec4 _1334 = texelFetch(triletex_trilesmp, ivec2(int(clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); trixel_material = _1334; if (length(_1334) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (to_center * 0.100000001490116119384765625); count++; } int _1357 = int(round(trixel_material.w * 255.0)); int _1368 = (_1357 >> 5) & 7; highp float _1374 = max(float(_1368) * 0.14285714924335479736328125, 0.0500000007450580596923828125); highp float _1380 = float((_1357 >> 3) & 3) * 0.3333333432674407958984375; highp vec3 _1384 = abs(fnormal.xyz); highp float _1386 = _1384.x; highp float _1388 = _1384.y; bool _1389 = _1386 >= _1388; bool _1397; if (_1389) { _1397 = _1386 >= _1384.z; } else { _1397 = _1389; } highp vec3 N; if (_1397) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { bool _1410 = _1388 >= _1386; bool _1418; if (_1410) { _1418 = _1388 >= _1384.z; } else { _1418 = _1410; } if (_1418) { N = vec3(0.0, sign(fnormal.y), 0.0); } else { N = vec3(0.0, 0.0, sign(fnormal.z)); } } highp vec3 _1435 = normalize(cam - vpos); highp vec3 _1439 = normalize(_271.sunPosition); highp vec3 _1444 = normalize(_1435 + _1439); highp vec3 _1452 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(_1380)); highp float param = max(dot(_1444, _1435), 0.0); highp vec3 param_1 = _1452; highp vec3 _1461 = fresnelSchlick(param, param_1); highp vec3 param_2 = N; highp vec3 param_3 = _1444; highp float param_4 = _1374; highp vec3 param_5 = N; highp vec3 param_6 = _1435; highp vec3 param_7 = _1439; highp float param_8 = _1374; highp float _1495 = max(dot(N, _1439), 0.0); highp float _1512 = 1.0 - _1380; highp vec4 _1528 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); highp vec3 _1539 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); highp float _1543 = _1539.z - 0.001000000047497451305389404296875; highp vec3 _1766 = _1539; _1766.z = _1543; highp vec3 light = ((((((((vec3(1.0) - _1461) * _1512) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1766.xy, _1543))) * _1495) * _271.sunLightColor) * _271.sunIntensity; highp vec3 _1580 = trileCenter + (N * 0.4900000095367431640625); ivec3 _1586 = ivec3(mod(floor(trileCenter), vec3(32.0))); ivec3 param_9 = _1586; int param_10 = _1368; highp vec4 _1612 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); highp float _1613 = _1612.x; if (rdm_get_atlas_rect(param_9, param_10).z > 0.0) { highp float param_11 = max(dot(N, _1435), 0.0); highp vec3 param_12 = _1452; highp float param_13 = _1374; highp vec3 _1629 = FresnelSchlickRoughness(param_11, param_12, param_13); highp vec3 _1636 = vpos - _1580; highp vec3 param_14 = N; highp vec3 param_15 = -cv; highp vec3 param_16 = _1580; highp vec3 param_17 = _1636; int param_18 = _1368; ivec3 param_19 = _1586; highp vec4 _1659 = texture(brdf_lut_rdmsmp, vec2(max(dot(N, _1435), 0.0), _1374)); light += (sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * ((_1629 * _1659.x) + vec3(_1659.y))); highp vec3 param_20 = N; highp vec3 param_21 = _1636; ivec3 param_22 = _1586; light += ((((((vec3(1.0) - _1629) * _1512) * sample_rdm_diff(param_20, param_21, param_22)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1613); } else { light += ((trixel_material.xyz * 0.3499999940395355224609375) * _1613); highp vec3 _1714 = reflect(-_1435, N); highp vec3 R = _1714; if (_1714.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } highp vec3 param_23 = R; highp vec3 param_24 = _271.sunPosition; light += ((_1461 * sky(param_23, param_24)) * 0.100000001490116119384765625); } frag_color = vec4(mix(_271.deepColor, light, vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); } */ fs_trile_source_glsl300es := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x73, 0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c, 0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x42,0x61,0x73, 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x73,0x6b,0x79,0x54,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, 0x20,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e, 0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c, 0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x6b, 0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x20,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x61, 0x74,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c, 0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c, 0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x37,0x31,0x3b,0x0a,0x0a, 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f, 0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x6d,0x61,0x74,0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64, 0x6f,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x72, 0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x3b,0x0a,0x7d, 0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65, 0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x37,0x35, 0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c,0x65, 0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64, 0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b, 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73, 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, 0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72, 0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, 0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c, 0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a, 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70, 0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74, 0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x63,0x61,0x6d,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, 0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x63,0x76,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74, 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 0x6f,0x72,0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68, 0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, 0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c, 0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65, 0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35, 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f, 0x6e,0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x39,0x20,0x3d, 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x5f, 0x33,0x38,0x39,0x20,0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x38, 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29, 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x30,0x20,0x3d,0x20,0x28, 0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f,0x33,0x39,0x38,0x29,0x20,0x2a,0x20, 0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20, 0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, 0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x32,0x38, 0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35, 0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, 0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20,0x28, 0x5f,0x34,0x32,0x33,0x20,0x2a,0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20,0x30, 0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74,0x56, 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29,0x29, 0x20,0x2b,0x20,0x5f,0x34,0x32,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, 0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c, 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, 0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f,0x6d,0x65, 0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20, 0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63, 0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x34,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63, 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67, 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, 0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, 0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, 0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c, 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32, 0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, 0x28,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c, 0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37, 0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35, 0x31,0x32,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63, 0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68, 0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x46,0x30,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x6d, 0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46,0x30,0x29,0x20,0x2d,0x20, 0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28, 0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20, 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64, 0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28,0x28,0x69,0x6e,0x74, 0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20, 0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20, 0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37, 0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x69, 0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30, 0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32, 0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28, 0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d, 0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e, 0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33, 0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29, 0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30, 0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36, 0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20, 0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x76,0x65,0x63,0x33,0x28,0x2d,0x31, 0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c, 0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30, 0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20, 0x2a,0x20,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74, 0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x69,0x6e,0x74,0x20,0x72, 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x77,0x28,0x32,0x2e,0x30,0x2c,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x28,0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, 0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20, 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f, 0x66,0x66,0x73,0x65,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, 0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2c,0x20,0x69,0x6e,0x74, 0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69, 0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20, 0x5f,0x37,0x30,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69, 0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d, 0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, 0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74, 0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, 0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53, 0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f, 0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, 0x37,0x30,0x30,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65, 0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29, 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, 0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69, 0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x32,0x20,0x6f,0x66,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20, 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65, 0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x38,0x31,0x20,0x3d,0x20,0x76,0x63, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x31,0x2e, 0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x5f,0x31,0x37,0x38,0x31,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x37, 0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, 0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d, 0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37, 0x38,0x35,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x5f,0x31,0x37,0x38,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x35,0x2e,0x78,0x20, 0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, 0x63,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20, 0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x38,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x39,0x2e,0x7a,0x20, 0x3d,0x20,0x5f,0x31,0x37,0x38,0x39,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d, 0x20,0x5f,0x31,0x37,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37, 0x39,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20, 0x5f,0x31,0x37,0x39,0x32,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x5f,0x31,0x37,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x32,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x5f,0x31,0x37,0x39,0x34,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30, 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x32,0x2e, 0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f, 0x31,0x37,0x39,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x34,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36, 0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20, 0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30, 0x31,0x29,0x20,0x2b,0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20, 0x2b,0x20,0x5f,0x31,0x37,0x39,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x32, 0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30, 0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x5f,0x36,0x32, 0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29, 0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2d, 0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28, 0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37, 0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x39,0x20,0x3d,0x20, 0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d, 0x20,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x76, 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20, 0x31,0x31,0x33,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35, 0x30,0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x37, 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31, 0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x36, 0x20,0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x31,0x33,0x2e, 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x37,0x20,0x2b,0x20,0x31,0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x30,0x2e, 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x37,0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x6d,0x69, 0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x68, 0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x5f,0x31, 0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31, 0x36,0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x68,0x61,0x73,0x68, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29, 0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x37,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f,0x31,0x36,0x36,0x29, 0x2c,0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x62,0x6d,0x28,0x69,0x6e, 0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20, 0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a, 0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28, 0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30, 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30, 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, 0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32, 0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20, 0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33, 0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65, 0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30, 0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37, 0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39, 0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38, 0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x31, 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, 0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e, 0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28, 0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30, 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30, 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, 0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32, 0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20, 0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33, 0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65, 0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30, 0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37, 0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39, 0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38, 0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32, 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, 0x30,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f, 0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30, 0x2e,0x31,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30, 0x33,0x39,0x37,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d,0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33, 0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c, 0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37, 0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, 0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30, 0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33, 0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37, 0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, 0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39, 0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70, 0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x32,0x33, 0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20, 0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33, 0x35,0x38,0x31,0x36,0x38,0x36,0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30,0x39, 0x33,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x6d, 0x61,0x74,0x33,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30, 0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32, 0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30, 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, 0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38, 0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d, 0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32, 0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63, 0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38, 0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e, 0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38, 0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39, 0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31, 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x33,0x39, 0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39, 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x32,0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36, 0x34,0x20,0x3d,0x20,0x5f,0x32,0x36,0x33,0x20,0x2b,0x20,0x28,0x5f,0x6e,0x6f,0x69, 0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e, 0x30,0x34,0x31,0x36,0x36,0x36,0x36,0x36,0x37,0x39,0x30,0x38,0x34,0x33,0x30,0x30, 0x39,0x39,0x34,0x38,0x37,0x33,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x20,0x3d,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x7d,0x0a, 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x28, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f, 0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75, 0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x39,0x20,0x3d,0x20,0x64, 0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79, 0x70,0x6f,0x73,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, 0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32, 0x37,0x31,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31, 0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c, 0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x32, 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, 0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x37,0x31,0x2e, 0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, 0x28,0x5f,0x32,0x38,0x39,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39, 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, 0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e, 0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38, 0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f, 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20,0x3d,0x20,0x5f,0x32,0x39,0x32,0x2e,0x79, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28, 0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e, 0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, 0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28, 0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39, 0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75, 0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32,0x39,0x32, 0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a, 0x20,0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x37, 0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32, 0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, 0x36,0x39,0x20,0x3d,0x20,0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d, 0x20,0x6d,0x69,0x78,0x28,0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x76,0x65,0x63,0x33, 0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x6d,0x61,0x78, 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x28,0x73, 0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x35,0x2c,0x20,0x31, 0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30, 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, 0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, 0x64,0x6d,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x63,0x65, 0x6e,0x74,0x65,0x72,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, 0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, 0x6e,0x65,0x73,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61, 0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20, 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d, 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28, 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d, 0x5f,0x73,0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37, 0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, 0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, 0x5f,0x37,0x35,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61, 0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30, 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x37,0x35, 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x37,0x34, 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x36, 0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78, 0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c, 0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3e,0x20,0x31,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b, 0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61, 0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65, 0x63,0x32,0x28,0x5f,0x37,0x36,0x38,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f, 0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x39,0x29,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x29,0x20, 0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69, 0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d, 0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e, 0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b, 0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, 0x38,0x37,0x37,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38, 0x30,0x38,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20, 0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x37,0x37, 0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38, 0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20, 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x38, 0x39,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d, 0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x31,0x37,0x20,0x3d,0x20,0x74,0x65, 0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, 0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, 0x28,0x5f,0x37,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x38, 0x39,0x32,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x2c,0x20,0x5f,0x37, 0x36,0x38,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e, 0x79,0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20,0x3d,0x20,0x5f,0x39,0x31,0x37,0x2e, 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x6c,0x65, 0x6e,0x67,0x74,0x68,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x35,0x20,0x3d,0x20, 0x28,0x5f,0x39,0x32,0x31,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20, 0x28,0x5f,0x39,0x32,0x31,0x20,0x3c,0x20,0x5f,0x39,0x32,0x34,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39, 0x33,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d, 0x20,0x28,0x5f,0x39,0x32,0x31,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20, 0x5f,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x39,0x31,0x37,0x2e,0x78,0x79, 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x5f,0x38,0x30,0x38,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x30,0x38,0x2e,0x79,0x20, 0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x72,0x65, 0x66,0x6c,0x65,0x63,0x74,0x28,0x73,0x6b,0x79,0x44,0x69,0x72,0x2c,0x20,0x76,0x65, 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f, 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69, 0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f, 0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, 0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33, 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, 0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x34,0x20,0x5f,0x39,0x37,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67, 0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61, 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d, 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62, 0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, 0x39,0x38,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f, 0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x5f,0x39,0x38,0x38,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73, 0x69,0x7a,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x39,0x37,0x33,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, 0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x39,0x38,0x38,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x39,0x36,0x20,0x3d,0x20,0x72, 0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66, 0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, 0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x65, 0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20, 0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x31, 0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39,0x38,0x38,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65, 0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f, 0x39,0x39,0x36,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30, 0x33,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x30,0x29,0x2c,0x20,0x5f,0x39, 0x39,0x36,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33, 0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x30,0x29,0x29,0x2c,0x20,0x30,0x29, 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, 0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, 0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30, 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, 0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30, 0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29, 0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, 0x66,0x66,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66, 0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x20,0x72, 0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f, 0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74, 0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x32,0x20,0x3d,0x20, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, 0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e, 0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, 0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69, 0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, 0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73, 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x33,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20, 0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, 0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c, 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33, 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, 0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f, 0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, 0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69, 0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30, 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20, 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d, 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c, 0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20, 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c, 0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76, 0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20, 0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35, 0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76, 0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20, 0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63, 0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, 0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, 0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, 0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20, 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, 0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, 0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34, 0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69, 0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f, 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x76, 0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30, 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, 0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39, 0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, 0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61, 0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73, 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d, 0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65, 0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20, 0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20, 0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61, 0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x39,0x20,0x3d,0x20,0x76,0x70, 0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61, 0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39, 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30, 0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x39,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x37,0x39,0x20, 0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65, 0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x37,0x39,0x20,0x3d, 0x20,0x5f,0x31,0x32,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x39,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61, 0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74, 0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73, 0x20,0x2d,0x20,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20, 0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32, 0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74, 0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, 0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20, 0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x33,0x34,0x20,0x3d,0x20,0x74,0x65,0x78, 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78, 0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, 0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61, 0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39, 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, 0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d, 0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75, 0x73,0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39, 0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33, 0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20, 0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61, 0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x2e,0x78,0x2c,0x20,0x39, 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x33,0x33,0x34,0x29,0x20,0x3e,0x20, 0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38, 0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74, 0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a, 0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31, 0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x5f,0x31,0x33,0x35,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e, 0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, 0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x38,0x20,0x3d,0x20,0x28, 0x5f,0x31,0x33,0x35,0x37,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x5f,0x31,0x33,0x37,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f, 0x61,0x74,0x28,0x5f,0x31,0x33,0x36,0x38,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34, 0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37, 0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39, 0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x30, 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x37,0x20, 0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33, 0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39, 0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x38,0x34,0x20,0x3d, 0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34, 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38, 0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, 0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f, 0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, 0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, 0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36, 0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20, 0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20, 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72, 0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, 0x31,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20, 0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34, 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x30,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, 0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29, 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f, 0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x35,0x20,0x3d, 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d, 0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x39,0x20,0x3d,0x20,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x34, 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34, 0x33,0x35,0x20,0x2b,0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35, 0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, 0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32, 0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69, 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x33,0x38,0x30,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, 0x5f,0x31,0x34,0x34,0x34,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30, 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31, 0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, 0x20,0x5f,0x31,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, 0x3d,0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31, 0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31, 0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, 0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x39,0x35,0x20,0x3d,0x20,0x6d,0x61, 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x2c, 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x31,0x32,0x20,0x3d,0x20,0x31, 0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x33,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x32,0x38, 0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61, 0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72, 0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20, 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35, 0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31, 0x35,0x32,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x34, 0x33,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e, 0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34, 0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37, 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x5f,0x31,0x37,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x36,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f, 0x31,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28, 0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d, 0x20,0x5f,0x31,0x34,0x36,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29, 0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30, 0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39, 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31, 0x34,0x36,0x31,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28, 0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, 0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20, 0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39, 0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35, 0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35, 0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68, 0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d, 0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x36,0x36,0x2e,0x78,0x79, 0x2c,0x20,0x5f,0x31,0x35,0x34,0x33,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34, 0x39,0x35,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69, 0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31, 0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, 0x35,0x38,0x30,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, 0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30, 0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32, 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, 0x35,0x38,0x36,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28, 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, 0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20, 0x5f,0x31,0x33,0x36,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x31,0x32,0x20,0x3d,0x20,0x74,0x65, 0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72, 0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f, 0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e, 0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72, 0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37, 0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x31, 0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x6d, 0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d, 0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33, 0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31, 0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20, 0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x33,0x36,0x20, 0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d, 0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20, 0x3d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, 0x31,0x36,0x35,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62, 0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, 0x76,0x65,0x63,0x32,0x28,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20, 0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x31, 0x33,0x37,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c, 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, 0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20, 0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x32,0x39,0x20,0x2a,0x20,0x5f,0x31,0x36,0x35, 0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x35, 0x39,0x2e,0x79,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, 0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d, 0x20,0x5f,0x31,0x36,0x32,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29, 0x20,0x2a,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, 0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29, 0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34, 0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37, 0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36, 0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x74,0x72,0x69, 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, 0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39,0x39,0x39,0x39,0x39,0x39,0x34,0x30,0x33, 0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34,0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x20, 0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37, 0x31,0x34,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31, 0x34,0x33,0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20, 0x5f,0x31,0x37,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, 0x66,0x20,0x28,0x5f,0x31,0x37,0x31,0x34,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30, 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, 0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f, 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31, 0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32, 0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69, 0x67,0x68,0x74,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68, 0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70, 0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73, 0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, 0x00, ]; /* #include #include using namespace metal; struct trile_vs_params { float4x4 mvp; float4x4 mvp_shadow; float3 camera; }; struct main0_out { float3 cam [[user(locn0)]]; float3 to_center [[user(locn1)]]; float3 vpos [[user(locn2)]]; float3 ipos [[user(locn3)]]; float4 fnormal [[user(locn4)]]; float3 trileCenter [[user(locn5)]]; float3 cv [[user(locn6)]]; float4 gl_Position [[position]]; }; struct main0_in { float4 position [[attribute(0)]]; float4 normal [[attribute(1)]]; float4 centre [[attribute(2)]]; float4 instance [[attribute(3)]]; }; vertex main0_out main0(main0_in in [[stage_in]], constant trile_vs_params& _20 [[buffer(0)]]) { main0_out out = {}; float3 _31 = in.position.xyz + in.instance.xyz; out.gl_Position = _20.mvp * float4(_31, 1.0); out.fnormal = in.normal; out.to_center = in.centre.xyz - in.position.xyz; out.vpos = _31; out.ipos = in.position.xyz; out.cam = _20.camera; out.cv = fast::normalize(_20.camera - out.vpos); out.trileCenter = (out.vpos - out.ipos) + float3(0.5); return out; } */ vs_trile_source_metal_macos := u8.[ 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, 0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20, 0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74, 0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20,0x6d,0x76, 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78,0x34,0x20, 0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d,0x65,0x72,0x61,0x3b,0x0a,0x7d, 0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 0x6f,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x63,0x61,0x6d,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, 0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65, 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x76,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73, 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75, 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x72,0x69, 0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, 0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x63,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, 0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20, 0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b, 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69, 0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62, 0x75,0x74,0x65,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x65,0x6e,0x74,0x72,0x65,0x20, 0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x32,0x29,0x5d,0x5d, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x73, 0x74,0x61,0x6e,0x63,0x65,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, 0x65,0x28,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65,0x72,0x74, 0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69, 0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b, 0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e, 0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x76,0x73,0x5f,0x70, 0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x30,0x20,0x5b,0x5b,0x62,0x75,0x66, 0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20, 0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, 0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 0x2e,0x78,0x79,0x7a,0x20,0x2b,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e, 0x63,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, 0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x5f,0x32, 0x30,0x2e,0x6d,0x76,0x70,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f, 0x33,0x31,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75, 0x74,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x74, 0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x65, 0x6e,0x74,0x72,0x65,0x2e,0x78,0x79,0x7a,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x70,0x6f, 0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x6f,0x75,0x74,0x2e,0x76,0x70,0x6f,0x73,0x20,0x3d,0x20,0x5f,0x33,0x31,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x69,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69, 0x6e,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x79,0x7a,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x63,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x32, 0x30,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75, 0x74,0x2e,0x63,0x76,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x2e,0x63,0x61,0x6d,0x65,0x72, 0x61,0x20,0x2d,0x20,0x6f,0x75,0x74,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74, 0x65,0x72,0x20,0x3d,0x20,0x28,0x6f,0x75,0x74,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d, 0x20,0x6f,0x75,0x74,0x2e,0x69,0x70,0x6f,0x73,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" #include #include using namespace metal; // Implementation of the GLSL mod() function, which is slightly different than Metal fmod() template inline Tx mod(Tx x, Ty y) { return x - y * floor(x / y); } struct trile_world_config { float3 skyBase; float3 skyTop; float3 sunDisk; float3 horizonHalo; float3 sunHalo; float3 sunLightColor; packed_float3 sunPosition; float sunIntensity; float skyIntensity; int hasClouds; float planeHeight; int planeType; float3 waterColor; packed_float3 deepColor; float time; }; struct trile_fs_params { float4x4 mvp_shadow; int is_reflection; int screen_h; int screen_w; }; struct main0_out { float4 frag_color [[color(0)]]; }; struct main0_in { float3 cam [[user(locn0)]]; float3 to_center [[user(locn1)]]; float3 vpos [[user(locn2)]]; float3 ipos [[user(locn3)]]; float4 fnormal [[user(locn4)]]; float3 trileCenter [[user(locn5)]]; float3 cv [[user(locn6)]]; }; static inline __attribute__((always_inline)) float3 fresnelSchlick(thread const float& cosTheta, thread const float3& F0) { return F0 + ((float3(1.0) - F0) * powr(fast::clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } static inline __attribute__((always_inline)) float DistributionGGX(thread const float3& N, thread const float3& H, thread const float& roughness) { float _389 = roughness * roughness; float _393 = _389 * _389; float _398 = fast::max(dot(N, H), 0.0); float _410 = ((_398 * _398) * (_393 - 1.0)) + 1.0; return _393 / ((3.141285419464111328125 * _410) * _410); } static inline __attribute__((always_inline)) float GeometrySchlickGGX(thread const float& NdotV, thread const float& roughness) { float _423 = roughness + 1.0; float _429 = (_423 * _423) * 0.125; return NdotV / ((NdotV * (1.0 - _429)) + _429); } static inline __attribute__((always_inline)) float GeometrySmith(thread const float3& N, thread const float3& V, thread const float3& L, thread const float& roughness) { float param = fast::max(dot(N, V), 0.0); float param_1 = roughness; float param_2 = fast::max(dot(N, L), 0.0); float param_3 = roughness; return GeometrySchlickGGX(param_2, param_3) * GeometrySchlickGGX(param, param_1); } static inline __attribute__((always_inline)) float4 rdm_get_atlas_rect(thread const int3& local_pos, thread const int& roughness, texture2d rdm_lookup, sampler trilesmp) { int _667 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); return rdm_lookup.read(uint2(int2(_667 % 512, _667 / 512)), 0); } static inline __attribute__((always_inline)) float3 FresnelSchlickRoughness(thread const float& cosTheta, thread const float3& F0, thread const float& roughness) { return F0 + ((fast::max(float3(1.0 - roughness), F0) - F0) * powr(fast::clamp(1.0 - cosTheta, 0.0, 1.0), 5.0)); } static inline __attribute__((always_inline)) int rdm_index_from_normal(thread const float3& N) { return (((int(dot(float3(-0.0, -1.0, -0.0), N) >= 0.980000019073486328125) + (int(N.z >= 0.980000019073486328125) * 2)) + (int(dot(float3(-0.0, -0.0, -1.0), N) >= 0.980000019073486328125) * 3)) + (int(N.x >= 0.980000019073486328125) * 4)) + (int(dot(float3(-1.0, -0.0, -0.0), N) >= 0.980000019073486328125) * 5); } static inline __attribute__((always_inline)) float roughness_to_rdm_size(thread const int& roughness) { return powr(2.0, float(8 - roughness)); } static inline __attribute__((always_inline)) int2 rdm_face_pixel_offset(thread const float4& atlas_rect, thread const int& face, thread const int& rdmSize, texture2d rdm_atlas, sampler rdmsmp) { int2 _700 = int2(rdm_atlas.get_width(), rdm_atlas.get_height()); return int2(int(atlas_rect.x * float(_700.x)) + ((face % 2) * rdmSize), int(atlas_rect.y * float(_700.y)) + ((face / 2) * rdmSize)); } static inline __attribute__((always_inline)) float2 rdm_get_hemioct(thread const float3& v, thread const int& index, thread const float2& off) { float3 vc = v; if ((index / 2) == 0) { float3 _1781 = vc; _1781.z = v.y; _1781.y = v.z; vc = _1781; } if ((index / 2) == 2) { float3 _1785 = vc; _1785.z = v.x; _1785.x = v.z; vc = _1785; } if ((index % 2) == 1) { float3 _1789 = vc; _1789.z = _1789.z * (-1.0); vc = _1789; } float3 _1792 = vc; float _601 = _1792.x + off.x; float3 _1794 = _1792; _1794.x = _601; float _607 = _1792.y + off.y; _1794.y = _607; vc = _1794; float2 _625 = _1794.xy * (1.0 / ((abs(_601) + abs(_607)) + _1792.z)); float _628 = _625.x; float _630 = _625.y; return float2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); } static inline __attribute__((always_inline)) float hash(thread const float& n) { return fract(sin(n) * 43758.546875); } static inline __attribute__((always_inline)) float _noise(thread const float3& x) { float3 _129 = fract(x); float _137 = dot(floor(x), float3(1.0, 157.0, 113.0)); float param = _137; float param_1 = _137 + 1.0; float _150 = _129.x; float param_2 = _137 + 157.0; float param_3 = _137 + 158.0; float _166 = _129.y; float param_4 = _137 + 113.0; float param_5 = _137 + 114.0; float param_6 = _137 + 270.0; float param_7 = _137 + 271.0; return mix(mix(mix(hash(param), hash(param_1), _150), mix(hash(param_2), hash(param_3), _150), _166), mix(mix(hash(param_4), hash(param_5), _150), mix(hash(param_6), hash(param_7), _150), _166), _129.z); } static inline __attribute__((always_inline)) float fbm(thread float3& p) { float f = 0.0; float3 param = p; f += (_noise(param) * 0.5); p = (float3x3(float3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), float3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), float3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.10000002384185791015625; float3 param_1 = p; f += (_noise(param_1) * 0.25); p = (float3x3(float3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), float3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), float3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2000000476837158203125; float3 param_2 = p; f += (_noise(param_2) * 0.16666667163372039794921875); p = (float3x3(float3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), float3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), float3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.2999999523162841796875; float3 param_3 = p; f += (_noise(param_3) * 0.083333335816860198974609375); p = (float3x3(float3(0.0, 1.60000002384185791015625, 1.2000000476837158203125), float3(-1.60000002384185791015625, 0.7200000286102294921875, -0.959999978542327880859375), float3(-1.2000000476837158203125, -0.959999978542327880859375, 1.2799999713897705078125)) * p) * 1.39999997615814208984375; float3 param_4 = p; float _263 = f; float _264 = _263 + (_noise(param_4) * 0.0416666679084300994873046875); f = _264; return _264; } static inline __attribute__((always_inline)) float3 sky(thread const float3& skypos, thread const float3& sunpos, constant trile_world_config& _271) { float _289 = dot(fast::normalize(skypos), fast::normalize(sunpos)); float3 _292 = fast::normalize(skypos); float3 final = mix(_271.skyBase, _271.skyTop, float3(fast::clamp(skypos.y * 2.0, 0.0, 0.699999988079071044921875))) + ((_271.sunHalo * fast::clamp((_289 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); if (_289 > 0.99989998340606689453125) { final = _271.sunDisk; } float _333 = _292.y; final += (mix(_271.horizonHalo, float3(0.0), float3(fast::clamp(abs(_333) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); if (_271.hasClouds == 1) { float3 param = ((_292 / float3(_333)) * 2.0) + float3(_271.time * 0.0500000007450580596923828125); float _369 = fbm(param); final = mix(final, float3(1.0), float3((fast::max(0.0, _333) * (smoothstep(0.5, 1.0, _369) * 0.300000011920928955078125)) * 2.0)); } return final; } static inline __attribute__((always_inline)) float3 sample_rdm(thread const float3& N, thread const float3& V, thread const float3& rdm_center, thread const float3& diff, thread const int& roughness, thread const int3& local_pos, constant trile_world_config& _271, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { float3 param = N; int _739 = rdm_index_from_normal(param); int param_1 = roughness; int _744 = int(roughness_to_rdm_size(param_1)); float _747 = float(_744); int3 param_2 = local_pos; int param_3 = roughness; float4 _753 = rdm_get_atlas_rect(param_2, param_3, rdm_lookup, trilesmp); if (_753.z <= 0.0) { return float3(1.0, 0.0, 1.0); } float4 param_4 = _753; int param_5 = _739; int param_6 = _744; int2 _768 = rdm_face_pixel_offset(param_4, param_5, param_6, rdm_atlas, rdmsmp); float3 _808 = fast::normalize(reflect(V, N)); if (roughness > 1) { float3 param_7 = fast::normalize(diff + (_808 * 2.0)); int param_8 = _739; float2 param_9 = float2(0.0); return rdm_atlas.sample(rdmsmp, ((float2(_768) + (rdm_get_hemioct(param_7, param_8, param_9) * _747)) / float2(int2(rdm_atlas.get_width(), rdm_atlas.get_height())))).xyz; } for (int i = 0; i < 40; i++) { float3 _877 = diff + (_808 * (float(i + 1) * 0.5)); if (dot(_877, N) < 0.0) { continue; } float3 param_10 = fast::normalize(_877); int param_11 = _739; float2 param_12 = float2(0.0); float2 _892 = rdm_get_hemioct(param_10, param_11, param_12); float4 _917 = rdm_atlas.read(uint2(int2(_768.x + int(_892.x * _747), _768.y + int(_892.y * _747))), 0); float _921 = _917.w; float _924 = length(_877); bool _935 = (_921 > 0.0) && (_921 < _924); bool _943; if (_935) { _943 = (_921 + 0.5) > _924; } else { _943 = _935; } if (_943) { return _917.xyz; } } float3 skyDir = _808; if (_808.y < 0.0) { skyDir = reflect(skyDir, float3(0.0, 1.0, 0.0)); } float3 param_13 = skyDir; float3 param_14 = float3(_271.sunPosition); return sky(param_13, param_14, _271); } static inline __attribute__((always_inline)) int isign(thread const float& f) { return (f < 0.0) ? (-1) : 1; } static inline __attribute__((always_inline)) float3 sample_rdm_diff_map(thread const float3& N, thread const int3& local_pos, thread const float3& fallback, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { int3 param = local_pos; int param_1 = 7; float4 _973 = rdm_get_atlas_rect(param, param_1, rdm_lookup, trilesmp); if (_973.z <= 0.0) { return fallback; } float3 param_2 = N; int _984 = rdm_index_from_normal(param_2); int param_3 = 7; int _988 = int(roughness_to_rdm_size(param_3)); float4 param_4 = _973; int param_5 = _984; int param_6 = _988; int2 _996 = rdm_face_pixel_offset(param_4, param_5, param_6, rdm_atlas, rdmsmp); float3 param_7 = N; int param_8 = _984; float2 param_9 = float2(0.0); float2 _1003 = rdm_get_hemioct(param_7, param_8, param_9); float _1010 = float(_988); return rdm_atlas.read(uint2(int2(_996.x + int(_1003.x * _1010), _996.y + int(_1003.y * _1010))), 0).xyz; } static inline __attribute__((always_inline)) float3 smix(thread const float3& a, thread const float3& b, thread const float& t) { return mix(a, b, float3(powr(t, 1.60000002384185791015625) / (powr(t, 1.60000002384185791015625) + powr(1.0 - t, 1.60000002384185791015625)))); } static inline __attribute__((always_inline)) float3 sample_rdm_diff(thread const float3& N, thread const float3& diff, thread const int3& local_pos, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { float3 param = N; int _1063 = rdm_index_from_normal(param); float2 delta = float2(0.0); bool _1072 = (_1063 == 0) || (_1063 == 1); if (_1072) { delta = float2(diff.x, diff.z); } else { if ((_1063 == 2) || (_1063 == 3)) { delta = float2(diff.x, diff.y); } else { delta = float2(diff.z, diff.y); } } int3 s1; int3 s2; int3 s3; if (_1072) { float param_1 = delta.x; s1 = int3(isign(param_1), 0, 0); float param_2 = delta.y; s2 = int3(0, 0, isign(param_2)); float param_3 = delta.x; float param_4 = delta.y; s3 = int3(isign(param_3), 0, isign(param_4)); } else { if ((_1063 == 2) || (_1063 == 3)) { float param_5 = delta.x; s1 = int3(isign(param_5), 0, 0); float param_6 = delta.y; s2 = int3(0, isign(param_6), 0); float param_7 = delta.x; float param_8 = delta.y; s3 = int3(isign(param_7), isign(param_8), 0); } else { float param_9 = delta.x; s1 = int3(0, 0, isign(param_9)); float param_10 = delta.y; s2 = int3(0, isign(param_10), 0); float param_11 = delta.y; float param_12 = delta.x; s3 = int3(0, isign(param_11), isign(param_12)); } } float3 param_13 = N; int3 param_14 = int3(mod(float3(local_pos), float3(32.0))); float3 param_15 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_16 = N; int3 param_17 = int3(mod(float3(local_pos + s1), float3(32.0))); float3 param_18 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_19 = N; int3 param_20 = int3(mod(float3(local_pos + s2), float3(32.0))); float3 param_21 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_22 = N; int3 param_23 = int3(mod(float3(local_pos + s3), float3(32.0))); float3 param_24 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_25 = sample_rdm_diff_map(param_13, param_14, param_15, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); float3 param_26 = sample_rdm_diff_map(param_16, param_17, param_18, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); float param_27 = abs(delta.x); float3 param_28 = sample_rdm_diff_map(param_19, param_20, param_21, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); float3 param_29 = sample_rdm_diff_map(param_22, param_23, param_24, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); float param_30 = abs(delta.x); float3 param_31 = smix(param_25, param_26, param_27); float3 param_32 = smix(param_28, param_29, param_30); float param_33 = abs(delta.y); return smix(param_31, param_32, param_33); } fragment main0_out main0(main0_in in [[stage_in]], constant trile_world_config& _271 [[buffer(0)]], constant trile_fs_params& _1275 [[buffer(1)]], texture2d rdm_lookup [[texture(0)]], texture2d rdm_atlas [[texture(1)]], texture2d triletex [[texture(2)]], depth2d shadowtex [[texture(3)]], texture2d ssaotex [[texture(4)]], texture2d brdf_lut [[texture(5)]], sampler trilesmp [[sampler(0)]], sampler rdmsmp [[sampler(1)]], sampler shadowsmp [[sampler(2)]], float4 gl_FragCoord [[position]]) { main0_out out = {}; bool _1269 = in.vpos.y < (_271.planeHeight - 0.00999999977648258209228515625); bool _1279; if (_1269) { _1279 = _1275.is_reflection == 1; } else { _1279 = _1269; } if (_1279) { discard_fragment(); } float3 pos_after_adjust = in.ipos - (in.fnormal.xyz * 0.0199999995529651641845703125); int count = 0; float4 trixel_material; while (count < 5) { float4 _1334 = triletex.read(uint2(int2(int(fast::clamp(pos_after_adjust.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(fast::clamp(pos_after_adjust.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(fast::clamp(pos_after_adjust.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16))), 0); trixel_material = _1334; if (length(_1334) > 0.00999999977648258209228515625) { break; } pos_after_adjust += (in.to_center * 0.100000001490116119384765625); count++; } int _1357 = int(round(trixel_material.w * 255.0)); int _1368 = (_1357 >> 5) & 7; float _1374 = fast::max(float(_1368) * 0.14285714924335479736328125, 0.0500000007450580596923828125); float _1380 = float((_1357 >> 3) & 3) * 0.3333333432674407958984375; float3 _1384 = abs(in.fnormal.xyz); float _1386 = _1384.x; float _1388 = _1384.y; bool _1389 = _1386 >= _1388; bool _1397; if (_1389) { _1397 = _1386 >= _1384.z; } else { _1397 = _1389; } float3 N; if (_1397) { N = float3(sign(in.fnormal.x), 0.0, 0.0); } else { bool _1410 = _1388 >= _1386; bool _1418; if (_1410) { _1418 = _1388 >= _1384.z; } else { _1418 = _1410; } if (_1418) { N = float3(0.0, sign(in.fnormal.y), 0.0); } else { N = float3(0.0, 0.0, sign(in.fnormal.z)); } } float3 _1435 = fast::normalize(in.cam - in.vpos); float3 _1439 = fast::normalize(float3(_271.sunPosition)); float3 _1444 = fast::normalize(_1435 + _1439); float3 _1452 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(_1380)); float param = fast::max(dot(_1444, _1435), 0.0); float3 param_1 = _1452; float3 _1461 = fresnelSchlick(param, param_1); float3 param_2 = N; float3 param_3 = _1444; float param_4 = _1374; float3 param_5 = N; float3 param_6 = _1435; float3 param_7 = _1439; float param_8 = _1374; float _1495 = fast::max(dot(N, _1439), 0.0); float _1512 = 1.0 - _1380; float4 _1528 = _1275.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); float3 _1539 = ((_1528.xyz / float3(_1528.w)) * 0.5) + float3(0.5); float _1543 = _1539.z - 0.001000000047497451305389404296875; float3 _1766 = _1539; _1766.z = _1543; float3 light = ((((((((float3(1.0) - _1461) * _1512) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1766.xy, _1543)) * _1495) * _271.sunLightColor) * _271.sunIntensity; float3 _1580 = in.trileCenter + (N * 0.4900000095367431640625); int3 _1586 = int3(mod(floor(in.trileCenter), float3(32.0))); int3 param_9 = _1586; int param_10 = _1368; float4 _1612 = ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), bias(0.0)); float _1613 = _1612.x; if (rdm_get_atlas_rect(param_9, param_10, rdm_lookup, trilesmp).z > 0.0) { float param_11 = fast::max(dot(N, _1435), 0.0); float3 param_12 = _1452; float param_13 = _1374; float3 _1629 = FresnelSchlickRoughness(param_11, param_12, param_13); float3 _1636 = in.vpos - _1580; float3 param_14 = N; float3 param_15 = -in.cv; float3 param_16 = _1580; float3 param_17 = _1636; int param_18 = _1368; int3 param_19 = _1586; float4 _1659 = brdf_lut.sample(rdmsmp, float2(fast::max(dot(N, _1435), 0.0), _1374)); light += (sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19, _271, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * ((_1629 * _1659.x) + float3(_1659.y))); float3 param_20 = N; float3 param_21 = _1636; int3 param_22 = _1586; light += ((((((float3(1.0) - _1629) * _1512) * sample_rdm_diff(param_20, param_21, param_22, rdm_lookup, trilesmp, rdm_atlas, rdmsmp)) * float3(0.3183410167694091796875)) * trixel_material.xyz) * _1613); } else { light += ((trixel_material.xyz * 0.3499999940395355224609375) * _1613); float3 _1714 = reflect(-_1435, N); float3 R = _1714; if (_1714.y < 0.0) { R = reflect(R, float3(0.0, 1.0, 0.0)); } float3 param_23 = R; float3 param_24 = float3(_271.sunPosition); light += ((_1461 * sky(param_23, param_24, _271)) * 0.100000001490116119384765625); } out.frag_color = float4(mix(float3(_271.deepColor), light, float3(smoothstep(0.0, _271.planeHeight, in.vpos.y))), 1.0); return out; } */ fs_trile_source_metal_macos := u8.[ 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, 0x6f,0x74,0x79,0x70,0x65,0x73,0x22,0x0a,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64, 0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,0x73,0x74,0x64,0x6c,0x69,0x62,0x3e, 0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f, 0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e, 0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a, 0x0a,0x2f,0x2f,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69, 0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x47,0x4c,0x53,0x4c,0x20,0x6d, 0x6f,0x64,0x28,0x29,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x77, 0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x73,0x6c,0x69,0x67,0x68,0x74,0x6c,0x79, 0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x68,0x61,0x6e,0x20, 0x4d,0x65,0x74,0x61,0x6c,0x20,0x66,0x6d,0x6f,0x64,0x28,0x29,0x0a,0x74,0x65,0x6d, 0x70,0x6c,0x61,0x74,0x65,0x3c,0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54, 0x78,0x2c,0x20,0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54,0x79,0x3e,0x0a, 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x54,0x78,0x20,0x6d,0x6f,0x64,0x28,0x54,0x78, 0x20,0x78,0x2c,0x20,0x54,0x79,0x20,0x79,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x78,0x20,0x2d,0x20,0x79,0x20,0x2a,0x20,0x66, 0x6c,0x6f,0x6f,0x72,0x28,0x78,0x20,0x2f,0x20,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72, 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x54,0x6f, 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75, 0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x20,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x48,0x61,0x6c, 0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75, 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73, 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69, 0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x6b, 0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x20,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65, 0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x6c, 0x61,0x6e,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x20,0x77,0x61,0x74,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x20,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a, 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73, 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x34,0x78,0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f, 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x72,0x65, 0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, 0x74,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x3b,0x0a,0x7d,0x3b, 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f,0x6c, 0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72, 0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x61,0x6d,0x20,0x5b,0x5b, 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e, 0x74,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31, 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x76,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, 0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x69,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63, 0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72, 0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, 0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d, 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x76, 0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d, 0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65, 0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f,0x73, 0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x29,0x0a, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20, 0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, 0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x66,0x61,0x73, 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63, 0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, 0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58, 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x48,0x2c, 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x39, 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72, 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x5f,0x33,0x38,0x39,0x20, 0x2a,0x20,0x5f,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, 0x31,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x33,0x39,0x38,0x20,0x2a,0x20,0x5f,0x33, 0x39,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x33,0x39,0x33,0x20,0x2d,0x20,0x31,0x2e, 0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x33,0x39,0x33,0x20,0x2f,0x20,0x28,0x28,0x33, 0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31, 0x33,0x32,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x5f,0x34,0x31,0x30,0x29,0x20,0x2a, 0x20,0x5f,0x34,0x31,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69, 0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69, 0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69, 0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65, 0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58, 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x26,0x20,0x4e,0x64,0x6f,0x74,0x56,0x2c,0x20,0x74,0x68,0x72,0x65, 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x32,0x39,0x20,0x3d,0x20, 0x28,0x5f,0x34,0x32,0x33,0x20,0x2a,0x20,0x5f,0x34,0x32,0x33,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, 0x6e,0x20,0x4e,0x64,0x6f,0x74,0x56,0x20,0x2f,0x20,0x28,0x28,0x4e,0x64,0x6f,0x74, 0x56,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x34,0x32,0x39,0x29, 0x29,0x20,0x2b,0x20,0x5f,0x34,0x32,0x39,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x74, 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c,0x20,0x74, 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x26,0x20,0x4c,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67,0x68, 0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30, 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61, 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x65,0x6f, 0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x47,0x47,0x58,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x63,0x68,0x6c, 0x69,0x63,0x6b,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69, 0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69, 0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69, 0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72, 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, 0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69, 0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20, 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74, 0x26,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x74,0x65,0x78, 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64, 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, 0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c, 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f, 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29, 0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20, 0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67, 0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x6c, 0x6f,0x6f,0x6b,0x75,0x70,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32, 0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x36,0x36,0x37,0x20,0x25,0x20,0x35,0x31,0x32, 0x2c,0x20,0x5f,0x36,0x36,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x29,0x2c,0x20, 0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x46,0x72,0x65,0x73,0x6e, 0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65, 0x73,0x73,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c, 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x46,0x30,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x73, 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e, 0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20, 0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72, 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30, 0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30, 0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69, 0x6e,0x74,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f, 0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x28, 0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30, 0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30, 0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35, 0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20, 0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38, 0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x32,0x29,0x29,0x20,0x2b, 0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e, 0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30, 0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32, 0x35,0x29,0x20,0x2a,0x20,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28, 0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30, 0x31,0x39,0x30,0x37,0x33,0x34,0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20, 0x2a,0x20,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x64,0x6f,0x74, 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x30, 0x2e,0x30,0x2c,0x20,0x2d,0x30,0x2e,0x30,0x29,0x2c,0x20,0x4e,0x29,0x20,0x3e,0x3d, 0x20,0x30,0x2e,0x39,0x38,0x30,0x30,0x30,0x30,0x30,0x31,0x39,0x30,0x37,0x33,0x34, 0x38,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x20,0x2a,0x20,0x35,0x29,0x3b,0x0a, 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x5f, 0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x74,0x68,0x72,0x65, 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, 0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x77,0x72,0x28,0x32,0x2e,0x30,0x2c,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x28,0x38,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, 0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, 0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62, 0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e, 0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e,0x74,0x32,0x20,0x72,0x64,0x6d,0x5f, 0x66,0x61,0x63,0x65,0x5f,0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65, 0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, 0x74,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x69,0x6e,0x74,0x26,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72,0x64,0x6d, 0x53,0x69,0x7a,0x65,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, 0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70, 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x30, 0x30,0x20,0x3d,0x20,0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, 0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20, 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65, 0x69,0x67,0x68,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, 0x75,0x72,0x6e,0x20,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c, 0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x28,0x5f,0x37,0x30,0x30,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66, 0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69, 0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, 0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x37, 0x30,0x30,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20, 0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74, 0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x76,0x2c, 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e, 0x74,0x26,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6f, 0x66,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, 0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20, 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x37,0x38,0x31,0x20,0x3d,0x20, 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38, 0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x31,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, 0x31,0x37,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20, 0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x37,0x38,0x35, 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, 0x31,0x37,0x38,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x38,0x35,0x2e,0x78,0x20,0x3d,0x20, 0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20, 0x3d,0x20,0x5f,0x31,0x37,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20, 0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, 0x37,0x38,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x5f,0x31,0x37,0x38,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38, 0x39,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x37,0x38,0x39, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x5f,0x31,0x37,0x39,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20, 0x5f,0x31,0x37,0x39,0x32,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x37,0x39, 0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f, 0x31,0x37,0x39,0x34,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20, 0x5f,0x31,0x37,0x39,0x32,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x39,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f, 0x36,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31, 0x37,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, 0x5f,0x36,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x37,0x39,0x34,0x2e,0x78,0x79,0x20, 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f, 0x36,0x30,0x31,0x29,0x20,0x2b,0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29, 0x29,0x20,0x2b,0x20,0x5f,0x31,0x37,0x39,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20, 0x5f,0x36,0x32,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x5f,0x36,0x33,0x30,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x28,0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2b,0x20,0x5f,0x36,0x33,0x30, 0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x2c,0x20, 0x28,0x28,0x5f,0x36,0x32,0x38,0x20,0x2d,0x20,0x5f,0x36,0x33,0x30,0x29,0x20,0x2b, 0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a, 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x68,0x61,0x73,0x68,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x6e,0x29,0x0a, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61, 0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x6e,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35, 0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x78,0x29,0x0a, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x32, 0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x78,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20,0x64, 0x6f,0x74,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x78,0x29,0x2c,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x37,0x2e,0x30,0x2c,0x20, 0x31,0x31,0x33,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x20, 0x3d,0x20,0x5f,0x31,0x32,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31, 0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x37,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, 0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x31,0x35,0x38,0x2e,0x30,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x5f, 0x31,0x32,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x20, 0x2b,0x20,0x31,0x31,0x33,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33, 0x37,0x20,0x2b,0x20,0x31,0x31,0x34,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, 0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x37,0x20,0x2b,0x20,0x32,0x37,0x31,0x2e,0x30,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69, 0x78,0x28,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, 0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, 0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x68,0x61,0x73,0x68, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29, 0x2c,0x20,0x5f,0x31,0x36,0x36,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78, 0x28,0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20, 0x68,0x61,0x73,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x5f, 0x31,0x35,0x30,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x68,0x61,0x73,0x68,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x68,0x61,0x73,0x68,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x29,0x2c,0x20,0x5f, 0x31,0x36,0x36,0x29,0x2c,0x20,0x5f,0x31,0x32,0x39,0x2e,0x7a,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x66,0x62,0x6d,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28, 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38, 0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x31, 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, 0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, 0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x32, 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32, 0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39,0x39, 0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39,0x33, 0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31,0x33, 0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a, 0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x32, 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20,0x2b, 0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x70,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, 0x36,0x32,0x35,0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30, 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, 0x35,0x2c,0x20,0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e, 0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38, 0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x2d,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38, 0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e, 0x39,0x35,0x39,0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38, 0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39, 0x39,0x39,0x39,0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31, 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x30, 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30, 0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x36,0x36,0x36, 0x36,0x36,0x36,0x37,0x31,0x36,0x33,0x33,0x37,0x32,0x30,0x33,0x39,0x37,0x39,0x34, 0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d, 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, 0x2c,0x20,0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33, 0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, 0x30,0x2e,0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32, 0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39, 0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38, 0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d, 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39, 0x39,0x39,0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38, 0x35,0x39,0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39, 0x37,0x31,0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29, 0x29,0x20,0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x32,0x39,0x39,0x39,0x39, 0x39,0x39,0x35,0x32,0x33,0x31,0x36,0x32,0x38,0x34,0x31,0x37,0x39,0x36,0x38,0x37, 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x20,0x2b,0x3d,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x38,0x33,0x33,0x33,0x33,0x33, 0x33,0x35,0x38,0x31,0x36,0x38,0x36,0x30,0x31,0x39,0x38,0x39,0x37,0x34,0x36,0x30, 0x39,0x33,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x28, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x78,0x33,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20, 0x31,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31, 0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x2d,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, 0x37,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34, 0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, 0x33,0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x2d,0x31,0x2e, 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, 0x32,0x30,0x33,0x31,0x32,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x39,0x35,0x39,0x39,0x39, 0x39,0x39,0x37,0x38,0x35,0x34,0x32,0x33,0x32,0x37,0x38,0x38,0x30,0x38,0x35,0x39, 0x33,0x37,0x35,0x2c,0x20,0x31,0x2e,0x32,0x37,0x39,0x39,0x39,0x39,0x39,0x37,0x31, 0x33,0x38,0x39,0x37,0x37,0x30,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, 0x2a,0x20,0x70,0x29,0x20,0x2a,0x20,0x31,0x2e,0x33,0x39,0x39,0x39,0x39,0x39,0x39, 0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x33,0x20,0x3d,0x20,0x66,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x34,0x20,0x3d,0x20,0x5f, 0x32,0x36,0x33,0x20,0x2b,0x20,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x36, 0x36,0x36,0x36,0x37,0x39,0x30,0x38,0x34,0x33,0x30,0x30,0x39,0x39,0x34,0x38,0x37, 0x33,0x30,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x20, 0x3d,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x5f,0x32,0x36,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x73,0x6b,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c, 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72, 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38, 0x39,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x2c, 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, 0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x66,0x61,0x73, 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79, 0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37, 0x31,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e, 0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x66, 0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x6b,0x79,0x70,0x6f, 0x73,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20, 0x28,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a, 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x32, 0x38,0x39,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38, 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29, 0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, 0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33, 0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x5f,0x32,0x38,0x39,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39, 0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35, 0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31, 0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x33,0x33,0x20,0x3d, 0x20,0x5f,0x32,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e, 0x61,0x6c,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e, 0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73, 0x28,0x5f,0x33,0x33,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30, 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31, 0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x37,0x31,0x2e,0x68,0x61,0x73,0x43,0x6c,0x6f, 0x75,0x64,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32,0x39,0x32,0x20,0x2f,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x33,0x33,0x33,0x29,0x29,0x20,0x2a,0x20, 0x32,0x2e,0x30,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32, 0x37,0x31,0x2e,0x74,0x69,0x6d,0x65,0x20,0x2a,0x20,0x30,0x2e,0x30,0x35,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39, 0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x39,0x20,0x3d,0x20, 0x66,0x62,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28, 0x66,0x69,0x6e,0x61,0x6c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e, 0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x66,0x61,0x73,0x74, 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x33,0x33,0x29, 0x20,0x2a,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, 0x2e,0x35,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x5f,0x33,0x36,0x39,0x29,0x20,0x2a, 0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, 0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x56,0x2c, 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x72,0x64,0x6d,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72, 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72, 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x26,0x20,0x72, 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63, 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74, 0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e, 0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f, 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20, 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72, 0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61, 0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64, 0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d, 0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, 0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x72,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68, 0x6e,0x65,0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x28,0x5f,0x37,0x34,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x6c,0x6f,0x63, 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, 0x5f,0x37,0x35,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61, 0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x72,0x64,0x6d,0x5f, 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x33,0x2e, 0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, 0x20,0x5f,0x37,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, 0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20, 0x5f,0x37,0x36,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, 0x70,0x69,0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x66,0x61, 0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x72,0x65, 0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, 0x3e,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38, 0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, 0x5f,0x37,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61, 0x74,0x6c,0x61,0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73, 0x6d,0x70,0x2c,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x37,0x36, 0x38,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65, 0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29, 0x20,0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72, 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69, 0x67,0x68,0x74,0x28,0x29,0x29,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e, 0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b, 0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x38,0x37,0x37,0x20, 0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x38,0x30,0x38,0x20,0x2a, 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a, 0x20,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x38,0x37,0x37,0x2c,0x20,0x4e,0x29, 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f, 0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, 0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x38,0x37,0x37, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x37,0x33,0x39,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x38,0x39,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d, 0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x39,0x31,0x37,0x20, 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72,0x65,0x61,0x64, 0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x37,0x36,0x38, 0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x78,0x20, 0x2a,0x20,0x5f,0x37,0x34,0x37,0x29,0x2c,0x20,0x5f,0x37,0x36,0x38,0x2e,0x79,0x20, 0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x38,0x39,0x32,0x2e,0x79,0x20,0x2a,0x20,0x5f, 0x37,0x34,0x37,0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x31,0x20,0x3d, 0x20,0x5f,0x39,0x31,0x37,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x39,0x32,0x34,0x20,0x3d,0x20,0x6c,0x65, 0x6e,0x67,0x74,0x68,0x28,0x5f,0x38,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x35,0x20,0x3d,0x20, 0x28,0x5f,0x39,0x32,0x31,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x20,0x26,0x26,0x20, 0x28,0x5f,0x39,0x32,0x31,0x20,0x3c,0x20,0x5f,0x39,0x32,0x34,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x34,0x33, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39, 0x33,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d, 0x20,0x28,0x5f,0x39,0x32,0x31,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20, 0x5f,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x39,0x34,0x33,0x20,0x3d,0x20,0x5f,0x39,0x33,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x39,0x31,0x37,0x2e,0x78,0x79, 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b, 0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x5f,0x38,0x30,0x38,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x30,0x38,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e, 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x73,0x6b,0x79,0x44,0x69,0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63, 0x74,0x28,0x73,0x6b,0x79,0x44,0x69,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b, 0x79,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74, 0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, 0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x3b,0x0a, 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, 0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64, 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x66,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66, 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a, 0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c, 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x74, 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, 0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61, 0x63,0x6b,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c, 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, 0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, 0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73, 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, 0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x39,0x37, 0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, 0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x37,0x33,0x2e,0x7a,0x20,0x3c,0x3d,0x20, 0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61, 0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x38,0x34,0x20,0x3d, 0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f, 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, 0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39, 0x38,0x38,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, 0x73,0x73,0x5f,0x74,0x6f,0x5f,0x72,0x64,0x6d,0x5f,0x73,0x69,0x7a,0x65,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f, 0x39,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, 0x39,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x39, 0x39,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x70,0x69, 0x78,0x65,0x6c,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x36,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, 0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x38,0x20,0x3d,0x20,0x5f,0x39,0x38,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x30,0x30,0x33,0x20,0x3d,0x20,0x72, 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x31,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x28,0x5f,0x39,0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72, 0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f, 0x39,0x39,0x36,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30, 0x33,0x2e,0x78,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x30,0x29,0x2c,0x20,0x5f,0x39, 0x39,0x36,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x30,0x30,0x33, 0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x30,0x31,0x30,0x29,0x29,0x29,0x2c,0x20,0x30, 0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, 0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62, 0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e, 0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6d, 0x69,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20, 0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20, 0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35, 0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f, 0x77,0x72,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29, 0x20,0x2b,0x20,0x70,0x6f,0x77,0x72,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c, 0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a, 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, 0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74, 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x26,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63, 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, 0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69, 0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d, 0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, 0x6e,0x74,0x20,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69, 0x6e,0x64,0x65,0x78,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, 0x6c,0x20,0x5f,0x31,0x30,0x37,0x32,0x20,0x3d,0x20,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33, 0x20,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66, 0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20, 0x32,0x29,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20, 0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20, 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c, 0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69, 0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20, 0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x32,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x33,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x32,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d, 0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, 0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64, 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, 0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73, 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7c,0x7c,0x20, 0x28,0x5f,0x31,0x30,0x36,0x33,0x20,0x3d,0x3d,0x20,0x33,0x29,0x29,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e, 0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, 0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20, 0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c, 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x73,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67, 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x2c,0x20,0x69,0x73,0x69,0x67, 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c, 0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30, 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20, 0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30, 0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, 0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, 0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x2c,0x20,0x69,0x73,0x69, 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, 0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61, 0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33, 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, 0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37, 0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d, 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64, 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, 0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, 0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, 0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34, 0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f, 0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, 0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, 0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, 0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34, 0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d, 0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, 0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x33,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, 0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x35,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64, 0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x35,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70, 0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f, 0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x36,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d, 0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, 0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64, 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61, 0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c, 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x72,0x64,0x6d, 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, 0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64, 0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x73,0x61,0x6d, 0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x6d,0x61,0x70, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x72, 0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65, 0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20, 0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62, 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20, 0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d, 0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61, 0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61, 0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67, 0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74, 0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e, 0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66, 0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, 0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, 0x73,0x26,0x20,0x5f,0x31,0x32,0x37,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65, 0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, 0x6b,0x75,0x70,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29, 0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x20,0x5b, 0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74, 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, 0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x32,0x64, 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65, 0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29,0x5d,0x5d, 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, 0x74,0x3e,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78, 0x74,0x75,0x72,0x65,0x28,0x34,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x62,0x72,0x64,0x66, 0x5f,0x6c,0x75,0x74,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x35, 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69, 0x6c,0x65,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28, 0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64, 0x6d,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31, 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x68,0x61, 0x64,0x6f,0x77,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, 0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, 0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b,0x5b,0x70,0x6f,0x73, 0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d, 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b, 0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36, 0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20, 0x28,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68, 0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37, 0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35, 0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, 0x31,0x32,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, 0x32,0x36,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x5f,0x31,0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, 0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d, 0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x5f,0x31,0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x39,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, 0x31,0x32,0x37,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67, 0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74, 0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, 0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61, 0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39, 0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35, 0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, 0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61, 0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c, 0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x34,0x20,0x5f,0x31,0x33,0x33,0x34,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65, 0x74,0x65,0x78,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69, 0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, 0x61,0x6d,0x70,0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64, 0x6a,0x75,0x73,0x74,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39, 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34, 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30, 0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37, 0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c, 0x20,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, 0x28,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73, 0x74,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37, 0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36, 0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39, 0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34, 0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28, 0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, 0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f,0x61,0x64,0x6a,0x75,0x73,0x74, 0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33, 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33, 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39, 0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33, 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36, 0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x33, 0x33,0x34,0x29,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39, 0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35, 0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65, 0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x5f,0x61,0x66,0x74,0x65,0x72,0x5f, 0x61,0x64,0x6a,0x75,0x73,0x74,0x20,0x2b,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x74,0x6f, 0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38, 0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x37,0x20,0x3d, 0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32, 0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, 0x5f,0x31,0x33,0x36,0x38,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x35,0x37,0x20,0x3e, 0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x34,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x36, 0x38,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39, 0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32, 0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34, 0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32, 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, 0x33,0x38,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33, 0x35,0x37,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34, 0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x33,0x38,0x34,0x20,0x3d,0x20, 0x61,0x62,0x73,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, 0x31,0x33,0x38,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x78,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38,0x20, 0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38, 0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e, 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28, 0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30, 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31, 0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, 0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, 0x20,0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e, 0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20, 0x5f,0x31,0x34,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, 0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69, 0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x33,0x35,0x20,0x3d,0x20,0x66,0x61, 0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e, 0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x33, 0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, 0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e, 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34,0x34,0x20, 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, 0x65,0x28,0x5f,0x31,0x34,0x33,0x35,0x20,0x2b,0x20,0x5f,0x31,0x34,0x33,0x39,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34, 0x35,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, 0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x33,0x38, 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x34,0x34,0x2c,0x20,0x5f,0x31,0x34,0x33, 0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f, 0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c, 0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, 0x20,0x5f,0x31,0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34, 0x39,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64, 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, 0x35,0x31,0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x33,0x38, 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31, 0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76,0x70,0x5f, 0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20, 0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, 0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d, 0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29,0x29,0x20, 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x2e,0x7a,0x20, 0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, 0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32, 0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x20,0x5f,0x31,0x37,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x37,0x36,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f, 0x31,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28, 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f, 0x31,0x34,0x36,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, 0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39, 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31, 0x34,0x36,0x31,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29, 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29, 0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x73,0x68, 0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63, 0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70, 0x2c,0x20,0x5f,0x31,0x37,0x36,0x36,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34, 0x33,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2a,0x20,0x5f, 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f, 0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74, 0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x72, 0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a, 0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37, 0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x36,0x20,0x3d,0x20,0x69,0x6e,0x74, 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74, 0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20, 0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x38,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x31, 0x32,0x20,0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64, 0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35, 0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46, 0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, 0x68,0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e,0x30,0x29,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x31,0x33, 0x20,0x3d,0x20,0x5f,0x31,0x36,0x31,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x69,0x66,0x20,0x28,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f, 0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x2e, 0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61, 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c, 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d, 0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d, 0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x46, 0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75, 0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x33,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, 0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x35,0x20,0x3d,0x20,0x2d,0x69,0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x36,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x38,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x35,0x39, 0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x32,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c, 0x20,0x5f,0x31,0x33,0x37,0x34,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x39,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, 0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72, 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70, 0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x32,0x39,0x20,0x2a,0x20,0x5f,0x31, 0x36,0x35,0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, 0x5f,0x31,0x36,0x35,0x39,0x2e,0x79,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31, 0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20, 0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31, 0x36,0x32,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a,0x20, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x72,0x64, 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73, 0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72, 0x64,0x6d,0x73,0x6d,0x70,0x29,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34, 0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72, 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, 0x2b,0x3d,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x34,0x39, 0x39,0x39,0x39,0x39,0x39,0x34,0x30,0x33,0x39,0x35,0x33,0x35,0x35,0x32,0x32,0x34, 0x36,0x30,0x39,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x20,0x5f,0x31,0x37,0x31,0x34,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, 0x28,0x2d,0x5f,0x31,0x34,0x33,0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x52,0x20,0x3d,0x20, 0x5f,0x31,0x37,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, 0x66,0x20,0x28,0x5f,0x31,0x37,0x31,0x34,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30, 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, 0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, 0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, 0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50, 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34, 0x36,0x31,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x5f,0x32,0x37, 0x31,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, 0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35, 0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61, 0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f, 0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, 0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67, 0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29, 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, 0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; desc.label = "trile_shader"; if backend == { case .GLCORE; desc.vertex_func.source = xx *vs_trile_source_glsl430; desc.vertex_func.entry = "main"; desc.fragment_func.source = xx *fs_trile_source_glsl430; desc.fragment_func.entry = "main"; desc.attrs[0].base_type = .FLOAT; desc.attrs[0].glsl_name = "position"; desc.attrs[1].base_type = .FLOAT; desc.attrs[1].glsl_name = "normal"; desc.attrs[2].base_type = .FLOAT; desc.attrs[2].glsl_name = "centre"; desc.attrs[3].base_type = .FLOAT; desc.attrs[3].glsl_name = "instance"; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; desc.uniform_blocks[0].size = 144; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; desc.uniform_blocks[0].glsl_uniforms[0].array_count = 9; desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "trile_vs_params"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; desc.uniform_blocks[1].size = 160; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_271.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_271.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_271.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_271.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_271.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_271.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_271.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_271.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_271.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_271.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_271.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_271.planeType"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_271.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_271.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_271.time"; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; desc.uniform_blocks[3].size = 80; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1275.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1275.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1275.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1275.screen_w"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; desc.images[0].sample_type = .FLOAT; desc.images[1].stage = .FRAGMENT; desc.images[1].multisampled = false; desc.images[1].image_type = ._2D; desc.images[1].sample_type = .FLOAT; desc.images[2].stage = .FRAGMENT; desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .DEPTH; desc.images[3].stage = .FRAGMENT; desc.images[3].multisampled = false; desc.images[3].image_type = ._2D; desc.images[3].sample_type = .FLOAT; desc.images[4].stage = .FRAGMENT; desc.images[4].multisampled = false; desc.images[4].image_type = ._2D; desc.images[4].sample_type = .FLOAT; desc.images[5].stage = .FRAGMENT; desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .COMPARISON; desc.samplers[3].stage = .FRAGMENT; desc.samplers[3].sampler_type = .FILTERING; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[0].glsl_name = "triletex_trilesmp"; desc.image_sampler_pairs[1].stage = .FRAGMENT; desc.image_sampler_pairs[1].image_slot = 2; desc.image_sampler_pairs[1].sampler_slot = 2; desc.image_sampler_pairs[1].glsl_name = "shadowtex_shadowsmp"; desc.image_sampler_pairs[2].stage = .FRAGMENT; desc.image_sampler_pairs[2].image_slot = 3; desc.image_sampler_pairs[2].sampler_slot = 0; desc.image_sampler_pairs[2].glsl_name = "rdm_lookup_trilesmp"; desc.image_sampler_pairs[3].stage = .FRAGMENT; desc.image_sampler_pairs[3].image_slot = 1; desc.image_sampler_pairs[3].sampler_slot = 0; desc.image_sampler_pairs[3].glsl_name = "ssaotex_trilesmp"; desc.image_sampler_pairs[4].stage = .FRAGMENT; desc.image_sampler_pairs[4].image_slot = 4; desc.image_sampler_pairs[4].sampler_slot = 3; desc.image_sampler_pairs[4].glsl_name = "rdm_atlas_rdmsmp"; desc.image_sampler_pairs[5].stage = .FRAGMENT; desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; desc.image_sampler_pairs[5].glsl_name = "brdf_lut_rdmsmp"; case .GLES3; desc.vertex_func.source = xx *vs_trile_source_glsl300es; desc.vertex_func.entry = "main"; desc.fragment_func.source = xx *fs_trile_source_glsl300es; desc.fragment_func.entry = "main"; desc.attrs[0].base_type = .FLOAT; desc.attrs[0].glsl_name = "position"; desc.attrs[1].base_type = .FLOAT; desc.attrs[1].glsl_name = "normal"; desc.attrs[2].base_type = .FLOAT; desc.attrs[2].glsl_name = "centre"; desc.attrs[3].base_type = .FLOAT; desc.attrs[3].glsl_name = "instance"; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; desc.uniform_blocks[0].size = 144; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4; desc.uniform_blocks[0].glsl_uniforms[0].array_count = 9; desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "trile_vs_params"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; desc.uniform_blocks[1].size = 160; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_271.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_271.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_271.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_271.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_271.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_271.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_271.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_271.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_271.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_271.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_271.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_271.planeType"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_271.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_271.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_271.time"; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; desc.uniform_blocks[3].size = 80; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1275.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1275.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1275.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1275.screen_w"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; desc.images[0].sample_type = .FLOAT; desc.images[1].stage = .FRAGMENT; desc.images[1].multisampled = false; desc.images[1].image_type = ._2D; desc.images[1].sample_type = .FLOAT; desc.images[2].stage = .FRAGMENT; desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .DEPTH; desc.images[3].stage = .FRAGMENT; desc.images[3].multisampled = false; desc.images[3].image_type = ._2D; desc.images[3].sample_type = .FLOAT; desc.images[4].stage = .FRAGMENT; desc.images[4].multisampled = false; desc.images[4].image_type = ._2D; desc.images[4].sample_type = .FLOAT; desc.images[5].stage = .FRAGMENT; desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .COMPARISON; desc.samplers[3].stage = .FRAGMENT; desc.samplers[3].sampler_type = .FILTERING; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[0].glsl_name = "triletex_trilesmp"; desc.image_sampler_pairs[1].stage = .FRAGMENT; desc.image_sampler_pairs[1].image_slot = 2; desc.image_sampler_pairs[1].sampler_slot = 2; desc.image_sampler_pairs[1].glsl_name = "shadowtex_shadowsmp"; desc.image_sampler_pairs[2].stage = .FRAGMENT; desc.image_sampler_pairs[2].image_slot = 3; desc.image_sampler_pairs[2].sampler_slot = 0; desc.image_sampler_pairs[2].glsl_name = "rdm_lookup_trilesmp"; desc.image_sampler_pairs[3].stage = .FRAGMENT; desc.image_sampler_pairs[3].image_slot = 1; desc.image_sampler_pairs[3].sampler_slot = 0; desc.image_sampler_pairs[3].glsl_name = "ssaotex_trilesmp"; desc.image_sampler_pairs[4].stage = .FRAGMENT; desc.image_sampler_pairs[4].image_slot = 4; desc.image_sampler_pairs[4].sampler_slot = 3; desc.image_sampler_pairs[4].glsl_name = "rdm_atlas_rdmsmp"; desc.image_sampler_pairs[5].stage = .FRAGMENT; desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; desc.image_sampler_pairs[5].glsl_name = "brdf_lut_rdmsmp"; case .METAL_MACOS; desc.vertex_func.source = xx *vs_trile_source_metal_macos; desc.vertex_func.entry = "main0"; desc.fragment_func.source = xx *fs_trile_source_metal_macos; desc.fragment_func.entry = "main0"; desc.attrs[0].base_type = .FLOAT; desc.attrs[1].base_type = .FLOAT; desc.attrs[2].base_type = .FLOAT; desc.attrs[3].base_type = .FLOAT; desc.uniform_blocks[0].stage = .VERTEX; desc.uniform_blocks[0].layout = .STD140; desc.uniform_blocks[0].size = 144; desc.uniform_blocks[0].msl_buffer_n = 0; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; desc.uniform_blocks[1].size = 160; desc.uniform_blocks[1].msl_buffer_n = 0; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; desc.uniform_blocks[3].size = 80; desc.uniform_blocks[3].msl_buffer_n = 1; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; desc.images[0].sample_type = .FLOAT; desc.images[0].msl_texture_n = 2; desc.images[1].stage = .FRAGMENT; desc.images[1].multisampled = false; desc.images[1].image_type = ._2D; desc.images[1].sample_type = .FLOAT; desc.images[1].msl_texture_n = 4; desc.images[2].stage = .FRAGMENT; desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .DEPTH; desc.images[2].msl_texture_n = 3; desc.images[3].stage = .FRAGMENT; desc.images[3].multisampled = false; desc.images[3].image_type = ._2D; desc.images[3].sample_type = .FLOAT; desc.images[3].msl_texture_n = 0; desc.images[4].stage = .FRAGMENT; desc.images[4].multisampled = false; desc.images[4].image_type = ._2D; desc.images[4].sample_type = .FLOAT; desc.images[4].msl_texture_n = 1; desc.images[5].stage = .FRAGMENT; desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; desc.images[5].msl_texture_n = 5; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[0].msl_sampler_n = 0; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .COMPARISON; desc.samplers[2].msl_sampler_n = 2; desc.samplers[3].stage = .FRAGMENT; desc.samplers[3].sampler_type = .FILTERING; desc.samplers[3].msl_sampler_n = 1; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[1].stage = .FRAGMENT; desc.image_sampler_pairs[1].image_slot = 2; desc.image_sampler_pairs[1].sampler_slot = 2; desc.image_sampler_pairs[2].stage = .FRAGMENT; desc.image_sampler_pairs[2].image_slot = 3; desc.image_sampler_pairs[2].sampler_slot = 0; desc.image_sampler_pairs[3].stage = .FRAGMENT; desc.image_sampler_pairs[3].image_slot = 1; desc.image_sampler_pairs[3].sampler_slot = 0; desc.image_sampler_pairs[4].stage = .FRAGMENT; desc.image_sampler_pairs[4].image_slot = 4; desc.image_sampler_pairs[4].sampler_slot = 3; desc.image_sampler_pairs[5].stage = .FRAGMENT; desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; } return desc; }