summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2025-02-02 16:20:12 -0800
committeryum <yum.food.vr@gmail.com>2025-02-02 16:20:17 -0800
commit5f819329a161d54076d025d6f61656f262094c07 (patch)
treeacba27050736f2296206fb0dc52f4cd2e9bb29bb
parent03406b0983e123bb3203a96bfd2f017e58e3e90d (diff)
Finish reproducing SSFD tech
Fix gen_sdf so it normalizes all SDFs
-rw-r--r--Editor/tooner.cs4
-rw-r--r--Textures/SSFD_2x2/Texture3DFromSequence.asset2
-rw-r--r--Textures/SSFD_2x2/Texture3DFromSequence.asset.meta2
-rw-r--r--Textures/SSFD_2x2/dots_L1-sdf.pngbin372 -> 654 bytes
-rw-r--r--Textures/SSFD_2x2/dots_L2-sdf.pngbin376 -> 679 bytes
-rw-r--r--Textures/SSFD_2x2/dots_L3-sdf.pngbin379 -> 687 bytes
-rw-r--r--Textures/SSFD_2x2/dots_L4-sdf.pngbin387 -> 621 bytes
-rw-r--r--Third_Party/gen_sdf6
-rw-r--r--globals.cginc1
-rw-r--r--tooner.shader3
-rw-r--r--tooner_lighting.cginc14
11 files changed, 23 insertions, 9 deletions
diff --git a/Editor/tooner.cs b/Editor/tooner.cs
index fefee6b..9d7de84 100644
--- a/Editor/tooner.cs
+++ b/Editor/tooner.cs
@@ -3270,9 +3270,11 @@ public class ToonerGUI : ShaderGUI {
bc = FindProperty("_Surface_Stable_Fractal_Dithering_Noise");
TexturePropertySingleLine(MakeLabel(bc, "Noise"), bc);
bc = FindProperty("_Surface_Stable_Fractal_Dithering_Scale");
- FloatProperty(bc, "Scale");
+ RangeProperty(bc, "Scale");
bc = FindProperty("_Surface_Stable_Fractal_Dithering_Max_Fwidth");
FloatProperty(bc, "Max fwidth");
+ bc = FindProperty("_Surface_Stable_Fractal_Dithering_Cutoff");
+ RangeProperty(bc, "Cutoff");
EditorGUI.indentLevel -= 1;
}
diff --git a/Textures/SSFD_2x2/Texture3DFromSequence.asset b/Textures/SSFD_2x2/Texture3DFromSequence.asset
index d037f79..47ff26b 100644
--- a/Textures/SSFD_2x2/Texture3DFromSequence.asset
+++ b/Textures/SSFD_2x2/Texture3DFromSequence.asset
@@ -32,7 +32,7 @@ Texture3D:
m_UsageMode: 0
m_IsReadable: 1
image data: 16384
- _typelessdata: 89ffffff89ffffff88ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff87ffffff88ffffff89ffffff88ffffff88ffffff87ffffff87ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff87ffffff87ffffff88ffffff87ffffff87ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff87ffffff87ffffff87ffffff86ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff86ffffff86ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff85ffffff85ffffff85ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff84ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff84ffffff83ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff78ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff78ffffff78ffffff78ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff82ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff7fffffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff75ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7cffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff75ffffff74ffffff75ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7bffffff7affffff7affffff7affffff79ffffff79ffffff78ffffff78ffffff77ffffff76ffffff76ffffff75ffffff74ffffff74ffffff74ffffff75ffffff76ffffff76ffffff77ffffff78ffffff78ffffff79ffffff79ffffff7affffff7affffff7affffff7bffffff7bffffff7bffffff7affffff7affffff7affffff7affffff79ffffff79ffffff79ffffff78ffffff78ffffff78ffffff77ffffff76ffffff76ffffff75ffffff74ffffff74ffffff73ffffff74ffffff74ffffff75ffffff76ffffff76ffffff77ffffff78ffffff78ffffff78ffffff79ffffff79ffffff79ffffff7affffff7affffff7affffff7bffffff7bffffff7bffffff7bffffff7affffff7affffff7affffff79ffffff79ffffff78ffffff78ffffff77ffffff76ffffff76ffffff75ffffff74ffffff74ffffff74ffffff75ffffff76ffffff76ffffff77ffffff78ffffff78ffffff79ffffff79ffffff7affffff7affffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff75ffffff74ffffff75ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff75ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff76ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7fffffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff76ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff81ffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff78ffffff77ffffff78ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff78ffffff78ffffff78ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff78ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff84ffffff85ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff86ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff85ffffff85ffffff87ffffff86ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff86ffffff87ffffff87ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff87ffffff87ffffff88ffffff88ffffff87ffffff87ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff87ffffff87ffffff88ffffff89ffffff89ffffff88ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff87ffffff88ffffff89ffffff8affffff89ffffff88ffffff87ffffff87ffffff86ffffff85ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff85ffffff86ffffff87ffffff87ffffff88ffffff89ffffff86ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff79ffffff79ffffff79ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7affffff7affffff7affffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7affffff7bffffff7bffffff7bffffff7bffffff7bffffff7affffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7cffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7affffff7bffffff7bffffff7affffff7affffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7affffff79ffffff79ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff79ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff86ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff86ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff79ffffff79ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff79ffffff7affffff7affffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7affffff7bffffff7bffffff7bffffff7affffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7affffff7bffffff7bffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff82ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff82ffffff83ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7cffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff84ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff7affffff7bffffff7bffffff7bffffff7bffffff7bffffff7affffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff7affffff7affffff7affffff7affffff7affffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff85ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff79ffffff79ffffff79ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff86ffffff85ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff86ffffff87ffffff86ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff86ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff7affffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7affffff7affffff7bffffff7bffffff7affffff7affffff7affffff79ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff79ffffff7affffff7affffff79ffffff79ffffff79ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff78ffffff79ffffff79ffffff78ffffff78ffffff78ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff78ffffff78ffffff77ffffff77ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff77ffffff76ffffff76ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff76ffffff75ffffff76ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff76ffffff76ffffff76ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff76ffffff77ffffff77ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff77ffffff78ffffff78ffffff78ffffff77ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff77ffffff78ffffff78ffffff79ffffff79ffffff79ffffff78ffffff78ffffff79ffffff7affffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7affffff79ffffff78ffffff78ffffff79ffffff79ffffff7affffff7affffff7affffff79ffffff79ffffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff79ffffff79ffffff7affffff7affffff7bffffff7bffffff7bffffff7affffff7affffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7affffff7affffff7bffffff7bffffff7cffffff7cffffff7cffffff7bffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7dffffff7dffffff7dffffff7cffffff7cffffff7bffffff7bffffff7affffff79ffffff7affffff7bffffff7bffffff7cffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7effffff7effffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7affffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7effffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff7fffffff7fffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7bffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff7fffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff81ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7bffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7dffffff7cffffff7dffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7cffffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff83ffffff82ffffff82ffffff81ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff84ffffff84ffffff83ffffff82ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff82ffffff83ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff85ffffff84ffffff84ffffff83ffffff82ffffff81ffffff7fffffff7effffff7dffffff7effffff7fffffff81ffffff82ffffff83ffffff84ffffff84ffffff
+ _typelessdata: f6ffffffefffffffe6ffffffddffffffd2ffffffcaffffffc1ffffffb6ffffffabffffffa0ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffffa0ffffffabffffffb6ffffffc1ffffffcaffffffd2ffffffddffffffe6ffffffefffffffebffffffe6ffffffe0ffffffd7ffffffd0ffffffc5ffffffbaffffffb2ffffffa9ffffffa0ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffffa0ffffffa9ffffffb2ffffffbaffffffc5ffffffd0ffffffd7ffffffe0ffffffe6ffffffe2ffffffddffffffd7ffffffd0ffffffc8ffffffc1ffffffb8ffffffadffffffa2ffffff99ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffff99ffffffa2ffffffadffffffb8ffffffc1ffffffc8ffffffd0ffffffd7ffffffddffffffd7ffffffd2ffffffd0ffffffc8ffffffc1ffffffb8ffffffb2ffffffa9ffffffa0ffffff95ffffff7fffffff7bffffff72ffffff67ffffff5cffffff51ffffff46ffffff51ffffff5cffffff67ffffff72ffffff7bffffff7fffffff95ffffffa0ffffffa9ffffffb2ffffffb8ffffffc1ffffffc8ffffffd0ffffffd2ffffffccffffffcaffffffc5ffffffc1ffffffb8ffffffb2ffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff74ffffff6bffffff62ffffff5affffff4fffffff44ffffff4fffffff5affffff62ffffff6bffffff74ffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffb2ffffffb8ffffffc1ffffffc5ffffffcaffffffc1ffffffc1ffffffbaffffffb8ffffffb2ffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff7bffffff72ffffff67ffffff5cffffff53ffffff4affffff42ffffff4affffff53ffffff5cffffff67ffffff72ffffff7bffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffb2ffffffb8ffffffbaffffffc1ffffffb6ffffffb6ffffffb2ffffffadffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5affffff4fffffff44ffffff3bffffff44ffffff4fffffff5affffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffadffffffb2ffffffb6ffffffabffffffabffffffa9ffffffa2ffffffa0ffffff99ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4affffff42ffffff37ffffff42ffffff4affffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff99ffffffa0ffffffa2ffffffa9ffffffabffffffa0ffffffa0ffffffa0ffffff99ffffff95ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3bffffff32ffffff3bffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff95ffffff99ffffffa0ffffffa0ffffff95ffffff95ffffff95ffffff95ffffff7fffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2cffffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff7fffffff95ffffff95ffffff95ffffff7fffffff7fffffff7fffffff7fffffff7bffffff74ffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff74ffffff7bffffff7fffffff7fffffff7fffffff74ffffff74ffffff74ffffff74ffffff72ffffff6bffffff67ffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff67ffffff6bffffff72ffffff74ffffff74ffffff74ffffff69ffffff69ffffff69ffffff69ffffff67ffffff62ffffff5cffffff5affffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff16ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5affffff5cffffff62ffffff67ffffff69ffffff69ffffff69ffffff5effffff5effffff5effffff5effffff5cffffff5affffff53ffffff4fffffff4affffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff16ffffff0fffffff16ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4affffff4fffffff53ffffff5affffff5cffffff5effffff5effffff5effffff53ffffff53ffffff53ffffff53ffffff51ffffff4fffffff4affffff44ffffff42ffffff3bffffff34ffffff2effffff25ffffff1effffff16ffffff0fffffff06ffffff0fffffff16ffffff1effffff25ffffff2effffff34ffffff3bffffff42ffffff44ffffff4affffff4fffffff51ffffff53ffffff53ffffff53ffffff48ffffff48ffffff48ffffff48ffffff46ffffff44ffffff42ffffff3bffffff37ffffff32ffffff2cffffff25ffffff1effffff16ffffff0fffffff06ffffff00ffffff06ffffff0fffffff16ffffff1effffff25ffffff2cffffff32ffffff37ffffff3bffffff42ffffff44ffffff46ffffff48ffffff48ffffff48ffffff53ffffff53ffffff53ffffff53ffffff51ffffff4fffffff4affffff44ffffff42ffffff3bffffff34ffffff2effffff25ffffff1effffff16ffffff0fffffff06ffffff0fffffff16ffffff1effffff25ffffff2effffff34ffffff3bffffff42ffffff44ffffff4affffff4fffffff51ffffff53ffffff53ffffff53ffffff5effffff5effffff5effffff5effffff5cffffff5affffff53ffffff4fffffff4affffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff16ffffff0fffffff16ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4affffff4fffffff53ffffff5affffff5cffffff5effffff5effffff5effffff69ffffff69ffffff69ffffff69ffffff67ffffff62ffffff5cffffff5affffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff16ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5affffff5cffffff62ffffff67ffffff69ffffff69ffffff69ffffff74ffffff74ffffff74ffffff74ffffff72ffffff6bffffff67ffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff1effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff67ffffff6bffffff72ffffff74ffffff74ffffff74ffffff7fffffff7fffffff7fffffff7fffffff7bffffff74ffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2effffff25ffffff2effffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff74ffffff7bffffff7fffffff7fffffff7fffffff95ffffff95ffffff95ffffff95ffffff7fffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3dffffff34ffffff2cffffff34ffffff3dffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff7fffffff95ffffff95ffffff95ffffffa0ffffffa0ffffffa0ffffff99ffffff95ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4cffffff44ffffff3bffffff32ffffff3bffffff44ffffff4cffffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff95ffffff99ffffffa0ffffffa0ffffffabffffffabffffffa9ffffffa2ffffffa0ffffff99ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5cffffff53ffffff4affffff42ffffff37ffffff42ffffff4affffff53ffffff5cffffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff99ffffffa0ffffffa2ffffffa9ffffffabffffffb6ffffffb6ffffffb2ffffffadffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff7bffffff72ffffff6bffffff62ffffff5affffff4fffffff44ffffff3bffffff44ffffff4fffffff5affffff62ffffff6bffffff72ffffff7bffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffadffffffb2ffffffb6ffffffc1ffffffc1ffffffbaffffffb8ffffffb2ffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff7bffffff72ffffff67ffffff5cffffff53ffffff4affffff42ffffff4affffff53ffffff5cffffff67ffffff72ffffff7bffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffb2ffffffb8ffffffbaffffffc1ffffffccffffffcaffffffc5ffffffc1ffffffb8ffffffb2ffffffa9ffffffa2ffffff99ffffff95ffffff7fffffff74ffffff6bffffff62ffffff5affffff4fffffff44ffffff4fffffff5affffff62ffffff6bffffff74ffffff7fffffff95ffffff99ffffffa2ffffffa9ffffffb2ffffffb8ffffffc1ffffffc5ffffffcaffffffd7ffffffd2ffffffd0ffffffc8ffffffc1ffffffb8ffffffb2ffffffa9ffffffa0ffffff95ffffff7fffffff7bffffff72ffffff67ffffff5cffffff51ffffff46ffffff51ffffff5cffffff67ffffff72ffffff7bffffff7fffffff95ffffffa0ffffffa9ffffffb2ffffffb8ffffffc1ffffffc8ffffffd0ffffffd2ffffffe2ffffffddffffffd7ffffffd0ffffffc8ffffffc1ffffffb8ffffffadffffffa2ffffff99ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffff99ffffffa2ffffffadffffffb8ffffffc1ffffffc8ffffffd0ffffffd7ffffffddffffffebffffffe6ffffffe0ffffffd7ffffffd0ffffffc5ffffffbaffffffb2ffffffa9ffffffa0ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffffa0ffffffa9ffffffb2ffffffbaffffffc5ffffffd0ffffffd7ffffffe0ffffffe6fffffff6ffffffefffffffe6ffffffddffffffd2ffffffcaffffffc1ffffffb6ffffffabffffffa0ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffffa0ffffffabffffffb6ffffffc1ffffffcaffffffd2ffffffddffffffe6ffffffeffffffffffffffff6ffffffebffffffe2ffffffd7ffffffccffffffc1ffffffb6ffffffabffffffa0ffffff95ffffff7fffffff74ffffff69ffffff5effffff53ffffff48ffffff53ffffff5effffff69ffffff74ffffff7fffffff95ffffffa0ffffffabffffffb6ffffffc1ffffffccffffffd7ffffffe2ffffffebfffffff6ffffffefffffffecffffffddffffffcdffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcdffffffddffffffecffffffe3ffffffddffffffd7ffffffcaffffffbbffffffacffffff9fffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffff9fffffffacffffffbbffffffcaffffffd7ffffffddffffffd7ffffffcdffffffcaffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcaffffffcdffffffc7ffffffc1ffffffbbffffffb5ffffffacffffff9fffffff99ffffff7affffff6bffffff5fffffff53ffffff46ffffff37ffffff3affffff3dffffff3dffffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff53ffffff5fffffff6bffffff7affffff99ffffff9fffffffacffffffb5ffffffbbffffffc1ffffffb8ffffffb5ffffffacffffffa9ffffff9fffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3dffffff46ffffff49ffffff4cffffff4cffffff4cffffff4cffffff4cffffff49ffffff46ffffff3dffffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffff9fffffffa9ffffffacffffffb5ffffffa9ffffffa9ffffff9fffffff99ffffff99ffffff7affffff74ffffff68ffffff5fffffff53ffffff46ffffff49ffffff53ffffff59ffffff5cffffff5cffffff5cffffff5cffffff5cffffff59ffffff53ffffff49ffffff46ffffff53ffffff5fffffff68ffffff74ffffff7affffff99ffffff99ffffff9fffffffa9ffffff99ffffff99ffffff99ffffff7affffff7affffff74ffffff68ffffff5fffffff53ffffff49ffffff53ffffff59ffffff5fffffff68ffffff6bffffff6bffffff6bffffff6bffffff6bffffff68ffffff5fffffff59ffffff53ffffff49ffffff53ffffff5fffffff68ffffff74ffffff7affffff7affffff99ffffff99ffffff7affffff7affffff7affffff74ffffff6bffffff68ffffff5fffffff53ffffff49ffffff53ffffff5fffffff68ffffff6bffffff74ffffff7affffff7affffff7affffff7affffff7affffff74ffffff6bffffff68ffffff5fffffff53ffffff49ffffff53ffffff5fffffff68ffffff6bffffff74ffffff7affffff7affffff6bffffff6bffffff6bffffff68ffffff5fffffff59ffffff53ffffff49ffffff53ffffff5fffffff68ffffff74ffffff7affffff7affffff99ffffff99ffffff99ffffff99ffffff99ffffff7affffff7affffff74ffffff68ffffff5fffffff53ffffff49ffffff53ffffff59ffffff5fffffff68ffffff6bffffff6bffffff5cffffff5cffffff5cffffff59ffffff53ffffff49ffffff46ffffff53ffffff5fffffff68ffffff74ffffff7affffff99ffffff99ffffff9fffffffa9ffffffa9ffffffa9ffffff9fffffff99ffffff99ffffff7affffff74ffffff68ffffff5fffffff53ffffff46ffffff49ffffff53ffffff59ffffff5cffffff5cffffff4cffffff4cffffff4cffffff49ffffff46ffffff3dffffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffff9fffffffa9ffffffacffffffb5ffffffb8ffffffb5ffffffacffffffa9ffffff9fffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3dffffff46ffffff49ffffff4cffffff4cffffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff53ffffff5fffffff6bffffff7affffff99ffffff9fffffffacffffffb5ffffffbbffffffc1ffffffc7ffffffc1ffffffbbffffffb5ffffffacffffff9fffffff99ffffff7affffff6bffffff5fffffff53ffffff46ffffff37ffffff3affffff3dffffff3dffffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcaffffffcdffffffd7ffffffcdffffffcaffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffff9fffffffacffffffbbffffffcaffffffd7ffffffddffffffe3ffffffddffffffd7ffffffcaffffffbbffffffacffffff9fffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcdffffffddffffffecffffffefffffffecffffffddffffffcdffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff00ffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb8ffffffc7ffffffd7ffffffe3ffffffefffffffffffffffefffffffe3ffffffd7ffffffc7ffffffb8ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcdffffffddffffffecffffffefffffffecffffffddffffffcdffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffff9fffffffacffffffbbffffffcaffffffd7ffffffddffffffe3ffffffddffffffd7ffffffcaffffffbbffffffacffffff9fffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcaffffffcdffffffd7ffffffcdffffffcaffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff53ffffff5fffffff6bffffff7affffff99ffffff9fffffffacffffffb5ffffffbbffffffc1ffffffc7ffffffc1ffffffbbffffffb5ffffffacffffff9fffffff99ffffff7affffff6bffffff5fffffff53ffffff46ffffff37ffffff3affffff3dffffff3dffffff4cffffff4cffffff4cffffff49ffffff46ffffff3dffffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffff9fffffffa9ffffffacffffffb5ffffffb8ffffffb5ffffffacffffffa9ffffff9fffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3dffffff46ffffff49ffffff4cffffff4cffffff5cffffff5cffffff5cffffff59ffffff53ffffff49ffffff46ffffff53ffffff5fffffff68ffffff74ffffff7affffff99ffffff99ffffff9fffffffa9ffffffa9ffffffa9ffffff9fffffff99ffffff99ffffff7affffff74ffffff68ffffff5fffffff53ffffff46ffffff49ffffff53ffffff59ffffff5cffffff5cffffff6bffffff6bffffff6bffffff68ffffff5fffffff59ffffff53ffffff49ffffff53ffffff5fffffff68ffffff74ffffff7affffff7affffff99ffffff99ffffff99ffffff99ffffff99ffffff7affffff7affffff74ffffff68ffffff5fffffff53ffffff49ffffff53ffffff59ffffff5fffffff68ffffff6bffffff6bffffff7affffff7affffff7affffff74ffffff6bffffff68ffffff5fffffff53ffffff49ffffff53ffffff5fffffff68ffffff6bffffff74ffffff7affffff7affffff7affffff7affffff7affffff74ffffff6bffffff68ffffff5fffffff53ffffff49ffffff53ffffff5fffffff68ffffff6bffffff74ffffff7affffff7affffff99ffffff99ffffff99ffffff7affffff7affffff74ffffff68ffffff5fffffff53ffffff49ffffff53ffffff59ffffff5fffffff68ffffff6bffffff6bffffff6bffffff6bffffff6bffffff68ffffff5fffffff59ffffff53ffffff49ffffff53ffffff5fffffff68ffffff74ffffff7affffff7affffff99ffffff99ffffffa9ffffffa9ffffff9fffffff99ffffff99ffffff7affffff74ffffff68ffffff5fffffff53ffffff46ffffff49ffffff53ffffff59ffffff5cffffff5cffffff5cffffff5cffffff5cffffff59ffffff53ffffff49ffffff46ffffff53ffffff5fffffff68ffffff74ffffff7affffff99ffffff99ffffff9fffffffa9ffffffb8ffffffb5ffffffacffffffa9ffffff9fffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3dffffff46ffffff49ffffff4cffffff4cffffff4cffffff4cffffff4cffffff49ffffff46ffffff3dffffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffff9fffffffa9ffffffacffffffb5ffffffc7ffffffc1ffffffbbffffffb5ffffffacffffff9fffffff99ffffff7affffff6bffffff5fffffff53ffffff46ffffff37ffffff3affffff3dffffff3dffffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff53ffffff5fffffff6bffffff7affffff99ffffff9fffffffacffffffb5ffffffbbffffffc1ffffffd7ffffffcdffffffcaffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff74ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff74ffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcaffffffcdffffffe3ffffffddffffffd7ffffffcaffffffbbffffffacffffff9fffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffff9fffffffacffffffbbffffffcaffffffd7ffffffddffffffefffffffecffffffddffffffcdffffffc1ffffffb5ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb5ffffffc1ffffffcdffffffddffffffecffffffffffffffefffffffe3ffffffd7ffffffc7ffffffb8ffffffa9ffffff99ffffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff00ffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff99ffffffa9ffffffb8ffffffc7ffffffd7ffffffe3ffffffeffffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9fffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff7affffff7affffff7affffff77ffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff77ffffff7affffff7affffff7affffff7affffff7affffff77ffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff77ffffff7affffff7affffff6bffffff6bffffff6bffffff68ffffff65ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff65ffffff68ffffff6bffffff6bffffff5cffffff5cffffff5cffffff59ffffff56ffffff4fffffff46ffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff46ffffff4fffffff56ffffff59ffffff5cffffff5cffffff4cffffff4cffffff4cffffff49ffffff46ffffff43ffffff4fffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff4fffffff43ffffff46ffffff49ffffff4cffffff4cffffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff56ffffff65ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff65ffffff56ffffff46ffffff37ffffff3affffff3dffffff3dffffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9fffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff00ffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff8affffff99ffffffb8ffffffc7ffffffd7ffffffe6fffffff5fffffffffffffff5ffffffe6ffffffd7ffffffc7ffffffb8ffffff99ffffff8affffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff0fffffff0fffffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9fffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff0fffffff1effffff1effffff1effffff2effffff3dffffff4cffffff5cffffff6bffffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff6bffffff5cffffff4cffffff3dffffff2effffff1effffff1effffff2effffff2effffff2effffff2bffffff3affffff49ffffff59ffffff68ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff68ffffff59ffffff49ffffff3affffff2bffffff2effffff2effffff3dffffff3dffffff3dffffff3affffff37ffffff46ffffff56ffffff65ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff65ffffff56ffffff46ffffff37ffffff3affffff3dffffff3dffffff4cffffff4cffffff4cffffff49ffffff46ffffff43ffffff4fffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff4fffffff43ffffff46ffffff49ffffff4cffffff4cffffff5cffffff5cffffff5cffffff59ffffff56ffffff4fffffff46ffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff46ffffff4fffffff56ffffff59ffffff5cffffff5cffffff6bffffff6bffffff6bffffff68ffffff65ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff65ffffff68ffffff6bffffff6bffffff7affffff7affffff7affffff77ffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff77ffffff7affffff7affffff7affffff7affffff7affffff77ffffff71ffffff68ffffff5cffffff52ffffff46ffffff52ffffff5cffffff68ffffff71ffffff77ffffff7affffff7affffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff8affffff8affffff8affffff87ffffff7dffffff71ffffff68ffffff5cffffff52ffffff5cffffff68ffffff71ffffff7dffffff87ffffff8affffff8affffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffff99ffffff99ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff5cffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffff99ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffffb8ffffffb8ffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff68ffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffb8ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffc7ffffffc7ffffffbeffffffb8ffffff99ffffff93ffffff87ffffff7dffffff71ffffff7dffffff87ffffff93ffffff99ffffffb8ffffffbeffffffc7ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffd7ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff93ffffff87ffffff77ffffff87ffffff93ffffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0ffffffe6ffffffe0ffffffd3ffffffcaffffffbeffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffbeffffffcaffffffd3ffffffe0fffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9fffffff5ffffffe9ffffffe0ffffffd3ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd3ffffffe0ffffffe9fffffffffffffff5ffffffe6ffffffd7ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd7ffffffe6fffffff5fffffffffffffff5ffffffe6ffffffd7ffffffc7ffffffb8ffffff99ffffff8affffff7affffff8affffff99ffffffb8ffffffc7ffffffd7ffffffe6fffffff5fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff48ffffff48ffffff48ffffff44ffffff3bffffff2effffff1dffffff10ffffff00ffffff10ffffff1dffffff2effffff3bffffff44ffffff48ffffff48ffffff48ffffff48ffffff48ffffff44ffffff3bffffff2effffff1dffffff10ffffff00ffffff10ffffff1dffffff2effffff3bffffff44ffffff48ffffff48ffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffffffffffff2ffffffdcffffffc7ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc7ffffffdcfffffff2fffffffffffffff2ffffffdcffffffc7ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc7ffffffdcfffffff2fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff48ffffff48ffffff48ffffff44ffffff3bffffff2effffff1dffffff10ffffff00ffffff10ffffff1dffffff2effffff3bffffff44ffffff48ffffff48ffffff48ffffff48ffffff48ffffff44ffffff3bffffff2effffff1dffffff10ffffff00ffffff10ffffff1dffffff2effffff3bffffff44ffffff48ffffff48ffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff5dffffff5dffffff5dffffff59ffffff4cffffff3bffffff2effffff1dffffff10ffffff1dffffff2effffff3bffffff4cffffff59ffffff5dffffff5dffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff72ffffff72ffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff1dffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff72ffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffff9dffffff9dffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff2effffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffff9dffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffb2ffffffb2ffffffa5ffffff9dffffff72ffffff6affffff59ffffff4cffffff3bffffff4cffffff59ffffff6affffff72ffffff9dffffffa5ffffffb2ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffc7ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff6affffff59ffffff44ffffff59ffffff6affffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4ffffffdcffffffd4ffffffc3ffffffb6ffffffa5ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffa5ffffffb6ffffffc3ffffffd4fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffff2ffffffe1ffffffd4ffffffc3ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc3ffffffd4ffffffe1fffffffffffffff2ffffffdcffffffc7ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc7ffffffdcfffffff2fffffffffffffff2ffffffdcffffffc7ffffffb2ffffff9dffffff72ffffff5dffffff48ffffff5dffffff72ffffff9dffffffb2ffffffc7ffffffdcfffffff2ffffff
m_StreamData:
serializedVersion: 2
offset: 0
diff --git a/Textures/SSFD_2x2/Texture3DFromSequence.asset.meta b/Textures/SSFD_2x2/Texture3DFromSequence.asset.meta
index 91f92fa..ad1002f 100644
--- a/Textures/SSFD_2x2/Texture3DFromSequence.asset.meta
+++ b/Textures/SSFD_2x2/Texture3DFromSequence.asset.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 88d49b37d73085a4a9fba2a31aca23a8
+guid: aea60424080f74047ab8b3b0584f9962
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11700000
diff --git a/Textures/SSFD_2x2/dots_L1-sdf.png b/Textures/SSFD_2x2/dots_L1-sdf.png
index b13a467..2ab28da 100644
--- a/Textures/SSFD_2x2/dots_L1-sdf.png
+++ b/Textures/SSFD_2x2/dots_L1-sdf.png
Binary files differ
diff --git a/Textures/SSFD_2x2/dots_L2-sdf.png b/Textures/SSFD_2x2/dots_L2-sdf.png
index 30fa038..56fe5ba 100644
--- a/Textures/SSFD_2x2/dots_L2-sdf.png
+++ b/Textures/SSFD_2x2/dots_L2-sdf.png
Binary files differ
diff --git a/Textures/SSFD_2x2/dots_L3-sdf.png b/Textures/SSFD_2x2/dots_L3-sdf.png
index f895230..0e5e09a 100644
--- a/Textures/SSFD_2x2/dots_L3-sdf.png
+++ b/Textures/SSFD_2x2/dots_L3-sdf.png
Binary files differ
diff --git a/Textures/SSFD_2x2/dots_L4-sdf.png b/Textures/SSFD_2x2/dots_L4-sdf.png
index 117bb48..58644d5 100644
--- a/Textures/SSFD_2x2/dots_L4-sdf.png
+++ b/Textures/SSFD_2x2/dots_L4-sdf.png
Binary files differ
diff --git a/Third_Party/gen_sdf b/Third_Party/gen_sdf
index 84677c2..2f0e3a6 100644
--- a/Third_Party/gen_sdf
+++ b/Third_Party/gen_sdf
@@ -16,8 +16,10 @@ def compute_sdf(img, scale_factor):
# Combine the distance fields and scale by factor
sdf = (dist_transform_fg - dist_transform_bg) / scale_factor
- # Clamp values to [0, 255] range
- sdf = np.clip(sdf + 128, 0, 255)
+ # Normalize values to [0, 255] range
+ sdf_min = np.min(sdf)
+ sdf_max = np.max(sdf)
+ sdf = ((sdf - sdf_min) * 255 / (sdf_max - sdf_min))
return sdf.astype(np.uint8)
diff --git a/globals.cginc b/globals.cginc
index d8a60d9..d736afe 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -1153,6 +1153,7 @@ texture3D _Gimmick_Lens_00_SSFD_Noise;
texture3D _Surface_Stable_Fractal_Dithering_Noise;
float _Surface_Stable_Fractal_Dithering_Scale;
float _Surface_Stable_Fractal_Dithering_Max_Fwidth;
+float _Surface_Stable_Fractal_Dithering_Cutoff;
#endif
diff --git a/tooner.shader b/tooner.shader
index 1660c3c..6f5d0d8 100644
--- a/tooner.shader
+++ b/tooner.shader
@@ -1183,8 +1183,9 @@ Shader "yum_food/tooner"
_Surface_Stable_Fractal_Dithering_Enable_Static("Enable stable fractal dithering", Float) = 0
_Surface_Stable_Fractal_Dithering_Noise("Noise", 3D) = "white" {}
- _Surface_Stable_Fractal_Dithering_Scale("Scale", Float) = 1
+ _Surface_Stable_Fractal_Dithering_Scale("Scale", Range(0, 1)) = 1
_Surface_Stable_Fractal_Dithering_Max_Fwidth("Max fwidth", Float) = 0.001
+ _Surface_Stable_Fractal_Dithering_Cutoff("Cutoff", Range(0, 1)) = 0.5
}
SubShader
{
diff --git a/tooner_lighting.cginc b/tooner_lighting.cginc
index b1bbab0..fde3339 100644
--- a/tooner_lighting.cginc
+++ b/tooner_lighting.cginc
@@ -1004,6 +1004,7 @@ float ssfd(float2 uv, float scale, float max_fwidth, texture3D noise)
// largest amount of stretching, so we use it to determine when to
// subdivide.
float duv_fw = singular_values.y;
+ duv_fw *= scale;
// Suppose Max_Fwidth is 1.
// duv_fw is 16. That means UV is changing a lot per pixel. That means we want to shrink the scale of the UV.
@@ -1016,7 +1017,6 @@ float ssfd(float2 uv, float scale, float max_fwidth, texture3D noise)
float fractal_remainder = fractal_level - fractal_level_floor;
duv /= pow(2, fractal_level_floor);
- duv *= scale;
#if 1
// Four layers -> coarsest at 0.125, finest at 0.875.
@@ -1122,8 +1122,16 @@ float4 effect(inout v2f i, out float depth)
#endif // _FRAME_COUNTER
#if defined(_SURFACE_STABLE_FRACTAL_DITHERING)
- float ssfd_raw = ssfd(i.uv0, _Surface_Stable_Fractal_Dithering_Scale, _Surface_Stable_Fractal_Dithering_Max_Fwidth, _Surface_Stable_Fractal_Dithering_Noise);
- albedo.rgb = ssfd_raw > 0.5 ? 1 : 0;
+ {
+ float3 light_dir = getDirectLightDirection(i);
+ float3 light_color = getDirectLightColor();
+ float shadow_attenuation = getShadowAttenuation(i);
+ float ndotl = saturate(dot(i.normal, light_dir) * shadow_attenuation);
+ float light_intensity = ndotl * length(light_color);
+ float ssfd_raw = ssfd(i.uv0, _Surface_Stable_Fractal_Dithering_Scale / light_intensity, _Surface_Stable_Fractal_Dithering_Max_Fwidth, _Surface_Stable_Fractal_Dithering_Noise);
+ float ssfd_cutoff = _Surface_Stable_Fractal_Dithering_Cutoff;
+ albedo.rgb = lerp(0, 1, ssfd_raw > 1 - light_intensity);
+ }
#endif
#if defined(_GIMMICK_GERSTNER_WATER)