From 37cc3715a0230568c63c218996abaf0b078f3b15 Mon Sep 17 00:00:00 2001 From: mchughalex <25671999+mchughalex@users.noreply.github.com> Date: Sun, 19 Jul 2026 19:54:55 +0100 Subject: [PATCH] render: sample the static sun map in the volumetric shaft march --- src/native/shaders/hdr.hlsl | 87 ++- .../spirv/skate3_native_shaders_spirv.h | 603 ++++++++++-------- src/skate3_native_scene_post.cpp | 20 +- 3 files changed, 438 insertions(+), 272 deletions(-) diff --git a/src/native/shaders/hdr.hlsl b/src/native/shaders/hdr.hlsl index 4e7489f..1be179f 100644 --- a/src/native/shaders/hdr.hlsl +++ b/src/native/shaders/hdr.hlsl @@ -26,7 +26,9 @@ // ps_vol_shafts half res: reconstruct the world position from depth, // march the camera->pixel ray with per-pixel jitter and // test each step's sun visibility against the CSM atlas -// and the static world-shadow map, real shadowed air, +// and the native static sun-shadow map (falling back to +// the baked world-shadow map outside its coverage), +// real shadowed air, // so occlusion never depends on on-screen silhouettes // (no ghosting around near characters) and beams appear // wherever shadow volumes cross the view ray. @@ -57,8 +59,8 @@ cbuffer C : register(b0) { }; // Per-frame shadow constant slice (the scene pass's b1; see scene.hlsl for // the authoritative layout); ps_vol_shafts samples sun visibility with the -// exact receiver math the materials use. Only the rows up to the static -// world-shadow transform are declared (the tail is water state). +// exact receiver math the materials use. Declared through the native static +// sun-shadow rows; the water/ocean material rows in between are padding. cbuffer S : register(b1) { float4 sh_x; // light-space X row (xyz) + translation (w) float4 sh_y; // light-space Y row @@ -79,6 +81,20 @@ cbuffer S : register(b1) { float4 dyn_wsx; // static world-shadow rows: u = dot(wp4, wsx)*0.5+0.5, float4 dyn_wsy; // v = dot(wp4, wsy)*-0.5+0.5, float4 dyn_wsz; // ray depth = dot(wp4, wsz) + // Rows 19-33 carry water/ocean material state, not consumed here. + float4 s_water[15]; + float4 sh_pcss; // contact-hardening knobs (surface receivers only) + float4 sh_pcss2; + // Native static sun-shadow map transform (authoritative layout and + // receiver math in scene.hlsl SampleStaticSun): world -> far-tile rows + // uc = dot(nsm_*.xyz, wp) + nsm_*.w, depth = dot(nsm_z.xyz, wp) + nsm_z.w. + // nsm_p.x = strength (0 = feature off / map not rendered this frame), + // nsm_p2.x = base receiver bias, nsm_p2.w = tile size in pixels. + float4 nsm_x; + float4 nsm_y; + float4 nsm_z; + float4 nsm_p; + float4 nsm_p2; }; Texture2D tex0 : register(t0); // per-pass primary input #ifdef VOL_MSAA @@ -101,6 +117,11 @@ Texture2D vol_plane : register(t3); // depth; sge(stored >= ray) = lit, uncovered texels hold the far clear). Texture2D ws_tex : register(t3); Texture2D lin_depth : register(t4); +// ps_vol_shafts: the native static sun-shadow atlas (the scene pass's t10, +// three tiles inner/mid/far left to right, x = depth along the material +// sun). White fallback = the far clear = lit everywhere when the map was +// not rendered this frame. +Texture2D nsm_tex : register(t4); SamplerState smp_point : register(s0); SamplerState smp_linear : register(s1); @@ -192,10 +213,55 @@ float WorldVis(float3 wp) { : 0.0; } +// Native static sun-shadow visibility (nsm_tex, the scene pass's t10): the +// static world rendered along the TRUE material sun, so static-geometry +// shafts align with the sun glow; the baked ws map above projects along +// the game's near-vertical utility axis, ~40 degrees off the sun, which +// skews its shadow volumes accordingly. Cascade select mirrors +// SampleStaticSun (three tiles sharing the origin, ratios 6/2/1); a single +// soft-free compare per step is enough for the jittered march average. +// Returns -1 outside the map or with the feature off. Uncovered texels +// hold the far clear = lit. +float NsmVis(float3 wp) { + if (nsm_p.x <= 0.0) { + return -1.0; + } + float2 uc_far = float2(dot(nsm_x.xyz, wp) + nsm_x.w, + dot(nsm_y.xyz, wp) + nsm_y.w); + if (max(abs(uc_far.x), abs(uc_far.y)) >= 0.99) { + return -1.0; + } + float2 uc0 = uc_far * 6.0; + float2 uc1 = uc_far * 2.0; + float tile; + float2 uc; + if (max(abs(uc0.x), abs(uc0.y)) < 0.99) { + tile = 0.0; + uc = uc0; + } else if (max(abs(uc1.x), abs(uc1.y)) < 0.99) { + tile = 1.0; + uc = uc1; + } else { + tile = 2.0; + uc = uc_far; + } + float2 suv = float2(uc.x / 6.0 + (tile * 2.0 + 1.0) / 6.0, + uc.y * -0.5 + 0.5); + // Keep the bilinear tap off the tile seams (the atlas is 3 tiles wide). + float hx = 0.1666667 / nsm_p2.w; + suv.x = clamp(suv.x, tile / 3.0 + hx, tile / 3.0 + 0.3333333 - hx); + float refd = dot(nsm_z.xyz, wp) + nsm_z.w - nsm_p2.x; + float s = nsm_tex.SampleLevel(smp_linear, suv, 0).x >= refd ? 1.0 : 0.0; + // The material receive bottoms out at 1 - strength; shadowed air follows + // the same authored blend so the shafts fade with the surface shadows. + return 1.0 - nsm_p.x * (1.0 - s); +} + // Shadow-marched volumetric sun shafts (half res). The camera->pixel ray // is marched with per-pixel jitter; each step's sun visibility comes from -// the CSM atlas and the static world-shadow map, so the beams are cast by -// real shadow volumes, never by on-screen silhouettes. Output = the +// the CSM atlas plus the native static sun map (baked ws map outside its +// coverage), so the beams are cast by real shadow volumes, never by +// on-screen silhouettes. Output = the // SHADOWED fraction x Henyey-Greenstein forward-scatter phase x marched // path fraction: the game's sky and fog already carry the authored // scattering of fully-lit air, so adding lit-air glow double-counts it @@ -227,9 +293,14 @@ float4 ps_vol_shafts(VSOut i) : SV_Target { } float3 sp = cam + rdir * ((float(k) + jitter) / steps * reach); float cv = CsmVis(sp); - float wv = WorldVis(sp); - if (cv >= 0.0 || wv >= 0.0) { - lit += min(cv < 0.0 ? 1.0 : cv, wv < 0.0 ? 1.0 : wv); + // Static shade: the native sun map where it covers (true material-sun + // axis), else the baked ws map. Never both: inside the sun map's range + // the two would draw the same caster's shadow volume on two different + // axes and read as a doubled shaft. + float nv = NsmVis(sp); + float sv = nv >= 0.0 ? nv : WorldVis(sp); + if (cv >= 0.0 || sv >= 0.0) { + lit += min(cv < 0.0 ? 1.0 : cv, sv < 0.0 ? 1.0 : sv); tot += 1.0; } } diff --git a/src/native/shaders/spirv/skate3_native_shaders_spirv.h b/src/native/shaders/spirv/skate3_native_shaders_spirv.h index e6cceee..8d97b17 100644 --- a/src/native/shaders/spirv/skate3_native_shaders_spirv.h +++ b/src/native/shaders/spirv/skate3_native_shaders_spirv.h @@ -17567,20 +17567,20 @@ static const uint32_t k_hdr_ps_tonemap[] = { 0x0000002a, 0x0000002a, 0x0004002b, 0x00000013, 0x00000035, 0x3fb47ae1, 0x00040017, 0x00000036, 0x00000013, 0x00000004, 0x000a001e, 0x00000005, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00040020, 0x00000037, 0x00000002, 0x00000005, - 0x00090019, 0x00000007, 0x00000013, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x00040020, 0x00000038, 0x00000000, 0x00000007, 0x0002001a, 0x0000000d, 0x00040020, - 0x00000039, 0x00000000, 0x0000000d, 0x00040020, 0x0000003a, 0x00000001, 0x0000001d, 0x00040020, - 0x0000003b, 0x00000003, 0x00000036, 0x00020013, 0x0000003c, 0x00030021, 0x0000003d, 0x0000003c, - 0x00040015, 0x0000003e, 0x00000020, 0x00000000, 0x0003001b, 0x00000010, 0x00000007, 0x00040020, + 0x00040015, 0x00000038, 0x00000020, 0x00000000, 0x00090019, 0x00000007, 0x00000013, 0x00000001, + 0x00000002, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00040020, 0x00000039, 0x00000000, + 0x00000007, 0x0002001a, 0x0000000d, 0x00040020, 0x0000003a, 0x00000000, 0x0000000d, 0x00040020, + 0x0000003b, 0x00000001, 0x0000001d, 0x00040020, 0x0000003c, 0x00000003, 0x00000036, 0x00020013, + 0x0000003d, 0x00030021, 0x0000003e, 0x0000003d, 0x0003001b, 0x00000010, 0x00000007, 0x00040020, 0x0000003f, 0x00000002, 0x00000036, 0x00040020, 0x00000040, 0x00000002, 0x00000013, 0x00020014, - 0x00000041, 0x0004003b, 0x00000037, 0x00000006, 0x00000002, 0x0004003b, 0x00000038, 0x00000008, - 0x00000000, 0x0004003b, 0x00000038, 0x00000009, 0x00000000, 0x0004003b, 0x00000038, 0x0000000a, - 0x00000000, 0x0004003b, 0x00000038, 0x0000000b, 0x00000000, 0x0004003b, 0x00000038, 0x0000000c, - 0x00000000, 0x0004003b, 0x00000039, 0x0000000e, 0x00000000, 0x0004003b, 0x00000039, 0x0000000f, - 0x00000000, 0x0004003b, 0x0000003a, 0x00000003, 0x00000001, 0x0004003b, 0x0000003b, 0x00000004, - 0x00000003, 0x0004002b, 0x0000003e, 0x00000042, 0x00000000, 0x0004002b, 0x00000013, 0x00000043, + 0x00000041, 0x0004003b, 0x00000037, 0x00000006, 0x00000002, 0x0004003b, 0x00000039, 0x00000008, + 0x00000000, 0x0004003b, 0x00000039, 0x00000009, 0x00000000, 0x0004003b, 0x00000039, 0x0000000a, + 0x00000000, 0x0004003b, 0x00000039, 0x0000000b, 0x00000000, 0x0004003b, 0x00000039, 0x0000000c, + 0x00000000, 0x0004003b, 0x0000003a, 0x0000000e, 0x00000000, 0x0004003b, 0x0000003a, 0x0000000f, + 0x00000000, 0x0004003b, 0x0000003b, 0x00000003, 0x00000001, 0x0004003b, 0x0000003c, 0x00000004, + 0x00000003, 0x0004002b, 0x00000038, 0x00000042, 0x00000000, 0x0004002b, 0x00000013, 0x00000043, 0x3ee00000, 0x0003002a, 0x00000041, 0x00000044, 0x00030029, 0x00000041, 0x00000045, 0x00050036, - 0x0000003c, 0x00000002, 0x00000000, 0x0000003d, 0x000200f8, 0x00000046, 0x0004003d, 0x0000001d, + 0x0000003d, 0x00000002, 0x00000000, 0x0000003e, 0x000200f8, 0x00000046, 0x0004003d, 0x0000001d, 0x00000047, 0x00000003, 0x000300f7, 0x00000048, 0x00000000, 0x000300fb, 0x00000042, 0x00000049, 0x000200f8, 0x00000049, 0x0004003d, 0x00000007, 0x0000004a, 0x0000000a, 0x0004003d, 0x0000000d, 0x0000004b, 0x0000000f, 0x00050056, 0x00000010, 0x0000004c, 0x0000004a, 0x0000004b, 0x00070058, @@ -17886,9 +17886,9 @@ static const uint32_t k_hdr_ps_vol_linearize_VOL_MSAA_1[] = { 0x00000010, 0x00000011, 0x0003003e, 0x00000004, 0x0000002a, 0x000100fd, 0x00010038, }; -// hdr.hlsl : ps_vol_shafts (8520 bytes) +// hdr.hlsl : ps_vol_shafts (11200 bytes) static const uint32_t k_hdr_ps_vol_shafts[] = { - 0x07230203, 0x00010300, 0x000e0000, 0x00000145, 0x00000000, 0x00020011, 0x00000001, 0x0006000b, + 0x07230203, 0x00010300, 0x000e0000, 0x000001af, 0x00000000, 0x00020011, 0x00000001, 0x0006000b, 0x00000001, 0x4c534c47, 0x6474732e, 0x3035342e, 0x00000000, 0x0003000e, 0x00000000, 0x00000001, 0x000a000f, 0x00000004, 0x00000002, 0x765f7370, 0x735f6c6f, 0x74666168, 0x00000073, 0x00000003, 0x00000004, 0x00000005, 0x00030010, 0x00000002, 0x00000007, 0x00030003, 0x00000005, 0x00000258, @@ -17909,252 +17909,335 @@ static const uint32_t k_hdr_ps_vol_shafts[] = { 0x0000000d, 0x5f6e7964, 0x6373696d, 0x00000000, 0x00050006, 0x00000008, 0x0000000e, 0x635f6873, 0x00726168, 0x00050006, 0x00000008, 0x0000000f, 0x765f6873, 0x00000032, 0x00050006, 0x00000008, 0x00000010, 0x5f6e7964, 0x00787377, 0x00050006, 0x00000008, 0x00000011, 0x5f6e7964, 0x00797377, - 0x00050006, 0x00000008, 0x00000012, 0x5f6e7964, 0x007a7377, 0x00030005, 0x00000009, 0x00000053, - 0x00060005, 0x0000000a, 0x65707974, 0x2e64322e, 0x67616d69, 0x00000065, 0x00040005, 0x0000000b, - 0x31786574, 0x00000064, 0x00050005, 0x0000000c, 0x64616873, 0x745f776f, 0x00007865, 0x00040005, - 0x0000000d, 0x745f7377, 0x00007865, 0x00060005, 0x0000000e, 0x65707974, 0x6d61732e, 0x72656c70, - 0x00000000, 0x00050005, 0x0000000f, 0x5f706d73, 0x6e696f70, 0x00000074, 0x00050005, 0x00000010, - 0x5f706d73, 0x656e696c, 0x00007261, 0x00070005, 0x00000004, 0x762e6e69, 0x542e7261, 0x4f435845, - 0x3044524f, 0x00000000, 0x00070005, 0x00000005, 0x2e74756f, 0x2e726176, 0x545f5653, 0x65677261, - 0x00000074, 0x00060005, 0x00000002, 0x765f7370, 0x735f6c6f, 0x74666168, 0x00000073, 0x00070005, - 0x00000011, 0x65707974, 0x6d61732e, 0x64656c70, 0x616d692e, 0x00006567, 0x00040047, 0x00000003, - 0x0000000b, 0x0000000f, 0x00040047, 0x00000004, 0x0000001e, 0x00000000, 0x00040047, 0x00000005, - 0x0000001e, 0x00000000, 0x00040047, 0x00000007, 0x00000022, 0x00000000, 0x00040047, 0x00000007, - 0x00000021, 0x00000000, 0x00040047, 0x00000009, 0x00000022, 0x00000000, 0x00040047, 0x00000009, - 0x00000021, 0x00000001, 0x00040047, 0x0000000b, 0x00000022, 0x00000002, 0x00040047, 0x0000000b, - 0x00000021, 0x00000000, 0x00040047, 0x0000000c, 0x00000022, 0x00000003, 0x00040047, 0x0000000c, - 0x00000021, 0x00000000, 0x00040047, 0x0000000d, 0x00000022, 0x00000004, 0x00040047, 0x0000000d, - 0x00000021, 0x00000000, 0x00040047, 0x0000000f, 0x00000022, 0x00000000, 0x00040047, 0x0000000f, - 0x00000021, 0x00000002, 0x00040047, 0x00000010, 0x00000022, 0x00000000, 0x00040047, 0x00000010, - 0x00000021, 0x00000003, 0x00050048, 0x00000006, 0x00000000, 0x00000023, 0x00000000, 0x00050048, - 0x00000006, 0x00000001, 0x00000023, 0x00000010, 0x00050048, 0x00000006, 0x00000002, 0x00000023, - 0x00000020, 0x00050048, 0x00000006, 0x00000003, 0x00000023, 0x00000030, 0x00050048, 0x00000006, - 0x00000004, 0x00000023, 0x00000040, 0x00050048, 0x00000006, 0x00000005, 0x00000023, 0x00000050, - 0x00050048, 0x00000006, 0x00000006, 0x00000023, 0x00000060, 0x00050048, 0x00000006, 0x00000007, - 0x00000023, 0x00000070, 0x00030047, 0x00000006, 0x00000002, 0x00050048, 0x00000008, 0x00000000, - 0x00000023, 0x00000000, 0x00050048, 0x00000008, 0x00000001, 0x00000023, 0x00000010, 0x00050048, - 0x00000008, 0x00000002, 0x00000023, 0x00000020, 0x00050048, 0x00000008, 0x00000003, 0x00000023, - 0x00000030, 0x00050048, 0x00000008, 0x00000004, 0x00000023, 0x00000040, 0x00050048, 0x00000008, - 0x00000005, 0x00000023, 0x00000050, 0x00050048, 0x00000008, 0x00000006, 0x00000023, 0x00000060, - 0x00050048, 0x00000008, 0x00000007, 0x00000023, 0x00000070, 0x00050048, 0x00000008, 0x00000008, - 0x00000023, 0x00000080, 0x00050048, 0x00000008, 0x00000009, 0x00000023, 0x00000090, 0x00050048, - 0x00000008, 0x0000000a, 0x00000023, 0x000000a0, 0x00050048, 0x00000008, 0x0000000b, 0x00000023, - 0x000000b0, 0x00050048, 0x00000008, 0x0000000c, 0x00000023, 0x000000c0, 0x00050048, 0x00000008, - 0x0000000d, 0x00000023, 0x000000d0, 0x00050048, 0x00000008, 0x0000000e, 0x00000023, 0x000000e0, - 0x00050048, 0x00000008, 0x0000000f, 0x00000023, 0x000000f0, 0x00050048, 0x00000008, 0x00000010, - 0x00000023, 0x00000100, 0x00050048, 0x00000008, 0x00000011, 0x00000023, 0x00000110, 0x00050048, - 0x00000008, 0x00000012, 0x00000023, 0x00000120, 0x00030047, 0x00000008, 0x00000002, 0x00040015, - 0x00000012, 0x00000020, 0x00000001, 0x0004002b, 0x00000012, 0x00000013, 0x00000001, 0x00030016, - 0x00000014, 0x00000020, 0x0004002b, 0x00000014, 0x00000015, 0x00000000, 0x0004002b, 0x00000012, - 0x00000016, 0x00000000, 0x0004002b, 0x00000014, 0x00000017, 0x40000000, 0x0004002b, 0x00000014, - 0x00000018, 0x3f800000, 0x0004002b, 0x00000012, 0x00000019, 0x00000003, 0x0004002b, 0x00000014, - 0x0000001a, 0x38d1b717, 0x0004002b, 0x00000012, 0x0000001b, 0x00000004, 0x0004002b, 0x00000012, - 0x0000001c, 0x00000005, 0x0004002b, 0x00000012, 0x0000001d, 0x00000006, 0x0004002b, 0x00000012, - 0x0000001e, 0x00000002, 0x0004002b, 0x00000012, 0x0000001f, 0x00000007, 0x0004002b, 0x00000014, - 0x00000020, 0x358637bd, 0x0004002b, 0x00000014, 0x00000021, 0x41000000, 0x0004002b, 0x00000014, - 0x00000022, 0x42800000, 0x0004002b, 0x00000012, 0x00000023, 0x00000040, 0x00020014, 0x00000024, - 0x00030029, 0x00000024, 0x00000025, 0x0004002b, 0x00000014, 0x00000026, 0x40200000, 0x00040017, - 0x00000027, 0x00000014, 0x00000004, 0x0007002c, 0x00000027, 0x00000028, 0x00000015, 0x00000015, - 0x00000015, 0x00000018, 0x0004002b, 0x00000014, 0x00000029, 0x3a83126f, 0x0004002b, 0x00000014, - 0x0000002a, 0x3fc00000, 0x0004002b, 0x00000014, 0x0000002b, 0x4253ee82, 0x0004002b, 0x00000014, - 0x0000002c, 0x3d897143, 0x0004002b, 0x00000014, 0x0000002d, 0x3bbf4590, 0x00040017, 0x0000002e, - 0x00000014, 0x00000002, 0x0005002c, 0x0000002e, 0x0000002f, 0x0000002c, 0x0000002d, 0x0005002c, - 0x0000002e, 0x00000030, 0x00000015, 0x00000015, 0x0004002b, 0x00000014, 0x00000031, 0x3f7d70a4, - 0x0004002b, 0x00000014, 0x00000032, 0x40400000, 0x0004002b, 0x00000014, 0x00000033, 0xbf800000, - 0x0004002b, 0x00000014, 0x00000034, 0xbf000000, 0x0004002b, 0x00000014, 0x00000035, 0x3f000000, - 0x0004002b, 0x00000014, 0x00000036, 0x3c75c28f, 0x0004002b, 0x00000014, 0x00000037, 0x3be56041, - 0x0004002b, 0x00000012, 0x00000038, 0x00000010, 0x0004002b, 0x00000012, 0x00000039, 0x00000011, - 0x0005002c, 0x0000002e, 0x0000003a, 0x00000018, 0x00000018, 0x0004002b, 0x00000012, 0x0000003b, - 0x00000012, 0x000a001e, 0x00000006, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, - 0x00000027, 0x00000027, 0x00000027, 0x00040020, 0x0000003c, 0x00000002, 0x00000006, 0x0015001e, - 0x00000008, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, - 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, - 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00040020, 0x0000003d, 0x00000002, 0x00000008, - 0x00090019, 0x0000000a, 0x00000014, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x00040020, 0x0000003e, 0x00000000, 0x0000000a, 0x0002001a, 0x0000000e, 0x00040020, - 0x0000003f, 0x00000000, 0x0000000e, 0x00040020, 0x00000040, 0x00000001, 0x00000027, 0x00040020, - 0x00000041, 0x00000001, 0x0000002e, 0x00040020, 0x00000042, 0x00000003, 0x00000027, 0x00020013, - 0x00000043, 0x00030021, 0x00000044, 0x00000043, 0x00040017, 0x00000045, 0x00000014, 0x00000003, - 0x0003001b, 0x00000011, 0x0000000a, 0x00040020, 0x00000046, 0x00000002, 0x00000027, 0x00040020, - 0x00000047, 0x00000002, 0x00000014, 0x00040017, 0x00000048, 0x00000024, 0x00000002, 0x0004003b, - 0x0000003c, 0x00000007, 0x00000002, 0x0004003b, 0x0000003d, 0x00000009, 0x00000002, 0x0004003b, - 0x0000003e, 0x0000000b, 0x00000000, 0x0004003b, 0x0000003e, 0x0000000c, 0x00000000, 0x0004003b, - 0x0000003e, 0x0000000d, 0x00000000, 0x0004003b, 0x0000003f, 0x0000000f, 0x00000000, 0x0004003b, - 0x0000003f, 0x00000010, 0x00000000, 0x0004003b, 0x00000040, 0x00000003, 0x00000001, 0x0004003b, - 0x00000041, 0x00000004, 0x00000001, 0x0004003b, 0x00000042, 0x00000005, 0x00000003, 0x00040015, - 0x00000049, 0x00000020, 0x00000000, 0x0004002b, 0x00000049, 0x0000004a, 0x00000000, 0x0004002b, - 0x00000014, 0x0000004b, 0x3e2aaaab, 0x00050036, 0x00000043, 0x00000002, 0x00000000, 0x00000044, - 0x000200f8, 0x0000004c, 0x0004003d, 0x00000027, 0x0000004d, 0x00000003, 0x0004003d, 0x0000002e, - 0x0000004e, 0x00000004, 0x000300f7, 0x0000004f, 0x00000000, 0x000300fb, 0x0000004a, 0x00000050, - 0x000200f8, 0x00000050, 0x0004003d, 0x0000000a, 0x00000051, 0x0000000b, 0x0004003d, 0x0000000e, - 0x00000052, 0x0000000f, 0x00050056, 0x00000011, 0x00000053, 0x00000051, 0x00000052, 0x00070058, - 0x00000027, 0x00000054, 0x00000053, 0x0000004e, 0x00000002, 0x00000015, 0x00050051, 0x00000014, - 0x00000055, 0x00000054, 0x00000000, 0x00050051, 0x00000014, 0x00000056, 0x0000004e, 0x00000000, - 0x00050085, 0x00000014, 0x00000057, 0x00000056, 0x00000017, 0x00050083, 0x00000014, 0x00000058, - 0x00000057, 0x00000018, 0x00050051, 0x00000014, 0x00000059, 0x0000004e, 0x00000001, 0x00050085, - 0x00000014, 0x0000005a, 0x00000059, 0x00000017, 0x00050083, 0x00000014, 0x0000005b, 0x00000018, - 0x0000005a, 0x00060041, 0x00000047, 0x0000005c, 0x00000007, 0x00000019, 0x00000016, 0x0004003d, - 0x00000014, 0x0000005d, 0x0000005c, 0x00060041, 0x00000047, 0x0000005e, 0x00000007, 0x00000019, - 0x00000013, 0x0004003d, 0x00000014, 0x0000005f, 0x0000005e, 0x0007000c, 0x00000014, 0x00000060, - 0x00000001, 0x00000050, 0x00000055, 0x0000001a, 0x00050088, 0x00000014, 0x00000061, 0x0000005f, - 0x00000060, 0x00050081, 0x00000014, 0x00000062, 0x0000005d, 0x00000061, 0x00050085, 0x00000014, - 0x00000063, 0x00000058, 0x00000055, 0x00050085, 0x00000014, 0x00000064, 0x0000005b, 0x00000055, - 0x00050085, 0x00000014, 0x00000065, 0x00000062, 0x00000055, 0x00050041, 0x00000046, 0x00000066, - 0x00000007, 0x0000001b, 0x0004003d, 0x00000027, 0x00000067, 0x00000066, 0x0005008e, 0x00000027, - 0x00000068, 0x00000067, 0x00000063, 0x00050041, 0x00000046, 0x00000069, 0x00000007, 0x0000001c, - 0x0004003d, 0x00000027, 0x0000006a, 0x00000069, 0x0005008e, 0x00000027, 0x0000006b, 0x0000006a, - 0x00000064, 0x00050081, 0x00000027, 0x0000006c, 0x00000068, 0x0000006b, 0x00050041, 0x00000046, - 0x0000006d, 0x00000007, 0x0000001d, 0x0004003d, 0x00000027, 0x0000006e, 0x0000006d, 0x0005008e, - 0x00000027, 0x0000006f, 0x0000006e, 0x00000065, 0x00050081, 0x00000027, 0x00000070, 0x0000006c, - 0x0000006f, 0x00050041, 0x00000046, 0x00000071, 0x00000007, 0x0000001f, 0x0004003d, 0x00000027, - 0x00000072, 0x00000071, 0x0005008e, 0x00000027, 0x00000073, 0x00000072, 0x00000055, 0x00050081, - 0x00000027, 0x00000074, 0x00000070, 0x00000073, 0x0008004f, 0x00000045, 0x00000075, 0x00000074, - 0x00000074, 0x00000000, 0x00000001, 0x00000002, 0x00050051, 0x00000014, 0x00000076, 0x00000074, - 0x00000003, 0x0007000c, 0x00000014, 0x00000077, 0x00000001, 0x00000050, 0x00000076, 0x00000020, - 0x00060050, 0x00000045, 0x00000078, 0x00000077, 0x00000077, 0x00000077, 0x00050088, 0x00000045, - 0x00000079, 0x00000075, 0x00000078, 0x00050041, 0x00000046, 0x0000007a, 0x00000007, 0x00000013, - 0x0004003d, 0x00000027, 0x0000007b, 0x0000007a, 0x0008004f, 0x00000045, 0x0000007c, 0x0000007b, - 0x0000007b, 0x00000000, 0x00000001, 0x00000002, 0x00050083, 0x00000045, 0x0000007d, 0x00000079, - 0x0000007c, 0x0006000c, 0x00000014, 0x0000007e, 0x00000001, 0x00000042, 0x0000007d, 0x0007000c, - 0x00000014, 0x0000007f, 0x00000001, 0x00000050, 0x0000007e, 0x0000001a, 0x00060050, 0x00000045, - 0x00000080, 0x0000007f, 0x0000007f, 0x0000007f, 0x00050088, 0x00000045, 0x00000081, 0x0000007d, - 0x00000080, 0x00060041, 0x00000047, 0x00000082, 0x00000007, 0x00000013, 0x00000019, 0x0004003d, - 0x00000014, 0x00000083, 0x00000082, 0x0007000c, 0x00000014, 0x00000084, 0x00000001, 0x0000004f, - 0x0000007e, 0x00000083, 0x00060041, 0x00000047, 0x00000085, 0x00000007, 0x0000001e, 0x00000016, - 0x0004003d, 0x00000014, 0x00000086, 0x00000085, 0x0008000c, 0x00000014, 0x00000087, 0x00000001, - 0x0000002b, 0x00000086, 0x00000021, 0x00000022, 0x0007004f, 0x0000002e, 0x00000088, 0x0000004d, - 0x0000004d, 0x00000000, 0x00000001, 0x00050094, 0x00000014, 0x00000089, 0x00000088, 0x0000002f, - 0x0006000c, 0x00000014, 0x0000008a, 0x00000001, 0x0000000a, 0x00000089, 0x00050085, 0x00000014, - 0x0000008b, 0x0000002b, 0x0000008a, 0x0006000c, 0x00000014, 0x0000008c, 0x00000001, 0x0000000a, - 0x0000008b, 0x000200f9, 0x0000008d, 0x000200f8, 0x0000008d, 0x000700f5, 0x00000014, 0x0000008e, - 0x00000015, 0x00000050, 0x0000008f, 0x00000090, 0x000700f5, 0x00000014, 0x00000091, 0x00000015, - 0x00000050, 0x00000092, 0x00000090, 0x000700f5, 0x00000012, 0x00000093, 0x00000016, 0x00000050, - 0x00000094, 0x00000090, 0x000500b1, 0x00000024, 0x00000095, 0x00000093, 0x00000023, 0x000400f6, - 0x00000096, 0x00000090, 0x00000002, 0x000400fa, 0x00000095, 0x00000097, 0x00000096, 0x000200f8, - 0x00000097, 0x0004006e, 0x00000012, 0x00000098, 0x00000087, 0x000500af, 0x00000024, 0x00000099, - 0x00000093, 0x00000098, 0x000300f7, 0x0000009a, 0x00000000, 0x000400fa, 0x00000099, 0x0000009b, - 0x0000009a, 0x000200f8, 0x0000009b, 0x000200f9, 0x00000096, 0x000200f8, 0x0000009a, 0x0004006f, - 0x00000014, 0x0000009c, 0x00000093, 0x00050081, 0x00000014, 0x0000009d, 0x0000009c, 0x0000008c, - 0x00050088, 0x00000014, 0x0000009e, 0x0000009d, 0x00000087, 0x00050085, 0x00000014, 0x0000009f, - 0x0000009e, 0x00000084, 0x0005008e, 0x00000045, 0x000000a0, 0x00000081, 0x0000009f, 0x00050081, - 0x00000045, 0x000000a1, 0x0000007c, 0x000000a0, 0x000300f7, 0x000000a2, 0x00000000, 0x000300fb, - 0x0000004a, 0x000000a3, 0x000200f8, 0x000000a3, 0x00050041, 0x00000046, 0x000000a4, 0x00000009, - 0x00000016, 0x0004003d, 0x00000027, 0x000000a5, 0x000000a4, 0x0008004f, 0x00000045, 0x000000a6, - 0x000000a5, 0x000000a5, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000014, 0x000000a7, - 0x000000a6, 0x000000a1, 0x00060041, 0x00000047, 0x000000a8, 0x00000009, 0x00000016, 0x00000019, - 0x0004003d, 0x00000014, 0x000000a9, 0x000000a8, 0x00050081, 0x00000014, 0x000000aa, 0x000000a7, - 0x000000a9, 0x00050041, 0x00000046, 0x000000ab, 0x00000009, 0x00000013, 0x0004003d, 0x00000027, - 0x000000ac, 0x000000ab, 0x0008004f, 0x00000045, 0x000000ad, 0x000000ac, 0x000000ac, 0x00000000, - 0x00000001, 0x00000002, 0x00050094, 0x00000014, 0x000000ae, 0x000000ad, 0x000000a1, 0x00060041, - 0x00000047, 0x000000af, 0x00000009, 0x00000013, 0x00000019, 0x0004003d, 0x00000014, 0x000000b0, - 0x000000af, 0x00050081, 0x00000014, 0x000000b1, 0x000000ae, 0x000000b0, 0x00050050, 0x0000002e, - 0x000000b2, 0x000000aa, 0x000000b1, 0x00050041, 0x00000046, 0x000000b3, 0x00000009, 0x0000001b, - 0x0004003d, 0x00000027, 0x000000b4, 0x000000b3, 0x0007004f, 0x0000002e, 0x000000b5, 0x000000b4, - 0x000000b4, 0x00000000, 0x00000001, 0x00050085, 0x0000002e, 0x000000b6, 0x000000b2, 0x000000b5, - 0x0007004f, 0x0000002e, 0x000000b7, 0x000000b4, 0x000000b4, 0x00000002, 0x00000003, 0x00050081, - 0x0000002e, 0x000000b8, 0x000000b6, 0x000000b7, 0x00050051, 0x00000014, 0x000000b9, 0x000000b8, - 0x00000000, 0x0006000c, 0x00000014, 0x000000ba, 0x00000001, 0x00000004, 0x000000b9, 0x00050051, - 0x00000014, 0x000000bb, 0x000000b8, 0x00000001, 0x0006000c, 0x00000014, 0x000000bc, 0x00000001, - 0x00000004, 0x000000bb, 0x0007000c, 0x00000014, 0x000000bd, 0x00000001, 0x00000050, 0x000000ba, - 0x000000bc, 0x000500b8, 0x00000024, 0x000000be, 0x000000bd, 0x00000031, 0x00050050, 0x00000048, - 0x000000bf, 0x000000be, 0x000000be, 0x000600a9, 0x0000002e, 0x000000c0, 0x000000bf, 0x000000b8, - 0x00000030, 0x000600a9, 0x00000014, 0x000000c1, 0x000000be, 0x00000032, 0x00000015, 0x00050041, - 0x00000046, 0x000000c2, 0x00000009, 0x00000019, 0x0004003d, 0x00000027, 0x000000c3, 0x000000c2, - 0x0007004f, 0x0000002e, 0x000000c4, 0x000000c3, 0x000000c3, 0x00000000, 0x00000001, 0x00050085, - 0x0000002e, 0x000000c5, 0x000000b2, 0x000000c4, 0x0007004f, 0x0000002e, 0x000000c6, 0x000000c3, - 0x000000c3, 0x00000002, 0x00000003, 0x00050081, 0x0000002e, 0x000000c7, 0x000000c5, 0x000000c6, - 0x00050051, 0x00000014, 0x000000c8, 0x000000c7, 0x00000000, 0x0006000c, 0x00000014, 0x000000c9, - 0x00000001, 0x00000004, 0x000000c8, 0x00050051, 0x00000014, 0x000000ca, 0x000000c7, 0x00000001, - 0x0006000c, 0x00000014, 0x000000cb, 0x00000001, 0x00000004, 0x000000ca, 0x0007000c, 0x00000014, - 0x000000cc, 0x00000001, 0x00000050, 0x000000c9, 0x000000cb, 0x000500b8, 0x00000024, 0x000000cd, - 0x000000cc, 0x00000031, 0x00050050, 0x00000048, 0x000000ce, 0x000000cd, 0x000000cd, 0x000600a9, - 0x0000002e, 0x000000cf, 0x000000ce, 0x000000c7, 0x000000c0, 0x000600a9, 0x00000014, 0x000000d0, - 0x000000cd, 0x00000017, 0x000000c1, 0x0006000c, 0x00000014, 0x000000d1, 0x00000001, 0x00000004, - 0x000000aa, 0x0006000c, 0x00000014, 0x000000d2, 0x00000001, 0x00000004, 0x000000b1, 0x0007000c, - 0x00000014, 0x000000d3, 0x00000001, 0x00000050, 0x000000d1, 0x000000d2, 0x000500b8, 0x00000024, - 0x000000d4, 0x000000d3, 0x00000031, 0x00050050, 0x00000048, 0x000000d5, 0x000000d4, 0x000000d4, - 0x000600a9, 0x0000002e, 0x000000d6, 0x000000d5, 0x000000b2, 0x000000cf, 0x000600a9, 0x00000014, - 0x000000d7, 0x000000d4, 0x00000018, 0x000000d0, 0x000500bc, 0x00000024, 0x000000d8, 0x000000d7, - 0x00000015, 0x000300f7, 0x000000d9, 0x00000000, 0x000400fa, 0x000000d8, 0x000000da, 0x000000d9, - 0x000200f8, 0x000000da, 0x000200f9, 0x000000a2, 0x000200f8, 0x000000d9, 0x00050051, 0x00000014, - 0x000000db, 0x000000d6, 0x00000000, 0x00050085, 0x00000014, 0x000000dc, 0x000000d7, 0x00000017, - 0x00050083, 0x00000014, 0x000000dd, 0x000000dc, 0x00000018, 0x00050081, 0x00000014, 0x000000de, - 0x000000db, 0x000000dd, 0x00050085, 0x00000014, 0x000000df, 0x0000004b, 0x000000de, 0x00050051, - 0x00000014, 0x000000e0, 0x000000d6, 0x00000001, 0x00050085, 0x00000014, 0x000000e1, 0x000000e0, - 0x00000034, 0x00050081, 0x00000014, 0x000000e2, 0x000000e1, 0x00000035, 0x00050050, 0x0000002e, - 0x000000e3, 0x000000df, 0x000000e2, 0x00050041, 0x00000046, 0x000000e4, 0x00000009, 0x0000001e, - 0x0004003d, 0x00000027, 0x000000e5, 0x000000e4, 0x0008004f, 0x00000045, 0x000000e6, 0x000000e5, - 0x000000e5, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000014, 0x000000e7, 0x000000e6, - 0x000000a1, 0x00060041, 0x00000047, 0x000000e8, 0x00000009, 0x0000001e, 0x00000019, 0x0004003d, - 0x00000014, 0x000000e9, 0x000000e8, 0x00050081, 0x00000014, 0x000000ea, 0x000000e7, 0x000000e9, - 0x000500ba, 0x00000024, 0x000000eb, 0x000000d7, 0x0000002a, 0x000600a9, 0x00000014, 0x000000ec, - 0x000000eb, 0x00000036, 0x00000037, 0x00050083, 0x00000014, 0x000000ed, 0x000000ea, 0x000000ec, - 0x0004003d, 0x0000000a, 0x000000ee, 0x0000000c, 0x0004003d, 0x0000000e, 0x000000ef, 0x00000010, - 0x00050056, 0x00000011, 0x000000f0, 0x000000ee, 0x000000ef, 0x00070058, 0x00000027, 0x000000f1, - 0x000000f0, 0x000000e3, 0x00000002, 0x00000015, 0x00050051, 0x00000014, 0x000000f2, 0x000000f1, - 0x00000000, 0x000500be, 0x00000024, 0x000000f3, 0x000000f2, 0x000000ed, 0x000600a9, 0x00000014, - 0x000000f4, 0x000000f3, 0x00000018, 0x00000015, 0x00050051, 0x00000014, 0x000000f5, 0x000000f1, - 0x00000001, 0x00050083, 0x00000014, 0x000000f6, 0x00000018, 0x000000f5, 0x00050081, 0x00000014, - 0x000000f7, 0x000000f4, 0x000000f6, 0x0008000c, 0x00000014, 0x000000f8, 0x00000001, 0x0000002b, - 0x000000f7, 0x00000015, 0x00000018, 0x000200f9, 0x000000a2, 0x000200f8, 0x000000a2, 0x000700f5, - 0x00000014, 0x000000f9, 0x00000033, 0x000000da, 0x000000f8, 0x000000d9, 0x000300f7, 0x000000fa, - 0x00000000, 0x000300fb, 0x0000004a, 0x000000fb, 0x000200f8, 0x000000fb, 0x00050051, 0x00000014, - 0x000000fc, 0x000000a1, 0x00000000, 0x00050051, 0x00000014, 0x000000fd, 0x000000a1, 0x00000001, - 0x00050051, 0x00000014, 0x000000fe, 0x000000a1, 0x00000002, 0x00070050, 0x00000027, 0x000000ff, - 0x000000fc, 0x000000fd, 0x000000fe, 0x00000018, 0x00050041, 0x00000046, 0x00000100, 0x00000009, - 0x00000038, 0x0004003d, 0x00000027, 0x00000101, 0x00000100, 0x00050094, 0x00000014, 0x00000102, - 0x000000ff, 0x00000101, 0x00050085, 0x00000014, 0x00000103, 0x00000102, 0x00000035, 0x00050081, - 0x00000014, 0x00000104, 0x00000103, 0x00000035, 0x00050041, 0x00000046, 0x00000105, 0x00000009, - 0x00000039, 0x0004003d, 0x00000027, 0x00000106, 0x00000105, 0x00050094, 0x00000014, 0x00000107, - 0x000000ff, 0x00000106, 0x00050085, 0x00000014, 0x00000108, 0x00000107, 0x00000034, 0x00050081, - 0x00000014, 0x00000109, 0x00000108, 0x00000035, 0x00050050, 0x0000002e, 0x0000010a, 0x00000104, - 0x00000109, 0x0008000c, 0x0000002e, 0x0000010b, 0x00000001, 0x0000002b, 0x0000010a, 0x00000030, - 0x0000003a, 0x000500b6, 0x00000048, 0x0000010c, 0x0000010b, 0x0000010a, 0x0004009a, 0x00000024, - 0x0000010d, 0x0000010c, 0x000300f7, 0x0000010e, 0x00000000, 0x000400fa, 0x0000010d, 0x0000010f, - 0x0000010e, 0x000200f8, 0x0000010f, 0x000200f9, 0x000000fa, 0x000200f8, 0x0000010e, 0x0004003d, - 0x0000000a, 0x00000110, 0x0000000d, 0x0004003d, 0x0000000e, 0x00000111, 0x0000000f, 0x00050056, - 0x00000011, 0x00000112, 0x00000110, 0x00000111, 0x00070058, 0x00000027, 0x00000113, 0x00000112, - 0x0000010a, 0x00000002, 0x00000015, 0x00050051, 0x00000014, 0x00000114, 0x00000113, 0x00000000, - 0x00050041, 0x00000046, 0x00000115, 0x00000009, 0x0000003b, 0x0004003d, 0x00000027, 0x00000116, - 0x00000115, 0x00050094, 0x00000014, 0x00000117, 0x000000ff, 0x00000116, 0x000500be, 0x00000024, - 0x00000118, 0x00000114, 0x00000117, 0x000600a9, 0x00000014, 0x00000119, 0x00000118, 0x00000018, - 0x00000015, 0x000200f9, 0x000000fa, 0x000200f8, 0x000000fa, 0x000700f5, 0x00000014, 0x0000011a, - 0x00000033, 0x0000010f, 0x00000119, 0x0000010e, 0x000500b9, 0x00000024, 0x0000011b, 0x000000f9, - 0x00000015, 0x000300f7, 0x0000011c, 0x00000000, 0x000400fa, 0x0000011b, 0x0000011d, 0x0000011c, - 0x000200f8, 0x0000011d, 0x000500be, 0x00000024, 0x0000011e, 0x0000011a, 0x00000015, 0x000200f9, - 0x0000011c, 0x000200f8, 0x0000011c, 0x000700f5, 0x00000024, 0x0000011f, 0x00000025, 0x000000fa, - 0x0000011e, 0x0000011d, 0x000300f7, 0x00000120, 0x00000000, 0x000400fa, 0x0000011f, 0x00000121, - 0x00000120, 0x000200f8, 0x00000121, 0x000500b8, 0x00000024, 0x00000122, 0x000000f9, 0x00000015, - 0x000600a9, 0x00000014, 0x00000123, 0x00000122, 0x00000018, 0x000000f9, 0x000500b8, 0x00000024, - 0x00000124, 0x0000011a, 0x00000015, 0x000600a9, 0x00000014, 0x00000125, 0x00000124, 0x00000018, - 0x0000011a, 0x0007000c, 0x00000014, 0x00000126, 0x00000001, 0x0000004f, 0x00000123, 0x00000125, - 0x00050081, 0x00000014, 0x00000127, 0x00000091, 0x00000126, 0x00050081, 0x00000014, 0x00000128, - 0x0000008e, 0x00000018, 0x000200f9, 0x00000120, 0x000200f8, 0x00000120, 0x000700f5, 0x00000014, - 0x0000008f, 0x0000008e, 0x0000011c, 0x00000128, 0x00000121, 0x000700f5, 0x00000014, 0x00000092, - 0x00000091, 0x0000011c, 0x00000127, 0x00000121, 0x000200f9, 0x00000090, 0x000200f8, 0x00000090, - 0x00050080, 0x00000012, 0x00000094, 0x00000093, 0x00000013, 0x000200f9, 0x0000008d, 0x000200f8, - 0x00000096, 0x000500b8, 0x00000024, 0x00000129, 0x0000008e, 0x00000026, 0x000300f7, 0x0000012a, - 0x00000000, 0x000400fa, 0x00000129, 0x0000012b, 0x0000012a, 0x000200f8, 0x0000012b, 0x000200f9, - 0x0000004f, 0x000200f8, 0x0000012a, 0x00050041, 0x00000046, 0x0000012c, 0x00000009, 0x0000001f, - 0x0004003d, 0x00000027, 0x0000012d, 0x0000012c, 0x0008004f, 0x00000045, 0x0000012e, 0x0000012d, - 0x0000012d, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000014, 0x0000012f, 0x00000081, - 0x0000012e, 0x00060041, 0x00000047, 0x00000130, 0x00000007, 0x0000001e, 0x0000001e, 0x0004003d, - 0x00000014, 0x00000131, 0x00000130, 0x00050085, 0x00000014, 0x00000132, 0x00000131, 0x00000131, - 0x00050083, 0x00000014, 0x00000133, 0x00000018, 0x00000132, 0x00050081, 0x00000014, 0x00000134, - 0x00000018, 0x00000132, 0x00050085, 0x00000014, 0x00000135, 0x00000017, 0x00000131, 0x00050085, - 0x00000014, 0x00000136, 0x00000135, 0x0000012f, 0x00050083, 0x00000014, 0x00000137, 0x00000134, - 0x00000136, 0x0007000c, 0x00000014, 0x00000138, 0x00000001, 0x00000050, 0x00000137, 0x00000029, - 0x0007000c, 0x00000014, 0x00000139, 0x00000001, 0x0000001a, 0x00000138, 0x0000002a, 0x00050088, - 0x00000014, 0x0000013a, 0x00000133, 0x00000139, 0x0007000c, 0x00000014, 0x0000013b, 0x00000001, - 0x0000004f, 0x0000013a, 0x00000017, 0x00050088, 0x00000014, 0x0000013c, 0x00000091, 0x0000008e, - 0x00050083, 0x00000014, 0x0000013d, 0x00000018, 0x0000013c, 0x00050085, 0x00000014, 0x0000013e, - 0x0000013d, 0x0000013b, 0x0007000c, 0x00000014, 0x0000013f, 0x00000001, 0x00000050, 0x00000083, - 0x00000018, 0x00050088, 0x00000014, 0x00000140, 0x00000084, 0x0000013f, 0x0008000c, 0x00000014, - 0x00000141, 0x00000001, 0x0000002b, 0x00000140, 0x00000015, 0x00000018, 0x00050085, 0x00000014, - 0x00000142, 0x0000013e, 0x00000141, 0x00070050, 0x00000027, 0x00000143, 0x00000142, 0x00000142, - 0x00000142, 0x00000018, 0x000200f9, 0x0000004f, 0x000200f8, 0x0000004f, 0x000700f5, 0x00000027, - 0x00000144, 0x00000028, 0x0000012b, 0x00000143, 0x0000012a, 0x0003003e, 0x00000005, 0x00000144, - 0x000100fd, 0x00010038, + 0x00050006, 0x00000008, 0x00000012, 0x5f6e7964, 0x007a7377, 0x00050006, 0x00000008, 0x00000013, + 0x61775f73, 0x00726574, 0x00050006, 0x00000008, 0x00000014, 0x705f6873, 0x00737363, 0x00060006, + 0x00000008, 0x00000015, 0x705f6873, 0x32737363, 0x00000000, 0x00050006, 0x00000008, 0x00000016, + 0x5f6d736e, 0x00000078, 0x00050006, 0x00000008, 0x00000017, 0x5f6d736e, 0x00000079, 0x00050006, + 0x00000008, 0x00000018, 0x5f6d736e, 0x0000007a, 0x00050006, 0x00000008, 0x00000019, 0x5f6d736e, + 0x00000070, 0x00050006, 0x00000008, 0x0000001a, 0x5f6d736e, 0x00003270, 0x00030005, 0x00000009, + 0x00000053, 0x00060005, 0x0000000a, 0x65707974, 0x2e64322e, 0x67616d69, 0x00000065, 0x00040005, + 0x0000000b, 0x31786574, 0x00000064, 0x00050005, 0x0000000c, 0x64616873, 0x745f776f, 0x00007865, + 0x00040005, 0x0000000d, 0x745f7377, 0x00007865, 0x00040005, 0x0000000e, 0x5f6d736e, 0x00786574, + 0x00060005, 0x0000000f, 0x65707974, 0x6d61732e, 0x72656c70, 0x00000000, 0x00050005, 0x00000010, + 0x5f706d73, 0x6e696f70, 0x00000074, 0x00050005, 0x00000011, 0x5f706d73, 0x656e696c, 0x00007261, + 0x00070005, 0x00000004, 0x762e6e69, 0x542e7261, 0x4f435845, 0x3044524f, 0x00000000, 0x00070005, + 0x00000005, 0x2e74756f, 0x2e726176, 0x545f5653, 0x65677261, 0x00000074, 0x00060005, 0x00000002, + 0x765f7370, 0x735f6c6f, 0x74666168, 0x00000073, 0x00070005, 0x00000012, 0x65707974, 0x6d61732e, + 0x64656c70, 0x616d692e, 0x00006567, 0x00040047, 0x00000003, 0x0000000b, 0x0000000f, 0x00040047, + 0x00000004, 0x0000001e, 0x00000000, 0x00040047, 0x00000005, 0x0000001e, 0x00000000, 0x00040047, + 0x00000007, 0x00000022, 0x00000000, 0x00040047, 0x00000007, 0x00000021, 0x00000000, 0x00040047, + 0x00000009, 0x00000022, 0x00000000, 0x00040047, 0x00000009, 0x00000021, 0x00000001, 0x00040047, + 0x0000000b, 0x00000022, 0x00000002, 0x00040047, 0x0000000b, 0x00000021, 0x00000000, 0x00040047, + 0x0000000c, 0x00000022, 0x00000003, 0x00040047, 0x0000000c, 0x00000021, 0x00000000, 0x00040047, + 0x0000000d, 0x00000022, 0x00000004, 0x00040047, 0x0000000d, 0x00000021, 0x00000000, 0x00040047, + 0x0000000e, 0x00000022, 0x00000005, 0x00040047, 0x0000000e, 0x00000021, 0x00000000, 0x00040047, + 0x00000010, 0x00000022, 0x00000000, 0x00040047, 0x00000010, 0x00000021, 0x00000002, 0x00040047, + 0x00000011, 0x00000022, 0x00000000, 0x00040047, 0x00000011, 0x00000021, 0x00000003, 0x00050048, + 0x00000006, 0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x00000006, 0x00000001, 0x00000023, + 0x00000010, 0x00050048, 0x00000006, 0x00000002, 0x00000023, 0x00000020, 0x00050048, 0x00000006, + 0x00000003, 0x00000023, 0x00000030, 0x00050048, 0x00000006, 0x00000004, 0x00000023, 0x00000040, + 0x00050048, 0x00000006, 0x00000005, 0x00000023, 0x00000050, 0x00050048, 0x00000006, 0x00000006, + 0x00000023, 0x00000060, 0x00050048, 0x00000006, 0x00000007, 0x00000023, 0x00000070, 0x00030047, + 0x00000006, 0x00000002, 0x00040047, 0x00000013, 0x00000006, 0x00000010, 0x00050048, 0x00000008, + 0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x00000008, 0x00000001, 0x00000023, 0x00000010, + 0x00050048, 0x00000008, 0x00000002, 0x00000023, 0x00000020, 0x00050048, 0x00000008, 0x00000003, + 0x00000023, 0x00000030, 0x00050048, 0x00000008, 0x00000004, 0x00000023, 0x00000040, 0x00050048, + 0x00000008, 0x00000005, 0x00000023, 0x00000050, 0x00050048, 0x00000008, 0x00000006, 0x00000023, + 0x00000060, 0x00050048, 0x00000008, 0x00000007, 0x00000023, 0x00000070, 0x00050048, 0x00000008, + 0x00000008, 0x00000023, 0x00000080, 0x00050048, 0x00000008, 0x00000009, 0x00000023, 0x00000090, + 0x00050048, 0x00000008, 0x0000000a, 0x00000023, 0x000000a0, 0x00050048, 0x00000008, 0x0000000b, + 0x00000023, 0x000000b0, 0x00050048, 0x00000008, 0x0000000c, 0x00000023, 0x000000c0, 0x00050048, + 0x00000008, 0x0000000d, 0x00000023, 0x000000d0, 0x00050048, 0x00000008, 0x0000000e, 0x00000023, + 0x000000e0, 0x00050048, 0x00000008, 0x0000000f, 0x00000023, 0x000000f0, 0x00050048, 0x00000008, + 0x00000010, 0x00000023, 0x00000100, 0x00050048, 0x00000008, 0x00000011, 0x00000023, 0x00000110, + 0x00050048, 0x00000008, 0x00000012, 0x00000023, 0x00000120, 0x00050048, 0x00000008, 0x00000013, + 0x00000023, 0x00000130, 0x00050048, 0x00000008, 0x00000014, 0x00000023, 0x00000220, 0x00050048, + 0x00000008, 0x00000015, 0x00000023, 0x00000230, 0x00050048, 0x00000008, 0x00000016, 0x00000023, + 0x00000240, 0x00050048, 0x00000008, 0x00000017, 0x00000023, 0x00000250, 0x00050048, 0x00000008, + 0x00000018, 0x00000023, 0x00000260, 0x00050048, 0x00000008, 0x00000019, 0x00000023, 0x00000270, + 0x00050048, 0x00000008, 0x0000001a, 0x00000023, 0x00000280, 0x00030047, 0x00000008, 0x00000002, + 0x00040015, 0x00000014, 0x00000020, 0x00000001, 0x0004002b, 0x00000014, 0x00000015, 0x00000001, + 0x00030016, 0x00000016, 0x00000020, 0x0004002b, 0x00000016, 0x00000017, 0x00000000, 0x0004002b, + 0x00000014, 0x00000018, 0x00000000, 0x0004002b, 0x00000016, 0x00000019, 0x40000000, 0x0004002b, + 0x00000016, 0x0000001a, 0x3f800000, 0x0004002b, 0x00000014, 0x0000001b, 0x00000003, 0x0004002b, + 0x00000016, 0x0000001c, 0x38d1b717, 0x0004002b, 0x00000014, 0x0000001d, 0x00000004, 0x0004002b, + 0x00000014, 0x0000001e, 0x00000005, 0x0004002b, 0x00000014, 0x0000001f, 0x00000006, 0x0004002b, + 0x00000014, 0x00000020, 0x00000002, 0x0004002b, 0x00000014, 0x00000021, 0x00000007, 0x0004002b, + 0x00000016, 0x00000022, 0x358637bd, 0x0004002b, 0x00000016, 0x00000023, 0x41000000, 0x0004002b, + 0x00000016, 0x00000024, 0x42800000, 0x0004002b, 0x00000014, 0x00000025, 0x00000040, 0x00020014, + 0x00000026, 0x00030029, 0x00000026, 0x00000027, 0x0004002b, 0x00000016, 0x00000028, 0x40200000, + 0x00040017, 0x00000029, 0x00000016, 0x00000004, 0x0007002c, 0x00000029, 0x0000002a, 0x00000017, + 0x00000017, 0x00000017, 0x0000001a, 0x0004002b, 0x00000016, 0x0000002b, 0x3a83126f, 0x0004002b, + 0x00000016, 0x0000002c, 0x3fc00000, 0x0004002b, 0x00000016, 0x0000002d, 0x4253ee82, 0x0004002b, + 0x00000016, 0x0000002e, 0x3d897143, 0x0004002b, 0x00000016, 0x0000002f, 0x3bbf4590, 0x00040017, + 0x00000030, 0x00000016, 0x00000002, 0x0005002c, 0x00000030, 0x00000031, 0x0000002e, 0x0000002f, + 0x0005002c, 0x00000030, 0x00000032, 0x00000017, 0x00000017, 0x0004002b, 0x00000016, 0x00000033, + 0x3f7d70a4, 0x0004002b, 0x00000016, 0x00000034, 0x40400000, 0x0004002b, 0x00000016, 0x00000035, + 0xbf800000, 0x0004002b, 0x00000016, 0x00000036, 0x40c00000, 0x0004002b, 0x00000016, 0x00000037, + 0xbf000000, 0x0004002b, 0x00000016, 0x00000038, 0x3f000000, 0x0004002b, 0x00000016, 0x00000039, + 0x3c75c28f, 0x0004002b, 0x00000016, 0x0000003a, 0x3be56041, 0x0004002b, 0x00000014, 0x0000003b, + 0x00000019, 0x0004002b, 0x00000014, 0x0000003c, 0x00000016, 0x0004002b, 0x00000014, 0x0000003d, + 0x00000017, 0x0004002b, 0x00000016, 0x0000003e, 0x3e2aaaad, 0x0004002b, 0x00000014, 0x0000003f, + 0x0000001a, 0x0004002b, 0x00000016, 0x00000040, 0x3eaaaaaa, 0x00040015, 0x00000041, 0x00000020, + 0x00000000, 0x0004002b, 0x00000041, 0x00000042, 0x00000000, 0x0004002b, 0x00000014, 0x00000043, + 0x00000018, 0x0004002b, 0x00000014, 0x00000044, 0x00000010, 0x0004002b, 0x00000014, 0x00000045, + 0x00000011, 0x0005002c, 0x00000030, 0x00000046, 0x0000001a, 0x0000001a, 0x0004002b, 0x00000014, + 0x00000047, 0x00000012, 0x000a001e, 0x00000006, 0x00000029, 0x00000029, 0x00000029, 0x00000029, + 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00040020, 0x00000048, 0x00000002, 0x00000006, + 0x0004002b, 0x00000041, 0x00000049, 0x0000000f, 0x0004001c, 0x00000013, 0x00000029, 0x00000049, + 0x001d001e, 0x00000008, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, + 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, + 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000013, 0x00000029, 0x00000029, + 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00040020, 0x0000004a, 0x00000002, + 0x00000008, 0x00090019, 0x0000000a, 0x00000016, 0x00000001, 0x00000002, 0x00000000, 0x00000000, + 0x00000001, 0x00000000, 0x00040020, 0x0000004b, 0x00000000, 0x0000000a, 0x0002001a, 0x0000000f, + 0x00040020, 0x0000004c, 0x00000000, 0x0000000f, 0x00040020, 0x0000004d, 0x00000001, 0x00000029, + 0x00040020, 0x0000004e, 0x00000001, 0x00000030, 0x00040020, 0x0000004f, 0x00000003, 0x00000029, + 0x00020013, 0x00000050, 0x00030021, 0x00000051, 0x00000050, 0x00040017, 0x00000052, 0x00000016, + 0x00000003, 0x0003001b, 0x00000012, 0x0000000a, 0x00040020, 0x00000053, 0x00000002, 0x00000029, + 0x00040020, 0x00000054, 0x00000002, 0x00000016, 0x00040017, 0x00000055, 0x00000026, 0x00000002, + 0x0004003b, 0x00000048, 0x00000007, 0x00000002, 0x0004003b, 0x0000004a, 0x00000009, 0x00000002, + 0x0004003b, 0x0000004b, 0x0000000b, 0x00000000, 0x0004003b, 0x0000004b, 0x0000000c, 0x00000000, + 0x0004003b, 0x0000004b, 0x0000000d, 0x00000000, 0x0004003b, 0x0000004b, 0x0000000e, 0x00000000, + 0x0004003b, 0x0000004c, 0x00000010, 0x00000000, 0x0004003b, 0x0000004c, 0x00000011, 0x00000000, + 0x0004003b, 0x0000004d, 0x00000003, 0x00000001, 0x0004003b, 0x0000004e, 0x00000004, 0x00000001, + 0x0004003b, 0x0000004f, 0x00000005, 0x00000003, 0x0004002b, 0x00000016, 0x00000056, 0x3e2aaaab, + 0x0004002b, 0x00000016, 0x00000057, 0x3eaaaaab, 0x00050036, 0x00000050, 0x00000002, 0x00000000, + 0x00000051, 0x000200f8, 0x00000058, 0x0004003d, 0x00000029, 0x00000059, 0x00000003, 0x0004003d, + 0x00000030, 0x0000005a, 0x00000004, 0x000300f7, 0x0000005b, 0x00000000, 0x000300fb, 0x00000042, + 0x0000005c, 0x000200f8, 0x0000005c, 0x0004003d, 0x0000000a, 0x0000005d, 0x0000000b, 0x0004003d, + 0x0000000f, 0x0000005e, 0x00000010, 0x00050056, 0x00000012, 0x0000005f, 0x0000005d, 0x0000005e, + 0x00070058, 0x00000029, 0x00000060, 0x0000005f, 0x0000005a, 0x00000002, 0x00000017, 0x00050051, + 0x00000016, 0x00000061, 0x00000060, 0x00000000, 0x00050051, 0x00000016, 0x00000062, 0x0000005a, + 0x00000000, 0x00050085, 0x00000016, 0x00000063, 0x00000062, 0x00000019, 0x00050083, 0x00000016, + 0x00000064, 0x00000063, 0x0000001a, 0x00050051, 0x00000016, 0x00000065, 0x0000005a, 0x00000001, + 0x00050085, 0x00000016, 0x00000066, 0x00000065, 0x00000019, 0x00050083, 0x00000016, 0x00000067, + 0x0000001a, 0x00000066, 0x00060041, 0x00000054, 0x00000068, 0x00000007, 0x0000001b, 0x00000018, + 0x0004003d, 0x00000016, 0x00000069, 0x00000068, 0x00060041, 0x00000054, 0x0000006a, 0x00000007, + 0x0000001b, 0x00000015, 0x0004003d, 0x00000016, 0x0000006b, 0x0000006a, 0x0007000c, 0x00000016, + 0x0000006c, 0x00000001, 0x00000050, 0x00000061, 0x0000001c, 0x00050088, 0x00000016, 0x0000006d, + 0x0000006b, 0x0000006c, 0x00050081, 0x00000016, 0x0000006e, 0x00000069, 0x0000006d, 0x00050085, + 0x00000016, 0x0000006f, 0x00000064, 0x00000061, 0x00050085, 0x00000016, 0x00000070, 0x00000067, + 0x00000061, 0x00050085, 0x00000016, 0x00000071, 0x0000006e, 0x00000061, 0x00050041, 0x00000053, + 0x00000072, 0x00000007, 0x0000001d, 0x0004003d, 0x00000029, 0x00000073, 0x00000072, 0x0005008e, + 0x00000029, 0x00000074, 0x00000073, 0x0000006f, 0x00050041, 0x00000053, 0x00000075, 0x00000007, + 0x0000001e, 0x0004003d, 0x00000029, 0x00000076, 0x00000075, 0x0005008e, 0x00000029, 0x00000077, + 0x00000076, 0x00000070, 0x00050081, 0x00000029, 0x00000078, 0x00000074, 0x00000077, 0x00050041, + 0x00000053, 0x00000079, 0x00000007, 0x0000001f, 0x0004003d, 0x00000029, 0x0000007a, 0x00000079, + 0x0005008e, 0x00000029, 0x0000007b, 0x0000007a, 0x00000071, 0x00050081, 0x00000029, 0x0000007c, + 0x00000078, 0x0000007b, 0x00050041, 0x00000053, 0x0000007d, 0x00000007, 0x00000021, 0x0004003d, + 0x00000029, 0x0000007e, 0x0000007d, 0x0005008e, 0x00000029, 0x0000007f, 0x0000007e, 0x00000061, + 0x00050081, 0x00000029, 0x00000080, 0x0000007c, 0x0000007f, 0x0008004f, 0x00000052, 0x00000081, + 0x00000080, 0x00000080, 0x00000000, 0x00000001, 0x00000002, 0x00050051, 0x00000016, 0x00000082, + 0x00000080, 0x00000003, 0x0007000c, 0x00000016, 0x00000083, 0x00000001, 0x00000050, 0x00000082, + 0x00000022, 0x00060050, 0x00000052, 0x00000084, 0x00000083, 0x00000083, 0x00000083, 0x00050088, + 0x00000052, 0x00000085, 0x00000081, 0x00000084, 0x00050041, 0x00000053, 0x00000086, 0x00000007, + 0x00000015, 0x0004003d, 0x00000029, 0x00000087, 0x00000086, 0x0008004f, 0x00000052, 0x00000088, + 0x00000087, 0x00000087, 0x00000000, 0x00000001, 0x00000002, 0x00050083, 0x00000052, 0x00000089, + 0x00000085, 0x00000088, 0x0006000c, 0x00000016, 0x0000008a, 0x00000001, 0x00000042, 0x00000089, + 0x0007000c, 0x00000016, 0x0000008b, 0x00000001, 0x00000050, 0x0000008a, 0x0000001c, 0x00060050, + 0x00000052, 0x0000008c, 0x0000008b, 0x0000008b, 0x0000008b, 0x00050088, 0x00000052, 0x0000008d, + 0x00000089, 0x0000008c, 0x00060041, 0x00000054, 0x0000008e, 0x00000007, 0x00000015, 0x0000001b, + 0x0004003d, 0x00000016, 0x0000008f, 0x0000008e, 0x0007000c, 0x00000016, 0x00000090, 0x00000001, + 0x0000004f, 0x0000008a, 0x0000008f, 0x00060041, 0x00000054, 0x00000091, 0x00000007, 0x00000020, + 0x00000018, 0x0004003d, 0x00000016, 0x00000092, 0x00000091, 0x0008000c, 0x00000016, 0x00000093, + 0x00000001, 0x0000002b, 0x00000092, 0x00000023, 0x00000024, 0x0007004f, 0x00000030, 0x00000094, + 0x00000059, 0x00000059, 0x00000000, 0x00000001, 0x00050094, 0x00000016, 0x00000095, 0x00000094, + 0x00000031, 0x0006000c, 0x00000016, 0x00000096, 0x00000001, 0x0000000a, 0x00000095, 0x00050085, + 0x00000016, 0x00000097, 0x0000002d, 0x00000096, 0x0006000c, 0x00000016, 0x00000098, 0x00000001, + 0x0000000a, 0x00000097, 0x000200f9, 0x00000099, 0x000200f8, 0x00000099, 0x000700f5, 0x00000016, + 0x0000009a, 0x00000017, 0x0000005c, 0x0000009b, 0x0000009c, 0x000700f5, 0x00000016, 0x0000009d, + 0x00000017, 0x0000005c, 0x0000009e, 0x0000009c, 0x000700f5, 0x00000014, 0x0000009f, 0x00000018, + 0x0000005c, 0x000000a0, 0x0000009c, 0x000500b1, 0x00000026, 0x000000a1, 0x0000009f, 0x00000025, + 0x000400f6, 0x000000a2, 0x0000009c, 0x00000002, 0x000400fa, 0x000000a1, 0x000000a3, 0x000000a2, + 0x000200f8, 0x000000a3, 0x0004006e, 0x00000014, 0x000000a4, 0x00000093, 0x000500af, 0x00000026, + 0x000000a5, 0x0000009f, 0x000000a4, 0x000300f7, 0x000000a6, 0x00000000, 0x000400fa, 0x000000a5, + 0x000000a7, 0x000000a6, 0x000200f8, 0x000000a7, 0x000200f9, 0x000000a2, 0x000200f8, 0x000000a6, + 0x0004006f, 0x00000016, 0x000000a8, 0x0000009f, 0x00050081, 0x00000016, 0x000000a9, 0x000000a8, + 0x00000098, 0x00050088, 0x00000016, 0x000000aa, 0x000000a9, 0x00000093, 0x00050085, 0x00000016, + 0x000000ab, 0x000000aa, 0x00000090, 0x0005008e, 0x00000052, 0x000000ac, 0x0000008d, 0x000000ab, + 0x00050081, 0x00000052, 0x000000ad, 0x00000088, 0x000000ac, 0x000300f7, 0x000000ae, 0x00000000, + 0x000300fb, 0x00000042, 0x000000af, 0x000200f8, 0x000000af, 0x00050041, 0x00000053, 0x000000b0, + 0x00000009, 0x00000018, 0x0004003d, 0x00000029, 0x000000b1, 0x000000b0, 0x0008004f, 0x00000052, + 0x000000b2, 0x000000b1, 0x000000b1, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000016, + 0x000000b3, 0x000000b2, 0x000000ad, 0x00060041, 0x00000054, 0x000000b4, 0x00000009, 0x00000018, + 0x0000001b, 0x0004003d, 0x00000016, 0x000000b5, 0x000000b4, 0x00050081, 0x00000016, 0x000000b6, + 0x000000b3, 0x000000b5, 0x00050041, 0x00000053, 0x000000b7, 0x00000009, 0x00000015, 0x0004003d, + 0x00000029, 0x000000b8, 0x000000b7, 0x0008004f, 0x00000052, 0x000000b9, 0x000000b8, 0x000000b8, + 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000016, 0x000000ba, 0x000000b9, 0x000000ad, + 0x00060041, 0x00000054, 0x000000bb, 0x00000009, 0x00000015, 0x0000001b, 0x0004003d, 0x00000016, + 0x000000bc, 0x000000bb, 0x00050081, 0x00000016, 0x000000bd, 0x000000ba, 0x000000bc, 0x00050050, + 0x00000030, 0x000000be, 0x000000b6, 0x000000bd, 0x00050041, 0x00000053, 0x000000bf, 0x00000009, + 0x0000001d, 0x0004003d, 0x00000029, 0x000000c0, 0x000000bf, 0x0007004f, 0x00000030, 0x000000c1, + 0x000000c0, 0x000000c0, 0x00000000, 0x00000001, 0x00050085, 0x00000030, 0x000000c2, 0x000000be, + 0x000000c1, 0x0007004f, 0x00000030, 0x000000c3, 0x000000c0, 0x000000c0, 0x00000002, 0x00000003, + 0x00050081, 0x00000030, 0x000000c4, 0x000000c2, 0x000000c3, 0x00050051, 0x00000016, 0x000000c5, + 0x000000c4, 0x00000000, 0x0006000c, 0x00000016, 0x000000c6, 0x00000001, 0x00000004, 0x000000c5, + 0x00050051, 0x00000016, 0x000000c7, 0x000000c4, 0x00000001, 0x0006000c, 0x00000016, 0x000000c8, + 0x00000001, 0x00000004, 0x000000c7, 0x0007000c, 0x00000016, 0x000000c9, 0x00000001, 0x00000050, + 0x000000c6, 0x000000c8, 0x000500b8, 0x00000026, 0x000000ca, 0x000000c9, 0x00000033, 0x00050050, + 0x00000055, 0x000000cb, 0x000000ca, 0x000000ca, 0x000600a9, 0x00000030, 0x000000cc, 0x000000cb, + 0x000000c4, 0x00000032, 0x000600a9, 0x00000016, 0x000000cd, 0x000000ca, 0x00000034, 0x00000017, + 0x00050041, 0x00000053, 0x000000ce, 0x00000009, 0x0000001b, 0x0004003d, 0x00000029, 0x000000cf, + 0x000000ce, 0x0007004f, 0x00000030, 0x000000d0, 0x000000cf, 0x000000cf, 0x00000000, 0x00000001, + 0x00050085, 0x00000030, 0x000000d1, 0x000000be, 0x000000d0, 0x0007004f, 0x00000030, 0x000000d2, + 0x000000cf, 0x000000cf, 0x00000002, 0x00000003, 0x00050081, 0x00000030, 0x000000d3, 0x000000d1, + 0x000000d2, 0x00050051, 0x00000016, 0x000000d4, 0x000000d3, 0x00000000, 0x0006000c, 0x00000016, + 0x000000d5, 0x00000001, 0x00000004, 0x000000d4, 0x00050051, 0x00000016, 0x000000d6, 0x000000d3, + 0x00000001, 0x0006000c, 0x00000016, 0x000000d7, 0x00000001, 0x00000004, 0x000000d6, 0x0007000c, + 0x00000016, 0x000000d8, 0x00000001, 0x00000050, 0x000000d5, 0x000000d7, 0x000500b8, 0x00000026, + 0x000000d9, 0x000000d8, 0x00000033, 0x00050050, 0x00000055, 0x000000da, 0x000000d9, 0x000000d9, + 0x000600a9, 0x00000030, 0x000000db, 0x000000da, 0x000000d3, 0x000000cc, 0x000600a9, 0x00000016, + 0x000000dc, 0x000000d9, 0x00000019, 0x000000cd, 0x0006000c, 0x00000016, 0x000000dd, 0x00000001, + 0x00000004, 0x000000b6, 0x0006000c, 0x00000016, 0x000000de, 0x00000001, 0x00000004, 0x000000bd, + 0x0007000c, 0x00000016, 0x000000df, 0x00000001, 0x00000050, 0x000000dd, 0x000000de, 0x000500b8, + 0x00000026, 0x000000e0, 0x000000df, 0x00000033, 0x00050050, 0x00000055, 0x000000e1, 0x000000e0, + 0x000000e0, 0x000600a9, 0x00000030, 0x000000e2, 0x000000e1, 0x000000be, 0x000000db, 0x000600a9, + 0x00000016, 0x000000e3, 0x000000e0, 0x0000001a, 0x000000dc, 0x000500bc, 0x00000026, 0x000000e4, + 0x000000e3, 0x00000017, 0x000300f7, 0x000000e5, 0x00000000, 0x000400fa, 0x000000e4, 0x000000e6, + 0x000000e5, 0x000200f8, 0x000000e6, 0x000200f9, 0x000000ae, 0x000200f8, 0x000000e5, 0x00050051, + 0x00000016, 0x000000e7, 0x000000e2, 0x00000000, 0x00050085, 0x00000016, 0x000000e8, 0x000000e3, + 0x00000019, 0x00050083, 0x00000016, 0x000000e9, 0x000000e8, 0x0000001a, 0x00050081, 0x00000016, + 0x000000ea, 0x000000e7, 0x000000e9, 0x00050085, 0x00000016, 0x000000eb, 0x00000056, 0x000000ea, + 0x00050051, 0x00000016, 0x000000ec, 0x000000e2, 0x00000001, 0x00050085, 0x00000016, 0x000000ed, + 0x000000ec, 0x00000037, 0x00050081, 0x00000016, 0x000000ee, 0x000000ed, 0x00000038, 0x00050050, + 0x00000030, 0x000000ef, 0x000000eb, 0x000000ee, 0x00050041, 0x00000053, 0x000000f0, 0x00000009, + 0x00000020, 0x0004003d, 0x00000029, 0x000000f1, 0x000000f0, 0x0008004f, 0x00000052, 0x000000f2, + 0x000000f1, 0x000000f1, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000016, 0x000000f3, + 0x000000f2, 0x000000ad, 0x00060041, 0x00000054, 0x000000f4, 0x00000009, 0x00000020, 0x0000001b, + 0x0004003d, 0x00000016, 0x000000f5, 0x000000f4, 0x00050081, 0x00000016, 0x000000f6, 0x000000f3, + 0x000000f5, 0x000500ba, 0x00000026, 0x000000f7, 0x000000e3, 0x0000002c, 0x000600a9, 0x00000016, + 0x000000f8, 0x000000f7, 0x00000039, 0x0000003a, 0x00050083, 0x00000016, 0x000000f9, 0x000000f6, + 0x000000f8, 0x0004003d, 0x0000000a, 0x000000fa, 0x0000000c, 0x0004003d, 0x0000000f, 0x000000fb, + 0x00000011, 0x00050056, 0x00000012, 0x000000fc, 0x000000fa, 0x000000fb, 0x00070058, 0x00000029, + 0x000000fd, 0x000000fc, 0x000000ef, 0x00000002, 0x00000017, 0x00050051, 0x00000016, 0x000000fe, + 0x000000fd, 0x00000000, 0x000500be, 0x00000026, 0x000000ff, 0x000000fe, 0x000000f9, 0x000600a9, + 0x00000016, 0x00000100, 0x000000ff, 0x0000001a, 0x00000017, 0x00050051, 0x00000016, 0x00000101, + 0x000000fd, 0x00000001, 0x00050083, 0x00000016, 0x00000102, 0x0000001a, 0x00000101, 0x00050081, + 0x00000016, 0x00000103, 0x00000100, 0x00000102, 0x0008000c, 0x00000016, 0x00000104, 0x00000001, + 0x0000002b, 0x00000103, 0x00000017, 0x0000001a, 0x000200f9, 0x000000ae, 0x000200f8, 0x000000ae, + 0x000700f5, 0x00000016, 0x00000105, 0x00000035, 0x000000e6, 0x00000104, 0x000000e5, 0x000300f7, + 0x00000106, 0x00000000, 0x000300fb, 0x00000042, 0x00000107, 0x000200f8, 0x00000107, 0x00060041, + 0x00000054, 0x00000108, 0x00000009, 0x0000003b, 0x00000018, 0x0004003d, 0x00000016, 0x00000109, + 0x00000108, 0x000500bc, 0x00000026, 0x0000010a, 0x00000109, 0x00000017, 0x000300f7, 0x0000010b, + 0x00000000, 0x000400fa, 0x0000010a, 0x0000010c, 0x0000010b, 0x000200f8, 0x0000010c, 0x000200f9, + 0x00000106, 0x000200f8, 0x0000010b, 0x00050041, 0x00000053, 0x0000010d, 0x00000009, 0x0000003c, + 0x0004003d, 0x00000029, 0x0000010e, 0x0000010d, 0x0008004f, 0x00000052, 0x0000010f, 0x0000010e, + 0x0000010e, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000016, 0x00000110, 0x0000010f, + 0x000000ad, 0x00060041, 0x00000054, 0x00000111, 0x00000009, 0x0000003c, 0x0000001b, 0x0004003d, + 0x00000016, 0x00000112, 0x00000111, 0x00050081, 0x00000016, 0x00000113, 0x00000110, 0x00000112, + 0x00050041, 0x00000053, 0x00000114, 0x00000009, 0x0000003d, 0x0004003d, 0x00000029, 0x00000115, + 0x00000114, 0x0008004f, 0x00000052, 0x00000116, 0x00000115, 0x00000115, 0x00000000, 0x00000001, + 0x00000002, 0x00050094, 0x00000016, 0x00000117, 0x00000116, 0x000000ad, 0x00060041, 0x00000054, + 0x00000118, 0x00000009, 0x0000003d, 0x0000001b, 0x0004003d, 0x00000016, 0x00000119, 0x00000118, + 0x00050081, 0x00000016, 0x0000011a, 0x00000117, 0x00000119, 0x00050050, 0x00000030, 0x0000011b, + 0x00000113, 0x0000011a, 0x0006000c, 0x00000016, 0x0000011c, 0x00000001, 0x00000004, 0x00000113, + 0x0006000c, 0x00000016, 0x0000011d, 0x00000001, 0x00000004, 0x0000011a, 0x0007000c, 0x00000016, + 0x0000011e, 0x00000001, 0x00000050, 0x0000011c, 0x0000011d, 0x000500be, 0x00000026, 0x0000011f, + 0x0000011e, 0x00000033, 0x000300f7, 0x00000120, 0x00000000, 0x000400fa, 0x0000011f, 0x00000121, + 0x00000120, 0x000200f8, 0x00000121, 0x000200f9, 0x00000106, 0x000200f8, 0x00000120, 0x0005008e, + 0x00000030, 0x00000122, 0x0000011b, 0x00000036, 0x0005008e, 0x00000030, 0x00000123, 0x0000011b, + 0x00000019, 0x00050051, 0x00000016, 0x00000124, 0x00000122, 0x00000000, 0x0006000c, 0x00000016, + 0x00000125, 0x00000001, 0x00000004, 0x00000124, 0x00050051, 0x00000016, 0x00000126, 0x00000122, + 0x00000001, 0x0006000c, 0x00000016, 0x00000127, 0x00000001, 0x00000004, 0x00000126, 0x0007000c, + 0x00000016, 0x00000128, 0x00000001, 0x00000050, 0x00000125, 0x00000127, 0x000500b8, 0x00000026, + 0x00000129, 0x00000128, 0x00000033, 0x000300f7, 0x0000012a, 0x00000000, 0x000400fa, 0x00000129, + 0x0000012b, 0x0000012c, 0x000200f8, 0x0000012b, 0x000200f9, 0x0000012a, 0x000200f8, 0x0000012c, + 0x00050051, 0x00000016, 0x0000012d, 0x00000123, 0x00000000, 0x0006000c, 0x00000016, 0x0000012e, + 0x00000001, 0x00000004, 0x0000012d, 0x00050051, 0x00000016, 0x0000012f, 0x00000123, 0x00000001, + 0x0006000c, 0x00000016, 0x00000130, 0x00000001, 0x00000004, 0x0000012f, 0x0007000c, 0x00000016, + 0x00000131, 0x00000001, 0x00000050, 0x0000012e, 0x00000130, 0x000500b8, 0x00000026, 0x00000132, + 0x00000131, 0x00000033, 0x000600a9, 0x00000016, 0x00000133, 0x00000132, 0x0000001a, 0x00000019, + 0x00050050, 0x00000055, 0x00000134, 0x00000132, 0x00000132, 0x000600a9, 0x00000030, 0x00000135, + 0x00000134, 0x00000123, 0x0000011b, 0x000200f9, 0x0000012a, 0x000200f8, 0x0000012a, 0x000700f5, + 0x00000016, 0x00000136, 0x00000017, 0x0000012b, 0x00000133, 0x0000012c, 0x000700f5, 0x00000030, + 0x00000137, 0x00000122, 0x0000012b, 0x00000135, 0x0000012c, 0x00050051, 0x00000016, 0x00000138, + 0x00000137, 0x00000000, 0x00050085, 0x00000016, 0x00000139, 0x00000136, 0x00000019, 0x00050081, + 0x00000016, 0x0000013a, 0x00000139, 0x0000001a, 0x00050081, 0x00000016, 0x0000013b, 0x00000138, + 0x0000013a, 0x00050085, 0x00000016, 0x0000013c, 0x00000056, 0x0000013b, 0x00050051, 0x00000016, + 0x0000013d, 0x00000137, 0x00000001, 0x00050085, 0x00000016, 0x0000013e, 0x0000013d, 0x00000037, + 0x00050081, 0x00000016, 0x0000013f, 0x0000013e, 0x00000038, 0x00050050, 0x00000030, 0x00000140, + 0x0000013c, 0x0000013f, 0x00060041, 0x00000054, 0x00000141, 0x00000009, 0x0000003f, 0x0000001b, + 0x0004003d, 0x00000016, 0x00000142, 0x00000141, 0x00050088, 0x00000016, 0x00000143, 0x0000003e, + 0x00000142, 0x00050085, 0x00000016, 0x00000144, 0x00000136, 0x00000057, 0x00050081, 0x00000016, + 0x00000145, 0x00000144, 0x00000143, 0x00050081, 0x00000016, 0x00000146, 0x00000144, 0x00000040, + 0x00050083, 0x00000016, 0x00000147, 0x00000146, 0x00000143, 0x0008000c, 0x00000016, 0x00000148, + 0x00000001, 0x0000002b, 0x0000013c, 0x00000145, 0x00000147, 0x00060052, 0x00000030, 0x00000149, + 0x00000148, 0x00000140, 0x00000000, 0x00050041, 0x00000053, 0x0000014a, 0x00000009, 0x00000043, + 0x0004003d, 0x00000029, 0x0000014b, 0x0000014a, 0x0008004f, 0x00000052, 0x0000014c, 0x0000014b, + 0x0000014b, 0x00000000, 0x00000001, 0x00000002, 0x00050094, 0x00000016, 0x0000014d, 0x0000014c, + 0x000000ad, 0x00060041, 0x00000054, 0x0000014e, 0x00000009, 0x00000043, 0x0000001b, 0x0004003d, + 0x00000016, 0x0000014f, 0x0000014e, 0x00050081, 0x00000016, 0x00000150, 0x0000014d, 0x0000014f, + 0x00060041, 0x00000054, 0x00000151, 0x00000009, 0x0000003f, 0x00000018, 0x0004003d, 0x00000016, + 0x00000152, 0x00000151, 0x00050083, 0x00000016, 0x00000153, 0x00000150, 0x00000152, 0x0004003d, + 0x0000000a, 0x00000154, 0x0000000e, 0x0004003d, 0x0000000f, 0x00000155, 0x00000011, 0x00050056, + 0x00000012, 0x00000156, 0x00000154, 0x00000155, 0x00070058, 0x00000029, 0x00000157, 0x00000156, + 0x00000149, 0x00000002, 0x00000017, 0x00050051, 0x00000016, 0x00000158, 0x00000157, 0x00000000, + 0x000500be, 0x00000026, 0x00000159, 0x00000158, 0x00000153, 0x000600a9, 0x00000016, 0x0000015a, + 0x00000159, 0x0000001a, 0x00000017, 0x00050083, 0x00000016, 0x0000015b, 0x0000001a, 0x0000015a, + 0x00050085, 0x00000016, 0x0000015c, 0x00000109, 0x0000015b, 0x00050083, 0x00000016, 0x0000015d, + 0x0000001a, 0x0000015c, 0x000200f9, 0x00000106, 0x000200f8, 0x00000106, 0x000900f5, 0x00000016, + 0x0000015e, 0x00000035, 0x0000010c, 0x00000035, 0x00000121, 0x0000015d, 0x0000012a, 0x000500be, + 0x00000026, 0x0000015f, 0x0000015e, 0x00000017, 0x000300f7, 0x00000160, 0x00000000, 0x000400fa, + 0x0000015f, 0x00000161, 0x00000162, 0x000200f8, 0x00000161, 0x000200f9, 0x00000160, 0x000200f8, + 0x00000162, 0x000300f7, 0x00000163, 0x00000000, 0x000300fb, 0x00000042, 0x00000164, 0x000200f8, + 0x00000164, 0x00050051, 0x00000016, 0x00000165, 0x000000ad, 0x00000000, 0x00050051, 0x00000016, + 0x00000166, 0x000000ad, 0x00000001, 0x00050051, 0x00000016, 0x00000167, 0x000000ad, 0x00000002, + 0x00070050, 0x00000029, 0x00000168, 0x00000165, 0x00000166, 0x00000167, 0x0000001a, 0x00050041, + 0x00000053, 0x00000169, 0x00000009, 0x00000044, 0x0004003d, 0x00000029, 0x0000016a, 0x00000169, + 0x00050094, 0x00000016, 0x0000016b, 0x00000168, 0x0000016a, 0x00050085, 0x00000016, 0x0000016c, + 0x0000016b, 0x00000038, 0x00050081, 0x00000016, 0x0000016d, 0x0000016c, 0x00000038, 0x00050041, + 0x00000053, 0x0000016e, 0x00000009, 0x00000045, 0x0004003d, 0x00000029, 0x0000016f, 0x0000016e, + 0x00050094, 0x00000016, 0x00000170, 0x00000168, 0x0000016f, 0x00050085, 0x00000016, 0x00000171, + 0x00000170, 0x00000037, 0x00050081, 0x00000016, 0x00000172, 0x00000171, 0x00000038, 0x00050050, + 0x00000030, 0x00000173, 0x0000016d, 0x00000172, 0x0008000c, 0x00000030, 0x00000174, 0x00000001, + 0x0000002b, 0x00000173, 0x00000032, 0x00000046, 0x000500b6, 0x00000055, 0x00000175, 0x00000174, + 0x00000173, 0x0004009a, 0x00000026, 0x00000176, 0x00000175, 0x000300f7, 0x00000177, 0x00000000, + 0x000400fa, 0x00000176, 0x00000178, 0x00000177, 0x000200f8, 0x00000178, 0x000200f9, 0x00000163, + 0x000200f8, 0x00000177, 0x0004003d, 0x0000000a, 0x00000179, 0x0000000d, 0x0004003d, 0x0000000f, + 0x0000017a, 0x00000010, 0x00050056, 0x00000012, 0x0000017b, 0x00000179, 0x0000017a, 0x00070058, + 0x00000029, 0x0000017c, 0x0000017b, 0x00000173, 0x00000002, 0x00000017, 0x00050051, 0x00000016, + 0x0000017d, 0x0000017c, 0x00000000, 0x00050041, 0x00000053, 0x0000017e, 0x00000009, 0x00000047, + 0x0004003d, 0x00000029, 0x0000017f, 0x0000017e, 0x00050094, 0x00000016, 0x00000180, 0x00000168, + 0x0000017f, 0x000500be, 0x00000026, 0x00000181, 0x0000017d, 0x00000180, 0x000600a9, 0x00000016, + 0x00000182, 0x00000181, 0x0000001a, 0x00000017, 0x000200f9, 0x00000163, 0x000200f8, 0x00000163, + 0x000700f5, 0x00000016, 0x00000183, 0x00000035, 0x00000178, 0x00000182, 0x00000177, 0x000200f9, + 0x00000160, 0x000200f8, 0x00000160, 0x000700f5, 0x00000016, 0x00000184, 0x0000015e, 0x00000161, + 0x00000183, 0x00000163, 0x000500b9, 0x00000026, 0x00000185, 0x00000105, 0x00000017, 0x000300f7, + 0x00000186, 0x00000000, 0x000400fa, 0x00000185, 0x00000187, 0x00000186, 0x000200f8, 0x00000187, + 0x000500be, 0x00000026, 0x00000188, 0x00000184, 0x00000017, 0x000200f9, 0x00000186, 0x000200f8, + 0x00000186, 0x000700f5, 0x00000026, 0x00000189, 0x00000027, 0x00000160, 0x00000188, 0x00000187, + 0x000300f7, 0x0000018a, 0x00000000, 0x000400fa, 0x00000189, 0x0000018b, 0x0000018a, 0x000200f8, + 0x0000018b, 0x000500b8, 0x00000026, 0x0000018c, 0x00000105, 0x00000017, 0x000600a9, 0x00000016, + 0x0000018d, 0x0000018c, 0x0000001a, 0x00000105, 0x000500b8, 0x00000026, 0x0000018e, 0x00000184, + 0x00000017, 0x000600a9, 0x00000016, 0x0000018f, 0x0000018e, 0x0000001a, 0x00000184, 0x0007000c, + 0x00000016, 0x00000190, 0x00000001, 0x0000004f, 0x0000018d, 0x0000018f, 0x00050081, 0x00000016, + 0x00000191, 0x0000009d, 0x00000190, 0x00050081, 0x00000016, 0x00000192, 0x0000009a, 0x0000001a, + 0x000200f9, 0x0000018a, 0x000200f8, 0x0000018a, 0x000700f5, 0x00000016, 0x0000009b, 0x0000009a, + 0x00000186, 0x00000192, 0x0000018b, 0x000700f5, 0x00000016, 0x0000009e, 0x0000009d, 0x00000186, + 0x00000191, 0x0000018b, 0x000200f9, 0x0000009c, 0x000200f8, 0x0000009c, 0x00050080, 0x00000014, + 0x000000a0, 0x0000009f, 0x00000015, 0x000200f9, 0x00000099, 0x000200f8, 0x000000a2, 0x000500b8, + 0x00000026, 0x00000193, 0x0000009a, 0x00000028, 0x000300f7, 0x00000194, 0x00000000, 0x000400fa, + 0x00000193, 0x00000195, 0x00000194, 0x000200f8, 0x00000195, 0x000200f9, 0x0000005b, 0x000200f8, + 0x00000194, 0x00050041, 0x00000053, 0x00000196, 0x00000009, 0x00000021, 0x0004003d, 0x00000029, + 0x00000197, 0x00000196, 0x0008004f, 0x00000052, 0x00000198, 0x00000197, 0x00000197, 0x00000000, + 0x00000001, 0x00000002, 0x00050094, 0x00000016, 0x00000199, 0x0000008d, 0x00000198, 0x00060041, + 0x00000054, 0x0000019a, 0x00000007, 0x00000020, 0x00000020, 0x0004003d, 0x00000016, 0x0000019b, + 0x0000019a, 0x00050085, 0x00000016, 0x0000019c, 0x0000019b, 0x0000019b, 0x00050083, 0x00000016, + 0x0000019d, 0x0000001a, 0x0000019c, 0x00050081, 0x00000016, 0x0000019e, 0x0000001a, 0x0000019c, + 0x00050085, 0x00000016, 0x0000019f, 0x00000019, 0x0000019b, 0x00050085, 0x00000016, 0x000001a0, + 0x0000019f, 0x00000199, 0x00050083, 0x00000016, 0x000001a1, 0x0000019e, 0x000001a0, 0x0007000c, + 0x00000016, 0x000001a2, 0x00000001, 0x00000050, 0x000001a1, 0x0000002b, 0x0007000c, 0x00000016, + 0x000001a3, 0x00000001, 0x0000001a, 0x000001a2, 0x0000002c, 0x00050088, 0x00000016, 0x000001a4, + 0x0000019d, 0x000001a3, 0x0007000c, 0x00000016, 0x000001a5, 0x00000001, 0x0000004f, 0x000001a4, + 0x00000019, 0x00050088, 0x00000016, 0x000001a6, 0x0000009d, 0x0000009a, 0x00050083, 0x00000016, + 0x000001a7, 0x0000001a, 0x000001a6, 0x00050085, 0x00000016, 0x000001a8, 0x000001a7, 0x000001a5, + 0x0007000c, 0x00000016, 0x000001a9, 0x00000001, 0x00000050, 0x0000008f, 0x0000001a, 0x00050088, + 0x00000016, 0x000001aa, 0x00000090, 0x000001a9, 0x0008000c, 0x00000016, 0x000001ab, 0x00000001, + 0x0000002b, 0x000001aa, 0x00000017, 0x0000001a, 0x00050085, 0x00000016, 0x000001ac, 0x000001a8, + 0x000001ab, 0x00070050, 0x00000029, 0x000001ad, 0x000001ac, 0x000001ac, 0x000001ac, 0x0000001a, + 0x000200f9, 0x0000005b, 0x000200f8, 0x0000005b, 0x000700f5, 0x00000029, 0x000001ae, 0x0000002a, + 0x00000195, 0x000001ad, 0x00000194, 0x0003003e, 0x00000005, 0x000001ae, 0x000100fd, 0x00010038, }; // ssr.hlsl : vs_main (800 bytes) diff --git a/src/skate3_native_scene_post.cpp b/src/skate3_native_scene_post.cpp index 06ca04c..7c50943 100644 --- a/src/skate3_native_scene_post.cpp +++ b/src/skate3_native_scene_post.cpp @@ -1186,8 +1186,9 @@ bool ApplyVolumetricPass(const NativeGuestOutputRenderContext& context, cmd->FlushBarriers(); // 2) Shadow-marched shafts (half res): world-space camera->pixel march - // testing per-step sun visibility against the CSM atlas + the static - // world-shadow map (see ps_vol_shafts). + // testing per-step sun visibility against the CSM atlas + the native + // static sun-shadow map, with the baked world-shadow map as the fallback + // outside its coverage (see ps_vol_shafts). bool shaft_plane = false; if (shafts && inv_ok && g_r.vol_tex != nullptr && g_r.vol_tex_b != nullptr) { const nrhi::Viewport vol_vp{0.0f, 0.0f, float(vw), float(vh), 0.0f, 1.0f}; @@ -1218,6 +1219,15 @@ bool ApplyVolumetricPass(const NativeGuestOutputRenderContext& context, g_r.world_shadow_in_srv) ? g_r.world_shadow_srv : g_r.white.srv); + // t4 = the native static sun-shadow atlas (the scene pass's t10) when + // rendered this frame; the march prefers it over the ws map inside its + // coverage so static shafts follow the true material-sun axis. The b1 + // nsm rows are zeroed when the map is invalid, so the white fallback is + // never actually compared. + cmd->SetTexture(5, (g_r.static_sun_valid && g_r.static_sun_in_srv && + g_r.static_sun_srv != nullptr) + ? g_r.static_sun_srv + : g_r.white.srv); cmd->Draw(3, 0); cmd->Barrier(g_r.vol_tex, nrhi::ResourceState::kRenderTarget, nrhi::ResourceState::kPixelShaderResource); @@ -1270,13 +1280,15 @@ bool ApplyVolumetricPass(const NativeGuestOutputRenderContext& context, if (s_vol_log < 4 || (s_vol_log % 36000) == 0) { REXLOG_INFO( "native-scene: vol2 shafts={} gates[cvar={} shvalid={} atlas={} " - "insrv={}] inv={} ws={} tex={} tint=({:.3f},{:.3f},{:.3f}) " + "insrv={}] inv={} ws={} nsm={} tex={} tint=({:.3f},{:.3f},{:.3f}) " "expo={:.2f} sunv=({:.2f},{:.2f},{:.2f}) lin={}", shaft_plane ? 1 : 0, REXCVAR_GET(skate3_native_render_scene_shafts) ? 1 : 0, scene.shadow_valid ? 1 : 0, g_r.shadow_srv_final != nullptr ? 1 : 0, g_r.shadow_in_srv_state ? 1 : 0, inv_ok ? 1 : 0, - g_r.world_shadow_in_srv ? 1 : 0, g_r.vol_tex != nullptr ? 1 : 0, + g_r.world_shadow_in_srv ? 1 : 0, + (g_r.static_sun_valid && g_r.static_sun_in_srv) ? 1 : 0, + g_r.vol_tex != nullptr ? 1 : 0, g_r.vol_rows[8], g_r.vol_rows[9], g_r.vol_rows[10], expo, sun_view[0], sun_view[1], sun_view[2], lin_ready ? "ao" : "own"); }