Evgenii Golubev 7 年前
当前提交
7e4a3052
共有 322 个文件被更改,包括 4924 次插入1611 次删除
  1. 1
      .gitignore
  2. 999
      ImageTemplates/HDRenderPipeline/Scenes/2xxx_Lighting/2301_Shadow_Mask.unity.png
  3. 365
      ImageTemplates/HDRenderPipeline/Scenes/3xxx_DebugView/3002_ObjectMotionVector.unity.png
  4. 953
      SampleScenes/HDTest/BasicProfiling.unity
  5. 14
      SampleScenes/HDTest/BasicProfiling/LightingData.asset
  6. 2
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-0.exr
  7. 5
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-1.exr
  8. 94
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-2.exr
  9. 20
      ScriptableRenderPipeline/Core/CoreRP/Editor/CameraEditorUtils.cs
  10. 15
      ScriptableRenderPipeline/Core/CoreRP/Editor/CoreEditorDrawers.cs
  11. 23
      ScriptableRenderPipeline/Core/CoreRP/Editor/CoreEditorUtils.cs
  12. 3
      ScriptableRenderPipeline/Core/CoreRP/Editor/ShaderGenerator/CSharpToHLSL.cs
  13. 58
      ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Common.hlsl
  14. 12
      ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Debug.hlsl
  15. 14
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDAdditionalCameraData.cs
  16. 19
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDCamera.cs
  17. 101
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugColorPicker.shader
  18. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.cs
  19. 39
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.hlsl
  20. 48
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugFullScreen.shader
  21. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugViewMaterialGBuffer.shader
  22. 10
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugViewTiles.shader
  23. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebug.cs
  24. 1
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebug.cs.hlsl
  25. 42
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebugPanel.cs
  26. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Decal/DecalProjectorComponent.cs.meta
  27. 14
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Decal/DecalSystem.cs
  28. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/BaseUI.cs
  29. 14
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Camera/HDCameraUI.cs
  30. 28
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/FrameSettingsUI.cs
  31. 12
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/GlobalLightLoopSettingsUI.cs
  32. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/LightLoopSettingsUI.cs
  33. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedFrameSettings.cs
  34. 9
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedGlobalLightLoopSettings.cs
  35. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedLightLoopSettings.cs
  36. 74
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipeline.cs
  37. 7
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.asset
  38. 12
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.cs
  39. 9
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDStringConstants.cs
  40. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Deferred.shader
  41. 7
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/DeferredDirectionalShadow.compute
  42. 283
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightDefinition.cs
  43. 325
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightDefinition.cs.hlsl
  44. 6
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/Deferred.compute
  45. 4
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/GlobalLightLoopSettings.cs
  46. 322
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.cs
  47. 24
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.hlsl
  48. 45
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoopDef.hlsl
  49. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/materialflags.compute
  50. 38
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightUtilities.hlsl
  51. 4
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.cs
  52. 6
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/GGXConvolution/RuntimeFilterIBL.cs
  53. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.cs
  54. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.cs.hlsl
  55. 151
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.hlsl
  56. 9
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/CameraMotionVectors.shader
  57. 1
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/HDRenderPipelineResources.asset
  58. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDBuffer.hlsl
  59. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDepthOnly.hlsl
  60. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDistortion.hlsl
  61. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassForward.hlsl
  62. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassForwardUnlit.hlsl
  63. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassGBuffer.hlsl
  64. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassLightTransport.hlsl
  65. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassVelocity.hlsl
  66. 21
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Sky/OpaqueAtmosphericScattering.shader
  67. 95
      ScriptableRenderPipeline/LightweightPipeline/LWRP/Data/LightweightPipelineAsset.cs
  68. 2
      ScriptableRenderPipeline/LightweightPipeline/LWRP/Data/LightweightPipelineEditorResources.cs.meta
  69. 1
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/3DObjects/Sphere/Sphere.fbx.meta
  70. 2
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1301_SubSurfaceScattering/ThicknessTest.MAT
  71. 665
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius.unity
  72. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_1.mat
  73. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_10.mat
  74. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_15.mat
  75. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_20.mat
  76. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_5.mat
  77. 218
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/2xxx_Lighting/2301_Shadow_Mask.unity
  78. 1
      Tests/GraphicsTests/RenderPipeline/LightweightPipeline/Assets/CommonAssets/Cornell Box.fbx.meta
  79. 3
      Tests/GraphicsTests/RenderPipeline/LightweightPipeline/LightweightPipelineAsset.asset
  80. 1
      Tests/GraphicsTests/RenderPipeline/LightweightPipeline/Scenes/040_UpgradeScene/Models/Environment/Floor.fbx.meta
  81. 39
      Tests/Scripts/Editor/GraphicTests/Framework/TestFramework.cs
  82. 5
      Tests/Scripts/GraphicTests/Framework/SetupSceneForRenderPipelineTest.cs
  83. 4
      Tests/Scripts/GraphicTests/Framework/TestFrameworkTools.cs
  84. 21
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditor.Handles.cs
  85. 10
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditor.cs
  86. 76
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditorUtility.cs
  87. 91
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeUI.Drawers.cs
  88. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeUI.cs
  89. 4
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/SerializedHDReflectionProbe.cs
  90. 5
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Reflection/ReflectionProbeCache.cs
  91. 10
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Reflection/HDAdditionalReflectionData.cs
  92. 59
      SampleScenes/HDTest/BasicProfiling/Reflection Probe-reflectionHDR-MixedShape.exr
  93. 84
      SampleScenes/HDTest/BasicProfiling/Reflection Probe-reflectionHDR-MixedShape.exr.meta
  94. 176
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-10.exr
  95. 84
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-10.exr.meta
  96. 121
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-11.exr
  97. 84
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-11.exr.meta
  98. 126
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-12.exr
  99. 84
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-12.exr.meta
  100. 103
      SampleScenes/HDTest/BasicProfiling/ReflectionProbe-13.exr

1
.gitignore


*.aspx
*.sdf
*.userprefs
*.npmrc

999
ImageTemplates/HDRenderPipeline/Scenes/2xxx_Lighting/2301_Shadow_Mask.unity.png
文件差异内容过多而无法显示
查看文件

365
ImageTemplates/HDRenderPipeline/Scenes/3xxx_DebugView/3002_ObjectMotionVector.unity.png
文件差异内容过多而无法显示
查看文件

953
SampleScenes/HDTest/BasicProfiling.unity
文件差异内容过多而无法显示
查看文件

14
SampleScenes/HDTest/BasicProfiling/LightingData.asset
文件差异内容过多而无法显示
查看文件

2
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-0.exr
文件差异内容过多而无法显示
查看文件

5
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-1.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y�u��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y�����C�@BL0� V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+���������������������������������������������������������������������������������������������������������������������������������������������c�Ǎ�6<lx����c�Ǎ�6<lx����c�Ǎ�6<lx����������������������������������������������������������������������������������������������������������������������������������������������<,xX���c�Dž� <,xX���c�Dž� <,xX���c�Dž� ��������������������������������������������������������������������������������������������������������������������������������������������� ��C�@BL0� V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+���������������������������������������������������������������������������������������������������������������������������������������������c�Ǎ�6<lx����c�Ǎ�6<lx����c�Ǎ�6<lx����������������������������������������������������������������������������������������������������������������������������������������������<,xX���c�Dž� <,xX���c�Dž� <,xX���c�Dž� ���������������������������������������������������������������������������������������������������������������������������������������������@ ����?x�@�<x���,QFa�r a� �b ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2�r$��r r q�aD(F�#Ǒ�c��1���Ǒ�c��1�`�0 y<�F�#Ǒ�c��1�`�0 y<�F�#�}�m�.����D��Wz�����*5�p a���R�á�Ã��T��3�PbT��LĩT�*i1*P��*����>�C�*�A.�挿��G�5Yw��".�iw��8d`������>|��ϟ8�)�cf� ����(4llk�r(O0Q$(P�r(O2د����g_/�7������w�u�{9|�����������?������_���g��@1e�?�����������?�����������?����������?���?�����������?�����������?�����������?�����������?�����������?�������k̀c̀c̀c̀b�z�� y� y� y� y� y� y� y� y� y� y� y� y� y� y� y� y�s/�Eop&�ou��(���,�Mu���(Q�ٕ�1f@?������� ��!��C$�� �0.&Di
�HI�"4���{
������� 'Փ��:�nh5���~�4�M���H�拷�(B� ������A�@!�a3@�a.@ 
�B�Ӈ����<4����d �9X�����Oo���^/����_/��x����������?������?�����������g���.��?�����������?�����������?������������� �������?�����������?�����������?�����������?�����������?�����������5��1��1��1��1����.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�/��ݷ��M��ޱT���`�~�_�Z���.�,����S�*T�86r�a���%%i��� �FF�H��H��FF�-� ���:��#Ո�N�[�6��MTA��#�zf�<��~���;&(����P�a��H$�dA ,H,��g ���g0X���� ����,ttt��������u�?�ߛ��z�ޯ7���s8�����������?������_����������������?�����������?�����������?�������x���p���?�����������?�����������?�����������?�����������?�����������?�����`��C�@BL0� V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+V<�yX���c�Ǖ�+���������������������������������������������������������������������������������������������������������������������������������������������c�Ǎ�6<lx����c�Ǎ�6<lx����c�Ǎ�6<lx����������������������������������������������������������������������������������������������������������������������������������������������<,xX���c�Dž� <,xX���c�Dž� <,xX���c�Dž� ���������������������������������������������������������������������������������������������������������������������������������������������

94
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-2.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y�u��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`��~@ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y� M�Ij ���@��?���
�G!#������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������2@ <x0�`��#��G�� <x0�`�[x���� �����|��&y ��2I2@I$�$0�`��#��G�� <��kқ�7�o��������_����ʮ�`��{=�f�{g�~�#F��o'4���R�0���7J~�O���$���]�������/��������������l��<�M$��?������������m����~���U��� ����g�{�o��ӥ�m斖�3������$�N����]�F _��������?��=�����������<�&d�&$�92I����)ӧN����� C_����]uX���`^������L�?���''''&�����ӧN�M�60+����뮰����o�������ߘP�f圚NM'���?� �ӧO������뮺��?��������`�o{`��/''&t�����N�?`��l4��]u�`���l{����?��?�|��2L$ɀ���t�������# ���}u�y�������~���"���K�������'O�O���$���_�]`�����?�������7,��90���������������������l����������~���?�����O��h��_��Y�����������6g�Mɓ�`���t��� ���}y���%�g���`�K��KKɀ��������������?������������_�L��,�l�0����߿�`���k���??����0n�����3����"��y990��������v,,�����?�� <0��#�� <0��#�� <0��#�}����
����g��<����3$�x`��G�x`������M��� _���^}`���l��?�6*z_�g��������_���M���%��_��>������{�y���������&��ܤܲs��?� +�M��������`2���_�`���f����{�f���������O��ZX���`�������q�����������`_��,�%fO=��r̓�ɀ��������6(+�����<�?�����g���2L���K������'����60+�����?�����=���,ޓ&i70���������� �_��__X���a[?��0
_�����?���O���
������� ����<�#�d���NL�?��
�����(�������6���(����������L��������0/=���#O�����FoI�&���������=������E��`�o{���`�'�`���L6����6�����1m��"�\�??���I�&���$����� �/���?��&�"��<���'�����G�����g�=���/�����0/=�����&I7��,ܳs��?� ���M0 z�"���`���g��"�d`D�K�������D�рEO������0��0��0��0��0������`���?��9$��3�2M�G�y�G�y�G�y�G���}?������8Z��+��_����`�?g���lT������Kɀ��������K��������?� �����jI6os�'�f���D�O���&�������6~�g��`�R���ϥ��� >�����'���_X���`_��������������,ϓ9����>�����������ų�`g��{ܹ�D������m�L*�`B�_����E��������l������f���W������ #_�������?� ?g���g� Q)�����`�������6,+��?���?�����7��~rfs��?� C��M�M
��?���?� [?����'G��?�`������x�������5���
2O?������?�������`���_�=�P�/�&���T�(���?� �`�fɞI��� �?��-�����`���0
�_��L���/��D���&������,���70���?���0�������T�������'����`�� z���@������'!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1�1��1��1��1��1��1������< ��y���~y��fH�� ��� ��� ��� ���� }� `���?�?�7�VX1��� ��������������ƿ���M�$+��?������ʷ���� ij�M�I��?�?�8���� �`����)u�f �,��r`������1� ���?�?�8װj'?�O�NN`�����������3_���^y������`�Y�8K.`�����Sn���t-�V ����������Ѱg����1��:& ].`�����0m���� �����Bfy���f`���������r/����~�����0��o���}`�����`Ř4`ŏ�?�?�9� ������0o������ �w���`�I���rs���1T����������?����D?���������������?��� �������������h����`��������0c�� �`ǃ<1��� x0c�� �`ǀ�������&���I�1��� x0c�� �`ǃ�J�`�3�&�0��ql�tL���?�?�8t�`Ę3�$X?�?�8w���;�dI���>L�����¾�1����_�?�?�86`Ƙ3��?���X?�?�8$�����4?�������pk����'�`�����ְ��s��h�������`������`�����?�?�7���������� (����`���������������g�ɘ?�?�?�?�?�9f`�������& =`���������O�������>`� ��c�C�������0i��&��t��0��s����������������4����������0i��y�t0������0c��<��0c��<��0c��<���� x��'��g�c��<��0c��<���Ұn��-���?�0��p�����������ý� ��&`�����_����`�������������� ?�`���X?�?�85�`�ɟ�`������6��6����.�65������`��0��o��{X?�?�8 ������������ö ���������?��g_�������`� �������L����`������������������6������������$��?�?�?�?�?�?�?�?�?�?��@:3�������������_�����@�M��Q\���������P�,H��������������x�<�8��?��������������������x1��kAFr
$�L(�K,��(� ,��(��,��(��(� 0��0��0��,��(��0��(��(��(��,��(��(��,��,��0��,Œ,��(Š(��,�L,Š0� ,�K,� ,��,Ì,��0� 0��0‹,� ,� �L,�L8�L0�L0L0�L,� 0�L,�
4� 4�M4�N0� 4� 4�M�N0�;0�4É+�L0��$�M0�0�@8� 8ӌӎ0��4��4��0�I(��4Î8�� ,L� 0��� 0�Ë��@4�@4� ,��;�#? 8���8���,��7���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;�s@4Ӽ4�8���ӿ4����}8{7����;4�� 8�4��~8� 4L,�L4� 0��7��4� 0�M�0��$� 4�8�N8ҍ��L4�M,@8� 8M4Ì0ӌ0�L8��4��0��$��4��,��(� 0�L0�M,� ,Ӎ0� (��,‹(�K0��(��0��0� ,��(��0��(��4�L0��,�K(��$��(��,��(��,��,��$��(��,�J(��(��(��(� (��,��(��0��$��(��(��(��(��(��,��(��(�K$C� �
#V!�zVJC����A"���s�}PyϨ{��N{�� �xRN&��U�-���1�������� ��l���h�[4x���<V�M+`&��G���~�f�ݛ
x ��O4x)�~�����~X��??��w����'���F�LrB �҂H�O��:C�O���xs��<��ȏ+`&��G�� ��l�� ���&�vĉ�eG�x��FB� R���[���&�(jk �� ���\ ��T��P�&BO�3OR�0��E��f8 ���Jm�d�M���z����@MD����&��2~s���3�?N���z� DH�^lsc��.w���$��c�� ��͈ �H�>�����1�B� #��TƤjGy� �B^Ǚ�+M�xG�^&��S�;�e��dY旉� %Ę$�Q&8��rgL�� �c�:#�:#�:9�V3`��� �(L�G��}�±G��}6�0Q#��>���&���U�P<�~p��*ǝ�:����}��Ht&G|</18q�*%C��U�NA�j�ӓ��C��Vn�rv�7�i����5�����Lκ��(`h�CC�6<�5�)�{Q��Pp��)JE���f#�a����>��U��)B�!�� k�`�`�?�2�S%�0S5K��g i�5��]@�i��h#Z5���J�x=.�H]UJ�+e�6 4�� ��z��nu$�-KRԵ-:�86@�5��CmkZ5����p �&��5� ���ư�r]JQ�s��`ƀ�RAZy��AD����N]K�8�'!�,��Aa��I��x;�(�����& ��i�<T��
�DD�"����M���b���j�������M/@$�P5R�FLO���7��8���DP��� ��k+:����E�6��S�s� �M��vJΩ�Ғx<�����/���sk��@��h 02�
>����G��`�� q( �~F�F˜S
aL)�0�£A�{D�� ������@MCw����i�P\ p�4&�КBhM �4&�k�t��ئ�
`��0YG�G��2Ɓ~x$��� ���_��/�k����~&IzT��5!�x�5Ȝ�rؐ���� b����*���4��}s������)�/�� �?|����4��k[����&�=���{�x ���<��@��ug������ ù(M�J�IcA&l��i w��xq�#���=
c\�%��>�:�s���������$$��(��P\�SH�0u*T�V�WV����* �̪G�!���+V�Z�jիVr �q�z� ��vȁ:5Pc��{����{�����R @�P}��U��vV�+U���T�Q͐�XS% Ҍ�� `ĭ�&���S��Pʞ-)HK�8��+���"Б���w����V^�^��������9h937�ic@M^x ��4��!�A~1��\aq������&!BFc��g�ɼeZ2�W����2D����JBBk�M������1�1��j6�m��m����ܞ����Vsa�9�1&$Ę�bLI�1&$Ęs:RP�&�<�����)
B��)
B��)
B��)
B��)
B�8�=
����q�l6�j6�l��l��lF�kƼk�M�0�&�"[?m��Fm:�� ����@R tɽq�<G�AY��A���<?�'x���p�借"�X���&�7���h �����~�4}����)7�@�ǗJ���{�\Bp��x�)�o���6�����Ȥs�wwU����7w;o6J�WV�Z�jիUӺ�Xc�����p� �����鎝���������Ӳzx]� � ��Iݾ�\��&���� O���kZֵ��2l�Hypf��<�N�իV�WV�GV�(�T��G�%�KЛ!�^ g�� R���\M�����c��}� �֡������m��( �T7�&��M&o��{@M@{�����i!���?M}}�����n��fE�(@Ā닸ᄩ�+���7;�^�G��G��vr?x �꺕FV���իN��;�0�P���ɣ�6�������=============;'�"��d�� ���V��&��d�;Zֵ�]��kZ�u�ֵ�?I����PHN�F�읓��j�eYZ���U�&��kV��3 �h���3�����ݟ��8��g����6ַۚ���ߋ�wK��A���*�U!���O�J@M�����������v�����w{��������3�(uH������~������@H"R'd�H�q�H�qN�*.����7K�]��&��꺵jիU�eYX�=�����������VOOOOLt잞���������vOU���:�P׀��4��h ����&���pAǃZ֮�Zֵ�kZֵ��ֵ�H��`f�� �Z���V�Z�YV���G�>�#Y v(�p� �H��2H�C�� A��Hm �Cl��n��k�� wCn�� gC=�GH\��P�a6z@M���>�o�o��i˷�������:��� D��u/S��:�N�S��z��j����@D��'��t��c��GgB=��i6 Z�j2�j�zw PJ
�O�?A��H'���ӺwOOOLt잘������c'�t�잫�d읓�s��ހ��5�&�4���[��3V뵫u�kZ֮�Zֵu��j�f���f9Ck�W��*��;*�ը�ի6:�6�~�`I���#�*.y�����AN A+i%krK�%��ݹ$���ݝ��wpswp�E-l�&�?��5������MԜ[gi�Ax����gn��3�gwzg��+���x}&��Д���m=���?ΐks�ë��K���jիV�� Џ���Ƙ�:�z��*ʲ��*���VOU����ej�zzvOOON��WU�u]WUβ�i�� ��O]�&���M=G��$B�V��5uٚ��]u�]v��u�κ٫���z������ը�ի6���5����qB�/�jP���t+Y
�B����n�[Н н Зt'B>��W��l858g��P�M���n���n����������P^s�<�u:�N��u:�N�Su.�n�Q��9ܰp�&́+�Y�lp��~ C� w#ݞk���+U˃�$���app]VN�իV�ZwV�Z�YZ�����jէejիV�Z�jӲ�p ���&�?}������L������۷�����Xp-ٚ�2�v��fj�u�]u�]u��g]l���뵝lu��v����h1Z�V���1ؠa.T����IR��o�r �f��fff!�� }����w����wq��y ����"��*d������m���j �������������O��s��s�ϋ|]�����Xo�A�߇��� „M@�?���C�����_ԫP%��R�� �l(��uj2�j�eYZ�j�ej2�jիU��U���էejիV�VV��d��7�h��Mx � 4i�&������fj�]�n�V뵫��3Zֳ���j�f��g]������9�s���{(��6)G9.- ��=��i�!��lҦ�T�TZS�Tr�����>�?*�E�Cܨ�K�M�6�ot�����)�7�����������{�������Ϩ+��9�'-�����'97��M�M�o�w���|���'7'8�v����'�>A��8���ZX ��E&Iq/�����/����^K�.`���p�틈���nżط��� pk�[���[�o-��.��ˉq.�pm�l�r��� ؽqz�2'7�h۴ѷh �n�F��&��䐫��qW,"�� a+د��W��]+�{���WJ�]+�t����W�]+�|����W��,%�U�aqW�*�9��� E;�&��~.�����u�z����[�K n� ��z_���Tpr������v�����h ���{����ݽ�w���<78�pv�=���C���=�����Sů��̀��7��������^i#;������� ��b�׷������M"k�������x ���&�?��4}�&�<������
�"랱%hA�A�.2A'���T7J� �4��N�I#*��*yG�k���
��G���&�.h��&�.h��&�.h��&�.h�R�o��[��G��h�R�����~I��J�����O�^r���ì?D �=�HI^��H��r;�)'A�B���\���M\���M����7�h�Ÿ��S�pMq&C��?AO$,8�9��5�\8S�g e\`� G`�#��i9�!�'� R�� �b�$��cbo��ր�����x �g�G��vs�vN��>Np���"g���p��L�8y�=�C������l��&2� 0 ���bP �'(1�-#Pt��t�>��Cd 38��] (8� �C��5q��b��r����,��p@M�����Rj�������i�c�8c�8c�p��G����Net�VeL��2�T�2���2�TqGq@M��J�dI�� ӘD��A�y���J�ÊD��Z ��$Nb6���D���
�� �|���-d�
�'�No��V��h �O���L�Z�h���>��˼@
��*����!��~J� O���P��`  L��R
��B�𵈢Q��lZ:�P� ����jK d:@�4ixҎ�s���/ T4�Ra Pi^���;�H��E�s����/�^@M����� ;��-KRԵ-KGx�Л! IjZ���h҅�`��% ��$�LR�:BLiRд���� (��':A�t��Zl��I�5�")e,�C�c�Da�g�[@��F"��� ���� &�jž RC�?�v� \X ��M[���5y�&��qA� u,��h�ⷕQ%4&��xH��!�0b���O��@g�a�zG�iHg
h*M���E p`�iQ�uGQ�9`p�¤+ � h�:����:����:T��7��4����ж����:���k�|ŀ��51�&�<Գ��Y}/������_K�}/�r��x�S��uGQ�uGQ�u h#��H_�8�GQ�uQ�P`2v a)!�hs ��4�Y�#|}��\����*)�!�k&��|sϷ ����R|S
A��9U��0�&�5�����������&��E�4�@���8���~q��5�>�x,��$Ї��7L�##nz�����rU;�a)�hss��"26��P�VPp�P`p4���ֵ�o��(��)�8~`mG8n.���ֵ�j���n8Oòo��G�5!�@MC"ࢌ(α����{����Y`�8ȹ��8Q��b^6�kZֵ��qxRp��� *
��lL��y&�s������o�f��h����b3������7�5�M›�7�r#@�7�j@MPx �'��HF���_|e���_Pt��$
@CF:�7��B��7�JE䚉�/'l&ft�����b�Y�1�Ƙ�c��1�<ș���"*R�ԙ3&d̙�2fLə3&d̙�2fL�5`&��M�7ʃ>g���3�|ϙ�>g���3�|ϙ�>g��w��G�"dLy�1�4Ƙ�b�Y�1f,o��o�M� �$8y����I�+�1!4S���P�8Cq ���?1��������k �j&�PO ��Jk �����HE�)M�0���)8er����2�9���W�"H`�zp�7����-'ˍ�y#xn䳼/9�x � kZ�]n��u�]u�p. +�"�,�[(�T�]GR�J�*W]u����q�M���z�5=�i�,A�kZֵ�k[�� ����\ź뭙�]u��뵭h � �uoV��Ox��48O
!�R ��PCL� :e��L��?O����ΙhӀ؞6�d�M���V����������&���p8��������ݺ��aA�G��d4�p�8A�|C8���}Wj���vx ��uڷ]n�������$pQ� ��2��JT��T��T�R�Z�j��*T�]I@$�&��M�
Ҍ�MkZ֮�ֵ�k:�kZ֝��V���P��f^.�u�]u�뵝m5�OZ։��妤���F%49C5(�����3���Z���������y)%K0Z+�<��x
����������o��h �n�����������k�N�9�6Ǡ�3ϩ��t�;?�������B~QìO҆p�:N7Q��~�>������`f]G]u��:�a�;F9y�b�7Q�:�J�*Te*T��ԩQ�e*T�Q��]Hn�,�T�� �f`C���kW]�kZֵ�kZ��kZ��`#?�i0ł�uun�뮸 �
��V��N�.QhE�CK�0g���l��Ι�9�:e��3�w�s������zP�� ��H����&�7����4m���Ѣ!g܃T�N�T�u:�N�]�>��ۉ(��
� Hr�9�Z��'NA������}W���뭔u��Tp,�����3��"���e*T��T��T�R�J�*T�R�VR�J��Q��Bo���h �n�GC�@� f��kV��ֵ�]v��j뭚���gXD&�8��h�)[��-�]p`�٠�*a�N�1<!�20y� �H���t���h'�$?��ܐ�'���M�7wp�@��b���4a�o���jC����{�M0��S�~�� ޙo�v���?�ww�{��|�gEQD8���
ٸ=��8��]��6u��:�b|vP�_�%9�Tu��*T���R�J�:�*T��u*Te*T�[�[���
�vo��G����H¸L �j�[����fkW]u�]u��u�k:�f���+����섅�O�ku�e�뀛��x=��,b��!��c7M٧f�t��/L�2�Ο���gO��>��Θ�4�j�]��� �M���h �����M0�!���:�N�R�:�N�S���u7S��S�7k�b�AU��5 �؃���Wӽ�&�����#8 �'��P��r�GR�R��������QԩR�J�*T�]J��R�Q��2���;��8��o���h �n�G�`!�V��]�n�V��5n�뮺뮺�f���j�fu�ζ4 ��o��4-� �]F\�,J��ˆD�����'(&�����;s��?��"{����������{���p�($>�M���0���������w�w�� �X� ���{|_��� ��!����e��#��K��;P/br`X�F�X� C������0s
1I��(�"V�e������Tu���R�]J�u�]u�]J���J��n�)[��-�)�p���v������i�~���o����:�R �k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]�� �:Ã�����n� �< !�E�?��#�a�+!�ś5ygj쇽ygj������;�f�f�gw,�C�Y����H�!���h �N�x �O��������Eb�6`"�Y^Y^X���˖<�卥�,ycye�c�-���'id�,_6\*M�_�qP�"��>�&����"#���F"YD�4Lc:&��YD�4MȚ%�4MȚ&��h�&��\c2&�q�Ș�dMD�&1���&��fD�s�o�����h �x � o�������X�DK�DK�DK�DK�D2"]��˺"��n]˺"��(�"��r�]�"��r���dD�dD�dD�dD�!_����'����烯�+xdp���V�� ��Aۅ�������߅~����������j����������7�]���^������ߗ����2��M������� ��ݿ���x ������x ���&ļѧ��r�����h ���&ſ����&�7�����&��\����}I�2Z�r7�x��l��s�{PjVKPhx�� �/�')�4R�)���5����K��h ��4y�&�4�怚<�G�h�@M
O�o���$�ऀ�<���{������8��<��E���y#%�-����Lt�����/����������&�4�怚<��&��M���<yq��xtG�:8!J��1:��<�
���v3J��*�Y ���,΂:N���J Ô�Œ>� �d���S$���7�o�S��=�4�T���C9R0��<���#2Q*x�ǟ("�
!��<�&��rm¨�+�&p �p�0 s�Y\p��i ��c��6��C��e�2��,B�X�A�`�AbX��.�>�t�Gн
�ڀ��7�����s�y��ˆ|G�|G�|H`�AI3jmM��6��;J#jm��6���6�bHۛ�nMɹ62X\�Bx��@�&g��H���C���ZAÜ�4
K���o�����
2;$��ZT�fiZO�^YIqt�+V;!�o�Ӧ����N5���j���J������ U�1���0���P��Z TP��#t\�U"&��@ ��!0!b<�* ��l���9�R.R ���c$�:�B�ZG\�1��
3�`�
ĸХ�z^���B`G#�Ñ���y���B�u$�� �f�t9�-KRԵ-KG �4�� +(�A�=��4 t#��� �h��_ ��B�­�V Q��f8Ȝ��q�pG &��- ��P\�N<�DD����>L�h� �))��?���DH�"f��7��<�.�(#��2��%7�o $�a�C��-�H��߂ܢ��}�P+���� B[�W"P��R1-&�Š�J�tbJ�,���# ��VH �eeFQ�e�1S=�0�@�FQ�eFQ�c�h�6#MDA����6��h�2��(�6����Jo��3�M��FѴmFѴmFѰ6 ���b #AuFѴmFQ�eF@� �i8�M�r��(�24��2l��RPBy
���P��2Ҵ������d�hR�R.H��
H����ҿ�%�^qS
AH>èt��59'7�ic@Mjx ��#��%#�`g����1�R�Pt�:)3,����1�������o@�A�}���?g$����q�~*$�c�A�e���-�:+����|����ߛ��*�bD`&��M�#�`�-�c��{����{�e�W��AC� ��Z&���{��i�PQ���x-� � ����`^ZA�KI����3���?��v#p�����$�:�x��?��3���>�F�HЄ���6��&���1��g�fq��gpy�)%��2 Ј��:�3���R�Q%���� y�6њ3Fh��4iF��iF��iFiP#����4��Ӥ�*J���*J���*JjMI�5$ 〛�4��&�4�SȡI�t�'I�t�'I�t�'I�t�'I�s�)� M)�4��$iF��iF��3Fh��4`&� >#�Xr�#ȿ�^:�V\�%(-�����9�4�1���/���W�n�Y���o���h ��JK�HOQڑ�Ύ�O�?���i���{(���8��9bƕ�c���a�V�O�$�&��m��ֵ��kFq�,��P�����]��u�]u�]u�]p�0����&瞥0���kZֵ�kƈT��0Fp.5�k;Zַ�Zր��}}w��y19 @�A�
��\��7��a�S�Ե^�W����w �™&(Lh ��f_��H�Ih?����}}�����n���w)NB�ˋ�����-��0e�U��׺��@M�m�ֵn֭�j��:,�X��2�u�[.��Vˮ�뮺뮺ٜ��u��&�?���w�@M% ����kWfkZֵ�v��kG�r!��+� ��hM]�뵬�k[��/ۂťG5eTbX�R�IM����jaʕ��i
���o����w��\���R�x'�*?�������5�������+�z��Ac�m��٘{�������������\]
�O�} 2 e��Aq��;w7]�߽�l V�jݙ��v`!���M� ��3���]l��W]u�u*T�]u�]uu���<1`&��M��њ�kZ��kZֵ�kZֵu�ִ�M�W�#ѠCL��u�:٭[4�:����v((Ir�$��9���y�%X�H'�?O�ޟ�j�^��};�[ϙE J
���Vo�Җ������&���I*F���R�:�S���u:�w����%�d��A�!�)�
���(`�v��R�7�����ٖ��u���%��(F�b�������W]J�u�]u�]u��uԮ��H���7�h��׷x ��R��Q��u�պ뵭kW]�kZ��f�u�Y��D���$N@.�E��g[5v��ML�13 XB��$����� p|��0�Bv�_�_�_�W��&�zE���8���,�&��Mh �����MPL�no���is�[靺g��������4���hO���/8g���l{����1�w����u��r�� �lH��+E��b�뮺��u�[.���u�]u��Te�[���u�I���3 &��M'v����4���p�-]�uٚ���j뮺뮻Zκ�g]l��p�`��H@� ��^��[.�\�-R�~'�T�D�cR���5��e��6�����^����^�W�ջ�ӻU��w3����Zžo�Ѧ��k ���FF���`oC.�S���Z�S���u7R���u�p�p��@�*�JD����i9���w���̻2�9�97�Äb���[.������e�u�뮺뮺뮣.��u�e�]s54x�h ��I�k@M%4ˣ4�vf�̷]�uٚ�]u�]u�]u�Y�[5u�:�g[��Lj��G#B$Z.λ<��)D�M�qD!���#0�=�� 6�K6Ӳݡ���_������{��2����´��t���6������Ch4�!扪���������/����}�9��>ww��V*�OB���J���~9��_���[7 ����B�-@H]u�]u�ˮ��uu�]u�]u�뮺뮣.���κ�D�n�M������v���������| P��fj�]�n�V뵫��3Zֳ���j�f��g]����r]/���� b}�m5�
"x5����3%A��{-�l�m�m�n[ph����-�m�m�n[r�����r�r�������@R?�&���������{������C��>���������-yk�^Z�ז����-w-yk�k�]�W�W�Gx�p��� ���ہE-������
��Q�/Y6�M��i��m6�M��m6�M��i��M��e���i��z���m6^�l�t�m6�/]5�R7��������������>�*�tU��-�T[��E�T[���*�t]EQTUEQT]E�*����EQtU��EQl���E�*|?��P�.k������ ��n�����On�ۦ�?�O~�N�Pq�7������5����ݿ��U�O�?���Mw���?���&��~� ��U���\��&��v�ݠ&������&��M���5a��v���7�l[�Mph ���`�4����@��?�����������>3&�!F��/�33�<0@3�N��Nÿ�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;,��(�
(����(�0�L0��(�0��0�
(� ��,�J0� +�3@,�8�����?������x_<y�>xy�>x��C���G����G?������ �� � �� xPǀ xPǀ���_������������&�ə!rB��O��?�����s��</�<��<���<��!��#�����#��y�|� ��������������������?�����'�`����y�o�����?��<����?��^�����~��)���0�I����?����< s��x烼�w�����w��������ـ�كSf s�c����< ���x;�s��x;�{���M�jl�bl�����~����?����������I�l�k��5�9�o�����s�;�ߘ;���roSff M�5��x烜�7�y���9������sx97�������?�p'˗��,3���r~��R�d�4�YDL �
8L)��x1�3������� r&Œ�R�(d ���T�� JA�0M0VQs�S
q3� p��<#�;�vB<#�%�܉�� T�
e",)����p&Vo���`��g�?&I��E(LL�D�����TœL�7�#0�������`��7"l(�)�@�H�JA:@0�D�J��e0'0(�U0�0 ���#�<�d#�<"X0p ț
2J@��&R"�R�N� ,)!� FA�� A" J �N
R
�V
��D:"""" Z AdDDDD9���AX+PR
�A($�H�(#PB`E�����0B�F�J H�PL�pP��T��V���"!�X��Z """"!Ȉ�<<:
�X*��Q�� A$@� A"�#(��@�9|���3���|����\�# �`J���%�')H+a�xx�"�-��""""��C�à���)N ��A$ @��(!0"�\@�@��D�!H#P%�$A(&A8(AH*AX+C��興��,Ah-��DB`�AH(�pM�� J��A��B �jc�PBƨMQ�)mB������9 �#$�� !d�I!9�Q$&B�bHL�K�v8�,j�����/�?����3�P�22HY0@�I��Bd,�$��0��~�������������$�L�L�@)b�����P���Rڅ����?&r
&FI &B�"�Bs�HL���$�-@�q�X� �;-�_x����g ��dd��`�$,�)$'0
$��Y I �G��Q�q�uQ�FGQ�V:�28�[H�#R5#�:R8��8㎑��28�Tq�8��8㎪8���2�*�V�Gki�jF�q�GJGq�q�2:FG�������h�����G��Q�q�uQ�FGQ�V:�28�[H�#R5#�:R8��8㎑��28�Tq�8��8㎪8���2�*�V�Gki�jF�q�GJGq�q�2:FG ��7 ��/���^/��b�x�^9"�\�d\�2)�L�d6C d1��C8m �43����7����ؼ^/�H�"�!��dS"� ��C d1�o�������3����s$� ��7 ��/���^/��b�x�^9"�\�d\�2)�L�d6C d1��C8m �43����7����ؼ^/�H�"�!��dS"� ��C d1�ƨ�Tq�ddddq�FZ��V2;m���ZZF��JGhѣGq�2:FGj�5Gq�FFFGTe�ʵc#��m�5��jXԤqƍ4q�##�dp� ϗ����0���~�?rG��Q�q�����Uj2�X����c�ii�5)q�F�q�H��q�8�q�uQ��*Ռ��m�8֖��cR��4h��t�����z�5���>���>��oῄ2���@�d�ɓ��H��$��L���������?�!��� �!��'��$�>L�$�@ ��$�d�o�v�����3�?�<�2rL��z�5���>���>��oῄ2���@�d�ɓ��H��$��L���������?�!��� �!��'��$�>L�$�@ ��$�d��Udv�FGde��Q��m��m��ljXԱ�Gh��:R8㎪8�파�8��Q��-��m��m��Ա�cF�8ѭ�4t�q��._�/��`���O�''�q�G����j2�e��m��m���5,h��5�Ǝ��8㪎2;c##�22�e��m��m��m�5,jXѣ�4kc�)p�+�űaqV/E��5�������Ǒ����iȹ�)RH�E2�g��ذ�����k�������������H��d\�I�)$S"� f���3~���BO��O��\��$3���lX\U���f5�c��q�����||rG$ZE2.E$�G�)�L�2�qx�,.*����Ʊ��������>>9#�-"�"�E#�IȦCj8�������FZ���m��m��m��lkK5�q�F�:[Q�FFFFGV22Ռ��m��m��m��cZXѭ#�4h����<�._����)�0d�������޵ddddduc#-X�m��m��m��m�5���8ѣF�-��#####�j�[m��m��m��m��,h֑ƍ4h�a+�m�x��J������癙�f�Y$'3%$��@��䄬v-�m��a+m�����ffI�Jad��̔�I� � �'�x_{��?3����s<�2G$� &I��v-�m��a+m�����ffI�Jad��̔�I� ��ضٷ��������K��y��&a)��Bs2RHY$�.J��FFFF[j�n��o�����m�m���ѣF�m�[c####-�m�[m��[mm�ܶ�KlhѣF���\�~0ƌ���?�{�ldddde����m��Km���ۖ�im�4h��U�22222�V�u�������m�m��ƍ4km"�x�^.�c�������{�c��K$||g�$S"�^)�L����x�5�G���lsm�I���,����g�L�qx�E3 ����f��c�<����L�3�.\�H�^/��X�||}��1���������q�ȧ�dS"�x�^.�c�������{�c��K$||g�$S"�^)�L����[m�����m��m�ז�V�m)m�)J��mU��Km�-�����mym�m�Җ�R���>\�r�,�8I��''''ꪫmU��Km�-�����mym�m�Җ�R�����[m�����m��m�ז�V�m)m�)HB�B�mخj/��ſ��E��'"�1I�CNL!2Id,�+T!m�݊����[���_��r.s�$4��$��&B�7���?��������/2I3��'$��V�B� ��E�7x���?ȿ1��\�)6HiɄ&I!L���j�-�۱\�_�w�~?����NE�b�d���Bd�$�Ym����m��������o嶻m��lh��і���m��oKn�n����[k��m�ƍm���\�r�����0���99999#-����m�ޖ�����m���m��m��2�m��m�m�m�����mv�m��ѭ����V���o����{���r�v�t��$|S#2)1lz+GՏG7�o{����{ܹr;N:Ft�>)���pG�y�y���1'��$�r�˔�c�Z>�z9�s{����{��ˑ�q�3���L�Ȥű��V=�9��{����r���8��H��FdRmU�ۭץ���m��m���������J[Um��u�n�w�o��o��-���m�ҖK�.\�>_��eO�?|�����Z�m�[�KwK����-ymw-�m�����m������������^[]�r�m�,۫�!�� ���o��'<��rI&`<�\�L.`>�]��xk��������9�� s�I3����as/�����{����|�g��.d���Y�'$����{�_���������&a��I�&$� ��WxC����7����$6Ny3��L�y0�$�\�m���R��������myk�嵕m[m��m�������t����k�^_-��j�m���\�d�9?��0�'�?���I��'m��[MKwwK�[�����/��U�m��m���j[��]����m�-y|����m���ն9^���f���^ۗ/N�x�Y�FZIlsV��{�������{n\�:e�)f�i$p�����͛��~l�����3�f{32NO�)2G�ն9^���f���^ۗ/N�x�Y�FZIlsV��{�������{n\�:e�)f�i$}�֖ޖ��/K�ۿ�-���^WmvڹV�Mim�oM���������k��v�m��l8B�/�9��s��L����������9$�i�-�-��^�}��[-v�����r������ޛ��w�w�����k����W*�j�+^;x���>{���s��1�����I�2I 2I V�k�o�������|yf>��I1fI!�I0�����y�����~d�g��̓̓�$���lV�v��<|�����ǖc�1����d�d���׎�?�珞������}&9><�b̒CL�R�m�7z^�����m���~�k�U��ڥ���n��/��-��m�����|��m��g)~s����s �?�����$�Զ�{Mޗ������m��_����{m��m����/K�Km��k��k��*��m^=�����߷�ƞ����e鑗�3.^=�����߷�ƞ����e鑗�3.`��o3f�發���,�vd˖I&I�)3&^=�����߷�ƞ����e鑗�3.^=�����߷�ƞ����e鑗�3.kK�MK�w��`�7����YW�W5�ݦ����}���~�]��嫘pO)g���Y��������?���ޓޒNv֗v������� o���v����kK�MK�w��`�7����YW�W ����o���������?</������/�����7<�<����|��</�����������@$1�<��������������������� ��������������� �?�<�~x_<'� ������0����������7����b_��&|����7��?����y?����� 9��<s�g�K��s������x �097��x96`jy����<���x � s�_��x=�����&�vo&� O0� �����`��g��<���<��L 9��<s�g�K��s������x �097��x96`jy����<���x � s�_��x=�����&�vo&� O0�����/����������1�����d�N`�¦%���x�&����x3����A��s�l�b�)��&A�d(��&R ��@��y�LK���L L p/�� �g��83���9��� R��L�$�QH/`L�)�"��o0ș������pY(�/0��pba� �i�n�3�� �1��x3�g \�[ X�
@<���bę
)� ��� �P'0^aS���<��� �g�<�c�� �g �@���@�H�ya ʼn2R �)�D��LLID‘11$)B�$)B���R$��!P�TLLLL*
�1(Q
�(Q�(�Q���1(�LL(�1110�)D�0�LLI
D�I
D��*&�"aHT*
�B�DLJD¡DJD�DJ&D�baDLJ%
!DLL8"�_� d� 0Ɖ������LLID‘11$)B�$)B���R$��!P�TLLLL*
�1(Q
�(Q�(�Q���1(�LL(�1110�)D�0�LLI
D�I
D��*&�"aHT*
�B�DLJD¡DJD�DJ&D�baDLJ%
!DLL����k���/{;����矒 �M&f $ŒI$��FI3-�}�Z�a:� ���.��������I����1d��AI!d��L��>�0��&`�y�~Iॼ/� X�'V�{������<��_�i30X�&,��H)$,�2I�)o ���; հ^�w�w��/�?$��L�&I�$,�
I $��fڪ���Q��Vڶ�m���m��[im��K5)Km����Um�m�m�����m�������R��i����s��L�cd���Uj�-���m��o���m����cR�4jR��UQ���2�j�V�m���m��Km-�5)cF�)l^5�1t|]����>9��������������)ǑN-#$�d^5�1t|]����>9��������������)ǑN-#$�f)��c�<��<�1��_��^5�1t|]����>9��������������)ǑN-#$�d^5�1t|]����>9��������������)ǑN-#$�eU����[m��n���m��jۖ�m���5�*�de�2�m��u���m��Vܶ�m����ѭ)��_����O'���UX��le��m��m-��m���m��m����ZR��F[c-��m�[im��m�m�m��m�m�Ґ�� ��~��/xnx��s�x��1%��$�� O���$!<��� ��~��/xnx��s�x��1%��$�� O���$!<�o�����?����$�$��$����������� � M���ė�L� NL1>B$���B���������� � M���ė�L� NL1>B$���F[le��iiiu����+���[��Z��lkm�m���m�����[w����YnZ�j�m���6����������[le��iiiu����+���[��Z��lkm�m���m�����[w����YnZ�j�m���4V��(�ݶ�ls{o��f>2����i4�$y��L���e��m�om���l��[ټv�&�d�#��>)�o���?�4s/��<����e��m�om���l��[ټv�&�d�#��>)�Z>,��v�m����sm���{7�٤�l��|R��2�m��[�����-��k����rڶ�m��m��[�����-��k����rڶ�m�)��?�`�$�����m�������Km���oon\����m��m�������Km���oon\����m������턻 h%����<�$I2B��Ʌ� �&�������1���?�L�0�$� �g&$.d�p��/���?���<�<�<|�2O kcq�{� v�K���&y�H�d��3� �2L%�����l%�cA/����a"I�$�L.H\�6�m����{z[�m���mv����j�m��m����{z[�m���mv����j�m�� ���������|�m��[��������m���ok.\����m��[��������m���ok.\����V>9��m�s~����{�n_�q����I,��3��c��m���7�����v���K�)4��#:I�
f���`��3�ɜ�U��m��o߷�s{��ۗ��e/d��K$t��%X���m����{�7���~i�R�JM$�GHΒ]i�-5ԽԻ��m��o忖����Z�W-֚��]K�K����m��[�k/k.U��r��/���?��g ?���'�u����R�R��}��m���Z��˕j�\�ZkKMu/u.�w�m���o嬽��V�U��_����{������c�93��)91I9"ߋ�?��?�x������L�&q��'&)'&��������fe眞|�$�L[�~���������I����?����$��~/������������1����������]i{�K���k��e�j�ʹ�5֗�ԿoK`�6�~�^��\��p�����,�0I���'���5֗�ԿoK`�6�~�^��\���]i{�K���k��e�j�ʹ�7�o{7�~���{��iܶ�#)L���3��c��7��߿{����4�[{���GH��o�7���^d�����_&H��9�s{ٽ����{���N巹Jdt���|s�9���������s��r�܌�2:FX���]MM߻������m�������Z����jn��������k�/��*Հy�����0�������KMu57~���[���������˕j�Zk����w����m���_�VV\�V����������x�r~Hi̜�a ��d�;����������g�9���s'$�Bfy�0������`��2I3�O2O�$���o������3��O� 9��L!3<̐�~����������3��CNd��L�3&��zn���_������������5�{�t�����m���k��W�����y��?���3 p���?��~��{ޛ������m���_�������{���7w����m����/��w��[m��߶o�o~��{��-��~o{%$��߷�l���������[�2���JI��l������͞�����2��|���3m��o~ٿٽ����oܷ�e��씒�o~����{����߹o4��{�)%5/{�����`�7�/�]���U5/{�����`�7�/�]���V!��>�g��3333���?��'�}5/{�����`�7�/�]���U5/{�����`�7�/�]���T�{����{�����?s��I���2?������=��{���������I������{�������y�o<�<�<̓������������zO��s�fc$̏�o{���{����='�}9�31�fSSw���_�`�5����MMޗ����X���/k�VV�~s�|����,2�O�ϾJjn���K�,2ƿ��{]򲩩���}/�������w�ʽ��������s���������^���߿�{�������~Jv�0�Lٿ7���0�I�2&|�&r����߿�{�������~Jv�/f��������{���n}?�%;i������K��Km��k������]����w�������m����������`���/�����0� ����O����w���}/��-��m���_���wʦ�M���_��[m��_���/����_�������?���y�|����� �'������w��`�0ǘc�1���{�� xpǀ��<�$�_�������?���y�|����� �'������w��?�q������0�����7������3��?�p����`����������������?����w��� M���s�k��s�����������?���9��`57��`����O�3̐{�\����w�?������������7������x s�o������?����`;�?�����zl?�pE����O'��ɀ����� � ��+�[��� po�|���7�� ��5`.d�
��2vE #�1H��b`#�J`'03�S��n��5�� �o�|���7�k Հ���+�S d� � ��@� _0�O���i�������� � ��+�[��� po�|���7�� ��5`.d�
��2vE #�1H��b`#�J`'03�S��n��5�� �o�|���7�k Հ���+�S d� � ��@� _!�<:" �DCâtD<D<D: ���"!������DB"!DC�C�C�r"�DC���rCâ"tD<: �DC�C�C��x�"DD!�"�D<D<D9�!�!ȄD9��0������K'�����<:" �DCâtD<D<D: ���"!������DB"!DC�C�C�r"�DC���rCâ"tD<: �DC�C�C��x�"DD!�"�D<D<D9�!�!ȄD9�� Q�P��'] �7�������<��$ē$�L��3�^@���;\N�� o�����x1�fI�&I��&2f)0���y��0�M��{��:��q:�_x1���������&$�&2d�ɘ���u ��uо�c|��������2LI2Ld�0)�1I����m��Z[m-������ڶڵm��m��m��m--������om[mZ��m��h��ɀ2�m��m--������om[mZ��m��m��m����K{m��m�����[m��m�ǣ�v�m��7�������N<�v�&�I�Ǒ��y�G����m�o{����ޜyx��M&�I�#�8�4��� f����G����m�o{����ޜyx��M&�I�#�8�7���m���>������8���4�M&�G�q���m�]u��-�m���mv��˗-��m��m�]u��-�m���mv��˗-��l8B���� �������n�����n�m���k��.\�m��m��n�����n�m���k��.\�m��a����{��^x���b���x�1{1d�.rCI�1<����b���/<[�y���Y�_����y9!���L8s��`���'�'១��{��^x���b���x�1{1d�.rCI�1<����b���/<[�y���Y�_����y9!���Km�[m��������m���ۖ�����m��m��������m��{{rնܶ�`ß����<?�����ۭ���{{o��m��m���V�r�m��u��]oom��m������j�n[m�Ͷǣ�������{���;�;d�x��i$t�m�=���7��{�������%;�XΓI#������ ����ɟ#�m�G7����{����zw�v�N��3��H��lz9���o{����{ӽ��Jw���&�GMi����R����m���~��^շ.U�i����R����m���~��^շ.U�8��?��`�$����i����R����m���~��^շ.U�i����R����m���~��^շ.U�=�>��{�� p��9����<�L�I�$����{ox=`����3?0x��I��2B��`��4�d�?̓��<����{ox=`����3?0x��I��2B��`�x��m��1�{���g��I2Y&H\�M��뮥���w��o���o���.\�V�]u�R�v�������߷��˗.\� �?���Y�X�����i����{�~������o���e˗.U��]uԽݿn��m��������˗*�m��{����{������ӹ{%$����m��m�{߷���{��7�N�씒�RK&��7�����2����ɟ&m��m��{�����{����ܽ��RJId��m����������s�ӧr�JII)%������������mk���eeeZ�����������_���{YYYV������L2C'��?������Խ��/���k�^_/k++*�-555/wwK�-�8��ח����ʵ�����������7�����s��s���c��{������r��'��dg��0� ������d'�����ϓ~o�����������7�����s��s���c��{������r��'��dg��7�����~��n��m��_k��e�{{��n���w�����������V^�������)����'������{�M���.���������ח���������/���m��m��k�y|���c�����f�{�ѹs�Kzw/x�FR9�o{��o��`��>���r���e0��������y��y���������c��������cF�Ͻ-�ܽ�)H�9��{ٿ���4n\��ޝ��2���Խ�z_���`�����]�ef���K��/�� �������k+0������`�?��'ɩ�{���K�.�$-k�v����MKޗ��_�v!k�_k���VC_���������?�{�>L^gɘbI�I$�������������|��ϓ0ē��I�������������dɞ�3�|� ������������1y�&a�'�$���/�������ߙ�b�>L�O�I&��黾�K����m���k��|��Vjj^�������m��o�������ef |����`�$����'��zn�����m��m�����_+���������/���m���������YY~��o�����zt���i��~Jw�����~��1��K����ͷ�� �?����3s,��3��L߷�����7�ƞ�/�s�g6ߒ��{=�o߳{ i���79�sm�)�����K���2��k���򾛿~���]�@Z��~W߾V)�����f�?�O��M߿M���.� -��+��+���龗���d����}��q�����������������#�G����������g;��������0�ɼ�$��|�$|������y���7���s����������������������#�n�����3�������������� ��������?���0� �����~��~�w��f����]�w�����`��/��w�����7���{����ܥ����{����7���{����ܥ����`��7���� ��y��/�ϓ9o��������{���r����e���������{���r����e�M���M����m����W���WoM���M����m����W���W`��/��Y���0�'��O��O���������m������������������m����������

20
ScriptableRenderPipeline/Core/CoreRP/Editor/CameraEditorUtils.cs


const float k_PreviewNormalizedSize = 0.2f;
internal static Material s_GUITextureBlit2SRGBMaterial;
internal static Material GUITextureBlit2SRGBMaterial
public static Material GUITextureBlit2SRGBMaterial
{
get
{

near[i] = camera.ViewportToWorldPoint(near[i]);
}
return true;
}
public static Vector3 PerspectiveClipToWorld(Matrix4x4 clipToWorld, Vector3 viewPositionWS, Vector3 positionCS)
{
var tempCS = new Vector3(positionCS.x, positionCS.y, 0.95f);
var result = clipToWorld.MultiplyPoint(tempCS);
var r = result - viewPositionWS;
return r.normalized * positionCS.z + viewPositionWS;
}
public static void GetFrustrumPlaneAt(Matrix4x4 clipToWorld, Vector3 viewPosition, float distance, Vector3[] points)
{
points[0] = new Vector3(-1, -1, distance); // leftBottomFar
points[1] = new Vector3(-1, 1, distance); // leftTopFar
points[2] = new Vector3(1, 1, distance); // rightTopFar
points[3] = new Vector3(1, -1, distance); // rightBottomFar
for (var i = 0; i < 4; ++i)
points[i] = PerspectiveClipToWorld(clipToWorld, viewPosition, points[i]);
}
static Vector3 MidPointPositionSlider(Vector3 position1, Vector3 position2, Vector3 direction)

15
ScriptableRenderPipeline/Core/CoreRP/Editor/CoreEditorDrawers.cs


using System;
using System.Security.Principal;
using UnityEditor.AnimatedValues;
using UnityEngine;

public static IDrawer Group(params IDrawer[] drawers)
{
return new GroupDrawerInternal(drawers);
}
public static IDrawer LabelWidth(float width, params IDrawer[] drawers)
{
return Action((s, d, o) =>
{
var l = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = width;
for (var i = 0; i < drawers.Length; ++i)
drawers[i].Draw(s, d, o);
EditorGUIUtility.labelWidth = l;
}
);
}
public static IDrawer Action(params ActionDrawer[] drawers)

23
ScriptableRenderPipeline/Core/CoreRP/Editor/CoreEditorUtils.cs


using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using UnityEngine;

var members = new List<string>();
while (me != null)
{
members.Add(me.Member.Name);
// For field, get the field name
// For properties, get the name of the backing field
var name = me.Member is FieldInfo
? me.Member.Name
: "m_" + me.Member.Name.Substring(0, 1).ToUpper() + me.Member.Name.Substring(1);
members.Add(name);
me = me.Expression as MemberExpression;
}

}
// UI Helpers
public static void DrawMultipleFields(string label, SerializedProperty[] ppts, GUIContent[] lbls)
{
GUILayout.BeginHorizontal();
EditorGUILayout.PrefixLabel(GetContent(label));
GUILayout.BeginVertical();
var labelWidth = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = 45;
for (var i = 0; i < ppts.Length; ++i)
EditorGUILayout.PropertyField(ppts[i], lbls[i]);
GUILayout.EndVertical();
GUILayout.EndHorizontal();
EditorGUIUtility.labelWidth = labelWidth;
}
public static void DrawSplitter()
{
var rect = GUILayoutUtility.GetRect(1f, 1f);

3
ScriptableRenderPipeline/Core/CoreRP/Editor/ShaderGenerator/CSharpToHLSL.cs


writer.Write("\n#endif\n");
var customFile = it.Key + ".custom.hlsl";
if (File.Exists(customFile))
writer.Write("#include \"{0}\"", Path.GetFileName(customFile));
}
}
}

58
ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Common.hlsl


return faceID;
}
#endif // INTRINSIC_CUBEMAP_FACE_ID
// Intrinsic isnan can't be used because it require /Gic to be enabled on fxc that we can't do. So use IsNAN instead
bool IsNAN(float n)
{
return (n < 0.0 || n > 0.0 || n == 0.0) ? false : true;
}
bool IsNAN(float2 v)
{
return (IsNAN(v.x) || IsNAN(v.y)) ? true : false;
}
bool IsNAN(float3 v)
{
return (IsNAN(v.x) || IsNAN(v.y) || IsNAN(v.z)) ? true : false;
}
bool IsNAN(float4 v)
{
return (IsNAN(v.x) || IsNAN(v.y) || IsNAN(v.z) || IsNAN(v.w)) ? true : false;
}
// ----------------------------------------------------------------------------
// Common math functions

0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1};
float2 ComputeNormalizedDeviceCoordinates(float3 position, float4x4 clipSpaceTransform = k_identity4x4)
float4 ComputeClipSpaceCoordinates(float3 position, float4x4 clipSpaceTransform = k_identity4x4)
{
float4 positionCS = mul(clipSpaceTransform, float4(position, 1.0));

positionCS.y = -positionCS.y;
#endif
return positionCS.xy * (rcp(positionCS.w) * 0.5) + 0.5;
return positionCS;
}
// Use case examples:
// (position = positionCS) => (clipSpaceTransform = use default)
// (position = positionVS) => (clipSpaceTransform = UNITY_MATRIX_P)
// (position = positionWS) => (clipSpaceTransform = UNITY_MATRIX_VP)
float2 ComputeNormalizedDeviceCoordinates(float3 position, float4x4 clipSpaceTransform = k_identity4x4)
{
float4 positionCS = ComputeClipSpaceCoordinates(position, clipSpaceTransform);
return positionCS.xy * (rcp(positionCS.w) * 0.5) + 0.5;
}
float4 ComputeClipSpacePosition(float2 positionNDC, float deviceDepth)

// From forward
// deviceDepth and linearDepth come directly from .zw of SV_Position
void UpdatePositionInput(float deviceDepth, float linearDepth, float3 positionWS, inout PositionInputs posInput)
PositionInputs GetPositionInput(float2 positionSS, float2 invScreenSize, float deviceDepth, float linearDepth, float3 positionWS, uint2 tileCoord)
PositionInputs posInput = GetPositionInput(positionSS, invScreenSize, tileCoord);
return posInput;
}
PositionInputs GetPositionInput(float2 positionSS, float2 invScreenSize, float deviceDepth, float linearDepth, float3 positionWS)
{
return GetPositionInput(positionSS, invScreenSize, deviceDepth, linearDepth, positionWS, uint2(0, 0));
void UpdatePositionInput(float deviceDepth, float4x4 invViewProjMatrix, float4x4 viewProjMatrix, inout PositionInputs posInput)
PositionInputs GetPositionInput(float2 positionSS, float2 invScreenSize, float deviceDepth, float4x4 invViewProjMatrix, float4x4 viewProjMatrix, uint2 tileCoord)
PositionInputs posInput = GetPositionInput(positionSS, invScreenSize, tileCoord);
return posInput;
}
PositionInputs GetPositionInput(float2 positionSS, float2 invScreenSize, float deviceDepth, float4x4 invViewProjMatrix, float4x4 viewProjMatrix)
{
return GetPositionInput(positionSS, invScreenSize, deviceDepth, invViewProjMatrix, viewProjMatrix, uint2(0, 0));
}
// The view direction 'V' points towards the camera.

12
ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Debug.hlsl


else if (index == 8)
outColor = real3(0.75, 1.0, 0.25);
else if (index == 9)
outColor = real3(0.75, 0.25, 1.0);
outColor = real3(0.75, 0.25, 1.0);
outColor = real3(0.25, 1.0, 0.75);
outColor = real3(0.25, 1.0, 0.75);
outColor = real3(0.75, 0.75, 0.25);
outColor = real3(0.75, 0.75, 0.25);
outColor = real3(0.75, 0.25, 0.75);
outColor = real3(0.75, 0.25, 0.75);
outColor = real3(0.25, 0.75, 0.75);
outColor = real3(0.25, 0.75, 0.75);
outColor = real3(0.25, 0.25, 0.75);
outColor = real3(0.25, 0.25, 0.75);
else if (index == 15)
outColor = real3(0.75, 0.25, 0.25);

14
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDAdditionalCameraData.cs


[RequireComponent(typeof(Camera))]
public class HDAdditionalCameraData : MonoBehaviour, ISerializationCallbackReceiver
{
// The light culling use standard projection matrices (non-oblique)
// If the user overrides the projection matrix with an oblique one
// He must also provide a callback to get the equivalent non oblique for the culling
public delegate Matrix4x4 NonObliqueProjectionGetter(Camera camera);
#pragma warning disable 414 // CS0414 The private field '...' is assigned but its value is never used
// We can't rely on Unity for our additional data, we need to version it ourself.
[SerializeField]

m_frameSettingsIsDirty = false;
}
}
// For custom projection matrices
// Set the proper getter
public NonObliqueProjectionGetter nonObliqueProjectionGetter = GeometryUtils.CalculateProjectionMatrix;
public Matrix4x4 GetNonObliqueProjection(Camera camera)
{
return nonObliqueProjectionGetter(camera);
}
void RegisterDebug()

19
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Camera/HDCamera.cs


public Vector4 viewParam;
public PostProcessRenderContext postprocessRenderContext;
// Non oblique projection matrix (RHS)
public Matrix4x4 nonObliqueProjMatrix
{
get
{
return m_AdditionalCameraData != null
? m_AdditionalCameraData.GetNonObliqueProjection(camera)
: GeometryUtils.CalculateProjectionMatrix(camera);
}
}
public Matrix4x4 viewProjMatrix
{
get { return projMatrix * viewMatrix; }

static Dictionary<Camera, HDCamera> s_Cameras = new Dictionary<Camera, HDCamera>();
static List<Camera> s_Cleanup = new List<Camera>(); // Recycled to reduce GC pressure
HDAdditionalCameraData m_AdditionalCameraData;
public HDCamera(Camera cam)
{
camera = cam;

m_AdditionalCameraData = cam.GetComponent<HDAdditionalCameraData>();
Reset();
}

prevViewProjMatrix *= cameraDisplacement; // Now prevViewProjMatrix correctly transforms this frame's camera-relative positionWS
}
// Warning: near and far planes appear to be broken.
// Warning: near and far planes appear to be broken (or rather far plane seems broken)
GeometryUtility.CalculateFrustumPlanes(viewProjMatrix, frustumPlanes);
for (int i = 0; i < 4; i++)

}
// Near, far.
Vector4 forward = (camera.cameraType == CameraType.Reflection) ? camera.worldToCameraMatrix.GetRow(2) : new Vector4(camera.transform.forward.x, camera.transform.forward.y, camera.transform.forward.z, 0.0f);
Vector3 forward = viewParam.x < 0.0f ? camera.transform.forward : -camera.transform.forward;
forward = viewParam.x < 0.0f ? forward : -forward;
frustumPlaneEquations[4] = new Vector4( forward.x, forward.y, forward.z, -Vector3.Dot(forward, relPos) - camera.nearClipPlane);
frustumPlaneEquations[5] = new Vector4(-forward.x, -forward.y, -forward.z, Vector3.Dot(forward, relPos) + camera.farClipPlane);

101
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugColorPicker.shader


int _ColorPickerMode;
float3 _ColorPickerFontColor;
float _ApplyLinearToSRGB;
float _RequireToFlipInputTexture;
struct Attributes
{

return output;
}
float4 DisplayPixelInformationAtMousePosition(Varyings input, float4 result, float4 mouseResult)
float4 DisplayPixelInformationAtMousePosition(Varyings input, float4 result, float4 mouseResult, float4 mousePixelCoord)
if (_MousePixelCoord.z >= 0.0 && _MousePixelCoord.z <= 1.0 && _MousePixelCoord.w >= 0 && _MousePixelCoord.w <= 1.0)
bool flipY = _RequireToFlipInputTexture > 0.0;
if (mousePixelCoord.z >= 0.0 && mousePixelCoord.z <= 1.0 && mousePixelCoord.w >= 0 && mousePixelCoord.w <= 1.0)
{
// As when we read with the color picker we don't go through the final blit (that current hardcode a conversion to sRGB)
// and as our material debug take it into account, we need to a transform here.

// Display message offset:
int displayTextOffsetX = 1.5 * DEBUG_FONT_TEXT_WIDTH;
#if UNITY_UV_STARTS_AT_TOP
int displayTextOffsetY = -DEBUG_FONT_TEXT_HEIGHT;
#else
int displayTextOffsetY = DEBUG_FONT_TEXT_HEIGHT;
#endif
int displayTextOffsetY;
if (flipY)
{
displayTextOffsetY = DEBUG_FONT_TEXT_HEIGHT;
}
else
{
displayTextOffsetY = -DEBUG_FONT_TEXT_HEIGHT;
}
uint2 displayUnormCoord = uint2(_MousePixelCoord.x + displayTextOffsetX, _MousePixelCoord.y + displayTextOffsetY);
uint2 displayUnormCoord = uint2(mousePixelCoord.x + displayTextOffsetX, mousePixelCoord.y + displayTextOffsetY);
uint2 unormCoord = input.positionCS.xy;
if (_ColorPickerMode == COLORPICKERDEBUGMODE_BYTE || _ColorPickerMode == COLORPICKERDEBUGMODE_BYTE4)

DrawCharacter('R', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawInteger(mouseValue.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter('R', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawInteger(mouseValue.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('G', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawInteger(mouseValue.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
DrawCharacter('G', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawInteger(mouseValue.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('B', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawInteger(mouseValue.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
DrawCharacter('B', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawInteger(mouseValue.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('A', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawInteger(mouseValue.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter('A', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawInteger(mouseValue.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter('X', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawFloat(mouseResult.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter('X', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawFloat(mouseResult.x, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('Y', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawFloat(mouseResult.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
DrawCharacter('Y', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawFloat(mouseResult.y, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('Z', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawFloat(mouseResult.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
displayUnormCoord.x = _MousePixelCoord.x + displayTextOffsetX;
DrawCharacter('Z', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawFloat(mouseResult.z, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
displayUnormCoord.x = mousePixelCoord.x + displayTextOffsetX;
DrawCharacter('W', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawFloat(mouseResult.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, result.rgb);
DrawCharacter('W', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawCharacter(':', _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
DrawFloat(mouseResult.w, _ColorPickerFontColor, unormCoord, displayUnormCoord, flipY, result.rgb);
}
}
}

float4 Frag(Varyings input) : SV_Target
{
if (_RequireToFlipInputTexture > 0.0)
{
input.texcoord.y = 1.0 - input.texcoord.y;
}
float4 mouseResult = SAMPLE_TEXTURE2D(_DebugColorPickerTexture, sampler_DebugColorPickerTexture, _MousePixelCoord.zw);
float4 mousePixelCoord = _MousePixelCoord;
if (_RequireToFlipInputTexture > 0.0)
{
mousePixelCoord.y = _ScreenParams.y - mousePixelCoord.y;
// Note: We must not flip the mousePixelCoord.w coordinate
}
return DisplayPixelInformationAtMousePosition(input, result, mouseResult);
float4 mouseResult = SAMPLE_TEXTURE2D(_DebugColorPickerTexture, sampler_DebugColorPickerTexture, mousePixelCoord.zw);
float4 finalResult = DisplayPixelInformationAtMousePosition(input, result, mouseResult, mousePixelCoord);
return finalResult;
}
ENDHLSL

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.cs


public static string kShadowMaxValueDebug = "Shadow Range Max Value";
public static string kLightingDebugMode = "Lighting Debug Mode";
public static string kOverrideSmoothnessDebug = "Override Smoothness";
public static string kOverrideSmoothnessValueDebug = "Override Smoothness Value";
public static string kOverrideSmoothnessValueDebug = "Override Smoothness Value";
public static string kDebugEnvironmentProxyDepthScale = "Debug Environment Proxy Depth Scale";
public static string kDebugLightingAlbedo = "Debug Lighting Albedo";
public static string kFullScreenDebugMode = "Fullscreen Debug Mode";
public static string kFullScreenDebugMip = "Fullscreen Debug Mip";

DebugMenuManager.instance.AddDebugItem<LightingDebugPanel, float>(kSkyReflectionMipmapDebug, () => lightingDebugSettings.skyReflectionMipmap, (value) => lightingDebugSettings.skyReflectionMipmap = (float)value, DebugItemFlag.None, new DebugItemHandlerFloatMinMax(0.0f, 1.0f));
DebugMenuManager.instance.AddDebugItem<LightingDebugPanel, LightLoop.TileClusterDebug>(kTileClusterDebug,() => lightingDebugSettings.tileClusterDebug, (value) => lightingDebugSettings.tileClusterDebug = (LightLoop.TileClusterDebug)value);
DebugMenuManager.instance.AddDebugItem<LightingDebugPanel, LightLoop.TileClusterCategoryDebug>(kTileClusterCategoryDebug,() => lightingDebugSettings.tileClusterDebugByCategory, (value) => lightingDebugSettings.tileClusterDebugByCategory = (LightLoop.TileClusterCategoryDebug)value);
DebugMenuManager.instance.AddDebugItem<LightingDebugPanel, float>(kDebugEnvironmentProxyDepthScale, () => lightingDebugSettings.environmentProxyDepthScale, value => lightingDebugSettings.environmentProxyDepthScale = (float)value, DebugItemFlag.None, new DebugItemHandlerFloatMinMax(0.1f, 50f));
DebugMenuManager.instance.AddDebugItem<int>("Rendering", kFullScreenDebugMode, () => (int)fullScreenDebugMode, (value) => fullScreenDebugMode = (FullScreenDebugMode)value, DebugItemFlag.None, new DebugItemHandlerIntEnum(DebugDisplaySettings.renderingFullScreenDebugStrings, DebugDisplaySettings.renderingFullScreenDebugValues));
DebugMenuManager.instance.AddDebugItem<DebugMipMapMode>("Rendering", "MipMaps", () => mipMapDebugSettings.debugMipMapMode, (value) => SetMipMapMode((DebugMipMapMode)value));

39
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.hlsl


float4 _DebugLightingAlbedo; // xyz = albedo for diffuse, w unused
float4 _DebugLightingSmoothness; // x == bool override, y == override value
float4 _MousePixelCoord; // xy unorm, zw norm
float _DebugEnvironmentProxyDepthScale;
CBUFFER_END
TEXTURE2D(_DebugFont); // Debug font to write string in shader

// color is current screen color
// color of the font to use
// direction is 1 or -1 and indicate fixedUnormCoord block shift
void DrawCharacter(uint asciiValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, inout float3 color, int direction)
void DrawCharacter(uint asciiValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, bool flipY, inout float3 color, int direction)
#if UNITY_UV_STARTS_AT_TOP
localCharCoord.y = DEBUG_FONT_TEXT_HEIGHT - localCharCoord.y;
#endif
if (!flipY)
localCharCoord.y = DEBUG_FONT_TEXT_HEIGHT - localCharCoord.y;
asciiValue -= DEBUG_FONT_TEXT_ASCII_START; // Our font start at ASCII table 32;
uint2 asciiCoord = uint2(asciiValue % DEBUG_FONT_TEXT_COUNT_X, asciiValue / DEBUG_FONT_TEXT_COUNT_X);

}
// Shortcut to not have to file direction
void DrawCharacter(uint asciiValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, inout float3 color)
void DrawCharacter(uint asciiValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, bool flipY, inout float3 color)
DrawCharacter(asciiValue, fontColor, currentUnormCoord, fixedUnormCoord, color, 1);
DrawCharacter(asciiValue, fontColor, currentUnormCoord, fixedUnormCoord, flipY, color, 1);
void DrawInteger(int intValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, inout float3 color)
void DrawInteger(int intValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, bool flipY, inout float3 color)
{
const uint maxStringSize = 16;

for (uint i = 0; i < maxStringSize; ++i)
{
// Numeric value incurrent font start on the second row at 0
DrawCharacter((absIntValue % 10) + '0', fontColor, currentUnormCoord, fixedUnormCoord, color, -1);
DrawCharacter((absIntValue % 10) + '0', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color, -1);
if (absIntValue < 10)
break;
absIntValue /= 10;

if (intValue < 0)
{
DrawCharacter('-', fontColor, currentUnormCoord, fixedUnormCoord, color, -1);
DrawCharacter('-', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color, -1);
}
// 5. Reset cursor at end location

void DrawFloat(float floatValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, inout float3 color)
void DrawFloat(float floatValue, float3 fontColor, uint2 currentUnormCoord, inout uint2 fixedUnormCoord, bool flipY, inout float3 color)
int intValue = int(floatValue);
DrawInteger(intValue, fontColor, currentUnormCoord, fixedUnormCoord, color);
DrawCharacter('.', fontColor, currentUnormCoord, fixedUnormCoord, color);
int fracValue = int(frac(floatValue) * 1e6); // 6 digit
DrawInteger(fracValue, fontColor, currentUnormCoord, fixedUnormCoord, color);
if (IsNAN(floatValue))
{
DrawCharacter('N', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
DrawCharacter('a', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
DrawCharacter('N', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
}
else
{
int intValue = int(floatValue);
DrawInteger(intValue, fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
DrawCharacter('.', fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
int fracValue = int(frac(floatValue) * 1e6); // 6 digit
DrawInteger(fracValue, fontColor, currentUnormCoord, fixedUnormCoord, flipY, color);
}
}
#endif

48
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugFullScreen.shader


#pragma fragment Frag
#include "CoreRP/ShaderLibrary/Common.hlsl"
#include "CoreRP/ShaderLibrary/Color.hlsl"
#include "../ShaderVariables.hlsl"
#include "../Debug/DebugDisplay.cs.hlsl"

float _RequireToFlipInputTexture;
struct Attributes
{

}
// Motion vector debug utilities
// >>>
float DistanceToLine(float2 p, float2 p1, float2 p2)
{
float2 center = (p1 + p2) * 0.5;

float2 SampleMotionVectors(float2 coords)
{
#if UNITY_UV_STARTS_AT_TOP
coords.y = 1.0 - coords.y;
#endif
float2 mv = SAMPLE_TEXTURE2D(_DebugFullScreenTexture, sampler_DebugFullScreenTexture, coords).xy;
#if UNITY_UV_STARTS_AT_TOP
mv.y *= -1.0;
#endif
return mv;
return SAMPLE_TEXTURE2D(_DebugFullScreenTexture, sampler_DebugFullScreenTexture, coords).xy;
// <<<
// end motion vector utilties
if (_RequireToFlipInputTexture > 0.0)
{
input.texcoord.y = 1.0 - input.texcoord.y;
}
// SSAO
if (_FullScreenDebugMode == FULLSCREENDEBUGMODE_SSAO)
{

{
#if UNITY_UV_STARTS_AT_TOP
input.texcoord.y = 1.0 - input.texcoord.y;
#endif
if (any(isnan(color)) || any(isinf(color)))
if (IsNAN(color) || any(isinf(color)))
color = float4(1.0, 0.0, 1.0, 1.0);
color = float4(1.0, 0.0, 0.0, 1.0);
// Dim the color buffer so we can see NaNs & Infs better
color.rgb *= 0.25;
color.rgb = Luminance(color.rgb).xxx;
}
return color;

float rows = floor(kGrid * _ScreenParams.y / _ScreenParams.x);
float cols = kGrid;
float2 size = _ScreenParams.xy / float2(cols, rows);
float body = min(size.x, size.y) / 1.4142135623730951; // sqrt(2)
float body = min(size.x, size.y) / sqrt(2.0);
float2 texcoord = input.positionCS.xy;
float2 center = (floor(texcoord / size) + 0.5) * size;
texcoord -= center;

if (_RequireToFlipInputTexture > 0.0)
{
arrow_coord.y = 1.0 - arrow_coord.y;
}
if (_RequireToFlipInputTexture == 0.0)
{
mv_arrow.y *= -1;
}
// Skip empty motion
float d = 0.0;

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugViewMaterialGBuffer.shader


float4 Frag(Varyings input) : SV_Target
{
// input.positionCS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionCS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP);
BSDFData bsdfData;
BakeLightingData bakeLightingData;

10
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugViewTiles.shader


float4 Frag(Varyings input) : SV_Target
{
// positionCS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, uint2(input.positionCS.xy) / GetTileSize());
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionCS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, uint2(input.positionCS.xy) / GetTileSize());
int2 pixelCoord = posInput.positionSS.xy;
int2 tileCoord = (float2)pixelCoord / GetTileSize();

int maxLights = 32;
if (tileCoord.y < LIGHTCATEGORY_COUNT && tileCoord.x < maxLights + 3)
{
PositionInputs mousePosInput = GetPositionInput(_MousePixelCoord.xy, _ScreenSize.zw, mouseTileCoord);
float depthMouse = LOAD_TEXTURE2D(_MainDepthTexture, mousePosInput.positionSS).x;
UpdatePositionInput(depthMouse, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, mousePosInput);
float depthMouse = LOAD_TEXTURE2D(_MainDepthTexture, _MousePixelCoord.xy).x;
PositionInputs mousePosInput = GetPositionInput(_MousePixelCoord.xy, _ScreenSize.zw, depthMouse, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, mouseTileCoord);
uint category = (LIGHTCATEGORY_COUNT - 1) - tileCoord.y;
uint start;

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebug.cs


IndirectDiffuseOcclusionFromSsao,
IndirectDiffuseGtaoFromSsao,
IndirectSpecularOcclusionFromSsao,
IndirectSpecularGtaoFromSsao
IndirectSpecularGtaoFromSsao,
EnvironmentProxyVolume,
}
public enum ShadowMapDebugMode

public bool displaySkyReflection = false;
public float skyReflectionMipmap = 0.0f;
public float environmentProxyDepthScale = 20;
public LightLoop.TileClusterDebug tileClusterDebug = LightLoop.TileClusterDebug.None;
public LightLoop.TileClusterCategoryDebug tileClusterDebugByCategory = LightLoop.TileClusterCategoryDebug.Punctual;

1
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebug.cs.hlsl


#define DEBUGLIGHTINGMODE_INDIRECT_DIFFUSE_GTAO_FROM_SSAO (6)
#define DEBUGLIGHTINGMODE_INDIRECT_SPECULAR_OCCLUSION_FROM_SSAO (7)
#define DEBUGLIGHTINGMODE_INDIRECT_SPECULAR_GTAO_FROM_SSAO (8)
#define DEBUGLIGHTINGMODE_ENVIRONMENT_PROXY_VOLUME (9)
#endif

42
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/LightingDebugPanel.cs


DebugItem lightingDebugModeItem = m_DebugPanel.GetDebugItem(DebugDisplaySettings.kLightingDebugMode);
lightingDebugModeItem.handler.OnEditorGUI();
if ((DebugLightingMode)lightingDebugModeItem.GetValue() == DebugLightingMode.SpecularLighting)
switch ((DebugLightingMode)lightingDebugModeItem.GetValue())
EditorGUI.indentLevel++;
DebugItem overrideSmoothnessItem = m_DebugPanel.GetDebugItem(DebugDisplaySettings.kOverrideSmoothnessDebug);
overrideSmoothnessItem.handler.OnEditorGUI();
if ((bool)overrideSmoothnessItem.GetValue())
{
m_DebugPanel.GetDebugItem(DebugDisplaySettings.kOverrideSmoothnessValueDebug).handler.OnEditorGUI();
}
EditorGUI.indentLevel--;
}
else if ((DebugLightingMode)lightingDebugModeItem.GetValue() == DebugLightingMode.DiffuseLighting)
{
EditorGUI.indentLevel++;
m_DebugPanel.GetDebugItem(DebugDisplaySettings.kDebugLightingAlbedo).handler.OnEditorGUI();
EditorGUI.indentLevel--;
case DebugLightingMode.SpecularLighting:
{
EditorGUI.indentLevel++;
DebugItem overrideSmoothnessItem = m_DebugPanel.GetDebugItem(DebugDisplaySettings.kOverrideSmoothnessDebug);
overrideSmoothnessItem.handler.OnEditorGUI();
if ((bool)overrideSmoothnessItem.GetValue())
{
m_DebugPanel.GetDebugItem(DebugDisplaySettings.kOverrideSmoothnessValueDebug).handler.OnEditorGUI();
}
EditorGUI.indentLevel--;
break;
}
case DebugLightingMode.DiffuseLighting:
{
EditorGUI.indentLevel++;
m_DebugPanel.GetDebugItem(DebugDisplaySettings.kDebugLightingAlbedo).handler.OnEditorGUI();
EditorGUI.indentLevel--;
break;
}
case DebugLightingMode.EnvironmentProxyVolume:
{
++EditorGUI.indentLevel;
m_DebugPanel.GetDebugItem(DebugDisplaySettings.kDebugEnvironmentProxyDepthScale).handler.OnEditorGUI();
--EditorGUI.indentLevel;
break;
}
}
var fullScreenDebugModeHandler = m_DebugPanel.GetDebugItem(DebugDisplaySettings.kFullScreenDebugMode);

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Decal/DecalProjectorComponent.cs.meta


serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
icon: {fileID: 2800000, guid: b057b73ec5a603e4aa80ccf4b34db0d3, type: 3}
userData:
assetBundleName:
assetBundleVariant:

14
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Decal/DecalSystem.cs


m_CachedTransforms[decal.CullIndex] = decal.transform.localToWorldMatrix;
Matrix4x4 decalRotation = Matrix4x4.Rotate(decal.transform.rotation);
// z/y axis swap for normal to decal space
Vector4 row2 = decalRotation.GetRow(2);
decalRotation.SetRow(2, decalRotation.GetRow(1));
decalRotation.SetRow(1, row2);
// z/y axis swap for normal to decal space, Unity is column major
float y0 = decalRotation.m01;
float y1 = decalRotation.m11;
float y2 = decalRotation.m21;
decalRotation.m01 = decalRotation.m02;
decalRotation.m11 = decalRotation.m12;
decalRotation.m21 = decalRotation.m22;
decalRotation.m02 = y0;
decalRotation.m12 = y1;
decalRotation.m22 = y2;
m_CachedNormalToWorld[decal.CullIndex] = decalRotation;
m_BoundingSpheres[decal.CullIndex] = GetDecalProjectBoundingSphere(m_CachedTransforms[decal.CullIndex]);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/BaseUI.cs


for (var i = 0; i < m_AnimBools.Length; ++i)
{
m_AnimBools[i].valueChanged.RemoveAllListeners();
m_AnimBools[i].valueChanged.AddListener(repaint);
if (repaint != null)
m_AnimBools[i].valueChanged.AddListener(repaint);
}
Update();

14
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Camera/HDCameraUI.cs


static void Drawer_FieldClippingPlanes(HDCameraUI s, SerializedHDCamera p, Editor owner)
{
GUILayout.BeginHorizontal();
EditorGUILayout.PrefixLabel(_.GetContent("Clipping Planes"));
GUILayout.BeginVertical();
var labelWidth = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = 45;
EditorGUILayout.PropertyField(p.nearClippingPlane, _.GetContent("Near|The closest point relative to the camera that drawing will occur."));
EditorGUILayout.PropertyField(p.farClippingPlane, _.GetContent("Far|The furthest point relative to the camera that drawing will occur.\n"));
GUILayout.EndVertical();
GUILayout.EndHorizontal();
EditorGUIUtility.labelWidth = labelWidth;
_.DrawMultipleFields(
"Clipping Planes",
new[] { p.nearClippingPlane, p.farClippingPlane },
new[] { _.GetContent("Near|The closest point relative to the camera that drawing will occur."), _.GetContent("Far|The furthest point relative to the camera that drawing will occur.\n") });
}
static void Drawer_FieldNormalizedViewPort(HDCameraUI s, SerializedHDCamera p, Editor owner)

28
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/FrameSettingsUI.cs


"Rendering Passes",
(s, p, o) => s.isSectionExpandedRenderingPasses,
true,
CED.Action(Drawer_SectionRenderingPasses));
CED.LabelWidth(200, CED.Action(Drawer_SectionRenderingPasses))
);
CED.Action(Drawer_FieldForwardRenderingOnly),
CED.FadeGroup(
(s, d, o, i) => s.isSectionExpandedUseForwardOnly,
false,
CED.Action(Drawer_FieldUseDepthPrepassWithDefferedRendering),
CED.LabelWidth(300,
CED.Action(Drawer_FieldForwardRenderingOnly),
(s, d, o, i) => s.isSectionExpandedUseDepthPrepass,
true,
CED.Action(Drawer_FieldRenderAlphaTestOnlyInDeferredPrepass))),
CED.Action(Drawer_SectionOtherRenderingSettings));
(s, d, o, i) => s.isSectionExpandedUseForwardOnly,
false,
CED.Action(Drawer_FieldUseDepthPrepassWithDefferedRendering),
CED.FadeGroup(
(s, d, o, i) => s.isSectionExpandedUseDepthPrepass,
true,
CED.Action(Drawer_FieldRenderAlphaTestOnlyInDeferredPrepass))),
CED.Action(Drawer_SectionOtherRenderingSettings)
)
);
public static CED.IDrawer SectionXRSettings = CED.FadeGroup(
(s, d, o, i) => s.isSectionExpandedXRSupported,

(s, p, o) => s.isSectionExpandedXRSettings,
true,
CED.Action(Drawer_FieldStereoEnabled)));
CED.LabelWidth(200, CED.Action(Drawer_FieldStereoEnabled))));
CED.Action(Drawer_SectionLightingSettings));
CED.LabelWidth(250, CED.Action(Drawer_SectionLightingSettings)));
public AnimBool isSectionExpandedRenderingPasses { get { return m_AnimBools[0]; } }
public AnimBool isSectionExpandedLightingSettings { get { return m_AnimBools[1]; } }

12
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/GlobalLightLoopSettingsUI.cs


namespace UnityEditor.Experimental.Rendering
using UnityEngine;
namespace UnityEditor.Experimental.Rendering
{
using _ = CoreEditorUtils;
using CED = CoreEditorDrawer<GlobalLightLoopSettingsUI, SerializedGlobalLightLoopSettings>;

EditorGUILayout.PropertyField(d.reflectionCacheCompressed, _.GetContent("Compress Reflection Probe Cache"));
EditorGUILayout.PropertyField(d.reflectionCubemapSize, _.GetContent("Reflection Cubemap Size"));
EditorGUILayout.PropertyField(d.reflectionProbeCacheSize, _.GetContent("Probe Cache Size"));
EditorGUILayout.Space();
EditorGUILayout.PropertyField(d.planarReflectionCacheCompressed, _.GetContent("Compress Planar Reflection Probe Cache"));
EditorGUILayout.PropertyField(d.planarReflectionCubemapSize, _.GetContent("Planar Reflection Texture Size"));
EditorGUILayout.PropertyField(d.planarReflectionProbeCacheSize, _.GetContent("Planar Probe Cache Size"));
EditorGUILayout.PropertyField(d.maxPlanarReflectionProbes, _.GetContent("Max Planar Probe Per Frame"));
d.maxPlanarReflectionProbes.intValue = Mathf.Max(1, d.maxPlanarReflectionProbes.intValue);
--EditorGUI.indentLevel;
}

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/LightLoopSettingsUI.cs


"Light Loop Settings",
(s, p, o) => s.isSectionExpandedLightLoopSettings,
true,
CED.Action(Drawer_SectionLightLoopSettings));
CED.LabelWidth(250, CED.Action(Drawer_SectionLightLoopSettings)));
public AnimBool isSectionExpandedLightLoopSettings { get { return m_AnimBools[0]; } }
public AnimBool isSectionExpandedEnableTileAndCluster { get { return m_AnimBools[1]; } }

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedFrameSettings.cs


namespace UnityEditor.Experimental.Rendering
{
class SerializedFrameSettings
public class SerializedFrameSettings
{
public SerializedProperty root;

9
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedGlobalLightLoopSettings.cs


public SerializedProperty reflectionProbeCacheSize;
public SerializedProperty reflectionCubemapSize;
public SerializedProperty reflectionCacheCompressed;
public SerializedProperty planarReflectionProbeCacheSize;
public SerializedProperty planarReflectionCubemapSize;
public SerializedProperty planarReflectionCacheCompressed;
public SerializedProperty maxPlanarReflectionProbes;
public SerializedProperty skyReflectionSize;
public SerializedProperty skyLightingOverrideLayerMask;

reflectionProbeCacheSize = root.Find((GlobalLightLoopSettings s) => s.reflectionProbeCacheSize);
reflectionCubemapSize = root.Find((GlobalLightLoopSettings s) => s.reflectionCubemapSize);
reflectionCacheCompressed = root.Find((GlobalLightLoopSettings s) => s.reflectionCacheCompressed);
planarReflectionProbeCacheSize = root.Find((GlobalLightLoopSettings s) => s.planarReflectionProbeCacheSize);
planarReflectionCubemapSize = root.Find((GlobalLightLoopSettings s) => s.planarReflectionTextureSize);
planarReflectionCacheCompressed = root.Find((GlobalLightLoopSettings s) => s.planarReflectionCacheCompressed);
maxPlanarReflectionProbes = root.Find((GlobalLightLoopSettings s) => s.maxPlanarReflectionProbes);
skyReflectionSize = root.Find((GlobalLightLoopSettings s) => s.skyReflectionSize);
skyLightingOverrideLayerMask = root.Find((GlobalLightLoopSettings s) => s.skyLightingOverrideLayerMask);

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedLightLoopSettings.cs


namespace UnityEditor.Experimental.Rendering
{
class SerializedLightLoopSettings
public class SerializedLightLoopSettings
{
public SerializedProperty root;

74
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipeline.cs


using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.Rendering.PostProcessing;
namespace UnityEngine.Experimental.Rendering.HDPipeline

m_GPUCopy = new GPUCopy(asset.renderPipelineResources.copyChannelCS);
EncodeBC6H.DefaultInstance = EncodeBC6H.DefaultInstance ?? new EncodeBC6H(asset.renderPipelineResources.encodeBC6HCS);
m_ReflectionProbeCullResults = new ReflectionProbeCullResults(asset.reflectionSystemParameters);
ReflectionSystem.SetParameters(asset.reflectionSystemParameters);
// Scan material list and assign it
m_MaterialList = HDUtils.GetRenderPipelineMaterialList();
// Find first material that have non 0 Gbuffer count and assign it as deferredMaterial

};
m_DepthPyramidKernel = m_DepthPyramidCS.FindKernel("KMain");
m_DepthPyramidBuffer = HDShaderIDs._DepthPyramidTexture;
m_DepthPyramidBuffer = HDShaderIDs._PyramidDepthTexture;
m_DepthPyramidBufferRT = new RenderTargetIdentifier(m_DepthPyramidBuffer);
m_DepthPyramidBufferDesc = new RenderTextureDescriptor(2, 2, RenderTextureFormat.RFloat, 0)
{

}
CullResults m_CullResults;
ReflectionProbeCullResults m_ReflectionProbeCullResults;
public override void Render(ScriptableRenderContext renderContext, Camera[] cameras)
{
base.Render(renderContext, cameras);

m_FrameCount = Time.frameCount;
}
// TODO: Render only visible probes
var isReflection = cameras.Any(c => c.cameraType == CameraType.Reflection);
if (!isReflection)
ReflectionSystem.RenderAllRealtimeProbes(ReflectionProbeType.PlanarReflection);
// We first update the state of asset frame settings as they can be use by various camera
// but we keep the dirty state to correctly reset other camera that use RenderingPath.Default.
bool assetFrameSettingsIsDirty = m_Asset.frameSettingsIsDirty;

{
if (camera == null)
continue;
if (camera.cameraType != CameraType.Reflection)
// TODO: Render only visible probes
ReflectionSystem.RenderAllRealtimeViewerDependentProbesFor(ReflectionProbeType.PlanarReflection, camera);
// First, get aggregate of frame settings base on global settings, camera frame settings and debug settings
// Note: the SceneView camera will never have additionalCameraData

if (m_FrameSettings.enableDBuffer)
DecalSystem.instance.BeginCull(camera);
ReflectionSystem.PrepareCull(camera, m_ReflectionProbeCullResults);
m_ReflectionProbeCullResults.Cull();
m_DbufferManager.vsibleDecalCount = 0;
if (m_FrameSettings.enableDBuffer)

bool enableBakeShadowMask;
using (new ProfilingSample(cmd, "TP_PrepareLightsForGPU", CustomSamplerId.TPPrepareLightsForGPU.GetSampler()))
{
enableBakeShadowMask = m_LightLoop.PrepareLightsForGPU(cmd, m_ShadowSettings, m_CullResults, camera) && m_FrameSettings.enableShadowMask;
enableBakeShadowMask = m_LightLoop.PrepareLightsForGPU(cmd, m_ShadowSettings, m_CullResults, m_ReflectionProbeCullResults, camera) && m_FrameSettings.enableShadowMask;
}
ConfigureForShadowMask(enableBakeShadowMask, cmd);

// TODO: Try to arrange code so we can trigger this call earlier and use async compute here to run sky convolution during other passes (once we move convolution shader to compute).
UpdateSkyEnvironment(hdCamera, cmd);
RenderPyramidDepth(camera, cmd, renderContext, FullScreenDebugMode.DepthPyramid);
RenderPyramidDepth(hdCamera, cmd, renderContext, FullScreenDebugMode.DepthPyramid);
if (m_CurrentDebugDisplaySettings.IsDebugMaterialDisplayEnabled())

renderContext.ExecuteCommandBuffer(cmd);
cmd.Clear();
buildGPULightListsCompleteFence = m_LightLoop.BuildGPULightListsAsyncBegin(camera, renderContext, m_CameraDepthStencilBufferRT, m_CameraStencilBufferCopyRT, startFence, m_SkyManager.IsSkyValid());
buildGPULightListsCompleteFence = m_LightLoop.BuildGPULightListsAsyncBegin(hdCamera, renderContext, m_CameraDepthStencilBufferRT, m_CameraStencilBufferCopyRT, startFence, m_SkyManager.IsSkyValid());
}
using (new ProfilingSample(cmd, "Render shadows", CustomSamplerId.RenderShadows.GetSampler()))

{
using (new ProfilingSample(cmd, "Build Light list", CustomSamplerId.BuildLightList.GetSampler()))
{
m_LightLoop.BuildGPULightLists(camera, cmd, m_CameraDepthStencilBufferRT, m_CameraStencilBufferCopyRT, m_SkyManager.IsSkyValid());
m_LightLoop.BuildGPULightLists(hdCamera, cmd, m_CameraDepthStencilBufferRT, m_CameraStencilBufferCopyRT, m_SkyManager.IsSkyValid());
}
}

RenderForward(m_CullResults, hdCamera, renderContext, cmd, ForwardPass.PreRefraction);
RenderForwardError(m_CullResults, camera, renderContext, cmd, ForwardPass.PreRefraction);
RenderGaussianPyramidColor(camera, cmd, renderContext, true);
RenderGaussianPyramidColor(hdCamera, cmd, renderContext, true);
// Render all type of transparent forward (unlit, lit, complex (hair...)) to keep the sorting between transparent objects.
RenderForward(m_CullResults, hdCamera, renderContext, cmd, ForwardPass.Transparent);

RenderTransparentDepthPostpass(m_CullResults, camera, renderContext, cmd, ForwardPass.Transparent);
PushFullScreenDebugTexture(cmd, m_CameraColorBuffer, hdCamera, FullScreenDebugMode.NanTracker);
RenderGaussianPyramidColor(camera, cmd, renderContext, false);
RenderGaussianPyramidColor(hdCamera, cmd, renderContext, false);
PushFullScreenDebugTexture(cmd, m_CameraColorBuffer, hdCamera, FullScreenDebugMode.NanTracker);
// The final pass either postprocess of Blit will flip the screen (as it is reverse by default due to Unity openGL legacy)
// Postprocess system (that doesn't use cmd.Blit) handle it with configuration (and do not flip in SceneView) or it is automatically done in Blit
// Final blit
if (m_FrameSettings.enablePostprocess && CoreUtils.IsPostProcessingActive(postProcessLayer))
{

{
using (new ProfilingSample(cmd, "Blit to final RT", CustomSamplerId.BlitToFinalRT.GetSampler()))
{
// This Blit will flip the screen anything other than openGL
// Simple blit
cmd.Blit(m_CameraColorBufferRT, BuiltinRenderTextureType.CameraTarget);
}

// Caution: RenderDebug need to take into account that we have flip the screen (so anything capture before the flip will be flipped)
RenderDebug(hdCamera, cmd);
// Make sure to unbind every render texture here because in the next iteration of the loop we might have to reallocate render texture (if the camera size is different)

// Depth texture is now ready, bind it.
cmd.SetGlobalTexture(HDShaderIDs._MainDepthTexture, GetDepthTexture());
// for alpha compositing, color is cleared to 0, alpha to 1
// for alpha compositing, color is cleared to 0, alpha to 1
Color clearColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);
Color clearColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);
CoreUtils.SetRenderTarget(cmd, m_DbufferManager.GetDBuffers(), m_CameraDepthStencilBufferRT, ClearFlag.Color, clearColor);
// we need to do a separate clear for normals, because they are cleared to a different color

{
using (new ProfilingSample(cmd, "Blit DebugView Material Debug", CustomSamplerId.BlitDebugViewMaterialDebug.GetSampler()))
{
// This Blit will flip the screen anything other than openGL
cmd.Blit(m_CameraColorBufferRT, BuiltinRenderTextureType.CameraTarget);
}
}

}
}
void RenderGaussianPyramidColor(Camera camera, CommandBuffer cmd, ScriptableRenderContext renderContext, bool isPreRefraction)
void RenderGaussianPyramidColor(HDCamera hdCamera, CommandBuffer cmd, ScriptableRenderContext renderContext, bool isPreRefraction)
{
if (isPreRefraction)
{

last = HDShaderIDs._GaussianPyramidColorMips[i + 1];
}
PushFullScreenDebugTextureMip(cmd, m_GaussianPyramidColorBufferRT, lodCount, m_GaussianPyramidColorBufferDesc, isPreRefraction ? FullScreenDebugMode.PreRefractionColorPyramid : FullScreenDebugMode.FinalColorPyramid);
PushFullScreenDebugTextureMip(cmd, m_GaussianPyramidColorBufferRT, lodCount, m_GaussianPyramidColorBufferDesc, hdCamera, isPreRefraction ? FullScreenDebugMode.PreRefractionColorPyramid : FullScreenDebugMode.FinalColorPyramid);
cmd.SetGlobalTexture(HDShaderIDs._GaussianPyramidColorTexture, m_GaussianPyramidColorBuffer);

}
}
void RenderPyramidDepth(Camera camera, CommandBuffer cmd, ScriptableRenderContext renderContext, FullScreenDebugMode debugMode)
void RenderPyramidDepth(HDCamera hdCamera, CommandBuffer cmd, ScriptableRenderContext renderContext, FullScreenDebugMode debugMode)
if (!m_FrameSettings.enableRoughRefraction)
return;
using (new ProfilingSample(cmd, "Pyramid Depth", CustomSamplerId.PyramidDepth.GetSampler()))
{
var depthPyramidDesc = m_DepthPyramidBufferDesc;

cmd.CopyTexture(HDShaderIDs._DepthPyramidMips[i + 1], 0, 0, m_DepthPyramidBufferRT, 0, i + 1);
}
PushFullScreenDebugDepthMip(cmd, m_DepthPyramidBufferRT, lodCount, m_DepthPyramidBufferDesc, debugMode);
PushFullScreenDebugDepthMip(cmd, m_DepthPyramidBufferRT, lodCount, m_DepthPyramidBufferDesc, hdCamera, debugMode);
cmd.SetGlobalTexture(HDShaderIDs._DepthPyramidTexture, m_DepthPyramidBuffer);
cmd.SetGlobalTexture(HDShaderIDs._PyramidDepthTexture, m_DepthPyramidBuffer);
for (int i = 0; i < lodCount + 1; i++)
cmd.ReleaseTemporaryRT(HDShaderIDs._DepthPyramidMips[i]);

}
}
// allowFlip is false if we call the function after the FinalPass or cmd.Blit that flip the screen
public void PushColorPickerDebugTexture(CommandBuffer cmd, RenderTargetIdentifier textureID, HDCamera hdCamera)
{
if (m_CurrentDebugDisplaySettings.colorPickerDebugSettings.colorPickerMode != ColorPickerDebugMode.None)

}
}
void PushFullScreenDebugTextureMip(CommandBuffer cmd, RenderTargetIdentifier textureID, int lodCount, RenderTextureDescriptor desc, FullScreenDebugMode debugMode)
void PushFullScreenDebugTextureMip(CommandBuffer cmd, RenderTargetIdentifier textureID, int lodCount, RenderTextureDescriptor desc, HDCamera hdCamera, FullScreenDebugMode debugMode)
{
if (debugMode == m_CurrentDebugDisplaySettings.fullScreenDebugMode)
{

}
}
void PushFullScreenDebugDepthMip(CommandBuffer cmd, RenderTargetIdentifier textureID, int lodCount, RenderTextureDescriptor desc, FullScreenDebugMode debugMode)
void PushFullScreenDebugDepthMip(CommandBuffer cmd, RenderTargetIdentifier textureID, int lodCount, RenderTextureDescriptor desc, HDCamera hdCamera, FullScreenDebugMode debugMode)
{
if (debugMode == m_CurrentDebugDisplaySettings.fullScreenDebugMode)
{

cmd.SetGlobalTexture(HDShaderIDs._DebugFullScreenTexture, m_DebugFullScreenTempRT);
// TODO: Replace with command buffer call when available
m_DebugFullScreen.SetFloat(HDShaderIDs._FullScreenDebugMode, (float)m_CurrentDebugDisplaySettings.fullScreenDebugMode);
// Everything we have capture is flipped (as it happen before FinalPass/postprocess/Blit. So if we are not in SceneView
// (i.e. we have perform a flip, we need to flip the input texture)
m_DebugFullScreen.SetFloat(HDShaderIDs._RequireToFlipInputTexture, hdCamera.camera.cameraType != CameraType.SceneView ? 1.0f : 0.0f);
PushColorPickerDebugTexture(cmd, m_DebugFullScreenTempRT, hdCamera);
PushColorPickerDebugTexture(cmd, (RenderTargetIdentifier)BuiltinRenderTextureType.CameraTarget, hdCamera);
}
// Then overlays

// The material display debug perform sRGBToLinear conversion as the final blit currently hardcode a linearToSrgb conversion. As when we read with color picker this is not done,
// we perform it inside the color picker shader. But we shouldn't do it for HDR buffer.
m_DebugColorPicker.SetFloat(HDShaderIDs._ApplyLinearToSRGB, m_CurrentDebugDisplaySettings.IsDebugMaterialDisplayEnabled() ? 1.0f : 0.0f);
// Everything we have capture is flipped (as it happen before FinalPass/postprocess/Blit. So if we are not in SceneView
// (i.e. we have perform a flip, we need to flip the input texture) + we need to handle the case were we debug a fullscreen pass that have already perform the flip
m_DebugColorPicker.SetFloat(HDShaderIDs._RequireToFlipInputTexture, hdCamera.camera.cameraType != CameraType.SceneView ? 1.0f : 0.0f);
CoreUtils.DrawFullScreen(cmd, m_DebugColorPicker, (RenderTargetIdentifier)BuiltinRenderTextureType.CameraTarget);
}
}

7
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.asset


supportSubsurfaceScattering: 1
supportDBuffer: 1
supportMSAA: 0
supportAsyncCompute: 0
lightLoopSettings:
spotCookieSize: 128
cookieTexArraySize: 16

reflectionCubemapSize: 128
planarReflectionProbeCacheSize: 128
reflectionCubemapSize: 512
planarReflectionTextureSize: 512
planarReflectionCacheCompressed: 0
maxPlanarReflectionProbes: 128
skyReflectionSize: 256
skyLightingOverrideLayerMask:
serializedVersion: 2

12
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.cs


}
}
public ReflectionSystemParameters reflectionSystemParameters
{
get
{
return new ReflectionSystemParameters
{
maxPlanarReflectionProbes = renderPipelineSettings.lightLoopSettings.maxPlanarReflectionProbes,
planarReflectionProbeSize = renderPipelineSettings.lightLoopSettings.planarReflectionTextureSize
};
}
}
// Store the various RenderPipelineSettings for each platform (for now only one)
public RenderPipelineSettings renderPipelineSettings = new RenderPipelineSettings();

9
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDStringConstants.cs


public static readonly int _CookieTextures = Shader.PropertyToID("_CookieTextures");
public static readonly int _CookieCubeTextures = Shader.PropertyToID("_CookieCubeTextures");
public static readonly int _EnvTextures = Shader.PropertyToID("_EnvTextures");
public static readonly int _EnvCubemapTextures = Shader.PropertyToID("_EnvCubemapTextures");
public static readonly int _Env2DTextures = Shader.PropertyToID("_Env2DTextures");
public static readonly int _Env2DCaptureVP = Shader.PropertyToID("_Env2DCaptureVP");
public static readonly int _DirectionalLightDatas = Shader.PropertyToID("_DirectionalLightDatas");
public static readonly int _DirectionalLightCount = Shader.PropertyToID("_DirectionalLightCount");
public static readonly int _LightDatas = Shader.PropertyToID("_LightDatas");

public static readonly int _EnvLightDatas = Shader.PropertyToID("_EnvLightDatas");
public static readonly int _EnvLightCount = Shader.PropertyToID("_EnvLightCount");
public static readonly int _EnvProxyCount = Shader.PropertyToID("_EnvProxyCount");
public static readonly int _ShadowDatas = Shader.PropertyToID("_ShadowDatas");
public static readonly int _NumTileFtplX = Shader.PropertyToID("_NumTileFtplX");
public static readonly int _NumTileFtplY = Shader.PropertyToID("_NumTileFtplY");

public static readonly int _MousePixelCoord = Shader.PropertyToID("_MousePixelCoord");
public static readonly int _DebugFont = Shader.PropertyToID("_DebugFont");
public static readonly int _DebugEnvironmentProxyDepthScale = Shader.PropertyToID("_DebugEnvironmentProxyDepthScale");
public static readonly int _DebugViewMaterial = Shader.PropertyToID("_DebugViewMaterial");
public static readonly int _DebugLightingMode = Shader.PropertyToID("_DebugLightingMode");
public static readonly int _DebugLightingAlbedo = Shader.PropertyToID("_DebugLightingAlbedo");

public static readonly int _ShadowMaskTexture = Shader.PropertyToID("_ShadowMaskTexture");
public static readonly int _DistortionTexture = Shader.PropertyToID("_DistortionTexture");
public static readonly int _GaussianPyramidColorTexture = Shader.PropertyToID("_GaussianPyramidColorTexture");
public static readonly int _DepthPyramidTexture = Shader.PropertyToID("_PyramidDepthTexture");
public static readonly int _PyramidDepthTexture = Shader.PropertyToID("_PyramidDepthTexture");
public static readonly int _GaussianPyramidColorMipSize = Shader.PropertyToID("_GaussianPyramidColorMipSize");
public static readonly int[] _GaussianPyramidColorMips =
{

public static readonly int _ColorPickerMode = Shader.PropertyToID("_ColorPickerMode");
public static readonly int _ApplyLinearToSRGB = Shader.PropertyToID("_ApplyLinearToSRGB");
public static readonly int _ColorPickerFontColor = Shader.PropertyToID("_ColorPickerFontColor");
public static readonly int _RequireToFlipInputTexture = Shader.PropertyToID("_RequireToFlipInputTexture");
public static readonly int _DebugFullScreenTexture = Shader.PropertyToID("_DebugFullScreenTexture");
public static readonly int _BlitTexture = Shader.PropertyToID("_BlitTexture");

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Deferred.shader


// This need to stay in sync with deferred.compute
// input.positionCS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, uint2(input.positionCS.xy) / GetTileSize());
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionCS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, uint2(input.positionCS.xy) / GetTileSize());
float3 V = GetWorldSpaceNormalizeViewDir(posInput.positionWS);
BSDFData bsdfData;

7
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/DeferredDirectionalShadow.compute


uint2 pixelCoord = groupId * DEFERRED_SHADOW_TILE_SIZE + groupThreadId;
uint2 tileCoord = groupId;
PositionInputs posInput = GetPositionInput(pixelCoord.xy, _ScreenSize.zw, tileCoord);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, pixelCoord.xy).x;
PositionInputs posInput = GetPositionInput(pixelCoord.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, tileCoord);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
ShadowContext shadowContext = InitShadowContext();
float shadow = GetDirectionalShadowAttenuation(shadowContext, posInput.positionWS, float3(0.0, 0.0, 0.0), (uint)_DirectionalShadowIndex, float3(0.0, 0.0, 0.0));

283
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightDefinition.cs


[GenerateHLSL]
public struct EnvLightData
{
public Vector3 positionWS;
public EnvShapeType envShapeType;
// Packing order depends on chronological access to avoid cache misses
// Proxy properties
public float capturePositionWSX;
public float capturePositionWSY;
public float capturePositionWSZ;
public EnvShapeType influenceShapeType;
// Box: extents = box extents
// Sphere: extents.x = sphere radius
public float proxyExtentsX;
public float proxyExtentsY;
public float proxyExtentsZ;
// User can chose if they use This is use in case we want to force infinite projection distance (i.e no projection);
public float minProjectionDistance;
public float proxyPositionWSX;
public float proxyPositionWSY;
public float proxyPositionWSZ;
public float proxyForwardX;
public float proxyForwardY;
public float proxyForwardZ;
public float proxyUpX;
public float proxyUpY;
public float proxyUpZ;
public float proxyRightX;
public float proxyRightY;
public float proxyRightZ;
// Influence properties
public float influencePositionWSX;
public float influencePositionWSY;
public float influencePositionWSZ;
public float influenceForwardX;
public float influenceForwardY;
public float influenceForwardZ;
public float influenceUpX;
public float influenceUpY;
public float influenceUpZ;
public float influenceRightX;
public float influenceRightY;
public float influenceRightZ;
public Vector3 forward;
public int envIndex;
public float influenceExtentsX;
public float influenceExtentsY;
public float influenceExtentsZ;
public float unused00;
public float blendDistancePositiveX;
public float blendDistancePositiveY;
public float blendDistancePositiveZ;
public float blendDistanceNegativeX;
public float blendDistanceNegativeY;
public float blendDistanceNegativeZ;
public float blendNormalDistancePositiveX;
public float blendNormalDistancePositiveY;
public float blendNormalDistancePositiveZ;
public float blendNormalDistanceNegativeX;
public float blendNormalDistanceNegativeY;
public float blendNormalDistanceNegativeZ;
public Vector3 up;
public float boxSideFadePositiveX;
public float boxSideFadePositiveY;
public float boxSideFadePositiveZ;
public float boxSideFadeNegativeX;
public float boxSideFadeNegativeY;
public float boxSideFadeNegativeZ;
public float unused01;
public Vector3 right;
// User can chose if they use This is use in case we want to force infinite projection distance (i.e no projection);
public float minProjectionDistance;
public float sampleDirectionDiscardWSX;
public float sampleDirectionDiscardWSY;
public float sampleDirectionDiscardWSZ;
// Sampling properties
public int envIndex;
public Vector3 influenceExtents; // extents of the env light
public float unused0;
public Vector3 capturePositionWS
{
get { return new Vector3(capturePositionWSX, capturePositionWSY, capturePositionWSZ); }
set
{
capturePositionWSX = value.x;
capturePositionWSY = value.y;
capturePositionWSZ = value.z;
}
}
public Vector3 proxyExtents
{
get { return new Vector3(proxyExtentsX, proxyExtentsY, proxyExtentsZ); }
set
{
proxyExtentsX = value.x;
proxyExtentsY = value.y;
proxyExtentsZ = value.z;
}
}
public Vector3 proxyPositionWS
{
get { return new Vector3(proxyPositionWSX, proxyPositionWSY, proxyPositionWSZ); }
set
{
proxyPositionWSX = value.x;
proxyPositionWSY = value.y;
proxyPositionWSZ = value.z;
}
}
public Vector3 proxyForward
{
get { return new Vector3(proxyForwardX, proxyForwardY, proxyForwardZ); }
set
{
proxyForwardX = value.x;
proxyForwardY = value.y;
proxyForwardZ = value.z;
}
}
public Vector3 proxyUp
{
get { return new Vector3(proxyUpX, proxyUpY, proxyUpZ); }
set
{
proxyUpX = value.x;
proxyUpY = value.y;
proxyUpZ = value.z;
}
}
public Vector3 proxyRight
{
get { return new Vector3(proxyRightX, proxyRightY, proxyRightZ); }
set
{
proxyRightX = value.x;
proxyRightY = value.y;
proxyRightZ = value.z;
}
}
public Vector3 offsetLS;
public float unused1;
public Vector3 influenceExtents
{
get { return new Vector3(influenceExtentsX, influenceExtentsY, influenceExtentsZ); }
set
{
influenceExtentsX = value.x;
influenceExtentsY = value.y;
influenceExtentsZ = value.z;
}
}
public Vector3 influencePositionWS
{
get { return new Vector3(influencePositionWSX, influencePositionWSY, influencePositionWSZ); }
set
{
influencePositionWSX = value.x;
influencePositionWSY = value.y;
influencePositionWSZ = value.z;
}
}
public Vector3 influenceForward
{
get { return new Vector3(influenceForwardX, influenceForwardY, influenceForwardZ); }
set
{
influenceForwardX = value.x;
influenceForwardY = value.y;
influenceForwardZ = value.z;
}
}
public Vector3 influenceUp
{
get { return new Vector3(influenceUpX, influenceUpY, influenceUpZ); }
set
{
influenceUpX = value.x;
influenceUpY = value.y;
influenceUpZ = value.z;
}
}
public Vector3 influenceRight
{
get { return new Vector3(influenceRightX, influenceRightY, influenceRightZ); }
set
{
influenceRightX = value.x;
influenceRightY = value.y;
influenceRightZ = value.z;
}
}
public Vector3 blendDistancePositive; //+X,+Y,+Z
public float unused2;
public Vector3 blendDistanceNegative; //-X,-Y,-Z
public float unused3;
public Vector3 blendNormalDistancePositive; //+X,+Y,+Z
public float unused4;
public Vector3 blendNormalDistanceNegative; //-X,-Y,-Z
public float unused5;
public Vector3 blendDistancePositive
{
get { return new Vector3(blendDistancePositiveX, blendDistancePositiveY, blendDistancePositiveZ); }
set
{
blendDistancePositiveX = value.x;
blendDistancePositiveY = value.y;
blendDistancePositiveZ = value.z;
}
}
public Vector3 blendDistanceNegative
{
get { return new Vector3(blendDistanceNegativeX, blendDistanceNegativeY, blendDistanceNegativeZ); }
set
{
blendDistanceNegativeX = value.x;
blendDistanceNegativeY = value.y;
blendDistanceNegativeZ = value.z;
}
}
public Vector3 blendNormalDistancePositive
{
get { return new Vector3(blendNormalDistancePositiveX, blendNormalDistancePositiveY, blendNormalDistancePositiveZ); }
set
{
blendNormalDistancePositiveX = value.x;
blendNormalDistancePositiveY = value.y;
blendNormalDistancePositiveZ = value.z;
}
}
public Vector3 blendNormalDistanceNegative
{
get { return new Vector3(blendNormalDistanceNegativeX, blendNormalDistanceNegativeY, blendNormalDistanceNegativeZ); }
set
{
blendNormalDistanceNegativeX = value.x;
blendNormalDistanceNegativeY = value.y;
blendNormalDistanceNegativeZ = value.z;
}
}
public Vector3 boxSideFadePositive
{
get { return new Vector3(boxSideFadePositiveX, boxSideFadePositiveY, boxSideFadePositiveZ); }
set
{
boxSideFadePositiveX = value.x;
boxSideFadePositiveY = value.y;
boxSideFadePositiveZ = value.z;
}
}
public Vector3 boxSideFadeNegative
{
get { return new Vector3(boxSideFadeNegativeX, boxSideFadeNegativeY, boxSideFadeNegativeZ); }
set
{
boxSideFadeNegativeX = value.x;
boxSideFadeNegativeY = value.y;
boxSideFadeNegativeZ = value.z;
}
}
public Vector3 boxSideFadePositive; //+X,+Y,+Z
public float unused6;
public Vector3 boxSideFadeNegative; //-X,-Y,-Z
public float unused7;
public Vector3 sampleDirectionDiscardWS
{
get { return new Vector3(sampleDirectionDiscardWSX, sampleDirectionDiscardWSY, sampleDirectionDiscardWSZ); }
set
{
sampleDirectionDiscardWSX = value.x;
sampleDirectionDiscardWSY = value.y;
sampleDirectionDiscardWSZ = value.z;
}
}
[GenerateHLSL]
public enum EnvCacheType
{
Texture2D,
Cubemap
}
// Usage of StencilBits.Lighting on 2 bits.
// We support both deferred and forward renderer. Here is the current usage of this 2 bits:

325
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightDefinition.cs.hlsl


#define ENVCONSTANTS_SPEC_CUBE_LOD_STEP (6)
//
// UnityEngine.Experimental.Rendering.HDPipeline.EnvCacheType: static fields
//
#define ENVCACHETYPE_TEXTURE2D (0)
#define ENVCACHETYPE_CUBEMAP (1)
//
// UnityEngine.Experimental.Rendering.HDPipeline.StencilLightingUsage: static fields
//
#define STENCILLIGHTINGUSAGE_NO_LIGHTING (0)

// PackingRules = Exact
struct EnvLightData
{
float3 positionWS;
int envShapeType;
float3 forward;
int envIndex;
float3 up;
float dimmer;
float3 right;
float capturePositionWSX;
float capturePositionWSY;
float capturePositionWSZ;
int influenceShapeType;
float proxyExtentsX;
float proxyExtentsY;
float proxyExtentsZ;
float3 influenceExtents;
float unused0;
float3 offsetLS;
float unused1;
float3 blendDistancePositive;
float unused2;
float3 blendDistanceNegative;
float unused3;
float3 blendNormalDistancePositive;
float unused4;
float3 blendNormalDistanceNegative;
float unused5;
float3 boxSideFadePositive;
float unused6;
float3 boxSideFadeNegative;
float unused7;
float proxyPositionWSX;
float proxyPositionWSY;
float proxyPositionWSZ;
float proxyForwardX;
float proxyForwardY;
float proxyForwardZ;
float proxyUpX;
float proxyUpY;
float proxyUpZ;
float proxyRightX;
float proxyRightY;
float proxyRightZ;
float influencePositionWSX;
float influencePositionWSY;
float influencePositionWSZ;
float influenceForwardX;
float influenceForwardY;
float influenceForwardZ;
float influenceUpX;
float influenceUpY;
float influenceUpZ;
float influenceRightX;
float influenceRightY;
float influenceRightZ;
float influenceExtentsX;
float influenceExtentsY;
float influenceExtentsZ;
float unused00;
float blendDistancePositiveX;
float blendDistancePositiveY;
float blendDistancePositiveZ;
float blendDistanceNegativeX;
float blendDistanceNegativeY;
float blendDistanceNegativeZ;
float blendNormalDistancePositiveX;
float blendNormalDistancePositiveY;
float blendNormalDistancePositiveZ;
float blendNormalDistanceNegativeX;
float blendNormalDistanceNegativeY;
float blendNormalDistanceNegativeZ;
float boxSideFadePositiveX;
float boxSideFadePositiveY;
float boxSideFadePositiveZ;
float boxSideFadeNegativeX;
float boxSideFadeNegativeY;
float boxSideFadeNegativeZ;
float dimmer;
float unused01;
float sampleDirectionDiscardWSX;
float sampleDirectionDiscardWSY;
float sampleDirectionDiscardWSZ;
int envIndex;
};
//

//
// Accessors for UnityEngine.Experimental.Rendering.HDPipeline.EnvLightData
//
float3 GetPositionWS(EnvLightData value)
float GetCapturePositionWSX(EnvLightData value)
return value.positionWS;
return value.capturePositionWSX;
int GetEnvShapeType(EnvLightData value)
float GetCapturePositionWSY(EnvLightData value)
return value.envShapeType;
return value.capturePositionWSY;
float3 GetForward(EnvLightData value)
float GetCapturePositionWSZ(EnvLightData value)
return value.forward;
return value.capturePositionWSZ;
int GetEnvIndex(EnvLightData value)
int GetInfluenceShapeType(EnvLightData value)
return value.envIndex;
return value.influenceShapeType;
float3 GetUp(EnvLightData value)
float GetProxyExtentsX(EnvLightData value)
return value.up;
return value.proxyExtentsX;
float GetDimmer(EnvLightData value)
float GetProxyExtentsY(EnvLightData value)
return value.dimmer;
return value.proxyExtentsY;
float3 GetRight(EnvLightData value)
float GetProxyExtentsZ(EnvLightData value)
return value.right;
return value.proxyExtentsZ;
float3 GetInfluenceExtents(EnvLightData value)
float GetProxyPositionWSX(EnvLightData value)
{
return value.proxyPositionWSX;
}
float GetProxyPositionWSY(EnvLightData value)
{
return value.proxyPositionWSY;
}
float GetProxyPositionWSZ(EnvLightData value)
{
return value.proxyPositionWSZ;
}
float GetProxyForwardX(EnvLightData value)
{
return value.proxyForwardX;
}
float GetProxyForwardY(EnvLightData value)
{
return value.proxyForwardY;
}
float GetProxyForwardZ(EnvLightData value)
{
return value.proxyForwardZ;
}
float GetProxyUpX(EnvLightData value)
{
return value.proxyUpX;
}
float GetProxyUpY(EnvLightData value)
{
return value.proxyUpY;
}
float GetProxyUpZ(EnvLightData value)
{
return value.proxyUpZ;
}
float GetProxyRightX(EnvLightData value)
{
return value.proxyRightX;
}
float GetProxyRightY(EnvLightData value)
{
return value.proxyRightY;
}
float GetProxyRightZ(EnvLightData value)
{
return value.proxyRightZ;
}
float GetInfluencePositionWSX(EnvLightData value)
{
return value.influencePositionWSX;
}
float GetInfluencePositionWSY(EnvLightData value)
{
return value.influencePositionWSY;
}
float GetInfluencePositionWSZ(EnvLightData value)
{
return value.influencePositionWSZ;
}
float GetInfluenceForwardX(EnvLightData value)
return value.influenceExtents;
return value.influenceForwardX;
}
float GetInfluenceForwardY(EnvLightData value)
{
return value.influenceForwardY;
float GetUnused0(EnvLightData value)
float GetInfluenceForwardZ(EnvLightData value)
return value.unused0;
return value.influenceForwardZ;
float3 GetOffsetLS(EnvLightData value)
float GetInfluenceUpX(EnvLightData value)
return value.offsetLS;
return value.influenceUpX;
float GetUnused1(EnvLightData value)
float GetInfluenceUpY(EnvLightData value)
return value.unused1;
return value.influenceUpY;
float3 GetBlendDistancePositive(EnvLightData value)
float GetInfluenceUpZ(EnvLightData value)
return value.blendDistancePositive;
return value.influenceUpZ;
float GetUnused2(EnvLightData value)
float GetInfluenceRightX(EnvLightData value)
return value.unused2;
return value.influenceRightX;
float3 GetBlendDistanceNegative(EnvLightData value)
float GetInfluenceRightY(EnvLightData value)
return value.blendDistanceNegative;
return value.influenceRightY;
float GetUnused3(EnvLightData value)
float GetInfluenceRightZ(EnvLightData value)
return value.unused3;
return value.influenceRightZ;
float3 GetBlendNormalDistancePositive(EnvLightData value)
float GetInfluenceExtentsX(EnvLightData value)
return value.blendNormalDistancePositive;
return value.influenceExtentsX;
float GetUnused4(EnvLightData value)
float GetInfluenceExtentsY(EnvLightData value)
return value.unused4;
return value.influenceExtentsY;
float3 GetBlendNormalDistanceNegative(EnvLightData value)
float GetInfluenceExtentsZ(EnvLightData value)
return value.blendNormalDistanceNegative;
return value.influenceExtentsZ;
float GetUnused5(EnvLightData value)
float GetUnused00(EnvLightData value)
return value.unused5;
return value.unused00;
float3 GetBoxSideFadePositive(EnvLightData value)
float GetBlendDistancePositiveX(EnvLightData value)
return value.boxSideFadePositive;
return value.blendDistancePositiveX;
float GetUnused6(EnvLightData value)
float GetBlendDistancePositiveY(EnvLightData value)
return value.unused6;
return value.blendDistancePositiveY;
float3 GetBoxSideFadeNegative(EnvLightData value)
float GetBlendDistancePositiveZ(EnvLightData value)
return value.boxSideFadeNegative;
return value.blendDistancePositiveZ;
float GetUnused7(EnvLightData value)
float GetBlendDistanceNegativeX(EnvLightData value)
return value.unused7;
return value.blendDistanceNegativeX;
}
float GetBlendDistanceNegativeY(EnvLightData value)
{
return value.blendDistanceNegativeY;
}
float GetBlendDistanceNegativeZ(EnvLightData value)
{
return value.blendDistanceNegativeZ;
}
float GetBlendNormalDistancePositiveX(EnvLightData value)
{
return value.blendNormalDistancePositiveX;
}
float GetBlendNormalDistancePositiveY(EnvLightData value)
{
return value.blendNormalDistancePositiveY;
}
float GetBlendNormalDistancePositiveZ(EnvLightData value)
{
return value.blendNormalDistancePositiveZ;
}
float GetBlendNormalDistanceNegativeX(EnvLightData value)
{
return value.blendNormalDistanceNegativeX;
}
float GetBlendNormalDistanceNegativeY(EnvLightData value)
{
return value.blendNormalDistanceNegativeY;
}
float GetBlendNormalDistanceNegativeZ(EnvLightData value)
{
return value.blendNormalDistanceNegativeZ;
}
float GetBoxSideFadePositiveX(EnvLightData value)
{
return value.boxSideFadePositiveX;
}
float GetBoxSideFadePositiveY(EnvLightData value)
{
return value.boxSideFadePositiveY;
}
float GetBoxSideFadePositiveZ(EnvLightData value)
{
return value.boxSideFadePositiveZ;
}
float GetBoxSideFadeNegativeX(EnvLightData value)
{
return value.boxSideFadeNegativeX;
}
float GetBoxSideFadeNegativeY(EnvLightData value)
{
return value.boxSideFadeNegativeY;
}
float GetBoxSideFadeNegativeZ(EnvLightData value)
{
return value.boxSideFadeNegativeZ;
}
float GetDimmer(EnvLightData value)
{
return value.dimmer;
}
float GetUnused01(EnvLightData value)
{
return value.unused01;
}
float GetSampleDirectionDiscardWSX(EnvLightData value)
{
return value.sampleDirectionDiscardWSX;
}
float GetSampleDirectionDiscardWSY(EnvLightData value)
{
return value.sampleDirectionDiscardWSY;
}
float GetSampleDirectionDiscardWSZ(EnvLightData value)
{
return value.sampleDirectionDiscardWSZ;
}
int GetEnvIndex(EnvLightData value)
{
return value.envIndex;
#include "LightDefinition.cs.custom.hlsl"

6
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/Deferred.compute


// This need to stay in sync with deferred.shader
PositionInputs posInput = GetPositionInput(pixelCoord.xy, _ScreenSize.zw, tileCoord);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
float depth = LOAD_TEXTURE2D(_MainDepthTexture, pixelCoord.xy).x;
PositionInputs posInput = GetPositionInput(pixelCoord.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, tileCoord);
// For indirect case: we can still overlap inside a tile with the sky/background, reject it
// Can't rely on stencil as we are in compute shader

return;
}
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float3 V = GetWorldSpaceNormalizeViewDir(posInput.positionWS);
BSDFData bsdfData;

4
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/GlobalLightLoopSettings.cs


public int cubeCookieTexArraySize = 16;
public int reflectionProbeCacheSize = 128;
public int planarReflectionProbeCacheSize = 128;
public int planarReflectionTextureSize = 128;
public bool planarReflectionCacheCompressed = false;
public int maxPlanarReflectionProbes = 128;
public SkyResolution skyReflectionSize = SkyResolution.SkyResolution256;
public LayerMask skyLightingOverrideLayerMask = 0;
}

322
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.cs


using System;
using System.Collections.Generic;
using UnityEngine.Assertions;
using UnityEngine.Experimental.Rendering.HDPipeline.Internal;
using UnityEngine.Rendering;
using UnityEngine.Experimental.Rendering;

static HDAdditionalLightData defaultHDAdditionalLightData { get { return ComponentSingleton<HDAdditionalLightData>.instance; } }
static HDAdditionalCameraData defaultHDAdditionalCameraData { get { return ComponentSingleton<HDAdditionalCameraData>.instance; } }
PlanarReflectionProbeCache m_ReflectionPlanarProbeCache;
List<Matrix4x4> m_Env2DCaptureVP = new List<Matrix4x4>();
public class LightList
{

TextureFormat probeCacheFormat = gLightLoopSettings.reflectionCacheCompressed ? TextureFormat.BC6H : TextureFormat.RGBAHalf;
m_ReflectionProbeCache = new ReflectionProbeCache(iblFilterGGX, gLightLoopSettings.reflectionProbeCacheSize, gLightLoopSettings.reflectionCubemapSize, probeCacheFormat, true);
TextureFormat planarProbeCacheFormat = gLightLoopSettings.planarReflectionCacheCompressed ? TextureFormat.BC6H : TextureFormat.RGBAHalf;
m_ReflectionPlanarProbeCache = new PlanarReflectionProbeCache(iblFilterGGX, gLightLoopSettings.planarReflectionProbeCacheSize, gLightLoopSettings.planarReflectionTextureSize, planarProbeCacheFormat, true);
s_GenAABBKernel = buildScreenAABBShader.FindKernel("ScreenBoundsAABB");
s_AABBBoundsBuffer = new ComputeBuffer(2 * k_MaxLightsOnScreen, 3 * sizeof(float));

m_ReflectionProbeCache.Release();
m_ReflectionProbeCache = null;
}
if (m_ReflectionPlanarProbeCache != null)
{
m_ReflectionPlanarProbeCache.Release();
m_ReflectionPlanarProbeCache = null;
}
if (m_CookieTexArray != null)
{
m_CookieTexArray.Release();

m_CookieTexArray.NewFrame();
m_CubeCookieTexArray.NewFrame();
m_ReflectionProbeCache.NewFrame();
m_ReflectionPlanarProbeCache.NewFrame();
}
public bool NeedResize()

var nrBigTiles = nrBigTilesX * nrBigTilesY;
s_BigTileLightList = new ComputeBuffer(LightDefinitions.s_MaxNrBigTileLightsPlusOne * nrBigTiles, sizeof(uint));
}
}
static Matrix4x4 GetFlipMatrix()
{
Matrix4x4 flip = Matrix4x4.identity;
bool isLeftHand = ((int)LightDefinitions.s_UseLeftHandCameraSpace) != 0;
if (isLeftHand) flip.SetColumn(2, new Vector4(0.0f, 0.0f, -1.0f, 0.0f));
return flip;
return GetFlipMatrix() * camera.worldToCameraMatrix;
// camera.worldToCameraMatrix is RHS and Unity's transforms are LHS
// We need to flip it to work with transforms
return Matrix4x4.Scale(new Vector3(1, 1, -1)) * camera.worldToCameraMatrix;
static Matrix4x4 CameraProjection(Camera camera)
// For light culling system, we need non oblique projection matrices
static Matrix4x4 CameraProjectionNonObliqueLHS(HDCamera camera)
return camera.projectionMatrix * GetFlipMatrix();
// camera.projectionMatrix expect RHS data and Unity's transforms are LHS
// We need to flip it to work with transforms
return camera.nonObliqueProjMatrix * Matrix4x4.Scale(new Vector3(1, 1, -1));
}
public Vector3 GetLightColor(VisibleLight light)

m_lightList.lightVolumes.Add(lightVolumeData);
}
public bool GetEnvLightData(CommandBuffer cmd, Camera camera, VisibleReflectionProbe probe)
public bool GetEnvLightData(CommandBuffer cmd, Camera camera, ProbeWrapper probe)
var additionalData = GetHDAdditionalReflectionData(probe);
var extents = probe.bounds.extents;
var influenceBlendDistancePositive = Vector3.one * probe.blendDistance;
var influenceBlendDistanceNegative = Vector3.one * probe.blendDistance;
if (probe.probe.mode == ReflectionProbeMode.Realtime && camera.cameraType == CameraType.Reflection)
if (probe.mode == ReflectionProbeMode.Realtime && camera.cameraType == CameraType.Reflection)
int envIndex = m_ReflectionProbeCache.FetchSlice(cmd, probe.texture);
var capturePosition = Vector3.zero;
var influenceToWorld = probe.influenceToWorld;
var sampleDirectionDiscardWS = Vector3.zero;
// 31 bits index, 1 bit cache type
var envIndex = -1;
if (probe.planarReflectionProbe != null)
{
envIndex = m_ReflectionPlanarProbeCache.FetchSlice(cmd, probe.texture);
envIndex = envIndex << 1 | (int)EnvCacheType.Texture2D;
float nearClipPlane, farClipPlane, aspect, fov;
Color backgroundColor;
CameraClearFlags clearFlags;
Quaternion captureRotation;
Matrix4x4 worldToCamera, projection;
ReflectionSystem.CalculateCaptureCameraProperties(
probe.planarReflectionProbe,
out nearClipPlane, out farClipPlane,
out aspect, out fov, out clearFlags, out backgroundColor,
out worldToCamera, out projection, out capturePosition, out captureRotation,
camera);
var gpuProj = GL.GetGPUProjectionMatrix(projection, true); // Had to change this from 'false'
var gpuView = worldToCamera;
// We transform it to object space by translating the capturePosition
var vp = gpuProj * gpuView * Matrix4x4.Translate(capturePosition);
m_Env2DCaptureVP.Add(vp);
sampleDirectionDiscardWS = captureRotation * Vector3.forward;
}
else if (probe.reflectionProbe != null)
{
envIndex = m_ReflectionProbeCache.FetchSlice(cmd, probe.texture);
envIndex = envIndex << 1 | (int)EnvCacheType.Cubemap;
capturePosition = (Vector3)influenceToWorld.GetColumn(3) - probe.reflectionProbe.center;
}
// Build light data
// CAUTION: localToWorld is the transform for the widget of the reflection probe. i.e the world position of the point use to do the cubemap capture (mean it include the local offset)
envLightData.positionWS = probe.localToWorld.GetColumn(3);
envLightData.boxSideFadePositive = Vector3.one;
envLightData.boxSideFadeNegative = Vector3.one;
envLightData.minProjectionDistance = 0;
switch (additionalData.influenceShape)
{
case ReflectionInfluenceShape.Box:
{
envLightData.envShapeType = EnvShapeType.Box;
envLightData.boxSideFadePositive = additionalData.boxSideFadePositive;
envLightData.boxSideFadeNegative = additionalData.boxSideFadeNegative;
break;
}
case ReflectionInfluenceShape.Sphere:
envLightData.envShapeType = EnvShapeType.Sphere;
extents = Vector3.one * additionalData.influenceSphereRadius;
break;
}
if (probe.boxProjection == 0)
envLightData.minProjectionDistance = 65504.0f;
envLightData.dimmer = additionalData.dimmer;
envLightData.blendNormalDistancePositive = additionalData.blendNormalDistancePositive;
envLightData.blendNormalDistanceNegative = additionalData.blendNormalDistanceNegative;
influenceBlendDistancePositive = additionalData.blendDistancePositive;
influenceBlendDistanceNegative = additionalData.blendDistanceNegative;
envLightData.influenceShapeType = probe.influenceShapeType;
envLightData.dimmer = probe.dimmer;
envLightData.influenceExtents = probe.influenceExtents;
envLightData.blendNormalDistancePositive = probe.blendNormalDistancePositive;
envLightData.blendNormalDistanceNegative = probe.blendNormalDistanceNegative;
envLightData.blendDistancePositive = probe.blendDistancePositive;
envLightData.blendDistanceNegative = probe.blendDistanceNegative;
envLightData.boxSideFadePositive = probe.boxSideFadePositive;
envLightData.boxSideFadeNegative = probe.boxSideFadeNegative;
envLightData.sampleDirectionDiscardWS = sampleDirectionDiscardWS;
// remove scale from the matrix (Scale in this matrix is use to scale the widget)
envLightData.right = probe.localToWorld.GetColumn(0);
envLightData.right.Normalize();
envLightData.up = probe.localToWorld.GetColumn(1);
envLightData.up.Normalize();
envLightData.forward = probe.localToWorld.GetColumn(2);
envLightData.forward.Normalize();
envLightData.influenceRight = influenceToWorld.GetColumn(0).normalized;
envLightData.influenceUp = influenceToWorld.GetColumn(1).normalized;
envLightData.influenceForward = influenceToWorld.GetColumn(2).normalized;
envLightData.capturePositionWS = capturePosition;
envLightData.influencePositionWS = influenceToWorld.GetColumn(3);
// Artists prefer to have blend distance inside the volume!
// So we let the current UI but we assume blendDistance is an inside factor instead
// Blend distance can't be larger than the max radius
// probe.bounds.extents is BoxSize / 2
var blendDistancePositive = Vector3.Min(probe.bounds.extents, influenceBlendDistancePositive);
var blendDistanceNegative = Vector3.Min(probe.bounds.extents, influenceBlendDistanceNegative);
envLightData.influenceExtents = extents;
envLightData.offsetLS = probe.center; // center is misnamed, it is the offset (in local space) from center of the bounding box to the cubemap capture point
envLightData.blendDistancePositive = blendDistancePositive;
envLightData.blendDistanceNegative = blendDistanceNegative;
// Proxy data
var proxyToWorld = probe.proxyToWorld;
envLightData.proxyExtents = probe.proxyExtents;
envLightData.minProjectionDistance = probe.infiniteProjection ? 65504f : 0;
envLightData.proxyRight = proxyToWorld.GetColumn(0).normalized;
envLightData.proxyUp = proxyToWorld.GetColumn(1).normalized;
envLightData.proxyForward = proxyToWorld.GetColumn(2).normalized;
envLightData.proxyPositionWS = proxyToWorld.GetColumn(3);
m_lightList.envLights.Add(envLightData);

public void GetEnvLightVolumeDataAndBound(VisibleReflectionProbe probe, LightVolumeType lightVolumeType, Matrix4x4 worldToView)
public void GetEnvLightVolumeDataAndBound(ProbeWrapper probe, LightVolumeType lightVolumeType, Matrix4x4 worldToView)
var add = GetHDAdditionalReflectionData(probe);
var centerOffset = probe.center; // reflection volume offset relative to cube map capture point
var mat = probe.localToWorld;
Vector3 vx = mat.GetColumn(0);
Vector3 vy = mat.GetColumn(1);
Vector3 vz = mat.GetColumn(2);
Vector3 vw = mat.GetColumn(3);
vx.Normalize(); // Scale shouldn't affect the probe or its bounds
vy.Normalize();
vz.Normalize();
var influenceExtents = probe.bounds.extents; // 0.5f * Vector3.Max(-boxSizes[p], boxSizes[p]);
var centerWS = vx * centerOffset.x + vy * centerOffset.y + vz * centerOffset.z + vw;
var influenceExtents = probe.influenceExtents; // 0.5f * Vector3.Max(-boxSizes[p], boxSizes[p]);
// transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0)
vx = worldToView.MultiplyVector(vx);
vy = worldToView.MultiplyVector(vy);
vz = worldToView.MultiplyVector(vz);
var influenceToWorld = probe.influenceToWorld;
var centerVS = worldToView.MultiplyPoint(centerWS);
// transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0)
var influenceRightVS = worldToView.MultiplyVector(influenceToWorld.GetColumn(0).normalized);
var influenceUpVS = worldToView.MultiplyVector(influenceToWorld.GetColumn(1).normalized);
var influenceForwardVS = worldToView.MultiplyVector(influenceToWorld.GetColumn(2).normalized);
var influencePositionVS = worldToView.MultiplyPoint(influenceToWorld.GetColumn(3));
lightVolumeData.lightCategory = (uint)LightCategory.Env;
lightVolumeData.lightVolume = (uint)lightVolumeType;

{
case LightVolumeType.Sphere:
{
lightVolumeData.lightPos = centerVS;
lightVolumeData.radiusSq = add.influenceSphereRadius * add.influenceSphereRadius;
lightVolumeData.lightAxisX = vx;
lightVolumeData.lightAxisY = vy;
lightVolumeData.lightAxisZ = vz;
lightVolumeData.lightPos = influencePositionVS;
lightVolumeData.radiusSq = influenceExtents.x * influenceExtents.x;
lightVolumeData.lightAxisX = influenceRightVS;
lightVolumeData.lightAxisY = influenceUpVS;
lightVolumeData.lightAxisZ = influenceForwardVS;
bound.center = centerVS;
bound.boxAxisX = vx * add.influenceSphereRadius;
bound.boxAxisY = vy * add.influenceSphereRadius;
bound.boxAxisZ = vz * add.influenceSphereRadius;
bound.center = influencePositionVS;
bound.boxAxisX = influenceRightVS * influenceExtents.x;
bound.boxAxisY = influenceUpVS * influenceExtents.x;
bound.boxAxisZ = influenceForwardVS * influenceExtents.x;
bound.radius = add.influenceSphereRadius;
bound.radius = influenceExtents.x;
bound.center = centerVS;
bound.boxAxisX = influenceExtents.x * vx;
bound.boxAxisY = influenceExtents.y * vy;
bound.boxAxisZ = influenceExtents.z * vz;
bound.center = influencePositionVS;
bound.boxAxisX = influenceExtents.x * influenceRightVS;
bound.boxAxisY = influenceExtents.y * influenceUpVS;
bound.boxAxisZ = influenceExtents.z * influenceForwardVS;
bound.scaleXY.Set(1.0f, 1.0f);
bound.radius = influenceExtents.magnitude;

lightVolumeData.lightPos = centerVS;
lightVolumeData.lightAxisX = vx;
lightVolumeData.lightAxisY = vy;
lightVolumeData.lightAxisZ = vz;
lightVolumeData.lightPos = influencePositionVS;
lightVolumeData.lightAxisX = influenceRightVS;
lightVolumeData.lightAxisY = influenceUpVS;
lightVolumeData.lightAxisZ = influenceForwardVS;
lightVolumeData.boxInnerDist = influenceExtents - k_BoxCullingExtentThreshold;
lightVolumeData.boxInvRange.Set(1.0f / k_BoxCullingExtentThreshold.x, 1.0f / k_BoxCullingExtentThreshold.y, 1.0f / k_BoxCullingExtentThreshold.z);
break;

}
// Return true if BakedShadowMask are enabled
public bool PrepareLightsForGPU(CommandBuffer cmd, ShadowSettings shadowSettings, CullResults cullResults, Camera camera)
public bool PrepareLightsForGPU(CommandBuffer cmd, ShadowSettings shadowSettings, CullResults cullResults, ReflectionProbeCullResults reflectionProbeCullResults, Camera camera)
{
using (new ProfilingSample(cmd, "Prepare Lights For GPU"))
{

m_Env2DCaptureVP.Clear();
m_lightList.Clear();
Vector3 camPosWS = camera.transform.position;

// Redo everything but this time with envLights
int envLightCount = 0;
int probeCount = Math.Min(cullResults.visibleReflectionProbes.Count, k_MaxEnvLightsOnScreen);
var totalProbes = cullResults.visibleReflectionProbes.Count + reflectionProbeCullResults.visiblePlanarReflectionProbeCount;
int probeCount = Math.Min(totalProbes, k_MaxEnvLightsOnScreen);
for (int probeIndex = 0, numProbes = cullResults.visibleReflectionProbes.Count; (probeIndex < numProbes) && (sortCount < probeCount); probeIndex++)
for (int probeIndex = 0, numProbes = totalProbes; (probeIndex < numProbes) && (sortCount < probeCount); probeIndex++)
{
if (probeIndex < cullResults.visibleReflectionProbes.Count)
{
VisibleReflectionProbe probe = cullResults.visibleReflectionProbes[probeIndex];
HDAdditionalReflectionData additional = probe.probe.GetComponent<HDAdditionalReflectionData>();

}
LightVolumeType lightVolumeType = LightVolumeType.Box;
if (additional != null && additional.influenceShape == ReflectionInfluenceShape.Sphere)
if (additional != null && additional.influenceShape == ShapeType.Sphere)
float boxVolume = 8 * probe.bounds.extents.x * probe.bounds.extents.y * probe.bounds.extents.z;
float logVolume = Mathf.Clamp(256 + Mathf.Log(boxVolume, 1.05f), 0, 8191); // Allow for negative exponents
var logVolume = CalculateProbeLogVolume(probe.bounds);
sortKeys[sortCount++] = PackProbeKey(logVolume, lightVolumeType, 0u, probeIndex); // Sort by volume
}
else
{
probeIndex = probeIndex - cullResults.visibleReflectionProbes.Count;
var probe = reflectionProbeCullResults.visiblePlanarReflectionProbes[probeIndex];
// probe.texture can be null when we are adding a reflection probe in the editor
if (probe.texture == null || envLightCount >= k_MaxEnvLightsOnScreen)
continue;
var lightVolumeType = LightVolumeType.Box;
if (probe.influenceVolume.shapeType == ShapeType.Sphere)
lightVolumeType = LightVolumeType.Sphere;
++envLightCount;
var logVolume = CalculateProbeLogVolume(probe.bounds);
// 13 bit volume, 3 bit LightVolumeType, 16 bit index
sortKeys[sortCount++] = (uint)logVolume << 19 | (uint)lightVolumeType << 16 | ((uint)probeIndex & 0xFFFF); // Sort by volume
sortKeys[sortCount++] = PackProbeKey(logVolume, lightVolumeType, 1u, probeIndex); // Sort by volume
}
}
// Not necessary yet but call it for future modification with sphere influence volume

{
// In 1. we have already classify and sorted the light, we need to use this sorted order here
uint sortKey = sortKeys[sortIndex];
LightVolumeType lightVolumeType = (LightVolumeType)((sortKey >> 16) & 0x3);
int probeIndex = (int)(sortKey & 0xFFFF);
LightVolumeType lightVolumeType;
int probeIndex;
int listType;
UnpackProbeSortKey(sortKey, out lightVolumeType, out probeIndex, out listType);
VisibleReflectionProbe probe = cullResults.visibleReflectionProbes[probeIndex];
PlanarReflectionProbe planarProbe = null;
VisibleReflectionProbe probe = default(VisibleReflectionProbe);
if (listType == 0)
probe = cullResults.visibleReflectionProbes[probeIndex];
else
planarProbe = reflectionProbeCullResults.visiblePlanarReflectionProbes[probeIndex];
if (GetEnvLightData(cmd, camera, probe))
var probeWrapper = ProbeWrapper.Wrap(probe, planarProbe);
if (GetEnvLightData(cmd, camera, probeWrapper))
GetEnvLightVolumeDataAndBound(probe, lightVolumeType, worldToView);
GetEnvLightVolumeDataAndBound(probeWrapper, lightVolumeType, worldToView);
// We make the light position camera-relative as late as possible in order
// to allow the preceding code to work with the absolute world space coordinates.

int n = m_lightList.envLights.Count;
EnvLightData envLightData = m_lightList.envLights[n - 1];
envLightData.positionWS -= camPosWS;
envLightData.capturePositionWS -= camPosWS;
envLightData.influencePositionWS -= camPosWS;
envLightData.proxyPositionWS -= camPosWS;
m_lightList.envLights[n - 1] = envLightData;
}
}

}
}
static float CalculateProbeLogVolume(Bounds bounds)
{
float boxVolume = 8 * bounds.extents.x * bounds.extents.y * bounds.extents.z;
float logVolume = Mathf.Clamp(256 + Mathf.Log(boxVolume, 1.05f), 0, 4095); // Allow for negative exponents
return logVolume;
}
static void UnpackProbeSortKey(uint sortKey, out LightVolumeType lightVolumeType, out int probeIndex, out int listType)
{
lightVolumeType = (LightVolumeType)((sortKey >> 17) & 0x3);
probeIndex = (int)(sortKey & 0xFFFF);
listType = (int)((sortKey >> 16) & 1);
}
static uint PackProbeKey(float logVolume, LightVolumeType lightVolumeType, uint listType, int probeIndex)
{
// 12 bit volume, 3 bit LightVolumeType, 1 bit list type, 16 bit index
return (uint)logVolume << 20 | (uint)lightVolumeType << 17 | listType << 16 | ((uint)probeIndex & 0xFFFF);
}
void VoxelLightListGeneration(CommandBuffer cmd, Camera camera, Matrix4x4 projscr, Matrix4x4 invProjscr, RenderTargetIdentifier cameraDepthBufferRT)
{
// clear atomic offset index

cmd.DispatchCompute(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, numTilesX, numTilesY, 1);
}
public void BuildGPULightListsCommon(Camera camera, CommandBuffer cmd, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, bool skyEnabled)
public void BuildGPULightListsCommon(HDCamera hdCamera, CommandBuffer cmd, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, bool skyEnabled)
var camera = hdCamera.camera;
cmd.BeginSample("Build Light List");
var w = camera.pixelWidth;

var numBigTilesY = (h + 63) / 64;
// camera to screen matrix (and it's inverse)
var proj = CameraProjection(camera);
var proj = CameraProjectionNonObliqueLHS(hdCamera);
var temp = new Matrix4x4();
temp.SetRow(0, new Vector4(0.5f * w, 0.0f, 0.0f, 0.5f * w));
temp.SetRow(1, new Vector4(0.0f, 0.5f * h, 0.0f, 0.5f * h));

cmd.EndSample("Build Light List");
}
public void BuildGPULightLists(Camera camera, CommandBuffer cmd, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, bool skyEnabled)
public void BuildGPULightLists(HDCamera hdCamera, CommandBuffer cmd, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, bool skyEnabled)
BuildGPULightListsCommon(camera, cmd, cameraDepthBufferRT, stencilTextureRT, skyEnabled);
PushGlobalParams(camera, cmd);
BuildGPULightListsCommon(hdCamera, cmd, cameraDepthBufferRT, stencilTextureRT, skyEnabled);
PushGlobalParams(hdCamera.camera, cmd);
public GPUFence BuildGPULightListsAsyncBegin(Camera camera, ScriptableRenderContext renderContext, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, GPUFence startFence, bool skyEnabled)
public GPUFence BuildGPULightListsAsyncBegin(HDCamera hdCamera, ScriptableRenderContext renderContext, RenderTargetIdentifier cameraDepthBufferRT, RenderTargetIdentifier stencilTextureRT, GPUFence startFence, bool skyEnabled)
BuildGPULightListsCommon(camera, cmd, cameraDepthBufferRT, stencilTextureRT, skyEnabled);
BuildGPULightListsCommon(hdCamera, cmd, cameraDepthBufferRT, stencilTextureRT, skyEnabled);
GPUFence completeFence = cmd.CreateGPUFence();
renderContext.ExecuteCommandBufferAsync(cmd, ComputeQueueType.Background);
CommandBufferPool.Release(cmd);

add = defaultHDAdditionalReflectionData;
add.blendDistancePositive = Vector3.one * probe.blendDistance;
add.blendDistanceNegative = add.blendDistancePositive;
add.influenceShape = ReflectionInfluenceShape.Box;
add.influenceShape = ShapeType.Box;
}
return add;
}

cmd.SetGlobalTexture(HDShaderIDs._CookieTextures, m_CookieTexArray.GetTexCache());
cmd.SetGlobalTexture(HDShaderIDs._CookieCubeTextures, m_CubeCookieTexArray.GetTexCache());
cmd.SetGlobalTexture(HDShaderIDs._EnvTextures, m_ReflectionProbeCache.GetTexCache());
cmd.SetGlobalTexture(HDShaderIDs._EnvCubemapTextures, m_ReflectionProbeCache.GetTexCache());
cmd.SetGlobalTexture(HDShaderIDs._Env2DTextures, m_ReflectionPlanarProbeCache.GetTexCache());
if (m_Env2DCaptureVP.Count > 0)
cmd.SetGlobalMatrixArray(HDShaderIDs._Env2DCaptureVP, m_Env2DCaptureVP);
cmd.SetGlobalBuffer(HDShaderIDs._DirectionalLightDatas, s_DirectionalLightDatas);
cmd.SetGlobalInt(HDShaderIDs._DirectionalLightCount, m_lightList.directionalLights.Count);

public void RenderDebugOverlay(HDCamera hdCamera, CommandBuffer cmd, DebugDisplaySettings debugDisplaySettings, ref float x, ref float y, float overlaySize, float width)
{
LightingDebugSettings lightingDebug = debugDisplaySettings.lightingDebugSettings;
if (lightingDebug.debugLightingMode == DebugLightingMode.EnvironmentProxyVolume)
cmd.SetGlobalFloat(HDShaderIDs._DebugEnvironmentProxyDepthScale, lightingDebug.environmentProxyDepthScale);
using (new ProfilingSample(cmd, "Tiled/cluster Lighting Debug", CustomSamplerId.TPTiledLightingDebug.GetSampler()))
{

24
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.hlsl


#else
uint envLightIndex = i;
#endif
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, _EnvLightDatas[envLightIndex], bsdfData, _EnvLightDatas[envLightIndex].envShapeType,
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, _EnvLightDatas[envLightIndex], bsdfData,
_EnvLightDatas[envLightIndex].influenceShapeType,
GPUIMAGEBASEDLIGHTINGTYPE_REFLECTION, reflectionHierarchyWeight);
AccumulateIndirectLighting(lighting, aggregateLighting);
}

#else
uint envLightIndex = i;
#endif
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, _EnvLightDatas[envLightIndex], bsdfData, _EnvLightDatas[envLightIndex].envShapeType,
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, _EnvLightDatas[envLightIndex], bsdfData,
_EnvLightDatas[envLightIndex].influenceShapeType,
GPUIMAGEBASEDLIGHTINGTYPE_REFRACTION, refractionHierarchyWeight);
AccumulateIndirectLighting(lighting, aggregateLighting);
}

{
// The sky is a single cubemap texture separate from the reflection probe texture array (different resolution and compression)
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_SKY;
EnvLightData envLightSky = InitSkyEnvLightData(0); // The sky data are generated on the fly so the compiler can optimize the code
IndirectLighting lighting = EvaluateBSDF_Env(context, V, posInput, preLightData, envLightSky, bsdfData, ENVSHAPETYPE_SKY, GPUIMAGEBASEDLIGHTINGTYPE_REFLECTION, reflectionHierarchyWeight);
// The sky data are generated on the fly so the compiler can optimize the code
EnvLightData envLightSky = InitSkyEnvLightData(0);
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, envLightSky, bsdfData,
ENVSHAPETYPE_SKY,
GPUIMAGEBASEDLIGHTINGTYPE_REFLECTION, reflectionHierarchyWeight);
AccumulateIndirectLighting(lighting, aggregateLighting);
}

{
// The sky is a single cubemap texture separate from the reflection probe texture array (different resolution and compression)
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_SKY;
EnvLightData envLightSky = InitSkyEnvLightData(0); // The sky data are generated on the fly so the compiler can optimize the code
IndirectLighting lighting = EvaluateBSDF_Env(context, V, posInput, preLightData, envLightSky, bsdfData, ENVSHAPETYPE_SKY, GPUIMAGEBASEDLIGHTINGTYPE_REFRACTION, refractionHierarchyWeight);
// The sky data are generated on the fly so the compiler can optimize the code
EnvLightData envLightSky = InitSkyEnvLightData(0);
IndirectLighting lighting = EvaluateBSDF_Env( context, V, posInput, preLightData, envLightSky, bsdfData,
ENVSHAPETYPE_SKY,
GPUIMAGEBASEDLIGHTINGTYPE_REFRACTION, refractionHierarchyWeight);
AccumulateIndirectLighting(lighting, aggregateLighting);
}
}

45
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoopDef.hlsl


StructuredBuffer<uint> g_vLightListGlobal; // don't support Buffer yet in unity
#define DWORD_PER_TILE 16 // See dwordsPerTile in LightLoop.cs, we have roomm for 31 lights and a number of light value all store on 16 bit (ushort)
#define MAX_ENV2D_LIGHT 32
CBUFFER_START(UnityTilePass)
uint _NumTileFtplX;

TEXTURECUBE_ARRAY_ABSTRACT(_CookieCubeTextures);
// Use texture array for reflection (or LatLong 2D array for mobile)
TEXTURECUBE_ARRAY_ABSTRACT(_EnvTextures);
TEXTURECUBE_ARRAY_ABSTRACT(_EnvCubemapTextures);
TEXTURE2D_ARRAY(_Env2DTextures);
float4x4 _Env2DCaptureVP[MAX_ENV2D_LIGHT];
TEXTURE2D(_DeferredShadowTexture);

uint _AreaLightCount;
uint _EnvLightCount;
uint _EnvProxyCount;
int _EnvLightSkyEnabled; // TODO: make it a bool
CBUFFER_END

#define SINGLE_PASS_CONTEXT_SAMPLE_REFLECTION_PROBES 0
#define SINGLE_PASS_CONTEXT_SAMPLE_SKY 1
#ifdef DEBUG_DISPLAY
float4 ApplyDebugProjectionVolume(float4 color, float3 texCoord, float scale)
{
float l = length(texCoord);
l = pow(l / (1 + l), scale);
return float4(l.xxx * 0.7 + color.rgb * 0.3, color.a);
}
#endif
// Cubemap : texCoord = direction vector
// Texture2D : texCoord = projectedPositionWS - lightData.capturePosition
// 31 bit index, 1 bit cache type
uint cacheType = index & 1;
index = index >> 1;
return SAMPLE_TEXTURECUBE_ARRAY_LOD_ABSTRACT(_EnvTextures, s_trilinear_clamp_sampler, texCoord, index, lod);
if (cacheType == ENVCACHETYPE_TEXTURE2D)
{
//_Env2DCaptureVP is in capture space
float4 ndc = ComputeClipSpaceCoordinates(texCoord, _Env2DCaptureVP[index]);
ndc *= rcp(ndc.w);
ndc.xy = ndc.xy * 0.5 + 0.5;
float4 color = SAMPLE_TEXTURE2D_ARRAY_LOD(_Env2DTextures, s_trilinear_clamp_sampler, ndc.xy, index, 0);
color.a = any(ndc.xyz < 0) || any(ndc.xyz > 1) ? 0 : 1;
#ifdef DEBUG_DISPLAY
if (_DebugLightingMode == DEBUGLIGHTINGMODE_ENVIRONMENT_PROXY_VOLUME)
return ApplyDebugProjectionVolume(color, texCoord, _DebugEnvironmentProxyDepthScale);
#endif
return color;
}
else if (cacheType == ENVCACHETYPE_CUBEMAP)
{
float4 color = SAMPLE_TEXTURECUBE_ARRAY_LOD_ABSTRACT(_EnvCubemapTextures, s_trilinear_clamp_sampler, texCoord, index, lod);
color.a = 1;
return color;
}
return float4(0, 0, 0, 0);
}
else // SINGLE_PASS_SAMPLE_SKY
{

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/materialflags.compute


#pragma kernel MaterialFlagsGen_Write MATERIALFLAGSGEN=MaterialFlagsGen_Write
#pragma kernel MaterialFlagsGen_Write MATERIALFLAGSGEN=MaterialFlagsGen_Write
#pragma kernel MaterialFlagsGen_Or MATERIALFLAGSGEN=MaterialFlagsGen_Or USE_OR
// #pragma enable_d3d11_debug_symbols

38
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightUtilities.hlsl


#include "LightDefinition.cs.hlsl"
#define SETTER_FLOAT3(data, field, value)\
data.##field##X = value.x;\
data.##field##Y = value.y;\
data.##field##Z = value.z
output.envShapeType = ENVSHAPETYPE_SKY;
output.envIndex = envIndex;
output.forward = float3(0.0, 0.0, 1.0);
output.up = float3(0.0, 1.0, 0.0);
output.right = float3(1.0, 0.0, 0.0);
output.positionWS = float3(0.0, 0.0, 0.0);
output.offsetLS = float3(0.0, 0.0, 0.0);
output.influenceExtents = float3(0.0, 0.0, 0.0);
output.blendDistancePositive = float3(0.0, 0.0, 0.0);
output.blendDistanceNegative = float3(0.0, 0.0, 0.0);
output.blendNormalDistancePositive = float3(0.0, 0.0, 0.0);
output.blendNormalDistanceNegative = float3(0.0, 0.0, 0.0);
output.boxSideFadePositive = float3(0.0, 0.0, 0.0);
output.boxSideFadeNegative = float3(0.0, 0.0, 0.0);
output.dimmer = 1.0;
ZERO_INITIALIZE(EnvLightData, output);
output.influenceShapeType = ENVSHAPETYPE_SKY;
output.envIndex = envIndex;
SETTER_FLOAT3(output, influenceForward, float3(0.0, 0.0, 1.0));
SETTER_FLOAT3(output, influenceUp, float3(0.0, 1.0, 0.0));
SETTER_FLOAT3(output, influenceRight, float3(1.0, 0.0, 0.0));
SETTER_FLOAT3(output, influencePositionWS, float3(0.0, 0.0, 0.0));
output.dimmer = 1.0;
// proxy
SETTER_FLOAT3(output, proxyForward, float3(0.0, 0.0, 1.0));
SETTER_FLOAT3(output, proxyUp, float3(0.0, 1.0, 0.0));
SETTER_FLOAT3(output, proxyRight, float3(1.0, 0.0, 0.0));
output.minProjectionDistance = 65504.0f;
#undef SETTER_FLOAT3
#endif // UNITY_LIGHT_UTILITIES_INCLUDED

4
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.cs


public void ResizeVBuffer(HDCamera camera, int screenWidth, int screenHeight)
{
if (preset == VolumetricLightingPreset.Off) return;
if (preset == VolumetricLightingPreset.Off) return;
int w = 0, h = 0, d = 0;
ComputeVBufferResolutionAndScale(preset, screenWidth, screenHeight, ref w, ref h, ref d);

6
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/GGXConvolution/RuntimeFilterIBL.cs


FilterCubemapCommon(cmd, source, target, m_faceWorldToViewMatrixMatrices);
}
public void FilterPlanarTexture(CommandBuffer cmd, Texture source, RenderTexture target)
{
// TODO: planar convolution
cmd.CopyTexture(source, 0, 0, target, 0, 0);
}
// Filters MIP map levels (other than 0) with GGX using multiple importance sampling.
public void FilterCubemapMIS( CommandBuffer cmd,
Texture source, RenderTexture target,

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.cs


// SpecularColor fold into fresnel0
// SSS
public int diffusionProfile;
public uint diffusionProfile;
public float subsurfaceMask;
// Transmission

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.cs.hlsl


float metallic;
float coatMask;
float3 specularColor;
int diffusionProfile;
uint diffusionProfile;
float subsurfaceMask;
float thickness;
float3 tangentWS;

151
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/Lit/Lit.hlsl


#define ENVMAP_FEATURE_PERFACEINFLUENCE
#define ENVMAP_FEATURE_INFLUENCENORMAL
#define ENVMAP_FEATURE_PERFACEFADE
// SurfaceData is define in Lit.cs which generate Lit.cs.hlsl
// SurfaceData is define in Lit.cs which generate Lit.cs.hlsl
#include "Lit.cs.hlsl"
#include "../SubsurfaceScattering/SubsurfaceScattering.hlsl"
#include "CoreRP/ShaderLibrary/VolumeRendering.hlsl"

#endif
#include "../../Lighting/LightEvaluation.hlsl"
#include "../../Lighting/Reflection/VolumeProjection.hlsl"
//-----------------------------------------------------------------------------
// Lighting structure for light accumulation

// _preIntegratedFGD and _CubemapLD are unique for each BRDF
IndirectLighting EvaluateBSDF_Env( LightLoopContext lightLoopContext,
float3 V, PositionInputs posInput,
PreLightData preLightData, EnvLightData lightData, BSDFData bsdfData, int envShapeType, int GPUImageBasedLightingType,
PreLightData preLightData, EnvLightData lightData, BSDFData bsdfData,
int influenceShapeType, int GPUImageBasedLightingType,
inout float hierarchyWeight)
{
IndirectLighting lighting;

// In Unity the cubemaps are capture with the localToWorld transform of the component.
// This mean that location and orientation matter. So after intersection of proxy volume we need to convert back to world.
// CAUTION: localToWorld is the transform use to convert the cubemap capture point to world space (mean it include the offset)
// the center of the bounding box is thus in locals space: positionLS - offsetLS
// We use this formulation as it is the one of legacy unity that was using only AABB box.
float3x3 worldToLocal = transpose(float3x3(lightData.right, lightData.up, lightData.forward)); // worldToLocal assume no scaling
float3 positionLS = positionWS - lightData.positionWS;
positionLS = mul(positionLS, worldToLocal).xyz - lightData.offsetLS; // We want to calculate the intersection from the center of the bounding box.
float3x3 worldToIS = WorldToInfluenceSpace(lightData);
float3 positionIS = WorldToInfluencePosition(lightData, worldToIS, positionWS);
float3 dirIS = mul(R, worldToIS);
float3x3 worldToPS = WorldToProxySpace(lightData);
float3 positionPS = WorldToProxyPosition(lightData, worldToPS, positionWS);
float3 dirPS = mul(R, worldToPS);
// Note: using envShapeType instead of lightData.envShapeType allow to make compiler optimization in case the type is know (like for sky)
if (envShapeType == ENVSHAPETYPE_SPHERE)
float projectionDistance = 0;
// 1. First process the projection
// Note: using influenceShapeType and projectionShapeType instead of (lightData|proxyData).shapeType allow to make compiler optimization in case the type is know (like for sky)
if (influenceShapeType == ENVSHAPETYPE_SPHERE)
// 1. First process the projection
float3 dirLS = mul(R, worldToLocal);
float sphereOuterDistance = lightData.influenceExtents.x;
float projectionDistance = IntersectRaySphereSimple(positionLS, dirLS, sphereOuterDistance);
projectionDistance = max(projectionDistance, lightData.minProjectionDistance); // Setup projection to infinite if requested (mean no projection shape)
// We can reuse dist calculate in LS directly in WS as there is no scaling. Also the offset is already include in lightData.positionWS
R = (positionWS + projectionDistance * R) - lightData.positionWS;
projectionDistance = IntersectSphereProxy(lightData, dirPS, positionPS);
// We can reuse dist calculate in LS directly in WS as there is no scaling. Also the offset is already include in lightData.capturePositionWS
float3 capturePositionWS = GetCapturePositionWS(lightData);
R = (positionWS + projectionDistance * R) - capturePositionWS;
dirLS = mul(coatR, worldToLocal);
projectionDistance = IntersectRaySphereSimple(positionLS, dirLS, sphereOuterDistance);
projectionDistance = max(projectionDistance, lightData.minProjectionDistance); // Setup projection to infinite if requested (mean no projection shape)
coatR = (positionWS + projectionDistance * coatR) - lightData.positionWS;
dirPS = mul(coatR, worldToPS);
projectionDistance = IntersectSphereProxy(lightData, dirPS, positionPS);
coatR = (positionWS + projectionDistance * coatR) - capturePositionWS;
// 2. Process the position influence
float lengthPositionLS = length(positionLS);
float sphereInfluenceDistance = lightData.influenceExtents.x - lightData.blendDistancePositive.x;
float distFade = max(lengthPositionLS - sphereInfluenceDistance, 0.0);
float alpha = saturate(1.0 - distFade / max(lightData.blendDistancePositive.x, 0.0001)); // avoid divide by zero
#if defined(ENVMAP_FEATURE_INFLUENCENORMAL)
// 3. Process the normal influence
float insideInfluenceNormalVolume = lengthPositionLS <= (lightData.influenceExtents.x - lightData.blendNormalDistancePositive.x) ? 1.0 : 0.0;
float insideWeight = InfluenceFadeNormalWeight(bsdfData.normalWS, normalize(positionWS - lightData.positionWS));
alpha *= insideInfluenceNormalVolume ? 1.0 : insideWeight;
#endif
weight = alpha;
weight = InfluenceSphereWeight(lightData, bsdfData, positionWS, positionIS, dirIS);
else if (envShapeType == ENVSHAPETYPE_BOX)
else if (influenceShapeType == ENVSHAPETYPE_BOX)
// 1. First process the projection
float3 dirLS = mul(R, worldToLocal);
float3 boxOuterDistance = lightData.influenceExtents;
float projectionDistance = IntersectRayAABBSimple(positionLS, dirLS, -boxOuterDistance, boxOuterDistance);
projectionDistance = max(projectionDistance, lightData.minProjectionDistance); // Setup projection to infinite if requested (mean no projection shape)
projectionDistance = IntersectBoxProxy(lightData, dirPS, positionPS);
// We can reuse dist calculate in LS directly in WS as there is no scaling. Also the offset is already include in lightData.positionWS
R = (positionWS + projectionDistance * R) - lightData.positionWS;
// We can reuse dist calculate in LS directly in WS as there is no scaling. Also the offset is already include in lightData.capturePositionWS
float3 capturePositionWS = GetCapturePositionWS(lightData);
R = (positionWS + projectionDistance * R) - capturePositionWS;
// TODO: add distance based roughness

dirLS = mul(coatR, worldToLocal);
projectionDistance = IntersectRayAABBSimple(positionLS, dirLS, -boxOuterDistance, boxOuterDistance);
projectionDistance = max(projectionDistance, lightData.minProjectionDistance); // Setup projection to infinite if requested (mean no projection shape)
coatR = (positionWS + projectionDistance * coatR) - lightData.positionWS;
dirPS = mul(coatR, worldToPS);
projectionDistance = IntersectBoxProxy(lightData, dirPS, positionPS);
coatR = (positionWS + projectionDistance * coatR) - capturePositionWS;
// 2. Process the position influence
// Calculate falloff value, so reflections on the edges of the volume would gradually blend to previous reflection.
#if defined(ENVMAP_FEATURE_PERFACEINFLUENCE) || defined(ENVMAP_FEATURE_INFLUENCENORMAL) || defined(ENVMAP_FEATURE_PERFACEFADE)
// Distance to each cube face
float3 negativeDistance = boxOuterDistance + positionLS;
float3 positiveDistance = boxOuterDistance - positionLS;
#endif
#if defined(ENVMAP_FEATURE_PERFACEINFLUENCE)
// Influence falloff for each face
float3 negativeFalloff = negativeDistance / max(0.0001, lightData.blendDistanceNegative);
float3 positiveFalloff = positiveDistance / max(0.0001, lightData.blendDistancePositive);
// Fallof is the min for all faces
float influenceFalloff = min(
min(min(negativeFalloff.x, negativeFalloff.y), negativeFalloff.z),
min(min(positiveFalloff.x, positiveFalloff.y), positiveFalloff.z));
float alpha = saturate(influenceFalloff);
#else
float distFace = DistancePointBox(positionLS, -lightData.influenceExtents + lightData.blendDistancePositive.x, lightData.influenceExtents - lightData.blendDistancePositive.x);
float alpha = saturate(1.0 - distFace / max(lightData.blendDistancePositive.x, 0.0001));
#endif
#if defined(ENVMAP_FEATURE_INFLUENCENORMAL)
// 3. Process the normal influence
// Calculate a falloff value to discard normals pointing outward the center of the environment light
float3 belowPositiveInfluenceNormalVolume = positiveDistance / max(0.0001, lightData.blendNormalDistancePositive);
float3 aboveNegativeInfluenceNormalVolume = negativeDistance / max(0.0001, lightData.blendNormalDistanceNegative);
float insideInfluenceNormalVolume = all(belowPositiveInfluenceNormalVolume >= 1.0) && all(aboveNegativeInfluenceNormalVolume >= 1.0) ? 1.0 : 0;
float insideWeight = InfluenceFadeNormalWeight(bsdfData.normalWS, normalize(positionWS - lightData.positionWS));
alpha *= insideInfluenceNormalVolume ? 1.0 : insideWeight;
#endif
#if defined(ENVMAP_FEATURE_PERFACEFADE)
// 4. Fade specific cubemap faces
// For each axes (both positive and negative ones), we want to fade from the center of one face to another
// So we normalized the sample direction (R) and use its component to fade for each axis
// We consider R.x as cos(X) and then fade as angle from 60°(=acos(1/2)) to 75°(=acos(1/4))
// For positive axes: axisFade = (R - 1/4) / (1/2 - 1/4)
// <=> axisFace = 4 * R - 1;
R = normalize(R);
float3 faceFade = saturate((4 * R - 1) * lightData.boxSideFadePositive) + saturate((-4 * R - 1) * lightData.boxSideFadeNegative);
alpha *= saturate(faceFade.x + faceFade.y + faceFade.z);
#endif
weight = alpha;
weight = InfluenceBoxWeight(lightData, bsdfData, positionWS, positionIS, dirIS);
// Smooth weighting
weight = Smoothstep01(weight);
// 2. Process the influence
//if (influenceShapeType == ENVSHAPETYPE_SPHERE)
// weight = InfluenceSphereWeight(lightData, bsdfData, positionWS, positionIS, dirIS);
//else if (influenceShapeType == ENVSHAPETYPE_BOX)
// weight = InfluenceBoxWeight(lightData, bsdfData, positionWS, positionIS, dirIS);
// When we are rough, we tend to see outward shifting of the reflection when at the boundary of the projection volume
// Also it appear like more sharp. To avoid these artifact and at the same time get better match to reference we lerp to original unmodified reflection.

float3 sampleDirectionDiscardWS = GetSampleDirectionDiscardWS(lightData);
if (dot(sampleDirectionDiscardWS, R) < 0)
return lighting;
weight *= preLD.a;
// Smooth weighting
weight = Smoothstep01(weight);
if (GPUImageBasedLightingType == GPUIMAGEBASEDLIGHTINGTYPE_REFLECTION)
{

9
ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/CameraMotionVectors.shader


float4 Frag(Varyings input) : SV_Target
{
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionCS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP);
float4 worldPos = float4(posInput.positionWS, 1.0);
float4 prevPos = worldPos;

float2 previousPositionCS = (prevHPos + 1.0) / 2.0;
float2 positionCS = (curHPos + 1.0) / 2.0;
#if !UNITY_UV_STARTS_AT_TOP
#if UNITY_UV_STARTS_AT_TOP
previousPositionCS.y = 1.0 - previousPositionCS.y;
positionCS.y = 1.0 - positionCS.y;
#endif

1
ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/HDRenderPipelineResources.asset


cameraMotionVectors: {fileID: 4800000, guid: 035941b63024d1943af48811c1db20d9, type: 3}
copyStencilBuffer: {fileID: 4800000, guid: 3d1574f1cdfa0ce4995f9bc79ed7f8ec, type: 3}
blit: {fileID: 4800000, guid: 370f7a9cc4e362d488af024d371091e8, type: 3}
blitFlipMip: {fileID: 4800000, guid: ef092fc4aaa1bb546a9ab4e457c4b07a, type: 3}
blitCubemap: {fileID: 4800000, guid: d05913e251bed7a4992c921c62e1b647, type: 3}
buildProbabilityTables: {fileID: 7200000, guid: b9f26cf340afe9145a699753531b2a4c,
type: 3}

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDBuffer.hlsl


)
{
FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionSS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP);
// Transform from world space to decal space (DS) to clip the decal.
// For this we must use absolute position.

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDepthOnly.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassDistortion.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassForward.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, uint2(input.positionSS.xy) / GetTileSize());
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS.xyz, uint2(input.positionSS.xy) / GetTileSize());
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassForwardUnlit.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassGBuffer.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassLightTransport.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderPass/ShaderPassVelocity.hlsl


FragInputs input = UnpackVaryingsMeshToFragInputs(packedInput.vmesh);
// input.positionSS is SV_Position
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw);
UpdatePositionInput(input.positionSS.z, input.positionSS.w, input.positionWS, posInput);
PositionInputs posInput = GetPositionInput(input.positionSS.xy, _ScreenSize.zw, input.positionSS.z, input.positionSS.w, input.positionWS);
#ifdef VARYINGS_NEED_POSITION_WS
float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS);

21
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Sky/OpaqueAtmosphericScattering.shader


float4 Frag(Varyings input) : SV_Target
{
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, posInput.positionSS).x;
UpdatePositionInput(depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP, posInput);
float depth = LOAD_TEXTURE2D(_MainDepthTexture, input.positionCS.xy).x;
PositionInputs posInput = GetPositionInput(input.positionCS.xy, _ScreenSize.zw, depth, UNITY_MATRIX_I_VP, UNITY_MATRIX_VP);
if (depth == UNITY_RAW_FAR_CLIP_VALUE)
{
// When a pixel is at far plane, the world space coordinate reconstruction is not reliable.
// So in order to have a valid position (for example for height fog) we just consider that the sky is a sphere centered on camera with a radius of 5km (arbitrarily chosen value!)
// And recompute the position on the sphere with the current camera direction.
float3 viewDirection = -GetWorldSpaceNormalizeViewDir(posInput.positionWS) * 5000.0f;
posInput.positionWS = GetPrimaryCameraPosition() + viewDirection;
}
if (depth == UNITY_RAW_FAR_CLIP_VALUE)
{
// When a pixel is at far plane, the world space coordinate reconstruction is not reliable.
// So in order to have a valid position (for example for height fog) we just consider that the sky is a sphere centered on camera with a radius of 5km (arbitrarily chosen value!)
// And recompute the position on the sphere with the current camera direction.
float3 viewDirection = -GetWorldSpaceNormalizeViewDir(posInput.positionWS) * 5000.0f;
posInput.positionWS = GetPrimaryCameraPosition() + viewDirection;
}
return EvaluateAtmosphericScattering(posInput);
}

95
ScriptableRenderPipeline/LightweightPipeline/LWRP/Data/LightweightPipelineAsset.cs


[SerializeField] private Vector3 m_Cascade4Split = new Vector3(0.067f, 0.2f, 0.467f);
[SerializeField]
private LightweightPipelineResource m_ResourceAsset;
private LightweightPipelineResources m_ResourcesAsset;
private LightweightPipelineEditorResources m_EditorResourcesAsset;
[MenuItem("Assets/Create/Render Pipeline/Lightweight/Pipeline Asset", priority = CoreUtils.assetCreateMenuPriority1)]
static void CreateLightweightPipeline()
{

//[MenuItem("Assets/Create/Render Pipeline/Lightweight/Pipeline Resources", priority = CoreUtils.assetCreateMenuPriority1)]
static void CreateLightweightPipelineResources()
{
var instance = CreateInstance<LightweightPipelineResources>();
AssetDatabase.CreateAsset(instance, string.Format("Assets/{0}.asset", typeof(LightweightPipelineResources).Name));
}
//[MenuItem("Assets/Create/Render Pipeline/Lightweight/Pipeline Editor Resources", priority = CoreUtils.assetCreateMenuPriority1)]
static void CreateLightweightPipelineEditorResources()
{
var instance = CreateInstance<LightweightPipelineEditorResources>();
AssetDatabase.CreateAsset(instance, string.Format("Assets/{0}.asset", typeof(LightweightPipelineEditorResources).Name));
}
instance.LoadResourceFile();
instance.m_EditorResourcesAsset = LoadResourceFile<LightweightPipelineEditorResources>();
instance.m_ResourcesAsset = LoadResourceFile<LightweightPipelineResources>();
private void LoadResourceFile()
private static T LoadResourceFile<T>() where T : ScriptableObject
string[] guids = AssetDatabase.FindAssets("LightweightPipelineResource t:scriptableobject", m_SearchPaths);
LightweightPipelineResource resourceAsset = null;
T resourceAsset = null;
var guids = AssetDatabase.FindAssets(typeof(T).Name + " t:scriptableobject", m_SearchPaths);
m_ResourceAsset = AssetDatabase.LoadAssetAtPath<LightweightPipelineResource>(path);
if (m_ResourceAsset != null)
resourceAsset = AssetDatabase.LoadAssetAtPath<T>(path);
if (resourceAsset != null)
if (m_ResourceAsset == null)
if (resourceAsset == null)
{
string path = m_SearchPaths[PACKAGE_MANAGER_PATH_INDEX] + "/LWRP/Data/" + typeof(T).Name + ".asset";
resourceAsset = AssetDatabase.LoadAssetAtPath<T>(path);
}
return resourceAsset;
}
LightweightPipelineEditorResources editorResources
{
get
string path = m_SearchPaths[PACKAGE_MANAGER_PATH_INDEX] + "/LWRP/Data/LightweightPipelineResource.asset";
m_ResourceAsset = AssetDatabase.LoadAssetAtPath<LightweightPipelineResource>(path);
if (m_EditorResourcesAsset == null)
m_EditorResourcesAsset = LoadResourceFile<LightweightPipelineEditorResources>();
return m_EditorResourcesAsset;
LightweightPipelineResources resources
{
get
{
#if UNITY_EDITOR
if (m_ResourcesAsset == null)
m_ResourcesAsset = LoadResourceFile<LightweightPipelineResources>();
#endif
return m_ResourcesAsset;
}
}
protected override IRenderPipeline InternalCreatePipeline()
{

private Material GetMaterial(DefaultMaterialType materialType)
{
#if UNITY_EDITOR
if (m_ResourceAsset == null)
LoadResourceFile();
return m_ResourceAsset.DefaultMaterial;
return editorResources.DefaultMaterial;
return m_ResourceAsset.DefaultParticleMaterial;
return editorResources.DefaultParticleMaterial;
return m_ResourceAsset.DefaultTerrainMaterial;
return editorResources.DefaultTerrainMaterial;
// Unity Builtin Default
default:

public Shader BlitShader
{
get
{
#if UNITY_EDITOR
if (m_ResourceAsset == null)
LoadResourceFile();
#endif
if (m_ResourceAsset)
return m_ResourceAsset.BlitShader;
return null;
}
get { return resources != null ? resources.BlitShader : null; }
get
{
#if UNITY_EDITOR
if (m_ResourceAsset == null)
LoadResourceFile();
#endif
if (m_ResourceAsset)
return m_ResourceAsset.CopyDepthShader;
return null;
}
get { return resources != null ? resources.CopyDepthShader : null; }
}
}
}

2
ScriptableRenderPipeline/LightweightPipeline/LWRP/Data/LightweightPipelineEditorResources.cs.meta


fileFormatVersion: 2
guid: eb91b173ce266e040aa972ca9a561308
guid: 76e49a5b88430df478c504fe5a5c1a62
MonoImporter:
externalObjects: {}
serializedVersion: 2

1
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/3DObjects/Sphere/Sphere.fbx.meta


2186277476908879430: ImportLogs
2186277476908879432: ImportLogs
2186277476908879434: ImportLogs
2186277476908879436: ImportLogs
externalObjects: {}
materials:
importMaterials: 0

2
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1301_SubSurfaceScattering/ThicknessTest.MAT


m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: FlatSkin
m_Name: ThicknessTest
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE

665
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius.unity


m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 2}
m_IsPrefabParent: 0
--- !u!1 &206350328
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 206350329}
- component: {fileID: 206350332}
- component: {fileID: 206350331}
- component: {fileID: 206350330}
m_Layer: 0
m_Name: Spot Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &206350329
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206350328}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.005, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1419573399}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!114 &206350330
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206350328}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c6c2871f720b2af4e9210febdac74517, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05
- 0.2
- 0.3
shadowCascadeBorders:
- 0.2
- 0.2
- 0.2
- 0.2
shadowAlgorithm: 0
shadowVariant: 0
shadowPrecision: 0
shadowData:
format: 0
data:
shadowDatas: []
--- !u!114 &206350331
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206350328}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_InnerSpotPercent: 100
lightDimmer: 1
fadeDistance: 10000
affectDiffuse: 1
affectSpecular: 1
lightTypeExtent: 0
spotLightShape: 0
shapeWidth: 0.5
shapeHeight: 0.5
aspectRatio: 1
shapeRadius: 0
maxSmoothness: 1
applyRangeAttenuation: 1
useOldInspector: 0
featuresFoldout: 1
showAdditionalSettings: 0
--- !u!108 &206350332
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 206350328}
m_Enabled: 1
serializedVersion: 8
m_Type: 0
m_Color: {r: 0.698, g: 0.698, b: 0.698, a: 1}
m_Intensity: 0.001
m_Range: 0.02
m_SpotAngle: 90
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &340485232
GameObject:
m_ObjectHideFlags: 0

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &459634894
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 459634895}
- component: {fileID: 459634898}
- component: {fileID: 459634897}
- component: {fileID: 459634896}
m_Layer: 0
m_Name: Spot Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &459634895
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 459634894}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.005, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1764583144}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!114 &459634896
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 459634894}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c6c2871f720b2af4e9210febdac74517, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05
- 0.2
- 0.3
shadowCascadeBorders:
- 0.2
- 0.2
- 0.2
- 0.2
shadowAlgorithm: 0
shadowVariant: 0
shadowPrecision: 0
shadowData:
format: 0
data:
shadowDatas: []
--- !u!114 &459634897
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 459634894}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_InnerSpotPercent: 100
lightDimmer: 1
fadeDistance: 10000
affectDiffuse: 1
affectSpecular: 1
lightTypeExtent: 0
spotLightShape: 0
shapeWidth: 0.5
shapeHeight: 0.5
aspectRatio: 1
shapeRadius: 0
maxSmoothness: 1
applyRangeAttenuation: 1
useOldInspector: 0
featuresFoldout: 1
showAdditionalSettings: 0
--- !u!108 &459634898
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 459634894}
m_Enabled: 1
serializedVersion: 8
m_Type: 0
m_Color: {r: 0.698, g: 0.698, b: 0.698, a: 1}
m_Intensity: 0.001
m_Range: 0.02
m_SpotAngle: 90
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &489376175
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 489376176}
- component: {fileID: 489376179}
- component: {fileID: 489376178}
- component: {fileID: 489376177}
m_Layer: 0
m_Name: Spot Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &489376176
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 489376175}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.005, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 962084888}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!114 &489376177
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 489376175}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c6c2871f720b2af4e9210febdac74517, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05
- 0.2
- 0.3
shadowCascadeBorders:
- 0.2
- 0.2
- 0.2
- 0.2
shadowAlgorithm: 0
shadowVariant: 0
shadowPrecision: 0
shadowData:
format: 0
data:
shadowDatas: []
--- !u!114 &489376178
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 489376175}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_InnerSpotPercent: 100
lightDimmer: 1
fadeDistance: 10000
affectDiffuse: 1
affectSpecular: 1
lightTypeExtent: 0
spotLightShape: 0
shapeWidth: 0.5
shapeHeight: 0.5
aspectRatio: 1
shapeRadius: 0
maxSmoothness: 1
applyRangeAttenuation: 1
useOldInspector: 0
featuresFoldout: 1
showAdditionalSettings: 0
--- !u!108 &489376179
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 489376175}
m_Enabled: 1
serializedVersion: 8
m_Type: 0
m_Color: {r: 0.698, g: 0.698, b: 0.698, a: 1}
m_Intensity: 0.001
m_Range: 0.02
m_SpotAngle: 90
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &771994608
GameObject:
m_ObjectHideFlags: 0

m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &839916369
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 839916370}
- component: {fileID: 839916373}
- component: {fileID: 839916372}
- component: {fileID: 839916371}
m_Layer: 0
m_Name: Spot Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &839916370
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 839916369}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.005, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1364754542}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!114 &839916371
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 839916369}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c6c2871f720b2af4e9210febdac74517, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05
- 0.2
- 0.3
shadowCascadeBorders:
- 0.2
- 0.2
- 0.2
- 0.2
shadowAlgorithm: 0
shadowVariant: 0
shadowPrecision: 0
shadowData:
format: 0
data:
shadowDatas: []
--- !u!114 &839916372
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 839916369}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_InnerSpotPercent: 100
lightDimmer: 1
fadeDistance: 10000
affectDiffuse: 1
affectSpecular: 1
lightTypeExtent: 0
spotLightShape: 0
shapeWidth: 0.5
shapeHeight: 0.5
aspectRatio: 1
shapeRadius: 0
maxSmoothness: 1
applyRangeAttenuation: 1
useOldInspector: 0
featuresFoldout: 1
showAdditionalSettings: 0
--- !u!108 &839916373
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 839916369}
m_Enabled: 1
serializedVersion: 8
m_Type: 0
m_Color: {r: 0.698, g: 0.698, b: 0.698, a: 1}
m_Intensity: 0.001
m_Range: 0.02
m_SpotAngle: 90
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &842796397
GameObject:
m_ObjectHideFlags: 0

m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: e3d03de02188b88428c03d8dca44f18e, type: 3}
m_IsPrefabParent: 0
--- !u!1 &2070758265
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 2070758266}
- component: {fileID: 2070758269}
- component: {fileID: 2070758268}
- component: {fileID: 2070758267}
m_Layer: 0
m_Name: Spot Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2070758266
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2070758265}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.005, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2022456866}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!114 &2070758267
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2070758265}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c6c2871f720b2af4e9210febdac74517, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05
- 0.2
- 0.3
shadowCascadeBorders:
- 0.2
- 0.2
- 0.2
- 0.2
shadowAlgorithm: 0
shadowVariant: 0
shadowPrecision: 0
shadowData:
format: 0
data:
shadowDatas: []
--- !u!114 &2070758268
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2070758265}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_InnerSpotPercent: 100
lightDimmer: 1
fadeDistance: 10000
affectDiffuse: 1
affectSpecular: 1
lightTypeExtent: 0
spotLightShape: 0
shapeWidth: 0.5
shapeHeight: 0.5
aspectRatio: 1
shapeRadius: 0
maxSmoothness: 1
applyRangeAttenuation: 1
useOldInspector: 0
featuresFoldout: 1
showAdditionalSettings: 0
--- !u!108 &2070758269
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2070758265}
m_Enabled: 1
serializedVersion: 8
m_Type: 0
m_Color: {r: 0.698, g: 0.698, b: 0.698, a: 1}
m_Intensity: 0.001
m_Range: 0.02
m_SpotAngle: 90
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_1.mat


m_PrefabInternal: {fileID: 0}
m_Name: MaxRadius_1
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _EMISSIVE_COLOR_MAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 2800000, guid: 5b60d314cd850e54b91f1289069ccbbf, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:

- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 1
- _EmissiveIntensity: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableMotionVectorForVertexAnimation: 0

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_10.mat


m_PrefabInternal: {fileID: 0}
m_Name: MaxRadius_10
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _EMISSIVE_COLOR_MAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 2800000, guid: 5b60d314cd850e54b91f1289069ccbbf, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:

- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 1
- _EmissiveIntensity: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableMotionVectorForVertexAnimation: 0

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_15.mat


m_PrefabInternal: {fileID: 0}
m_Name: MaxRadius_15
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _EMISSIVE_COLOR_MAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 2800000, guid: 5b60d314cd850e54b91f1289069ccbbf, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:

- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 1
- _EmissiveIntensity: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableMotionVectorForVertexAnimation: 0

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_20.mat


m_PrefabInternal: {fileID: 0}
m_Name: MaxRadius_20
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _EMISSIVE_COLOR_MAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 2800000, guid: 5b60d314cd850e54b91f1289069ccbbf, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:

- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 1
- _EmissiveIntensity: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableMotionVectorForVertexAnimation: 0

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/1xxx_Materials/1302_SSS_MaxRadius/MaxRadius_5.mat


m_PrefabInternal: {fileID: 0}
m_Name: MaxRadius_5
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _EMISSIVE_COLOR_MAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
m_ShaderKeywords: _MATERIAL_FEATURE_SUBSURFACE_SCATTERING _MATERIAL_FEATURE_TRANSMISSION
_NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 4
m_EnableInstancingVariants: 0

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 2800000, guid: 5b60d314cd850e54b91f1289069ccbbf, type: 3}
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:

- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 1
- _EmissiveIntensity: 0
- _EnableBlendModePreserveSpecularLighting: 1
- _EnableFogOnTransparent: 1
- _EnableMotionVectorForVertexAnimation: 0

218
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/Scenes/2xxx_Lighting/2301_Shadow_Mask.unity


m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.018302627, g: 0.019231804, b: 0.021260915, a: 1}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:

shadowResolution: 256
shadowDimmer: 0.5
shadowFadeDistance: 20
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05

volumeLayerMask:
serializedVersion: 2
m_Bits: 4294967295
serializedFrameSettings:
m_FrameSettings:
enableContactShadows: 1
enableSSSAndTransmission: 1
enableSubsurfaceScattering: 1
enableTransmission: 1
diffuseGlobalDimmer: 1
specularGlobalDimmer: 1
enableForwardRenderingOnly: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 815655995}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &911408450
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 7dde90a97c3ee4d4da77e66970eb07eb, type: 2}
m_IsPrefabParent: 0
--- !u!1 &929288949
GameObject:
m_ObjectHideFlags: 0

shadowResolution: 512
shadowDimmer: 0.5
shadowFadeDistance: 20
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05

m_Father: {fileID: 522989562}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90.00001}
--- !u!1 &1783632093
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 1673868521865844, guid: 7dde90a97c3ee4d4da77e66970eb07eb,
type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1783632096}
- component: {fileID: 1783632095}
- component: {fileID: 1783632094}
m_Layer: 0
m_Name: HDRP_Black_Sky
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1783632094
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 114663566010530930, guid: 7dde90a97c3ee4d4da77e66970eb07eb,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783632093}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 441482e8936e35048a1dffac814e3ef8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Profile: {fileID: 11400000, guid: 0d615c3f4f4e27d44af6c4fed3bb683c, type: 2}
m_BakingSkyUniqueID: 1
--- !u!114 &1783632095
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 114888363301181934, guid: 7dde90a97c3ee4d4da77e66970eb07eb,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783632093}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
m_Name:
m_EditorClassIdentifier:
isGlobal: 1
priority: 0
blendDistance: 0
weight: 1
sharedProfile: {fileID: 11400000, guid: 3f489ba750e903447b0e64a9a0927b48, type: 2}
--- !u!4 &1783632096
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 4295600896743834, guid: 7dde90a97c3ee4d4da77e66970eb07eb,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783632093}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1838647969
GameObject:
m_ObjectHideFlags: 0

m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1894174326}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1978415242
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1978415246}
- component: {fileID: 1978415245}
- component: {fileID: 1978415244}
- component: {fileID: 1978415243}
m_Layer: 0
m_Name: Quad
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!64 &1978415243
MeshCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1978415242}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1978415244
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1978415242}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 3bcb0652d6d34764b958e6c0a44fb35b, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &1978415245
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1978415242}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1978415246
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1978415242}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0.01, z: -7.76}
m_LocalScale: {x: 12.537164, y: 12.537165, z: 12.537165}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
--- !u!1 &1998959825
GameObject:
m_ObjectHideFlags: 0

shadowResolution: 512
shadowDimmer: 1
shadowFadeDistance: 10000
enableContactShadows: 0
contactShadowLength: 0
contactShadowDistanceScaleFactor: 0.5
contactShadowMaxDistance: 50
contactShadowFadeDistance: 5
contactShadowSampleCount: 8
shadowCascadeCount: 4
shadowCascadeRatios:
- 0.05

1
Tests/GraphicsTests/RenderPipeline/LightweightPipeline/Assets/CommonAssets/Cornell Box.fbx.meta


2186277476908879414: ImportLogs
2186277476908879416: ImportLogs
2186277476908879418: ImportLogs
2186277476908879420: ImportLogs
externalObjects:
- first:
type: UnityEngine:Material

3
Tests/GraphicsTests/RenderPipeline/LightweightPipeline/LightweightPipelineAsset.asset


m_ShadowCascades: 2
m_Cascade2Split: 0.25
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
m_BlitShader: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
m_CopyDepthShader: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_ResourcesAsset: {fileID: 11400000, guid: aac5a08c32552a14c89394b703f1978a, type: 2}

1
Tests/GraphicsTests/RenderPipeline/LightweightPipeline/Scenes/040_UpgradeScene/Models/Environment/Floor.fbx.meta


2186277476908879414: ImportLogs
2186277476908879416: ImportLogs
2186277476908879418: ImportLogs
2186277476908879420: ImportLogs
externalObjects:
- first:
type: UnityEngine:Material

39
Tests/Scripts/Editor/GraphicTests/Framework/TestFramework.cs


[OneTimeSetUp]
public void OneTimeSetUp()
{
BackupSceneManagerSetup();
SetupRenderPipeAsset();
}

Debug.Log("OnTimeTearDown");
RestoreSceneManagerSetup();
}
public static RenderPipelineAsset GetRenderPipelineAsset(string _SRP_ID)

string filePath = Path.Combine(absolutePath, TestFrameworkTools.renderPipelineAssets[_SRP_ID] );
filePath = filePath.Replace(Application.dataPath, "");
filePath = filePath.Remove(0, 1);
//Debug.Log("Before combine: " + filePath);
filePath = Path.Combine("Assets", filePath);
//Debug.Log("RP Asset is at : " + filePath);
return (RenderPipelineAsset)AssetDatabase.LoadAssetAtPath(filePath, typeof(RenderPipelineAsset));
}

public void SetupRenderPipeAsset()
{
Debug.Log("Set " + _SRP_ID + " render pipeline.");
//Debug.Log("Set " + _SRP_ID + " render pipeline. Previous was "+ ( (UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset == null)? "null":UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset.name) );
//Debug.Log("RestoreRenderPipeAsset from " + wantedTestsRenderPipeAsset.name + " to " + ((beforeTestsRenderPipeAsset == null)?"null":beforeTestsRenderPipeAsset.name));
{
//Debug.Log("RestoreRenderPipeAsset -> Actual restore");
}
}
public static SceneSetup[] sceneManagerSetupBeforeTest;
public void BackupSceneManagerSetup()
{
sceneManagerSetupBeforeTest = EditorSceneManager.GetSceneManagerSetup();
}
public void RestoreSceneManagerSetup()
{
if ( (sceneManagerSetupBeforeTest == null) || ( sceneManagerSetupBeforeTest.Length == 0 ) )
{
EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single);
}
else
{
EditorSceneManager.RestoreSceneManagerSetup(sceneManagerSetupBeforeTest);
}
}

5
Tests/Scripts/GraphicTests/Framework/SetupSceneForRenderPipelineTest.cs


public void TearDown()
{
if ( GraphicsSettings.renderPipelineAsset != m_OriginalAsset ) GraphicsSettings.renderPipelineAsset = m_OriginalAsset;
if (GraphicsSettings.renderPipelineAsset != m_OriginalAsset)
{
GraphicsSettings.renderPipelineAsset = m_OriginalAsset;
}
//EditorApplication.isPaused = false;
//EditorApplication.isPlaying = false;

4
Tests/Scripts/GraphicTests/Framework/TestFrameworkTools.cs


public static Dictionary<string, string> renderPipelineAssets = new Dictionary<string, string>()
{
{ "HDRP", "Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/HDRP_GraphicTests_Asset.asset" },
{ "LWRP", "Tests/GraphicsTests/RenderPipeline/LightweightPipeline/LightweightPipelineAsset.asset" }
{ "HDRP", "HDRenderPipeline/CommonAssets/HDRP_GraphicTests_Asset.asset" },
{ "LWRP", "LightweightPipeline/LightweightPipelineAsset.asset" }
};
// Renderpipeline assets used for the tests

21
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditor.Handles.cs


using UnityEditorInternal;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
using UnityEngine.Rendering;
namespace UnityEditor.Experimental.Rendering

var mat = Handles.matrix;
var col = Handles.color;
Handles.matrix = HDReflectionProbeEditorUtility.GetLocalSpace(sp.target);
switch ((ReflectionInfluenceShape)sp.influenceShape.enumValueIndex)
switch ((ShapeType)sp.influenceShape.enumValueIndex)
case ReflectionInfluenceShape.Box:
case ShapeType.Box:
{
blendBox.center = sp.target.center - (probeBlendDistancePositive - probeBlendDistanceNegative) * 0.5f;
blendBox.size = sp.target.size - probeBlendDistancePositive - probeBlendDistanceNegative;

}
break;
}
case ReflectionInfluenceShape.Sphere:
case ShapeType.Sphere:
{
sphereHandle.center = sp.target.center;
sphereHandle.radius = Mathf.Clamp(sp.targetData.influenceSphereRadius - probeBlendDistancePositive.x, 0, sp.targetData.influenceSphereRadius);

var mat = Handles.matrix;
var col = Handles.color;
Handles.matrix = HDReflectionProbeEditorUtility.GetLocalSpace(sp.target);
switch ((ReflectionInfluenceShape)sp.influenceShape.enumValueIndex)
switch ((ShapeType)sp.influenceShape.enumValueIndex)
case ReflectionInfluenceShape.Box:
case ShapeType.Box:
{
s.boxInfluenceHandle.center = sp.target.center;
s.boxInfluenceHandle.size = sp.target.size;

}
break;
}
case ReflectionInfluenceShape.Sphere:
case ShapeType.Sphere:
{
s.sphereInfluenceHandle.center = sp.target.center;
s.sphereInfluenceHandle.radius = sp.targetData.influenceSphereRadius;

Gizmos.matrix = HDReflectionProbeEditorUtility.GetLocalSpace(p);
switch (a.influenceShape)
{
case ReflectionInfluenceShape.Box:
case ShapeType.Box:
{
Gizmos.color = color;
if (isEdit)

break;
}
case ReflectionInfluenceShape.Sphere:
case ShapeType.Sphere:
{
Gizmos.color = color;
if (isEdit)

Gizmos.matrix = HDReflectionProbeEditorUtility.GetLocalSpace(p);
switch (a.influenceShape)
{
case ReflectionInfluenceShape.Box:
case ShapeType.Box:
{
Gizmos.color = isEdit ? k_GizmoThemeColorExtentFace : k_GizmoThemeColorExtent;
if (isEdit)

break;
}
case ReflectionInfluenceShape.Sphere:
case ShapeType.Sphere:
{
Gizmos.color = k_GizmoThemeColorExtentFace;
if (isEdit)

10
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditor.cs


using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using UnityEngine.SceneManagement;
namespace UnityEditor.Experimental.Rendering
{

static void ApplyConstraintsOnTargets(HDReflectionProbeUI s, SerializedHDReflectionProbe sp, Editor o)
{
switch ((ReflectionInfluenceShape)sp.influenceShape.enumValueIndex)
switch ((ShapeType)sp.influenceShape.enumValueIndex)
case ReflectionInfluenceShape.Box:
case ShapeType.Box:
{
var maxBlendDistance = HDReflectionProbeEditorUtility.CalculateBoxMaxBlendDistance(s, sp, o);
sp.targetData.blendDistancePositive = Vector3.Min(sp.targetData.blendDistancePositive, maxBlendDistance);

break;
}
case ReflectionInfluenceShape.Sphere:
case ShapeType.Sphere:
{
var maxBlendDistance = Vector3.one * HDReflectionProbeEditorUtility.CalculateSphereMaxBlendDistance(s, sp, o);
sp.targetData.blendDistancePositive = Vector3.Min(sp.targetData.blendDistancePositive, maxBlendDistance);

76
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeEditorUtility.cs


return true;
}
public static bool IsCollidingWithOtherProbes(string targetPath, ReflectionProbe targetProbe, out ReflectionProbe collidingProbe)
{
ReflectionProbe[] probes = Object.FindObjectsOfType<ReflectionProbe>().ToArray();
collidingProbe = null;
foreach (var probe in probes)
{
if (probe == targetProbe || probe.customBakedTexture == null)
continue;
string path = AssetDatabase.GetAssetPath(probe.customBakedTexture);
if (path == targetPath)
{
collidingProbe = probe;
return true;
}
}
return false;
}
static MethodInfo k_Lightmapping_BakeReflectionProbeSnapshot = typeof(UnityEditor.Lightmapping).GetMethod("BakeReflectionProbeSnapshot", BindingFlags.Static | BindingFlags.NonPublic);
public static bool BakeReflectionProbeSnapshot(ReflectionProbe probe)
{
return (bool)k_Lightmapping_BakeReflectionProbeSnapshot.Invoke(null, new object[] { probe });
}
static MethodInfo k_Lightmapping_BakeAllReflectionProbesSnapshots = typeof(UnityEditor.Lightmapping).GetMethod("BakeAllReflectionProbesSnapshots", BindingFlags.Static | BindingFlags.NonPublic);
public static bool BakeAllReflectionProbesSnapshots()
{
return (bool)k_Lightmapping_BakeAllReflectionProbesSnapshots.Invoke(null, new object[0]);
}
public static void BakeCustomReflectionProbe(ReflectionProbe probe, bool usePreviousAssetPath, bool custom)
{
if (!custom && probe.bakedTexture != null)
probe.customBakedTexture = probe.bakedTexture;
string path = "";
if (usePreviousAssetPath)
path = AssetDatabase.GetAssetPath(probe.customBakedTexture);
string targetExtension = probe.hdr ? "exr" : "png";
if (string.IsNullOrEmpty(path) || Path.GetExtension(path) != "." + targetExtension)
{
// We use the path of the active scene as the target path
var targetPath = SceneManager.GetActiveScene().path;
targetPath = Path.Combine(Path.GetDirectoryName(targetPath), Path.GetFileNameWithoutExtension(targetPath));
if (string.IsNullOrEmpty(targetPath))
targetPath = "Assets";
else if (Directory.Exists(targetPath) == false)
Directory.CreateDirectory(targetPath);
string fileName = probe.name + (probe.hdr ? "-reflectionHDR" : "-reflection") + "." + targetExtension;
fileName = Path.GetFileNameWithoutExtension(AssetDatabase.GenerateUniqueAssetPath(Path.Combine(targetPath, fileName)));
path = EditorUtility.SaveFilePanelInProject("Save reflection probe's cubemap.", fileName, targetExtension, "", targetPath);
if (string.IsNullOrEmpty(path))
return;
ReflectionProbe collidingProbe;
if (HDReflectionProbeEditorUtility.IsCollidingWithOtherProbes(path, probe, out collidingProbe))
{
if (!EditorUtility.DisplayDialog("Cubemap is used by other reflection probe",
string.Format("'{0}' path is used by the game object '{1}', do you really want to overwrite it?",
path, collidingProbe.name), "Yes", "No"))
{
return;
}
}
}
EditorUtility.DisplayProgressBar("Reflection Probes", "Baking " + path, 0.5f);
if (!UnityEditor.Lightmapping.BakeReflectionProbe(probe, path))
Debug.LogError("Failed to bake reflection probe to " + path);
EditorUtility.ClearProgressBar();
}
public static void ResetProbeSceneTextureInMaterial(ReflectionProbe p)
{
var renderer = p.GetComponent<Renderer>();

91
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeUI.Drawers.cs


using System;
using System.Reflection;
using UnityEditor.AnimatedValues;
using UnityEditor.IMGUI.Controls;
using UnityEditor.Experimental.Rendering.HDPipeline;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
using UnityEngine.Rendering;

using _ = CoreEditorUtils;
public partial class HDReflectionProbeUI
{

//CED.Action(Drawer_IntensityMultiplier),
CED.space,
CED.Action(Drawer_Toolbar),
CED.space
CED.space,
CED.Action((s, d, o) => EditorGUILayout.PropertyField(d.proxyVolumeComponent, _.GetContent("Proxy Volume")))
);
public static readonly CED.IDrawer SectionInfluenceVolumeSettings = CED.FoldoutGroup(

CED.FadeGroup(
(s, p, o, i) => s.IsSectionExpandedShape((ReflectionInfluenceShape)i),
(s, p, o, i) => s.IsSectionExpandedShape((ShapeType)i),
false,
CED.Action(Drawer_InfluenceBoxSettings), // Box
CED.Action(Drawer_InfluenceSphereSettings) // Sphere

(s, p, o) => s.isSectionExpandedSeparateProjection,
true,
CED.FadeGroup(
(s, p, o, i) => s.IsSectionExpandedShape((ReflectionInfluenceShape)i),
(s, p, o, i) => s.IsSectionExpandedShape((ShapeType)i),
false,
CED.Action(Drawer_ProjectionBoxSettings), // Box
CED.Action(Drawer_ProjectionSphereSettings) // Sphere

}
}
static readonly string[] k_BakeCustomOptionText = { "Bake as new Cubemap..." };
static readonly string[] k_BakeButtonsText = { "Bake All Reflection Probes" };
if (p.mode.intValue == (int)ReflectionProbeMode.Realtime)
{
EditorGUILayout.HelpBox("Refresh of this reflection probe should be initiated from the scripting API because the type is 'Realtime'", MessageType.Info);
if (!QualitySettings.realtimeReflectionProbes)
EditorGUILayout.HelpBox("Realtime reflection probes are disabled in Quality Settings", MessageType.Warning);
return;
}
if (p.mode.intValue == (int)ReflectionProbeMode.Baked && UnityEditor.Lightmapping.giWorkflowMode != UnityEditor.Lightmapping.GIWorkflowMode.OnDemand)
{
EditorGUILayout.HelpBox("Baking of this reflection probe is automatic because this probe's type is 'Baked' and the Lighting window is using 'Auto Baking'. The cubemap created is stored in the GI cache.", MessageType.Info);
return;
}
EditorGUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
switch ((ReflectionProbeMode)p.mode.intValue)
{
case ReflectionProbeMode.Custom:
{
if (ButtonWithDropdownList(
CoreEditorUtils.GetContent("Bake|Bakes Reflection Probe's cubemap, overwriting the existing cubemap texture asset (if any)."), k_BakeCustomOptionText,
data =>
{
var mode = (int)data;
var probe = p.target;
if (mode == 0)
{
HDReflectionProbeEditorUtility.BakeCustomReflectionProbe(probe, false, true);
HDReflectionProbeEditorUtility.ResetProbeSceneTextureInMaterial(probe);
}
},
GUILayout.ExpandWidth(true)))
{
var probe = p.target;
HDReflectionProbeEditorUtility.BakeCustomReflectionProbe(probe, true, true);
HDReflectionProbeEditorUtility.ResetProbeSceneTextureInMaterial(probe);
GUIUtility.ExitGUI();
}
break;
}
case ReflectionProbeMode.Baked:
{
GUI.enabled = p.target.enabled;
// Bake button in non-continous mode
if (ButtonWithDropdownList(
CoreEditorUtils.GetContent("Bake"),
k_BakeButtonsText,
data =>
{
var mode = (int)data;
if (mode == 0)
HDReflectionProbeEditorUtility.BakeAllReflectionProbesSnapshots();
},
GUILayout.ExpandWidth(true)))
{
var probe = p.target;
HDReflectionProbeEditorUtility.BakeReflectionProbeSnapshot(probe);
HDReflectionProbeEditorUtility.ResetProbeSceneTextureInMaterial(probe);
GUIUtility.ExitGUI();
}
GUI.enabled = true;
break;
}
case ReflectionProbeMode.Realtime:
// Not showing bake button in realtime
break;
}
GUILayout.FlexibleSpace();
EditorGUILayout.EndHorizontal();
EditorReflectionSystemGUI.DrawBakeButton((ReflectionProbeMode)p.mode.intValue, p.target);
}
#region Influence Volume

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/HDReflectionProbeUI.cs


using System;
using System.Reflection;
using UnityEditor.AnimatedValues;
using UnityEditor.IMGUI.Controls;
using UnityEditorInternal;

{
const int k_AnimBoolSingleFieldCount = 4;
static readonly int k_ReflectionProbeModeCount = Enum.GetValues(typeof(ReflectionProbeMode)).Length;
static readonly int k_ReflectionInfluenceShapeCount = Enum.GetValues(typeof(ReflectionInfluenceShape)).Length;
static readonly int k_ReflectionInfluenceShapeCount = Enum.GetValues(typeof(ShapeType)).Length;
static readonly int k_AnimBoolsCount = k_ReflectionProbeModeCount + k_ReflectionInfluenceShapeCount + k_AnimBoolSingleFieldCount;
[Flags]

GetReflectionProbeModeBool(i).target = i == value;
}
public AnimBool IsSectionExpandedShape(ReflectionInfluenceShape value)
public AnimBool IsSectionExpandedShape(ShapeType value)
{
return m_AnimBools[k_AnimBoolSingleFieldCount + k_ReflectionProbeModeCount + (int)value];
}

4
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/Reflection/SerializedHDReflectionProbe.cs


internal SerializedProperty boxSideFadeNegative;
internal SerializedProperty dimmer;
internal SerializedProperty proxyVolumeComponent;
public SerializedHDReflectionProbe(SerializedObject so, SerializedObject addso)
{
this.so = so;

blendNormalDistanceNegative = addso.Find((HDAdditionalReflectionData d) => d.blendNormalDistanceNegative);
boxSideFadePositive = addso.Find((HDAdditionalReflectionData d) => d.boxSideFadePositive);
boxSideFadeNegative = addso.Find((HDAdditionalReflectionData d) => d.boxSideFadeNegative);
proxyVolumeComponent = addso.Find((HDAdditionalReflectionData d) => d.proxyVolumeComponent);
}
public void Update()

5
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Reflection/ReflectionProbeCache.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering;
namespace UnityEngine.Experimental.Rendering.HDPipeline
{

10
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Reflection/HDAdditionalReflectionData.cs


namespace UnityEngine.Experimental.Rendering
{
public enum ReflectionInfluenceShape { Box, Sphere };
using UnityEngine.Experimental.Rendering.HDPipeline;
namespace UnityEngine.Experimental.Rendering
{
[RequireComponent(typeof(ReflectionProbe), typeof(MeshFilter), typeof(MeshRenderer))]
public class HDAdditionalReflectionData : MonoBehaviour
{

float m_Version = 1.0f;
#pragma warning restore 414
public ReflectionInfluenceShape influenceShape;
public ShapeType influenceShape;
[Range(0.0f,1.0f)]
public float dimmer = 1.0f;
public float influenceSphereRadius = 3.0f;

public Vector3 blendNormalDistanceNegative = Vector3.zero;
public Vector3 boxSideFadePositive = Vector3.one;
public Vector3 boxSideFadeNegative = Vector3.one;
public ReflectionProxyVolumeComponent proxyVolumeComponent;
public Vector3 boxBlendCenterOffset { get { return (blendDistanceNegative - blendDistancePositive) * 0.5f; } }
public Vector3 boxBlendSizeOffset { get { return -(blendDistancePositive + blendDistanceNegative); } }

59
SampleScenes/HDTest/BasicProfiling/Reflection Probe-reflectionHDR-MixedShape.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y0 �kR� ���@�$��2!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< �?�����3�s93�����������O���&���6�"k�����������~��������K���������% ���_��������d�����������������`L ��_�������������'O���������ſ�����������?���~zL�9�������6����� k?����������� ?���
A���X��׼�������`��_����¿����� K��"�`��d�0*k���� r���#���&y䙁�����L
������˿��Z'�&��?�`V��X��w���$��`��c���?�?�1�������?�?�0o�`X��`��h_��������d�����������,��X��v`J���`I������ɰ$�o��X���b���=� ������L +8��,�� �D�������$`H���`G�<���x0#�� �`G�<����x������9���x0#�� �`G�<�����'����K`FX5���������g������`H����_�_�������O�����X�������������� �`DI?�n`��_���O���&�����`��`���������`��b����x�����
���
rg?=&{������ǿ���W����5���فHK���K������ ������ k�`TJM�I�0?�?�/����l
a_����%��
�?�0?�?�2��5����9����X���<�L������&]`��e����������0+k���� ;�`X�o�0?�?�1Ɂ_X�����O�X��7�0,k�0?�?�4/�������{2s�`��_���C���� ;0%{��0$�`��d�t���� A������y����������Ǧ��`I���́"`IL�� �B��0$f���`G��y�`G��y�`G��x�0#��������9��́`G��y�`G����?��L�[0��������� ?g�����Dn�����,�� O�����5����X������`M�"I��s�������݁0/�����������?���K�������������W��`S�9��3����=�����0?�?�1�����
B_�O�X��$����)���`��c^��Ro�O������O���`S
����?�?�1/�`T��Ɂ����������0?�?�1������0"�L���f��Q0*���.��h�����t���[_�`��a��ē�������L
������Ƴ��"����������c_��������������������������`��aف({����'K��&�����m`J �� ���X��$&��=0$��L�?�?�6l J`��d��#0?�� t���@���!D��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������41�#�x`� ��<0G���#�x`� �;_���G��&g3����g���<0G���#�x`���M�PV��9l�0K����/X?���0GX&�����t�3X?�����,�����`�����W������0����L��;X#k��F
т8`����D�<0����y���`�������0L�`������/k����By�*`������� ������?�f[���$�GX?���0R �?������f�R �����?���������&
Q�����?���������`��`��`��`��`��`������#�A3��?��3�x0G�x0G�x0G�x0��&�(+���`�%���R`���?�j�#�Rfك�� :`���?�pقp�ك�� Cm0M����� +�����^{L�?���&�`������ #h�0����`�?��ۼ� �M�0`�������& �0���L���� U�
!<�0������� ��������3-��I��� �`���?�m)��?�����X)�������?�������� �(�������?�������a�<�`�0G�#���y�<�`�0G�����A�����ɞ�`�0G�#���y��6 AX?�����,�?�r��`����T�`��0F��?�i��`��������F��?�b#i�n�G �?�a_���R��"d���� 0F��`���?�a+F���� ��������O�l����?���0^���� �`���?�`"��Q �������?�`/���?�����lbL�?�l�`����h�H0������� ��H&��?����������?�l�)F��?����������#@�?��� A$=0�����|쏤7�@�?���?`��R33��y�ߧ ��
� ��������?��=s�1(��0��(��,��,� 0� ,� 0� ,��4� 0� 0�L,��4�4�L0� 0� 0��,� ,�M,�M<� 0��<�8Ӎ(��4��4�M<�M���<��<���4� 8��0��7��<��� 4�O4��<�O<� 8�4����4�?��?��?����?����?���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?��<�<�<��,��<����4�K,�<�M4�L4�N4��<��<�8� 0� <��8Í8� 4� 8� ,� ,��8�O4K<� ,Í4� 4�M0Í0��,�L4�N4Ӎ<�N(��(��0Š(��4��4� 0� 0� 0� (��0��,��(��,��,��,��(��(��,��,��(�� ��3����������O����0��'��%��9.�;�������u�#�l&BtM�"5BDI�Lp���� �#��#"tGF�� X�a�K 0 c��,x2��_�|2�%�X����������3��6q�= � �:�{,#��"B�V�%�3�� 8P�=��_����?��m�#��;��#������}������?���������� �'�Ѹv�Q�Xtxt�9prx9Tx8�q���ǃ��K�X��_Ѩ-B#(=���@&F�D �����eA@��+ @Z���1�c�h�� ��,�l �s�n��'����8T���p^�����8�t (b<
���P�
p��,�[X�D���.1q��\b����.1���|c����>!����?E�Xt�DP6 ��\B�[�1"8��8������8��~?������~?��0UXU����d�H� �����
Bn���nH����b' �� `v�B�@�%��p[�)(b�(� �9�$��8X�[� �/�8-�(�X�p� A`V������/��@�� 0� H|[XDH���V��Z+Eh���V��Z+Eh���V��]��^+�x���Xb�X�b,E��������xn���p������u���?�\?��R�[�� ��� ȝ �~&A_�<�ȑ�!*#�66 ���F#�,* � sJ-)����x B@�&��YQ&2�7���Q��Ѳ#(�8�I �x�5�N"��
F��Q�e���� ������
Ѷ�6�E�h�7%ptn�:w�������?�4����_p pDd�FFFI������ddddd�)$FFFFFFI�����D�p�������� �&�x
!���z�h(�� �y�T_X�+��(��^+��`A
��nL*���%�� "�����ؼax<��h(�P��������#�����s
�.��4�����######$�H������22222(�������###"���20 p�G�����m��?��>����?���Q�����~��" �8O !�0J�k��������!�B����`��ZC�K (&�N$ �`�T����0Adk�%�t1B���lDB�. �Ũ/�_��� �r-\]��$�#B���d�ђ?�ڎ�?�������wQ�?��?��;�����\&JJJM��d�))9)))94JJI�������d�����������)))98���%��X����A�!�!�!�!�C&�B(E�"�P��O��p��|O��>'����pO�KW@JC���3������d�����������)))999$JJM��������d�))6JJJI��������������������o��{����o�{�������&w������LY A0�xM p���N�w��:�d\�P h����� ��?�0�%���?�����(dY���
�l�����F��@:����������� �����᜜��rrrwv�ɷww'wwwwwwwwwwwww'p��l��8���R��]�S�;�������������;���D������4NN�� \�%r|�'��|�}��}��}��}����
��!$�p�`�]HC��R�*4DL�}��}��}��}�|�'��|�%R|�@%�;������(S ����Z�Z;p u#�n�$Z������8p������k�5���ƿ�_�����k�5���ƿ�{����Ǘ}_�_��ľ<�9p� QZ�C@�7��5�%��������\[���8V�:D�+Ą �Dq�_�����������?���z�K�UUUUUU�D��!v/�.Ls Ѕ�K&UUUUUU�p2��q�q�q�q�q��`�8��0q��q�q�q�q�q�@%�.��s�Ϯ|����ϟ:��߉!��x�P��J��\"�KP h�,i�%�� � �Q�]u��ϟ\����ϟ>u]u���� �1�s�1�s"�T��R*EH�"�T��U��V*�X�b�U��V*�X�b�U��V*�R*EH�"�T��R*EH��1�s�1�s�?����UWUUUU:J����UUUWUUT��n
����F��0 � p`��t!��j�������%UUTΪ������_���d��8w��������ç�������>�>ۗ�O�#���O������Əﻅ?������n;���!����:�Н�������u�]�_���5�O������n^�>�����_��������s��n�G|�mľ�>�G"(!}UWMUUUTڪ�Ϊ������s���UUUUKUU��UU�UUUU6��s��������ꪦ�UUUR�U|E� �7�Kj-��� �� �� �� �� 8C�8C����7Ë0�0�P�P�P�P�P�P�P�P�P�0�0�(���7Ä8C�8C� �� �� �� �� ��U]5UUUSj��:�������Ϊ�iUUUU-UW�d�y�Ϫ�>|�:���R�������^Z�r�ϟ>�{\����Ϫ�>|�:���R�������^Z�r�ϟ>�{\�2B��K�p cj-�%��>q�� *�x�������������?p~�������~�x��>�@q�|���>�|����[��K�������yjm��>|���s��i��j���U6��:���UUNuUU9�*�ҦiTꪪ�*�]֚�����uSi)���9�UT�UUS�ҩ�*f�N�������_�i��j���U6��:���UUNuUU9�*�ҦiTꪪ�*�]֚�����uSi)���9�UT�UUS�ҩ�*f�N���������}D��=�!�!�!_!�!����!��=r ���鸗�Ķ��}�K�c��R��r�!�r܃� ��n��{\qn �����Z }����;������"��*�3����on"���z�)������M���q/��}�{�C�C�B�C�C��;nCېz�{c��q/k�m�UT�UU%6��IN�Β��*��9�s��s�g4�T�*f�5UUIUUU5UUIM���S����:J�9�s�꩜���)�3J��MUURUP t.,�@%���j����IM��SgINt�Ns��9�S9�3�S�f�3J�������������Si)���S�%S��9�uT�uL��ꙥLҦ���*�����Rܷ/////-K����˲�.��켮��-N��y��k>|�Է-������R�������˲��/+���S�|�o=�%�8�ǚϟ>u-�r�����Լ�����-�켮����2���7��f��ϝKrܼ�����/////.�l�/+���+L�;g���ڪ���RS�����H����Sg9�s��9�L����:�i3JuMTҦ�����UIN��6��#gSgIM��9�s���3�S�LꙤ�)�5SJ���K�j,m�������U%6���M�m%:FΦΒ�9�s��9�*g4�4��3I�S�j��5UUT�ڪJu6����:�:Jl�9�s��4��Ҝ�gT�&iN���T�T��\L뾸�������'{u�v�v���tݷ�ݵm�#�w�:��&���;�����w�ݻݾ&v�7m����B��\����KBm�����������]���������n���w�|p��nۍ�ݵm�#�w�:��&���;�����w�ݻݾ&v�7m�;wm[{U6��RT�%IN�H����Ns�����uS�S�L�uMST�5SJiUTڛUIRT�%:�#gSgU9Β��g9�NiNi3��5MST�M)�P p�,m��v����Sj�*J���S�l�l��9�UUL�:��)�&u:���j���4��mM���*J��N�������IUU3���4�4��ꚦ��j��ҩ����u:�K����������˲�켻+��nm͹�6�s�ΧS���u///////////.�˲���+͹�6��۝�.@%���K7n��ߟ:�N�S�Լ�����������/.�˲��6��ۛsnw>|�u:�N�R�����������켻/.���ۛsnm͹�����SjmM��6��S����9�UUNsJ�4�T�)�4��ҚSJ������ڛSjmM����l���uUUS�ҩ�)�3JiM)�4��Ҫ��K�j,͸�5UU6��ڛSjmM��SgU6s������NiN��SJiM)�4��UUUUM��6��ڛSi)���M�ꪪ�9�S�S�f�ҚSJiM)�UU��!_!��ԇ|�|{���l��l���[�!olz����ǫ���W�!�!�!��=��[ ��!}���[����{p p�,q�%��P c������+�?��������C��zm��� {d-��[�y���|{�
��>�;�;��ǿ��d�d/�B�� {c��on�*J��ڤ�*J��M���US��9�uULҦiN��j����Ҫj��J���6�*J���Si)��T�9�s�US4��S�j�����4����隀K/n,�RT�M��IRT�%:�IM���9�s�ꪙ�LҝST�5MM)�T�5T�%SjmRT�%IN��Si*��s��:��iS4�T�5MSSJiU5MO�S�Լ�-�rܼ�^|������7�gr��JԭJԯ6��;g����u/-�rܷ/:��/////.���ܯ+R�+R�+͹����.@%���K-v�,u�|ҝN���n[���R�������ټ�;��jV�jV�y�6��=�4�S�yn[���yԼ�yyyyyvo.��yZ��Z��^mͶv�f�U#jmRT�%IRT�RU6������f�SUMST�5MSSJi5U4mUR6��%IRT�%IU%Si*�����iU5T�5MST�54��USP t�\YBn,�ڪ�mM�J���*J��J��UUUUULҪj��j����jiM&�����F�ڤ�*J���*��m%UUUUT�*������j�����j�h��������� ����������?��2;�J8����������?�T�J�?��� ���F P��>�x��HL�Ѳa6!�>��<p c��<p c��������,x2�%�_������d#c�����
Q莏B���#%��\�4g���ѳ�� pO�O����'��/�?���������~$c�>����������K��K��K��K�� �� o�<H 0�oQ�$0dx2l�1��8l᳆�8l�c "ؚ#��q�,@���0�B$H��C�@�`�0� `0N�"�#��m�_�;���L0 ����:��Ct (����X 0t`D�1C�"8,�`�c�,�F�#L�� v�h
� ��H�cx��0���<a�x��.1q��|c����K��� Z `�D p+�!�t�H�/�(}�1�8���}�1�?������~?����� @�!��KA~ ���`�N��Y@�� �D�(,�t `����?P����D� ��P\p �,�ā���D�"�,�T
�_`�P��A� ��` `�P|*����T"X�T78�|\[X� ��a�a�a�a�a�a�a�`��=A�P{`��=�f+Eh�د��Xb�X��� p��N��[upu�m���vn�;}�ٺ���~ � p�S �6� �ďQlIB���B#�H��p�8D4B����4�ҟ���G��Q�x"�Xb,c �����.>��DH�,N�6 Q� �@�. Q�F1�D�>!�Dq�L a2-\!�$/FH�0�4јd�S��V��W�_���_�V� �������"2H���###$������Ȳ2222H��������######$�H�����!���`<�!��r a`0m��@����~*`�p�I8;�m�� �P,� n�aN��!�\�R�Qa�a���� ���Z� �l6�� �n�t5�V#�<Z�D�x�8C��FFFJI������d�dddddd�FFFFFFI����Ddd�����v�c�����x��w��}������?q�&�� ���0�- �� !��%�l,�pN�K�P i,d.��]��GAjP ����\@h6�.B2�!E�/�i!rH ��<<<h�r-\ �`T��fA��@E�@G��Q�����~����?�������u㺏���K�$�III�RRL�%%'%%%'&�II2rrrRRRL�����������%%%''��6�x3 #��_�Y+!>'���"�P�B &qB(E�"�P�B(|���|O��>'��� �|Z�C�x3�mq�Z'''%%%$�����������"RRRrrrH���'%%%'%%&�"RRl�����Á��)��o���������}��ħ��8��I]�|��s� ����c�T��g��ĸK1L�)�@�`�
0��_ŸN`��KGm����o���0�?��������)���`��G �E�.FH����"4f#8ů����w�| ����󯇏�.��ɷ'''wh��wwrwwwwwwwwwwwwwrw@801 "����C�3��!�X��N�������������N����;n����M���W'�\�'��|�'�}��}��}��|l�X`��b *��d,@%�8���8 ��?�AI��}��}��}��'��|�'��U'�T\�����-@a�
PC�]kP h��%ԊqFH�Gww}��p�.$�W�����j�5�ƿ�_�����k��_Ư�W������|�|�X��������7�=p�+��
�5�V�bF�4\�Kp h�,e�%���i�dd�<d�ld��O�]��뾿��������K�G��eUUUUUP dA�(�!�����8�p dʪ������Ax"�����/���_��q�q�q�q�q���/�b�����/q{��^�K]u��ϟ\����ϟ>u]u� � ���QAL!����\"�KP h�,i�%��D0$��H7�2A�����ϟ>����k�>|���p cb�/
qN)�8���=C�=C�=C�=��p�p���s�1�s�1�s�1�s�1�s��p�p�h=C�=C�=C�S�qN)�8���S�����UWUUUU:J����UUUWUUT��E�h6�P �/
p � p`�Es��骪�����t�UUS:����������D^`�$9/修�2_���Oﻟ��w�|�m��'�?����덿�����ﻂO��w.�>ۅ����
aD-�%Ψ�'}�������?��'���� �}���{w�|�m��'���"?������ﻟ��w���n%�����S��ꪺj�����UNuUUUUUUS�UTҪ���Z������������US�UUUUUUT�UU4����������3��[�P om�1F(�g�xg�xg��!�!�a�a�)1J)E(� P� P� P� P� P� P� P� P� P���R�QI�i��i��h��h��������Q�1G��������mUT�UUUUUUU9�UM*��������,"��>�|����[��K�������yjm��>|���s����>�|����[��K�������yjm��>|���s�B�5�%����������u�ׇnj�v�߇��~.8x�燞xy�燞8xxx�wxxi�~�v����aׇ]���>��S�ϖ�Rܼ�^^^^^^w+�SnV�����k���MUSUUU:�����M�ꪪs����iT��3J�UUUIUR���U5UUS��IM�T�Ϊ��:�����NiS4�uUUT�U.���MUSUUU:�����M�ꪪs����iT��3J�UUUIUR���U5UUS��IM�T�Ϊ��:�����NiS4�uUUT�U.ħډ}�{�C�C�B�C�C��;nCېz�{c��q/k�m�����ǻ�>�;�+�:�?��C��=��A��<�7���n �����Z }�������k�����?��!:����!;n!=���6��E�M�ͮ-��/��}�{�C�C�B�C�C��;nCېz�{c��q/k�m�UT�UU%6��IN�Β��*��9�s��s�g4�T�*f�5UUIUUU5UUIM���S����:J�9�s�꩜���)�3J��MUURUP t.,�@%���j����IM��SgINt�Ns��9�S9�3�S�f�3J�������������Si)���S�%S��9�uT�uL��ꙥLҦ���*�����Rܷ/////-K����˲�.��켮��-N��y��k>|�Է-������R�������˲��/+���S�|�o=�%�8�ǚϟ>u-�r�����Լ�����-�켮����2���7��f��ϝKrܼ�����/////.�l�/+���+L�;g���ڪ���RS�����H����Sg9�s��9�L����:�i3JuMTҦ�����UIN��6��#gSgIM��9�s���3�S�LꙤ�)�5SJ���K�j,m�������U%6���M�m%:FΦΒ�9�s��9�*g4�4��3I�S�j��5UUT�ڪJu6����:�:Jl�9�s��4��Ҝ�gT�&iN���T�Tyk�^���}q7�����|N���&����3���nۻj��GZ��&u�\M���w�_��w�|L��nۏ7v�=���5�����ۿ���o��]��޿�$:��$������$66��ݷ�j��GZ��&u�\M���w�_��w�|L��nۄv�ڶ��mM���*J��N�������IUU3���4�4��ꚦ��j��Ҫ��6����*Ju:FΦΪs�%UT�s��Ҝ�gS�j�����SJ��\X�P f��%�/U6��RT�%IN�H����Ns�����uS�S�L�uMST�5SJiUTڛUIRT�%:�#gSgU9Β��g9�NiNi3��5MST�M)�S�S���u:������������e��yvW���ۛsnm��ϝN�S���^^^^^^^^^^^]��e��^W�snm͹�;�\:�Ku�n��%��>u:�N�S�yyyyyyyyyyyv^]��ey^m͹�6���|���u:�N�������������yv^]��y�6��ۛs��UU6��ڛSjmM��SgU6s������NiN��SJiM)�4��UUUUM��6��ڛSi)���M�ꪪ�9�S�S�f�ҚSJiM)�UU�H�Y�p dj��mM��6��ڛIN�Ϊl�UUU9�*�ҝS4��ҚSJiM*�����SjmM��6��S����9�UUNsJ�4�T�)�4��ҚSJ��=_�B�C��������:��� 퐷�B����ǛۏWǿ����C�C�C�=�{��A��B�d-퐷�=oq�����X��K3n��ǫ���W�!�!�!��=��[ ��!}���[����{q������}Hw�wǿ�!��=6�_l����ǭ�<��RT�M��IRT�%:�IM���9�s�ꪙ�LҝST�5MM)�T�5T�%SjmRT�%IN��Si*��s��:��iS4�T�5MSSJiU5M@%�5�^�Y*��*�Sj���*Ju6��IUNs��9�U3J��:���j��SJ��j�*J��ڤ�*J��M���US��9�uULҦiN��j����Ҫj��4�S�yn[���yԼ�yyyyyvo.��yZ��Z��^mͶv�g�)��^[���n^u/>^^^^^]�˳�^V�jV�jW�sm���\2�Ku�Z��X����:�K�rܷ-�Υ������˳yvw+�ԭJԭJ�nm��{>iN�R�ܷ-�r��y��������]����+R�+R�ۛl��ͪ�F�ڤ�*J���*��m%UUUUT�*������j�����j�hڪ�mM�J���*J��J��UUUUULҪj��j����jiM&����ڸ���Y9�UHڛT�%IRT�%T�M��������T�ST�5MST�ҚMUMUT���IRT�%IRUIT�J������UMU5MST�5MM)��T�0'���P�����������'���8DTJ��������w_��&�N�(H��
% і"JHH�&A$�Jc,m��M�1�*,y@%�(���<����`ǃ,X�e�����a26�h������R��%¤<���8����H� Q�"cg�����������������h�3�3�~3�����}�&����]w�������#��p������`(�+�a5���a��džʆ��kᯆ��@V1!)~$aB�Q��a@Zi `�1F0���0��
B�����!�pc Q� ���1�q� `� �����p�X�A�s�T ���i `��hcC�4��S�H����TC�q�p�`8�KkF��x�ƞ4���<i�Ox�Ʈ5q��\k�_���t\�cPZ81��2`�� �l���qC�q�1����q�1��~?������~?��.D���H�-@L��$�I���+�? X�\A� ��@8!��(b4X�����d�S �<�$��D"�#��7��T�4ox�` � �����r�C�4�0aD �<x���F��k��#лb�]��v.�ػb�]��v.�؅�X��X���^��z/�~/��鎣��01�0F�`��lH���[����6�׾��_�:�\{�� xs�$O �=��A�C�)`��a�d�I�:��"�[
� sJ-)���Ġ-�c����
׌�>��A�p�4 �E@��x�7D?`��8V�dB�B0u�?��� dZ����/ B ^ �PF���\
M��|
_�_|5� ����2w�w�FI��dddd�FFFFI�������Ddddddd�)x5��u���(��b����0 PH^ Rl]�-�%��FmAl=�p��p `�i�����@�� (�q Pj�T�(����?�/�|`��4A��L`P��5�%���h ���к*����Ddddddd�)&FFFFE������ddddQ&F.}�������G��G�?�����j;��㺏���`�� <���€����� #Lp@�>`L��\ڀKHp c �4�
Q�
0����9�,AX#`�$�2�,�@u�8bFЬ4�!`@�?��$@z���,j ����W������?�ڎ�?�������wQ�?��?��;�����\&JJJM��d�))9)))94JJI�������d�����������)))98� ���B�`����B��@ex+�^
�/��/°_�@�!�!�!�!�!���._A~�~�~�~��Z���B�f ��999)))&NNNNNNNNNNI������D���9)))9))6I��d����8�/���������������������N�cm���G?���A����/|��/����!���W�X!����/`��KGm����C�����W��
������͂�/q��".:���F�/s���;ÿ�|:���_g�� ���ۓ����NM���;�������������;��K�\<��/�.�Z�0fQMܝ������������ܝ��ɢv����ܚ''p p�O��>O���>O������������x9A6�A�\xA����R a� �0C�! �'�}��}��}��|�'��|�'�T�%P p������ �)�9� u�@%���R,�4 � j����������$��/�K���$��O���$��?�O�$��/�K���$����K]��]����.
<
�&A�%���h��x��K�P c.-@%�������L�-� cxEqk�_�����������?���z�K�UUUUUU�D p�GP � rb�3A�,�UUUUUTY���Lg�?��Ǝ4q��h�3��#8��3��#8��3�͍h�FƎ4q���g�?���4���ϟ>����k�>|���~0C �Pl b'�X[�Q�K�P cJ-�%�8��`c8Xc��#>�]s����>|��s�ϝW]n,lg ��Y�1f,Ř���Z�Qj-E�-Ÿ���\b�\��r.Eȹ"�\��r.Eȹ"�\��[�qn-Ÿ������Z�Qf,Ř�b�Y�1f,����UU]UUUT�*���uUUU]UUR��x����)���_�\�h3A������������UUULꪪ����������"����'�u�_��������s��n����ܽ�}�������\m����� ��� wm� }�}���^��)���������޺���}p/_�����u����>�����������\"���/�������v��/|�mǻ���TC�5���������US�UUUUUUT�UU4����������������mUT�UUUUUUU9�UM*�������|X�[�P om�hf�hf�1F(�� �3�<3�<4CD4CD4�� 0� 1J)E(���R�QJ)E(���R�QJ)CL4�L4�J � � �� �� �Q�1F(�f�hf�o���������US�UUUUUUT�UU4�������� a>��S�ϖ�Rܼ�^^^^^^w+�SnV�����k���>��S�ϖ�Rܼ�^^^^^^w+�SnV�����k�� �.�%����6��ï~xu�ۇn�w�w���ޡ߇�8x�㇎8w�ݸx�wxwi�n�v�ׇ]���}�}s��ϟ-Υ�yԼ������W��ܭ3�ϫ��=�֚�����uSi)���9�UT�UUS�ҩ�*f�N�������i��j���U6��:���UUNuUU9�*�ҦiTꪪ�*�]�%�֚�����uSi)���9�UT�UUS�ҩ�*f�N�������i��j���U6��:���UUNuUU9�*�ҦiTꪪ�*�]�"*%������
���?���nA��m��7MĽ�%�\K��_k��������C�ې������t�K��E�V�K�K���P h-�����[��~����?����:�!?�O������� ��6��E�MŽ���ľ�%������
���?���nA��m��7MĽ�%�]USUUT��Jm%:�:Js��s��9Ϊ�Ω�ҝS4��T�UU%UUT�UU%6��IN�Β��*��9�s��s�g4�T�*f�5UUIU@%и���>�����Jm%6��M�%9�U9�s��UL�T�iN��T�*j������j����IM��SgINt�Ns��9�S9�3�S�f�3J��������ϝKrܼ�����/////.�l�/+���+L�;g���٬���Rܷ/////-K����˲�.��켮��-N��y������k>|�Է-������R�������˲��/+���S�|�o=�ϟ>u-�r�����Լ�����-�켮����2���7��j���UIN��6��#gSgIM��9�s���3�S�LꙤ�)�5SJ����JmU%:�H�Jt��M�%6s��9�s�T�iNi3�f�4�T�M*j�. �����ۀKoUT�ڪJu6����:�:Jl�9�s��4��Ҝ�gT�&iN���T�UURSj�)��F�S�l�l�)���9�s�ҦsJsI�S4��:��iSUQ��7��λ뉽}|N���w�]�7n�o���M�p���V��:�}q3���o__������|M۽��gm�v�y��&[{�K�_��P hM������ص�\m���w__?�|H�u���v���{v�ln��oak����}q7�����|N���&����3���nۻj�ک�6����*Ju:FΦΪs�%UT�s��Ҝ�gS�j�����SJ���ڪJ���)��:�:��t�US9ΪsJsI�N��j���iM*�K�p cm@%���8�TڛUIRT�%:�#gSgU9Β��g9�NiNi3��5MST�M)�USjmU%IRT��t��M�T�:J����U9�9�ΧT�5MSU4��O�N�S���^^^^^^^^^^^]��e��^W�snm͹�;�>u:�N�S�yyyyyyyyyyyv^]��ey^m͹�6���p p�,e�Y�w�6����u:�N�������������yv^]��y�6��ۛs���S���u:������������e��yvW���ۛsnm���UTڛSjmM��6��M�T�Ϊ��s�U9�:�iM)�4��ҚUUUUU6��ڛSjmM��SgU6s������NiN��SJiM)�4��UT]#P fm�%�����6��ڛSjm%:�:���UUT�4�sJuLҚSJiM)�4�����mM��6��ڛIN�Ϊl�UUU9�*�ҝS4��ҚSJiM*���|{�
��>�;�;��ǿ��d�d/�B�� {c��on=_�B�C��������:��� 퐷�B����ǛۀK�P c�,ͺ�K��!_!��ԇ|�|{���l��l���[�!olz����ǫ���W�!�!�!��=��[ ��!}���[����{uIRU6��%IRT��m%6����9�s��f�3JuMST�54��ST�RT�M��IRT�%:�IM���9�s�ꪙ�LҝST�5MM)�T�5�L�Y{p d����mM�J���)��Jm%U9�s��UT�*f�ꚦ��jiM*�����*�Sj���*Ju6��IUNs��9�U3J��:���j��SJ��j|ҝN���n[���R�������ټ�;��jV�jV�y�6��=�4�S�yn[���yԼ�yyyyyvo.��yZ��Z��^mͶv�p p�,m�Yk�p c�����u/-�rܷ/:��/////.���ܯ+R�+R�+͹������:�K�rܷ-�Υ������˳yvw+�ԭJԭJ�nm��{6��Sj���*J�������UUUUS4���j����j��SI���j���6�*J���*J�*�IUUUUU3J�����j�����4����K�j��p d��U#jmRT�%IRT�RU6������f�SUMST�5MSSJi5U4mUR6��%IRT�%IU%Si*�����iU5T�5MST�54��US@`�+���@���?J*�|C!���;'���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,��o ����������'ɜ��rr�9 �02d��x]w�������<�>L����<��fI��$€��x(
G��E������y�?�����F�]������?�2O�99�� r@�`d�0j6���x]����y�|���' y�̓&I�-�lKmZ�m�lKm��m�+im�����m-�[�VĶիV�VĶ�m��b���KKKlV����$&I ���Km[�V�[m[�m��m��[m---�[KlVĶձ-�jնձ-��m�ح���������aJ<x�lx��Ǐ+<x���H��Ǐ��H����<V6<x��Ǐ�<x��$x��lj��$d�G�X�0D`���(�ⱱ�Ǐ<x�x��Ǐ#Ǐ<N'#$r<"”x�X���Ǐ<V<x��nj��Ǐ'���9m�%���b[m��m��m��m��lV+im��m�%���b[m��m��m��m��lV+im��` �J`p� 1?��%���b[m��m��m��m��lV+im��m�%���b[m��m��m��m��lV+im��a����~��������Ó�~pɼ?�s�;�o�����?������Ü�rs�7��y����EK�0>O�;�o�����?������Ü�rs�7��y�{ �>t?����>x��xs�Na��&��!�6�m��u��im���m��ն�r�m��m��m��m��[{m��m��m�ܶ�m��1fI�g��d� C���m�ۭ��Kom��m����ۖ�m��m��m��m����m��om�m����m�����Ƕ<x�f��{����ĥ��4�G�9�G�.<{cnj�m�ǽ�{�<JY�cH�{1����`(�(<��<� I3�G�=���c6�c����%,ı�r=����r<x�q��<f3lf=�{���R�KG#ُ�G#ۭ���m.���[o����[V��m�շ-�[im��]m-Զ���m����V�m�n[0��Y���m-��K�������m��չj�m�m�m��[m��[Ku-����k-�rն�jۖ����7]������~ �<�`ə'&H9&Nd�>�������������s'�L3$��$�̓4����?���#���>�������������s'�L3$��$�̓����w���_��_��.d�I�&d�� ��9�m-��m���]���m��嬵n[m�-�in��n��R�����o��-e�r�m�mX�?��2���m��m.�ݷ�m����Z�V���rڶ��m��iu.���m��m��Z�-�ۖն:<f3{m��3{�o{�6����)7�bX�N�ltx�f���f�����m�N%�Roı8�&` ��XK�3ltx�f���f�����m�N%�Roı8�&�������3x����x��6�Kd��%�bq:M��ZZ^�^�v����m�����^իVܷ[iii{�z]���m��o��Y{V�[r� q`|���m������wm��m����Z�e�Z�m�u�������ݷ�m����k���jշ,'������m�����s1�b|���y
NHO� ��x�����?��c���!I�,����<�X <�������񷍼����Nf<�O��B�!I� �/��ox������y��$)<��B���ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�a ��V��������뻻~��m������_.Z�jն����뻻~��m������_.Z�jձ���{c7��{�����;��-��;ı,f3{����{������N��Kd�N�,K0������/�c7������������{ĶJt�ı���{c7��{�����;��-��;ı-����~�� k��]��{V�����~�� k��]��{V��U����Z^��z_��l�6�ߵ�˗�j�Z^��z_��l�6�ߵ�˗�j��m��������fy�ɒ`\�2O�I�d�v�����������?�$��&d���$ɀ�������Oy��v�����������?�$��&d���$������ ���� ���&I�rL�<�&I�]u/z^��w��m�-}��{Yr���^��/����0��Z�]���������O�뮥�K��.��# �寵��k.\�]Kޗ��]��F�_k���\�m�{���f��7��K���nsm�^�Ko{��o�7�ٽ�z_���s�or��`$��)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X/����LI���){�߿K���Km�������^�w���o���m�����}���j?c~������,{���3I�c�1���������������L�&I�d�s0y���<�����������������L�&I�d�s#�7�{���"ǿ��34�&9�̦�M���/�l�7�����W|�n���/���� �_k��w�� ���R������wt�K��$ ��}�/��*��7wK����@������]��{��l��`����ͷ�ze�{������=��y���L� �����
)�?�ɛ����=��*{�6�m�ޙ{��{g�{%O��m�;�)������& ��ߵ�*��/����`����]����( ?��Mޗ����0o�����T��~��������� ��������y����r3>g��2fH_�����������3���>y�2`���N?���$� ��������y����r3>g��2fH_�����������3���>y�2R��/�w���m�_��וڥ��_������0�����}�+��c���<?�������~�������k��������/M��7��-������+�y]�=���߳~� �K����3��=���߳~� �K����3���7����79��/�ϖ{�߿f��#N�����g%�{�߿f��#N�����g%��7���]����k��^_����/�K�PZ��+�0E�����s& ���������/�K�PZ��+��t����vJ _����yx��������y�`X��L��I�y����������,r��}�$��=��������ɞI�=��y������E�^�ϿěǞ������{"�/zg��M������ �_�_���w����`�������b�_���`������?����M�K' �/��������򿿗�f��#�`y?���o{7���{#����K`ߛ�7��~`�����?�ϓ7������<�����������=��������_��vF�l������~���݀��#������ !/�_��)�3'�������~���݀��#�����ߥ���`m�������j6���x]����y�|���' y�̓&I�{Q���{�z�����̓��N@99��d�2L`x`x`x`x`X8�����������m�u�������$�3��N@�$�&L���o ����������'ɜ��rr�9 �02d��VĶիV�VĶ�m��b���KKKlV���-�lKmZ�m�lKm��m�+im�����m-�X�0B`�� �Ķձ-�jնձ-��m�ح���������lKm[�V�[m[�m��m��[m---�[KlV�NJ�Ǐ<x����Ǐ<d�<x�8�d�����
Q��ccǏ<x�X��Ǐ2G�<x�N2FH�xE��$FIO�R�+<x��NJǏ<x��<x����q�2G#�,)G���<x���cǏ<x�<x��q8�#���b[jؖ%��m��m��m��m��b��ح��b[jؖ%��m��m��m��m��b��ح�b $�G ���b[jؖ%��m��m��m��m��b��ح��b[jؖ%��m��m��m��m��b��ح��7�����������}��L99�� ����<ý��:����<?���9ɇ'0���x����=�`T��#��ý��:����<?���9ɇ'0���x���w����C������?���90���2o��m��m�[m����m��{m[m�-��m��m��m��m����m���V�m�m��m�`���fL�?�m��m��m����m���j�m�m��m��m��n��m-���m��ڶ�n[m��m�.<{cnj�m�ǽ�{�<JY�cH�{1����x���Ƕ<x�f��{����ĥ��4�G�9�Fb����<����?�x�q��<f3lf=�{���R�KG#ُ�G#Ǐ=���c6�c����%,ı�r=����r=��Km���in�����me�nZ��m[r�u���m����Km�����jܵm�ڶ��_�`���n���m���[�m����Ym[����Vܶ�m���iu��R�����ڷ-[m���lok�u��_��?�g๓�& ��rd��d�I���pn�� ��/��/��2y$��2NL�rL��0@�������00I�I���pn�� ��/��/��2y$��2NL�rL��0}�� �{��������O$�2fIɒI��&��m��m.�ݷ�m����Z�V���rڶ��m��iu.���m��m��Z�-�ۖՀ3�Xc'��-��m���]���m��嬵n[m�-�in��n��R�����o��-e�r�m�m[c��c7����7�f���ox�q-��x�%���6�G��om���ox��{�����[%&�,K��`��`���6�G��om���ox��{�����[%&�,K��m�����c7���������iĶJM�X�'��m������wm��m����Z�e�Z�m�u�������ݷ�m����k���jշ,�W�����ZZ^�^�v����m�����^իVܷ[iii{�z]���m��o��Y{V�[r� �_�����?����'3f'�
O!g��������񷍼����Nf<�O��B�!Iɀ3�`����xO� ��x�����?��c���!I�,��������6��������Ǚ��B��Y�)9-�����wv����m��-�|�\�jիm�����wv����m��-�|�\�jի`��`l���m---.�������m��o�����V�[m---.�������m��o�����V�[����3{������{ӽ��)ӼK�c7������������{ĶJt�İ _��
���f3{����{������N��Kd�N�,K����3{������{ӽ��)ӼK�Z^��z_��l�6�ߵ�˗�j�Z^��z_��l�6�ߵ�˗�j� �`\�������~�� k��]��{V�����~�� k��]��{V� �ߏ��.����/�g���&�3$�?$�&Hm���]����_��3�2L �fI�~I2L��?���($��'�m���]����_��3�2L �fI�~I2L�.�~?������࿙�g�d�$̓���d�5�R���~�m�������w��.k���K��.��# �寵��k.\� A��*d�����^��/����0��Z�]�����uԽ�z_���`a�����]�e˖����߶o߳{�������6���d�������~������oo79��/{&bO�0�e���[{��{~ٿ~��{��7����{������������o{ޗ������ܽ씽��ߥ������m��������/{������m��_�o�����������Y�ğ��������������m����_~�{ڥ�w~�/���-��k����߾^���7�{���"ǿ��34�&9�̏�߽�{��������d��Lg31g��
y3��ɏ�߽�{��������d��Lg2?c~������,{���3I�c�1��n���/���� �_k��wʦ�M���/�l�7�����W|�����`!���N��7wK����@������]����wt�K��$ ��}�/��*�����~�J��ͼ�zw�^������� S����oN�������l��3������{=�߽����o6ޝ闽�g�{��T��m��ӽ2��/����`����]��������& ��ߵ�+1���0��������~���������Mޗ����0o�����P��������?Ǟ�I�g#3�|,�&d���������<��O�9�3�g�3&_���������L���������?Ǟ�I�g#3�|,�&d���������<��O�9�3�g�3%/M��7��-������+�y]�^���o���[# ����W���X�?����������zn�鿻��l�6��/�_k��R��/�w���m�_��וڳ�����7��t��Ͽ�9-������7��t��Ͽ�9-�C����s������g�����o�"4����r[g�����o�"4����r[��}�����(-�������o�����%�������_�����0`���?��;�o�����%�������wM��_��`������W��=��y������E�^�ϿěǞ������{"�/zg��M�#�����0>O��7������������y�`X��L��I�y����������,r��}�$����7�,�5������}����N����X�/������J ������?������p��W������o�X8k�+��~�o���<�G���ޖ�������<�����`�������HK?��3�L�3{7���{#����K{ٿ�����O��z[ߥ���`m�����������m�:_��k�����������2�����������m�:_��k��_��vF�l��������o ����������'ɜ��rr�9 �02d��x]w�������<�>L����<��fI��$�`y��G��E������y�?�����F�]������?�2O�99�� r@�`d�0j6���x]����y�|���' y�̓&I�-�lKmZ�m�lKm��m�+im�����m-�[�VĶիV�VĶ�m��b���KKKlV����$&I ���Km[�V�[m[�m��m��[m---�[KlVĶձ-�jնձ-��m�ح���������aJ<x�lx��Ǐ+<x���H��Ǐ��H����<V6<x��Ǐ�<x��$x��lj��$d�G�X�0D`���(�ⱱ�Ǐ<x�x��Ǐ#Ǐ<N'#$r<"”x�X���Ǐ<V<x��nj��Ǐ'���9m�%���b[m��m��m��m��lV+im��m�%���b[m��m��m��m��lV+im��` �J`p� 1?��%���b[m��m��m��m��lV+im��m�%���b[m��m��m��m��lV+im��a����~��������Ó�~pɼ?�s�;�o�����?������Ü�rs�7��y����EK�0>O�;�o�����?������Ü�rs�7��y�{ �>t?����>x��xs�Na��&��!�6�m��u��im���m��ն�r�m��m��m��m��[{m��m��m�ܶ�m��1fI�g��d� C���m�ۭ��Kom��m����ۖ�m��m��m��m����m��om�m����m�����Ƕ<x�f��{����ĥ��4�G�9�G�.<{cnj�m�ǽ�{�<JY�cH�{1����`(�(<��<� I3�G�=���c6�c����%,ı�r=����r<x�q��<f3lf=�{���R�KG#ُ�G#ۭ���m.���[o����[V��m�շ-�[im��]m-Զ���m����V�m�n[0��Y���m-��K�������m��չj�m�m�m��[m��[Ku-����k-�rն�jۖ����7]������~ �<�`ə'&H9&Nd�>�������������s'�L3$��$�̓4����?���#���>�������������s'�L3$��$�̓����w���_��_��.d�I�&d�� ��9�m-��m���]���m��嬵n[m�-�in��n��R�����o��-e�r�m�mX�?��2���m��m.�ݷ�m����Z�V���rڶ��m��iu.���m��m��Z�-�ۖն:<f3{m��3{�o{�6����)7�bX�N�ltx�f���f�����m�N%�Roı8�&` ��XK�3ltx�f���f�����m�N%�Roı8�&�������3x����x��6�Kd��%�bq:M��ZZ^�^�v����m�����^իVܷ[iii{�z]���m��o��Y{V�[r� q`|���m������wm��m����Z�e�Z�m�u�������ݷ�m����k���jշ,'������m�����s1�b|���y
NHO� ��x�����?��c���!I�,����<�X <�������񷍼����Nf<�O��B�!I� �/��ox������y��$)<��B���ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�a ��V��������뻻~��m������_.Z�jն����뻻~��m������_.Z�jձ���{c7��{�����;��-��;ı,f3{����{������N��Kd�N�,K0������/�c7������������{ĶJt�ı���{c7��{�����;��-��;ı-����~�� k��]��{V�����~�� k��]��{V��U����Z^��z_��l�6�ߵ�˗�j�Z^��z_��l�6�ߵ�˗�j��m��������fy�ɒ`\�2O�I�d�v�����������?�$��&d���$ɀ�������Oy��v�����������?�$��&d���$������ ���� ���&I�rL�<�&I�]u/z^��w��m�-}��{Yr���^��/����0��Z�]���������O�뮥�K��.��# �寵��k.\�]Kޗ��]��F�_k���\�m�{���f��7��K���nsm�^�Ko{��o�7�ٽ�z_���s�or��`$��)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X/����LI���){�߿K���Km�������^�w���o���m�����}���j?c~������,{���3I�c�1���������������L�&I�d�s0y���<�����������������L�&I�d�s#�7�{���"ǿ��34�&9�̦�M���/�l�7�����W|�n���/���� �_k��w�� ���R������wt�K��$ ��}�/��*��7wK����@������]��{��l��`����ͷ�ze�{������=��y���L� �����
)�?�ɛ����=��*{�6�m�ޙ{��{g�{%O��m�;�)������& ��ߵ�*��/����`����]����( ?��Mޗ����0o�����T��~��������� ��������y����r3>g��2fH_�����������3���>y�2`���N?���$� ��������y����r3>g��2fH_�����������3���>y�2R��/�w���m�_��וڥ��_������0�����}�+��c���<?�������~�������k��������/M��7��-������+�y]�=���߳~� �K����3��=���߳~� �K����3���7����79��/�ϖ{�߿f��#N�����g%�{�߿f��#N�����g%��7���]����k��^_����/�K�PZ��+�0E�����s& ���������/�K�PZ��+��t����vJ _����yx��������y�`X��L��I�y����������,r��}�$��=��������ɞI�=��y������E�^�ϿěǞ������{"�/zg��M������ �_�_���w����`�������b�_���`������?����M�K' �/��������򿿗�f��#�`y?���o{7���{#����K`ߛ�7��~`�����?�ϓ7������<�����������=��������_��vF�l������~���݀��#������ !/�_��)�3'�������~���݀��#�����ߥ���`m�������

84
SampleScenes/HDTest/BasicProfiling/Reflection Probe-reflectionHDR-MixedShape.exr.meta


fileFormatVersion: 2
guid: c7d4b4e03d9877d42968b2a05e3286dc
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
externalObjects: {}
serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

176
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-10.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y0 xk� ���@�$��2!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< �?�����3�s93�����������O���&���6�"k�����������~��������K���������% ���_��������d�����������������`L ��_�������������'O���������ſ�����������?���~zL�9�������6����� k?����������� ?���
A���X��׼�������`��_����¿����� K��"�`��d�0*k���� r���#���&y䙁�����L
������˿��Z'�&��?�`V��X��w���$��`��c���?�?�1�������?�?�0o�`X��`��h_��������d�����������,��X��v`J���`I������ɰ$�o��X���b���=� ������L +8��,�� �D�������$`H���`G�<���x0#�� �`G�<����x������9���x0#�� �`G�<�����'����K`FX5���������g������`H����_�_�������O�����X�������������� �`DI?�n`��_���O���&�����`��`���������`��b����x�����
���
rg?=&{������ǿ���W����5���فHK���K������ ������ k�`TJM�I�0?�?�/����l
a_����%��
�?�0?�?�2��5����9����X���<�L������&]`��e����������0+k���� ;�`X�o�0?�?�1Ɂ_X�����O�X��7�0,k�0?�?�4/�������{2s�`��_���C���� ;0%{��0$�`��d�t���� A������y����������Ǧ��`I���́"`IL�� �B��0$f���`G��y�`G��y�`G��x�0#��������9��́`G��y�`G����?��L�[0��������� ?g�����Dn�����,�� O�����5����X������`M�"I��s�������݁0/�����������?���K�������������W��`S�9��3����=�����0?�?�1�����
B_�O�X��$����)���`��c^��Ro�O������O���`S
����?�?�1/�`T��Ɂ����������0?�?�1������0"�L���f��Q0*���.��h�����t���[_�`��a��ē�������L
������Ƴ��"����������c_��������������������������`��aف({����'K��&�����m`J �� ���X��$&��=0$��L�?�?�6l J`��d��#0?�� ����@#�t"!GQ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G�<8���xp#Á��G�<8�{_���0#��������������G�<8���xp?�8ɰ%`��rف0K�����������`GXRfl�����Ӧ�`��pف8K6`��b�������������0(���"d������&m0'k6�?�?�0�
с0?�?�4L �������y� �M�0?�?�?�?�?�0L �0?�?�/��{X��U��`EL����� �`�����f[�I������L
:������0)������`R ������������������������`R�������������G�<(�@�
xP#��G�<(�@�������L�g���?����G�@�
xP#���q�`J
�������`���)0%���T���&��ف�����L ��������p�l������0#i�7X���
���`QK�`DɁ�����L�`N�m`��a�8`��h����n�X��0`�����`��`��_���?�?�0 ��
!<�������`�����I�������2�bL�� �`Q���сH0?�?�?�?�?�6k�L C������������������������@`R� C�������������6���05!� �`G�<���x0#�� �`G�<k���x39�����<0#��`G�<���x0?�8ɰ%`��rف0K�����������`GXRfl�����Ӧ�`��pف8K6`��b�������������0(���"d������&m0'k6�?�?�0�
с0?�?�4L �������y� �M�0?�?�?�?�?�0L �0?�?�/��{X��U��`EL ����0?�?�?�?�?�$� �������������l
1&���0(���h�������5�H&��������������������������0)F��`����������@jX���� ��������>�����@�����O�������`�� G={�.��k�����������R&K���������������������V�A�AFr
$�J(��(��(��,� (��0��,��(�
,�
0��0��(��,� ,��,��4��(��(��,��(��(��0� 0� 0Š,��,��,�K,� 0��0��(��4�0�K0��(��(�J0� 0��0� 0�O,� 4��0�0�L8��0��,Î8� 4�8��L0�4�L0�,�,� 0��8ӌ0��8� 0�J4��0�L4�ӌ4N8�N��M0�@4 0�N8��$� � ,��0� 0K,��;Î�� 0�L<�@4�����4�<�����N���O�8��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3��L�������8�@4� ;��<��8<��<�7��� 8���Ӎߋ����O4� 8� ,�L0�<�8�����4�����4�8�L,�L4� (� <��4�O4� 0�L4��8�8�M0� 0�4�M,��,��4�4Ì,Ì,��0� 8�
,��0�K0�N4��0�
,��,��(��0� 4� �K4� ,� ,��0� ,��(��$��0��,��0��,�
,��(��,��(�I$��0Š,��(��,��$��,�K,��(��(��(��(��,��,��(��(��(��,��$�D<������%� ��������O�O���_�7��������>H8y�(sϝS�{�����"����"�(���l?�Y��zG8��:F|�r5?�����z����䋊���YR<+
G�dH�X�o�o��H�X@�������KrO�]?�G��?���Ey)ȿ$����ώ}�����E��?�k����������%� ��������_�/�����O�O�O�M��'h�"!�A�gO��;�P�9F��y��p�?�>FI��x�� ���ؐq��I���C�<: �<z��>�1��qSS�S�Sj�@��� ��C�s�y��a(��uîq�M|�'G�xLҸ� �?����(� �t�;�0lu���N�.��q�2�3
�
�
f�> �;Ӷ d|�2'��Q� �xx�BEg�(��`n��vw�/��z(�iR��H�~��v�>K�(%��O�� �9#S݁B���0K��X�?@�4JS����]�����=��<C�T8_&!��K��<6$�H����Z
��D9*U��`e?���9
d��x8
6Np�q)�Q3��%$B#�B $�����*v����#d�!HR�<@ �a�Añ!HR�!HH8�3 ��L&��!HI�h�Gam/��� 􄃖Ɲ!D�8v ��d���
a�����<!�lj��`�H�S $\1�4��5�Ǔ������D�"��(��%X5��
%�EDQE�a�)$�c]�BІ�4-��p�L��?�&&��GR�Ƥ�M:d^C�2�Y���"I�$oi�
rnD�7��Mɘv�"�"J� C�d�h���ZG�~F��NM��(ā�(��Dq;��E�"H�
gZ�!�
FI9��x8��)(�s���'��!%�����ܚ�y�8����I�"o&�R!�!�4��
�P�*ðY����2�$�&B�q�
�1�
�
I�rB�*�)�4�C��=C���N�f�8x�C��=C��=C����|�'QE`7��z���y���ҡ�(e"i� ���B"iQ��(�&����(�"�cJ���� +�(T�C��4��!�z���yX7�Ҭ���z���z���z��o�b4��� �؍��`ц�4c^5� s C4L�cH������O�O�H0q�#����g���x��M��=�7�o �����k�<n�a�xr"v�8���
�'r5�,�$���dp�#�j(���`������ �|�DI�x�;C�9�9�>'��Cx��C�Hj�������������3@������;d̗'��'˧$r"v�q��s���ˈY� �@F 28N���D�#o�����3��~"L���J�0���=�F�g�+���<@�_��C����;;�����f��|x�~JA�������?�����o�4��> Cx��7�
e����h�7H9��d�"�{����!�ǁ:V�h!���{����{��̠0�;M�t~�0�)S�7��zE�7w�qR8
�h��T0$����)��S��\�@"�(��A�'�$i{���o) �< Ұ�+A xg[����{���e!�A�o���q
p+V�GU���T�Rk�P�;CuS<x��ˏ.<���y��ǥ��(�(�fj^jsS�����59�i�"e��C�|y�����ˏ.<�<���H��a �y�8@�.8�����<zE�QNc���wE�<\�s��<�2��ПQ� �.v��.8��h<əaR����>���
FA�Q��HʞXH4dN7��.8��<O�uS��%���s��<\�s��( �2E�����QB�1�S�S��O�Y �d�I������Ǖ�ˏ.<���Ϗ>=9�
_��<��������59��NjZlșE�ė;M�os{�����7�7����3�>4hF�hF�hƌi8ҍ(Ӎ8ӍI ?�˜jƬǘ�c�y�1�<ǘ�c�y���3�?�`*�Hԍ8Ӎ8ҍ(�a�1������.e̹�2�t�].�K���t�].�;M��a^�K���t�].�K���t�].�K��w���K���t�].�K���t��2�\˙p3N�(��#&\˙s.e��t�].�K���t�].v���½.�K���t�].�K���t�].����0��iƜiF�i0ээЍЌ�ό��`DF|g�|hF�hF�hƌhƓ�(ҍ8Ӎ8ԍI ?�˜jƬǘ�c�y�1�<ǘ�c�y���3�?�ҵ.�K���t�].�K���\˙s.e�G�=�$t��kf��|bb2�x��XUSf��w�AY�?{F?���c��p����a-��,d�?G�$ �}�8��w������������ϒB��>�:)J�UQ� �x}��f�~xq��|C��o�B�N–SI
,�7�\�D��G�$���<���)�h���)Fh���'����|��Q��JW¨���m���w�7C�Ï������ %��+�Jmo�C�� ��pInJ;���k�Gwvw�����큮ԋ4�b2�x��XUSf��w�AY�?{F?���c��p����a-��,dqs��!9#���?���*���+V�Z��Z�j�`�1ŪǨA��~N���=VOOOOOOOOOOOON�����z�g�Q���V�VV��V�GV�+QԩR��]%�b��h7�w�Zֵ�kZ�����7����?�'��,>o A�3��ֵ�kZַ�o�����q�<�]Z�YZ��Z�jը겕*T�Q���իV�FV��u`N �j���f0��zwOOOOOOOOOOOOOON�����z�g�`�B��|���>�IZIs���� �R: ��6�94�r����g���|����g?��w�Jm
Q��o�|�.M!m}{�^����ܒ{������+"E >�0�+��(��^S4� }}�����n��f���?��p��=`�o�� � �
f�i�
Q�i����Y)�I�i\ �E�����`8k�����׻u��6^��$Æhn@�jql���s����>��'�$�If�\���y��}�u�!>*C�Q� �j�L� ���?����������s��;�ܥ6�(ۃ$z���-�)*A������2���Q�ejիU�b����A ��9��VOOOU�����]%�������t�];Q^���Da<v��8N��;+V�+V��견�����H���+����<��ֵ�j��kZֳ�ֵ�i("?+��D ^f�)��)/g(p�<
�i�!�2u��kZ�3Zֵ�뵭kZFJC���e�Rv���ZvV�VV��견�GR��Q�ej���ZwN�ܴ ��'�B~�AG:wU��d�������Id������]==;Q^����,!�@��o���j�*�+� �1*�0<D���r/ ɰ�7 �3#f�鵛m�7;��w����E�ɉ.XIe!��,!�mc��tS��'w7����������.nD\���D�A8�����YG��r��"߽��%a��"�LAFbbr�qx�=�\������4J߿������'\��\���D�A8�����YG��y�;��{��%a��"�LI(}�XxA苜�q�����뻢��"��6��U31\����lS��O ��"�ܛ�p�#21fkN�Y��7���w��7�]ܘ���`T�S���� �,�!t{�������]WU�u]Z�jӺw@!@�t�7�e=;�����zzzzzzzzzK'�������zvO7���3?€�@��]Z�jիU�eYV�kZݝ�hx�H/�$<�kZ��kZֵ�kZֵu�ֵ*����9Z&�͵�h��h�������V��D����@#���]v��kZֵ�kW]�kQ��q?�'�H��꺵j�eYVU�e]WU�ujիV�Z�
x�� �)��=VOU�����]====%�����t��];'���n����+D�Y����>��X������(+��QOQc<� ��`z���~�����y���?s�?�O���?=�w(GJ��P��5(��"Tq`�׹��IrKv����d|��O����N�ᖌ#S�D�^�]�u:�N�S��R��ɘe�,T��a��u�6K��0�Z�n��x��)h��)ku���2>JЍ'�H��I�'M��F��"u/S��:�N�S��z��i���2ܖ*OR��D�8���!%@�����>�ϯrK�\����TC���(�����r���0=Oy�?s������������?�~ws����P8��'��9�>p���`�7�V�ۯv�FQ��V��N��|�b �樷�b��*ʲwN����.����]&�OOON������;*꺮��s���y��UիV��V�V��ֵ��#xU�����p�fj�v�n��kZ��kZ֮�٭]l�q܁���*��r �k3Z�n�?���ֳ���o
���~�p�L�[�֭�]�kZ��kZ��[5����;�#�7?��y$\�UիV���:���V�FV�Z���,Aw���\�U�eYVN��====;'����i����=;����;+U�u\k�&���f������k7p���Aъv�H�КD�����a��q�hڴ>w��o�o��wy-�p��gw7��[:E�R ��O18p���c�~�Pmtl=�E��5{�*bR;I� $E�:~���v�!#'4:M��ۤ�I���ޓ����c㐗)�ܕ�qǜ�!¤��`VHW{@�3����)Aw�����W���%#��D\��.q�7`�rr2q�C���=�O���=��>�8�>9Ir�H�\8dx�A�o�Pntk����.�����)�|I��b�N^pFQ0��b8޴mZ;�K7��nKww���%��w7��[:E̢���DE<\q�>p� �!�U��Z�j2�bTv��E_��$$�U�eYVU�d���էt������=;'��d�]WU�u]W!"�f�o�D�&!��GV�Z�mkY��`����'J��h�'���ڷ]����֮�뮺뵬���u��]��>4D?�N��~!ɀNkY�ր)�x�ƀ)kZ�֓4��:U��D�=Ʈպ��]vf�u�]u�]�g]v���j�= ��!��l�<J��jիV�Z�jը�P:�A "D��3D 4UeYVU�eY=;���t�i�====;+ON����=WU�u]WVBEP�"��:���&9�fkZI]��̀&C�M�������F`��8�۱��}��ϭ�y���>������s�>���s��{�ƹXeO�r1 �ߠ��"D���]�m��؇EBKy�~��qG�(����u:����u:�MԻ���G���9n��Q�Q���H���8W+}{��<H��m|�8�(�[�����F�<�G}N�S�ԵN�S���n��M��=�� �w ҈6��$�bܘ#��"g׹$���I+��$�LA�Iɏ�t`F��Ê}����O�����m>��>�ϻ�w>�����>�G��\k���T��z�;ඎNJ�^꺕j�Ӕ @���x�F �j��jը�իV�VV�+V�Z�jժ�իV�GV�Z�]Z0�����J��D��ʲ�ֵ��8BT��`��ݙ��-�j�vf��]u�]u�]l�u��]lλY��(�3���dAV&Y�ր)�v�)v�);w�)w�ֳgC
��3���[�5ve��[��պ뮺뮺뭚κ٫���k:���q���Jy|Q�V�VQ�u]F/NP%����7���իV�+V�Z�YZwV�Z�jիUիV�Z��GQժ�р�7���dAV&Y�օҠPB5'�-:�����^����ZC>Є���߻��x=^��
��ܖwwt��ʑDY�R�?ϓ�j�\�p�a'`�'�?�9�8C�'?�/���0�����w�!���;��>ʑ8U��n�v����G�)�o���� ������~ $�@��G�';�(}���e�x����`����.��;��3{��"�Ne<�����E��8(e4�P�I�KN��>��,�ff�֐ϴ!-���w��}�W����H������p�*EfYJDY�rӒAJ�a� ������H�U�ej�ujӺwN�իQ��ʺ�j2��Z���QիV���vV�VV�GU��� o�sP&��VQ�Ѐ��_���kC��fj�]�n�V뵫��3Zֳ���j�f��g]����s8?��7BZ�0�R6�Rn�R8�ք�-���EZ�k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]��C�(�����j�?)U�e\&�L�k��p��«��ժ�էt��իV�+Q�uj�eZ�YGV��V�;'d��Z��Z��&���[�� �hM�$
�aι`k�l�7f+�\�+�+-+[+9WiYyWiWyX�*��g+^�eܮ�����q6��� ��,���yP�:Ő��@u���[���P�7 ��v���|��(�E�>QZQr��W�{�\��(�(�H�(�7'yT������s�<L#@���
M��R6�-Ā�'T�����nA(�)/(�G�>Q���|����(�(�(�G�>Q�Q���Q�n8:N���/#�gX5`��H��:偮i�fDݘ��s4�����l��]�e�]�]�c������{��r����W��ۻ�p�s��7?��;�����@X�l�@2�s� /��,ܾ�����{/���eQeQeN^K�x�콗�_K��ag/�����d��6o��p%ȘHy8T���?
H�qI�G�(��[1mr�[Kik-e����Z�Yk-e�����[1k-e����G-���8��FqI�J’�#������h�7h�7x�0��p���~�J��)"�)Q��b�(崶���Z�g-������Z�Yk-���b�Z�im-��[KgqG�(��)"��%G��( ��"a.L�����*aP4 (0����,����}/X������yL,��,��,�������{/\���f��_���0�
�3
l������b����Sq���G��n��L���M��zG�H�M������⫖������G� �#�����#�����$;����N_�U�|LC@�<I���
G⫖������G� �#�����#�����$;����N_���������l����Q��Aہ7�?�3��~��G�<Spz�⫎�����h��x�����ƀ){@����#�S�S�SZ�x��w�)��)'/?������o�<?��ſ���?ŗ�1����_���nHy��?�\����t�+#��.D$&v����q:B��}��N�J�N�"��N a�D���~G��#���+R<�H�X�o�o��H�X@�������<q��W�|���&89�%����!���?&y����. |��/=?������(�ſ���x�g����S�.����������'h���9�8��~� �{�Q;J�]?p?tH C����B�2)�N��2C���Tс�!d�a��Ȍ �icbp�`����;�L��(�����O�J��/�A��v HԎ�(JQ�$����>�IG�������V`�7���f"���'�����7���bU pZ3���� ;
�
�
fȿs�:�>Kϓ�2'1
��n��+d2!���ӎ��4) �����\r�ɠ�4��&oDg-�(��4N�=+�Q/3�q=
�rh�99�(��D� ��ƀ)J���a]�APKAB�\�#T!��R?2
'L�O��!E �{C�v��r�1P!�� �{w����n" �<@���2���F��2��E"*RjA
�
L0O�Ap äƒ6HR�!�9� ��*�)
B��)� p�� ���!HR�����ƨ��"p%�� �s��HB�9���x�(�-E�g1�
�5 ȳ5#H-:(Y� lcLi�1��i<>��\p�1�f1�4Ƙ�Y�%K�� 3�cLi�1�g ��'̒]��ʌ�ʌ�ʀ���6d@������x�4
%�Ƒ�p�w9�QYxA̱00D�8����?8ⷊ�'�Vq�&)�H�A�@���OY���Lփ��GXDEĨ4 ��Y
���x���)Hx����;�su����cg.�X�pTpH���s�����7�3,L2 9���=��䋒.|��D�I��C����!ȤEL�+�D���5��+� O�I@%!r!c1� CP�c:���j%� �g3�pI��j���j���h��� !Bĸ3!�j���3!� CLf \�ä�.��t����t4�c��)���4�t5 �5 !v�]9�X�L���t5 C1��j���h��E�@�1�&���j���j���g$�0�-�e�\e�\e�S �q�p��,5�
e��� ��W<wrz}�W6dv?������\O�H�������=��g�6u���gP�4) w�{�S���M$�b��܊�:(}�%����=��-
�� I2,K"�A>g������bW��� "$��:�����3@������ˉH�(����D��3��@��y����#�m&$���*�Ё=ȩ��D$�r����b8�*Α~!���nc�H']�'p����)4+�P��xKR���o�?ξ&x�����l��0����<�� ��.� |����cX��!lm����d�"�{�����.¤�"0��8�d x��{����y-@��"�0��T��r ����"���HL���$v��T0X
Bx&/S�xL@�m�r��$�hH�����vH�.���H�+��*J1#���FB�����{�����(�,sD+�v�k}�kZ���n@�~�Ї�)�69�͎lsg�<�����$�{|#����6��;m�o�|9(��IS����6�6y���͞l�ls��]&A����B@�W�aq���@��^΃�?�y�0����>0���<����b$Ç�(EF\ap+����O���ӢH��)�x��"Et��|����(H
��.0����a���t�� 0F|a���|�}�R("B�0�T���0Y�����K8 bR���69�͞l�g�<�����6� ���� ��6��;m�o�|���ȡG�̔"�8y��p���W�\��Dș"6cf6cfd��2fLmF�mF�m���8���ʙS*eL��2�TʙS*eL��2�TʙL;Q?�BT6#n6�n6�j6�j6�i���2fLə,6cfg���3�}2�L�S)��e2�L�S$X������e2�L�S)��e2�L�S)�ɪl�E�je2�L�S)��e2�L�L��3�|π)�v�)Gw�)3�|ϙ�>�L�S)��e2�L�S)�,s~j���e2�L�S)��e2�L�S)��d�6<�S&d̙��f6cf6cf6Xș"dL��2&Dl���s&d̙�2ci��mF�mF�m��m�by��Ne9�2�TʙS*eL��2�TʙS*eL��õ����e2�L�S)��e2�3�|ϙ�>��1w�b��D��J��'��0a�A�����c�,�����x8�@�I`t�ca�m���phr��n���D�w�{q���)�2S�#5�xp�0$@��� �o���\/8c��L�%�c��8G�����g%xx����DL@��J3@��bq���g=���X����)�d����8C� @�c�n7����c�.<Bĸ �,�@w�C���4Ȅl���+���z������~2$�2VN�<'A�� ��E� �c�,���x8�@�I`uAbH�q�p�$�]<����ۀ���kZ�3Wf[�̷]p.�@�7����[.��+��뮺��R�uԀ�/����~�A�u�:�f��Z�Zֳ@��D�u /8A�f���ֵ�kZֵ��4 �
g�� � 4@����D�u /8A�f���ֵ�kZֵ��4 �
g�0�@p�뮶j��ֵlֵ��kWkW]�uٖ��t`�7����R��T�]u�]u�R�F]u ��nσ� � 4@��z��N�V�n@ �+
�X h ��٪�c�oOjM�='�����Oz~�(=�fŴ��7�|���R�v��Q��Qڸ��j@�p��� �/f��A�BF�}}�����n��P�q�U�l� � z�&�(�3 R4�(�R4����ԁ��'a�&A�^͈=����J��u�����}|0��`�2 �l*Ͱm$���]����;T}KWԽN�V�o+¨P���[@o��P�8����&����zOIv��?��P�€3`���MQ����j�v�̺뮺��@�`߁�� ���*:�+e*T�R�J�*2�*WR�@cQ�� �� �'WQ�[.�g]�뵿�����3 F&A��9d(x��kZ�3Zֵ�뵭kZB�P9#�)� �2�S�R^� �0`�bd?�FB��Zֵ��5�kZλZֵ�(��?�<�-`��ˮκٝu�Z�Z�Z�2�u��:��e�p�,��j)H!���]J�*:�*T�R�J��J�Ԩ��H8�)� �2����B;q?f-9��ъ�0t�ED;'�kC�:MA�D$O�9�����w�w(n�wN ��Q�k!^[Q��EH��snS��Ӽ�w�܎+����+�r&
c�W hwH܁G��5��E?����#���� �W��+D���̀��?����8���x��)B{�����7���o���'"`�:�p��t��x�Ʊ�yH��������� ��(�šn
��J�^�� ��֛n^�������!����=-%P�:EyQ�����Ps ��{}��u�{�������Ex��֏��K &��8�;�މ>?9�̻߮2뮶]u�b���@J���[(�eJ�*T��T�R�J�J�+u*2�n:�d�^���e�뮺볮�g�kZݝ��G ���!ΆkZ��kZֵ�kZֵu�ִ9�1����`=��f�ִLC�Kۿ�Z�����8L��Бt3Z֮�Zֵ�kZֵ��ֵ��a���Ѓ, �f�]u�]l����-�[��뮶\ � � �� %G@\-�u*:���*T�R�J�J�*V�Te*2��s �G��^��kZ���Z�V��7��D�D���x���&�R@)7�ޓvI��OI�;�'���jM�QļDi�V���g@�:�Ifn�WV���^���ۯ���& �1-.��� u�̈�K���N�S���uޣ�ZD\J@��L�=���h��I�u�7׻u�����H�@�<H�[��_+�xL A"bZ]Oi4@�;ə�:���j�N�S����GԴ�����șn{ r!*&l ���c���N�����N��쭥�6J�/��TK��'��8�jE$�zM�;$���ޓj{�zwzM�.�(�^"��+Nؖ�hĝGQ^q}{�^��뮺�eu�� �P ���8� R����R�J�*WR�J��R�J�*T�R�)[��J��_��#V��ˮ�뭭���gkF �B��� �3V뵫u�kZ֮�Zֵu��j�f��(I��Chb3Z�ֵ��O��v���h���X��`��fj�v�n��kZ��kZ֮�٭]l�p� "���x�x8��un�뮷]u�]G]l1�hT���8� �Tu*T�R�J�*WR�u*T�[�R�FR�)[��J��_�*C��f���ϭ����`�Y�^ �(<���$#܂�e�?$����'����Kےn���e��Ơ�b�9u
>6���� �=� >M��߻���v���řR�&^5����`�N}&�I����I��I�x�|��Ȩ�W �s���,�!�u]�S������߿����^���NF��,ʐ� 0����F(zp��6�On��'�OwzO�ǣ����(�E@]�\
\ɒ"#�;� >9�?;�]ϭ��,��
@�Y��$�ۍH�� ��;-1�'����?����Kے�v^��i 0W,@�.�=�n|�`vE�� ��뮺���`X)D����R��ҶQ�u*V�V�T��T�[.��*T��J�J�FR�����6�/�A��X@D�/��뮻Z�v�G!�R���Hs6�պ��]vf�u�]u�]�g]v���j�9�p,����!c#�u�fkZ���
O�}�k;Z#���)���̤9��Wj�vf��3Z�뮺��ֳ��Y�[5v���h��B`,!* +u�e��2뮺��P�
�, ď�Ҕ��*:��G[)[)R��*T���T�R��*T�Q���)9| � �,`#�p.���kS���S"�
P��=|2G`��u�:���7�ޟ��7�������O�]�.�����:� �2K��+<����`�9Ű�W�vu��8#�pO���%>��f�� z�N�S�j�N�S���K����{��'�P� U�3��׃����^�;�R8��_��¸'��I��P� 3@҆�N�S�ԵN�S���n��M��=�擃��(W��JG R�l�8<��_N�������.@/�5$����;�î��?I�&��=�7�������O���;���:"��$�B��g�'���@���Q�\ �"@E���#@j:��[(��Q��:�ԩ]GR�J�n�J�Te*2����[��1�cp?�!r.����˵�f�� ������C1n��ٖ��n�3V뮺뮺뮶k:�f��g]��a�)`+��N �z/��ր)�v�)v�);w�)w�ֳ�o��L��XG����fj��uڷ]��u�]u�]u�[5�u�W[3��u�� ����(��] ��2����.��(Bs����=��:�l�����Tu+�R�QԩR�F[�R��Ԯ�n�)[��67��83��gkZ�>��V���$���=c�v [�Onr[�v����D�����ww��wwp�����&������?Mg6
�&倖,���^E)�u�_��w����߻��w���{�{���-�X�L�W��u��ۏ��)�o���� ������~Vr�KE��/"�ӌ:�x/��;�B?��������;�x�{����x$�qV%E!]����o��l@�,�
�W���byG�,u�akp���Kv�������%���$]���=^��;h�*�n �*�>�\�q�����(�o��h� 岎���R���Q�R���u�R�J����]n�-�e��FR�]FQ� � c���a��m]l֌!�Y�q� d ��5v�̷]�u���]��kY�]v�u�W[3������ �t��dn "��S
�#n�&��#��h���a��2@�k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]�� ��8�O��1��n]u��Z��-��-�|�Q�u��Tu��G[(�eԮ��:�*2뮥u���Q���en��2�~����呸0���*��L�1u�<�Uh��]r����]�]r��\�����.�w˧˻9u�u˷it��۴�����Rq��gB���cd(J�G��e�����q���������ť�.9sˋK�\r���r��;���.���\>=\9�'� �"$\Ѱ0�R2��)7w�H��P��������=a.9sysyqˋK�\r����������.w./.7.]�˴�|z�r*%O���hU�0�!VX��`B �yD�,хܺ����4�����.�.�wˮ]r��O�vr�r��n���]�ˮh�Sȩ8���2!BE����&J?�т,�tA�t �#��9��9��9��:�dA�tA�s�t�d�dA�b2�tA�s��/��r�h@����� �AL7AL7AL7AL7A2
a�S �:
��na�:
���*
��sa�
��s �S����d�d�d�d�������_�x�7h�7x�1~$�C��'S �S �S �S �L��t�s����s���*
���Øl����dà�'0�0�0�0� gw���<R��E���b:���: �s�t �9��9��:b:���:���9��:b2b2���:����:������9��^��*���[��]�·�
��+?�g�,
��+�G�o�x�� ��ӆ�@pv��� .0�Gn0?�?��_�
��Tw��m���7
b�q�
L��R8�@pv��� .0�Gn0?�?��_�
��Tw��m�����S����|j�-�����[ہc�V
��X���Wt��H�W���8܀)��)�v�)/w�)��)��)�h���Ik��R:�?�?�5�׀)(gx���r���(&?�o��������!�������B���W�7����$\���.qω�GHd�ϰ�<$up��&R�D�� �M�����|�S�4t��z����#?IHr;�R<�����.�x,?�������x,
G�������5��_'8y��|܊sLJ�xsӝ���7����^Mq �}�<?���-����
ɏ��������-�����k�1�#Θ�����'h���?�8s���K@[����'�i�NNn�����v܍�c4���cL��Rx�k�2U<
��!�,4��S�)=I������O�J�*���� � ��8�)�[�&2c&2al�h��H��"�����d@BTc��Ċ/C�`-� !@B��p#h�ލ�)��)��)�=9=;���IK�!�G"ġ�G�gx��(JrD`��a��t��B�' ��R��5$�!�B͸���bDT���<��E�:��R���`�i�SY�UL�8 ��ƀ)J���f�� LKCYQR��'L�h&H�5d��9'�����a�S���<�)��|�4���Ab��!MsB�k�?�$�x�*�8�%���3<����)��)0$D�w�J@�n��F�
B��!��:�(q��B��)
B��0)����h��B��) #s2V�q�a Sc)�)��-!�� Ja��^�\ŀ)���+#C�# $#���4��Ř�b�q$b8 HM��cb�Y�F�>&�XE!XŘ�b�Y�B�� a��d8Ȍ�Ȍ�Ȁ`$!�#G�O�I��* ��%�HÑ�7#r3���n��}.΀�:J�mFE�\��0���P���H���j���Egl���y�x/� �$\���*".��qS>oS6�)R2|�g���W�� �^��pg&�a�����Z;�r7#3���7P ����6��|�H�"�͡�%P?x�=��rC�H������4t�0Q�?�%�0�&+�hZ�WBд- B�I�}%N�� ����hZ��hZ����:���%���hZb�д,�`2C-Hq�X3���B�Zг�Z�����д+�,� Gb��qN� �д-
�+�hZ��b$�>��Ahsa Bд- Bд- B��Y��;D�n2c&2c%�Ld�Ld�C ��<�x�@��������Ǐu`
��>!���1����?J�g�����?���!�Gy8t���4�;�ü;�)y��]fVX�������Fw���w�EH*��H�#䱸�3HL�ȧN@y[��l�"l��c�EC��"�lL�4J;�����쨂a6 nF��;Ȭ����3N���9_)y��\IY`z����i��D9��j'�4T���G��"2���f�"�\<���?I�$�}��A2N����f�:���Lj:�x�����������9#�n|����Ҁ)�!8�/��I�f�ݒ4���{�7��h���K�Y�h�1�{����{�fY�S��?��R����{ޑd���`�IN9���1:`�)���
���8:qHf�@�I�f�ݒ4���{�7��h���K�Y�h�1�{����{�fY�S��%����)?}�ݞf%*@<��5��)�GtwGtwGtwGtwG��}#�:��G�G�G�G�:�&�!?��������������ts���,ZH�
�l ��^1x����Pk�����5��n1����n�@H��`B�t�����^�@�*"� ��Ť���3�
y^�d �- �.-$RJ6��/�b����(5ȁ�K@}���7�cq��7� $FEɰ���d�z��0�0� ���y;>�J;��;��;��?��?��?����w�?��?��?��?��:'�7�s���?9���~s�����C��=C��=C�)�4��ҚTC�'���4�D�4MD�4MD�4MD�4MD�,�F�z���"��(�"��(�"iM)�4��ҚSJkMi�5��6�M��i��m6�M��g���8�M��i��m6�M��i��m6�M�����.�M��i��m6�M��i�ZkMi�5�
f��
Q��
FMi�5��֦�i��m6�M��i��l�=?G���m6�M��i��m6�M��i��8���'��4f�њ3Fh��4f�њ4;��ziM)�4��ҚSJ�tEDQEDQD�;�F��&��h�&��h�&��h�&��h�DQ��ς]6�M��i��m6�M��f�֚�Zk@?�?����9���%Z* ځ��1�*�Yw�e�,�����8u
�GL��H�}�l�tw������������̛�x��J�S��C��:@"�S��7?���S�����+@fP�et��E��<b�wCS��g�/� �)�h���)Fh�� �#� �����^lɸ牚�*�1��1�9�.58��s���58�� ��h �s��P�7���w!Ѱ�}�p�u��/�2�� i9��t�eh�$3jÔ8�0��e߅����N�� �:�x
#�XӢQG8(x�|������ַgkZ�v�n�0!��R��e�n���kZֵ�g]u��;��<<� ♭kZ�o�ֵ�R@颼"��w ����kZֵ���J��+�+�O�I�W������P�/�ֵ�kZַ��(s���@a-k7v��k[�ֵ�o�Zֵ��%�F��)@�2�պ��5�kZֳ��٭�N������
�AR>�w��m�_'��*E�QPp�P�z�u:����u:�K��n��Tm
ؘQ�
���5I��T׻^�Ϸm�����4�B ��(E������Fu}}�����n��3�T��t6��8(C�M�t�*�a�
F���
F������K� �B�X��o@jn �`gW�ۯ���v���:EI�'Cn ���G�<f�[�nݺ���=F!R( ��ƒ�ڀ�� �Pө��Z�S���;��N��Tm
؋��pi7 �4�����kZֵn֭�&(�r�S~�V�-]uٖ뮺뮺����]lΌ0��_�C�aR)Z�v���Zֳ����!j/˲�P~B�f5�kZ�3Zֵ�뵭kZ�0@�9(SE��0E�4O�I{9����(E�t.ѦcZֵ��5�kZλZֵ������0�R5u�Zַ�ֳ��m�ֵ��@���*�!K��Z0p�-�]v��뮺뮶g]u�Ό0��_�)��r�"��������w�R�TQ�Rǜ<�bj"C�q��D�6u�������&\�0AdS�ԅIH.H�"Q��5�Ħ��|��y�Wq7�LOK�)β�IG��C�=�#��;�K�������E��̛/�TS�FI8,�)�P#N���x���x��)B{�������Wq7͸��12S�e���Y���D��4��/�O������o�&d�~
���zI�b@G:�F����h|ۼܽ�
�'x���YK9NT& Kp󍉨���wH�nu�����&��N �)�jB$�d�(Q� �sn%����~ֵ��vf�����N'�qa�2W]u�]u�뮺뮺��ˮ�����hR�a��ي��٫��f��o�Z���a�������B��j뵭kZֵ�kZ��kZ�F�b��Z��f�m�k@�;@�����n��v�(/��� �+Z֮�Zֵ�kZֵ��ֵ���h'�FHG�f��kWkZֵ�jݭ]�p�3�l)?È# ђ̺�:뮣��뮺뮺��뮺뙡JA���j.śY����_]�^���m���[)e�����D���-����^�O�گW��]�猩��A9�#H���4+f��Z�mR�7[�;[��_,a�"�!6XD�V���:���9�FԽN�T�u:�N�]�>�����s�S�F"J;#n���-kݺ�m�
`^�m�
P�m��ۯ�0�C�,"J+dzLAni����j^�]�u:�N�S��R��ʈ[��)���#�9�Y��yhB����KWԽ}N���m��&��K.g�@��*$���*�z{���z�^�Oj�uy�*�&@�9�#H�IGdbMü�:�{�^��V��]��p ���)��`Z ��]u�]l���]u�R�J뮺�W]n�뮸\a�j����..��ζk;m���gkB���?��X���fj�v�n��kZ��kZ֮�٭]l�q��Q��#��,��f����
����gkB���?��X���fj�v�n��kZ��kZ֮�٭]l�q��Q��&�E��f�ֵ֮��vf���6`�S������뮺�uԮ�뮺뮺��]u�뮺�p�0���W�mk3Z�n�6���7
�W-,jA��h��ٮ>h�0fZ~�y��>������������7x�*AX�ܸ�W�� G��ȡj��%��u{���7J�B&�p��;�҇<%�᪋3�M��ۤ�I���ޓ�������T�6��9�H�|c�Q�U��0������
P]�������h>J��*�� �����J����,xp��6�On��'�OwzO�ǃ�熙R(D�̃�dR�?�����u�]�zO~-�|6J�W,�+jA��h��ٮ>h�0fY�����??~���s�wz%�n��*�\�丄�]"H�}��P9G�W{uڻW[�c�
���/�0dF��]l�뮺��뮺뮺�F]u���ˮ���L 9���=�+9Za-�[3���ֳ��P�
`f>���� ���ڷ]����֮�뮺뵬���u��]������O`��R�fkZ���
O�}�k;ZU0�c�+���Ќm]�uٚ���j뮺뮻Zκ�g]l�ڌ@���{ ����ٝl�ٖ��u��h��1� �����u�]uu�ˮ���]u�]n����]F]u�]a�t����)�!T�kY�֩��!�`� �I/�dI�fX�evW��ݕ�گW������ݪ��U����5��ޤ��*�t�0Z"�{��[k��� ������T� c4sƽN�S�ԵN�S���n��M��=�����T����H@� �3A��[���y�
G[k��� ������T� c4sƽN�S�ԵN�S���n��M��=�����T���Ԓa�٘(�:�N�p�K0*�I%��i��`��fWez�'�^���z�^�گW�����勨�0B�Sz�!�h6 }{������0ҿ�9B,�1W]u�]u�]u�u�]u�]u�Q�]F]u�]u�\�
@� O�A!Eံg[3��fa�b���`L��[�5ve��[��պ뮺뮺뭚κ٫���k:��ð1�$��]���k@�;@��@������kY��o������8-V��]�n�V��5n�뮺뮺�f���j�fu�ζ3��� _�0С`�v�̷f[��5����8�]u�]u�]G]uu�]u�]u�뮺뮺뮺�pR(b�I���/��րg+嘍bl>�75�`�C�?�f�䷰J�� _����w��E�������@/
����� ����{�ƻ���UD�@(I���?Oy�v!�0a���;�H�� w��.��G����àR��>X�HS�#gx�:��-�
`�����)Bw{���߅;Q<P
l>��m�sLm�����?��G��� ���������)Ax�,d�?�l��1���)],�`+a�����Cj�o�f���J��+�w~��w�'{�������T�„�����F���ut[���w�?����@Y�[�.�뮺뮺뮺뮺뮺뮺뮺뮶]�1xs���%N/�ٝ��،)���+�Pc5���ve��[�֮���kZκ뵫���ٝv��v���; �����h�W�)v�)7w�)okF)�#
�;
���fj�]�n�V뵫��3Zֳ���j�f��g]����("��w��S� �l�2� ��J���s��X]u�2뮺뮺뮺뮺뮺뮺뮺뮺����G����Àb���*�$�K."��{I�=a0�@�P6�[]i��+�.as �\�v�]z�a>�ws s �j8I��P��q ���ZLW�$�Y���i�b���7�:�@t@Z������w@^���@�P��/'�<E���0�>P&�L#@���
M��R6��x�I����v��(��z�-@�@���� �;�:t� �.� �����{��_�\ƴ*��ZV,��B�.級!��0&�j� d �L.a^as �\������.� �w0���z�#sء"�Y S(t*K�K���q��FJ�R�T���T�S�P��J�*�J�R�T�U*��T�U*�B:U*�B:S%R�L�B:S�'��P�@�
P$�����U Jt%)�BR��JU Jt���:U*��(J��)T�S!(JU)����t�BR� Jd%)������$�
P��)�v�)3w�)#
P$�����U Jt%)Д�BR��JU Jt���:U*��(J��)T�S!(JU)����t�BR� Jd%)������ȨT�0TD������N�d�U*�J�*�J�*�J�R�N�J�R�T�U*��T�U*�B:U�T�S%P���T�T�!_����Jf�� <5xU��U�§�������`w�S߅WH����g�/��<����(8lp���ۡ?�������/��?�w�K�Pp���.�!�
G����#������68R�J�П���{�^��Пһ���(8?��̎�����g��
��*��T������߅O~]�U�������\O�MC�I{�O�O�Mc@���
K^�x�׀)��)��)�v�IC;�����`�*����@����1)��9!H���
��,�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(r ,��(��(��(��$�I$��$�I+��4��_���� ?��y����?�?������HG�O����.y�����x`G�������_��<�����_���� ?��y����?�?������HG�O����.y���?�ǘHL$�6���0�IL?���XIL#�b`��  �

�¿��x������xW�W�)� �   �

�¿��x������xW�W�)� � @\{����^y�|��K�O�S�W�������?���¿½�O�O�K�K�O�S�W�������?���¿½�O�O�J�dL$�3��2`(`���<^#��0W�/��3�8l�xo ��7���p���p_���
�7" ��<��8�Sp;��/�83��7����xo �� ,���^@�
��r ȼ Q��y��`)&�'��p7��
�w�_pg �o ��7����NX3� ༁��V�A�x'�x�Gx*`�p_�gpن���xo ��4᥃80�� ��\`nD�xl �`� A���|A��B0�I��J&&&&&&&&&&&&$�aLLLJ��!A�|A�t�H9�`�l6 ���q�����>� �@�!�B$����HF%B0�&&&%D�� ��>���:A��a�l6�� #���`�8�PqA�t�| B�L!D���$#�������������!E�"aBA����| �A��6 �a�lA�8���:��>!B&�"bba�D�����������Đ�"����B0�! �B���>��i �l ���k��xo�����g���rI�ə<� l�%�&�ͮ u�����o������%�& &d�d��L�d�h��������O�L ��\��������7�? �K�LL���d�,�07�mp[�� �������7�.I0Y3'�$ �d�$�[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڰ�����O��[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڶǣ������9���������q��I�e���gI�=�7���������v��ӌ�JM�,e��:L0�� �m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t������Խ.���m�����]���V��n�����R����m��o��-v���Z���8����������Խ.���m�����]���V��n�����R����m��o��-v���Z�兿�� �?㷎�?������c�c>H\�B��\��������v���������|�g� ��^y �� ���y�/  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'%�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�l0���
�?�>�ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�9�o{����������{�[%:w���9�o{����������{�[%:w���b�������9��ls{������{ӽ�l���2�X�9��ls{������{ӽ�l���2�[KK�u/K��-�������\��V���]K���K` m}�k��/jՀH���������R��o��H_o��e�ڵm-/uԽ/�������Yr��X!�o���C�������0C�fI��&I�v�����#@��3��2L䙒y�I�d���G�%��$�;m���v�C�����&rL�<�$�2A�~���h�f~&I��2O>I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t����� ��?������x �<�G���O����p������Ny��<�G�8G���#�����@<���y����������x����s�<��<�����#����<��y��<��b�$&C �?�٘H�$����,$�� 10�����x�xG�焿�����������)����w����s���<��<%�%�%�%�%�%? M�G�OxC�6`�=���/<�>O��s���<��<%�%�%�%�%�%? M�G�OxC�6`�xC�'�焹�/�/�/�/�/�)�Jl�=�{�����1fr����0�0���`,�n�#�<
�_& �'�1x�^/����R�<X`Y�+�<�>@c )`�,�Y���Gx��L0Ob�x�^/��8��x$�2�� Wx�|��@R�-� �J<��0��?��� �~p'�\ �d�3�f/����x�S�X'�K, 2p'�� d,�� 0���O��ɂf ��^/����x��O�Xd
�O8��
X�b"�DQX��b"�Qb"�b�Qbŋ,X�bŋ��E��)�",DX�R!�,DX��* �",DX�*,DX�",X�"*,X�bŋ,X�b��b"b"�"b"�E���D"�b"�_�`d�E��EDb"�E��EE��DE�DEE�,X�bŋ,R"!,DB,DX�B,DX��bH�R,DX�b���,DX��b��b��b���bŋ,X�bŊDD"ň�E���E��",B)�E��{f�x�����_�~s%�&2y2@Y&K2L��\u��W�� ����̗$�L���d�,�0�������?�#��� �6������������+�.I0 ��ɒ�2Y�`/l��C�����_�� ����d�$��fO&H $�fI��[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���`�?�������[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t�` �������c��lsx���o{�;{�i�[%&��2�q�&��|s��c��7�s{����;N2�)7���3��7[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m� q`_'��[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m�  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'&3�``$��^��/����;x�����3�����!ry �!rrB��������o����s1�1�$.O!y�.NKiiiiu�ݿn���m��~�/�-Z�j�iiiiu�ݿn���m��~�/�-Z�j�a ����}�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�ls���9��{����������Jt�c,s���9��{����������Jt�c,0���+%����s{������{�����{�2�)Ӽe���s{������{�����{�2�)Ӽe������^���[ k��]��{V�����~��@��~�k.^ի �`W'��ii{���~ߥ��6�ߵ�˗�j�Z^��z_��l$ ���v���Z��m��������?�g���&䙒�&I����������'���?�$œ�2O�$�2`�?��#��Oy��;m���'���� �3<���0�$̓�I2L��m��������?�g���&䙒�&I�]u/z^��w��F�_k���\�����/K���l# �寵��k.\����O�뮥�K��.���o�k�v��˗5�R���~�m�a�����]�e˖����߶o߳{�������6���d�������~������oo79��/{&���)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X_��?�fğ��������������m����_~�{ڥ�w~�/���-��k����߾^������������=��I���1�Ls���������������L�&I�2c��1g���L��_�c����������=��I���1�Ls���������������L�&I�2c��n���/����@������]����wt�K�� �_k��w��_����!���N��7wK�����7�����W|�n���/����@������]��{��l��`*{�6�m�ޙ{��{g�{ S����oN��/�����
)�?�ɛ����=��J��ͼ�zw�^�������T��m��ӽ2��/�����7��~�|�n�����`����]����,���������~����������Sw����������� ��?�����?����3���� �2fH_��������>{�'���g��^y�2`?�������L����������|��O�9ϙ���&d����������������|υ��3%/M��7��-�a�����^Wj���~������0�����}�+������������zn�鿻��l# ����W���T�7K�����������+�y]�=���߳~�Di��7>�L���o����߰�t��Ͽ�9-����`79��/�ϖ{�߿f���ӥ�n}���m�����ٿ`"4����r[��}�����J _����y~������.�PZ��+� ?�����`���?��;�o����� Ak�����/��}�����J _����yx��������������^�Ͽ�M�����?��������9{�>�6#�����L���M�&y&>{�������=������3���x��������������^�Ͽ�M������p��W������o�XN����Xa�����)�������?����M�K �_�_���w����`8k�+��~�o����=�y?���o{7���G��<�����#~o�����������?�ϓ7����y�#����K{ٿ���<��������_��v�����������F�l#������_������f�2�����������F�l#�����ߥ���`m�������?��������������<��x�������������y��<��G�G�G�G������x������?�����������?����<�G�y�����?��������y��<��?�ŘHL$�6���0�IL?���XIL#�b`����\��<)�

�¿0���ل��%6a�#� s�|��<)�+�+�+�+�+�
�Ÿ“f�0�لf�T{����^y�|��G�����NxS�W�W�W�W�W���?�&�'6a)���xK���9�O�_�_�_�_�_�W���0�ل��#6�cL$�3��2`(`����� �&b�D�ق�
�w���pgpgpg 8.�ジ(� �-�i
@����.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��l%�y��JI���.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��'�s& ��06`����s�d���������� �8��
)lE�`�@,�'��Cá�:C�!����xa��C�d<<0�C��������������d1 �!����1 ��C�!��r�!�����xt0�Cxd<2 !���xa ����t<<<<<<<<<<<<9 �!����<2�!����xd<1C�<2�� #����a ��C�!��: !�����������������!��<<2��CÐ�<2 ��!�b��C��!��� !����xd<0�C�!��2C!��������������2���C��xr��C�!����9 C���x��6� �������?���<�`13%ɒ$�#�&;`��:����?�����O$� L�rd�I&H�I���������`$�$�'l��g\�����������������.L� $��0 �mp�=�?��#��g�?2y$�bfK�$I2G2M���m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-� �,,d�ݥ��m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-�lz>9�om�����9��x���l���X��t�c���s{m�o����{�ox�8�d��2�X�3��o�0���f��|s��c��7�s{����;N2�)7���3��6ǣ������9���������q��I�e���gI��KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnXc�
�?���KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnX[�_����;x�������f>f3����/<���  ���o���������|��<�琹90��{ '���������v���������|�g� ��^y ����/����;x�����3�����!ry �!rr[KKKK����w���o�[��|�jիV�KKKK����w���o�[��|�jիV�_������������wv����m��-�|�\�jիm�����wv����m��-�|�\�jիc�������{������N��e�S�x�c�������{������N��e�S�x�`�/�`Y/�_�c����7��{�����;����N��,e�c����7��{�����;����N��,e����R��o��H_o��e�ڵm-/uԽ/�������Yr��Xd�
�?��KK�u/K��-�������\��V���]K���K` m}�k��/jՄ�m���%�F�_�����0�$̓�I2L��m�����K�����&䙒�&I� y��`0�{̓�'�o���.�4�f~&I��&d��I�d��m���%�F�_�����0�$̓�I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t�����

84
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-10.exr.meta


fileFormatVersion: 2
guid: ad58a1a0a9ef18842ad869663e630494
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
externalObjects: {}
serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

121
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-11.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y0 Eo� ���@�$��2!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< �?�����3�s93�����������O���&���6�"k�����������~��������K���������% ���_��������d�����������������`L ��_�������������'O���������ſ�����������?���~zL�9�������6����� k?����������� ?���
A���X��׼�������`��_����¿����� K��"�`��d�0*k���� r���#���&y䙁�����L
������˿��Z'�&��?�`V��X��w���$��`��c���?�?�1�������?�?�0o�`X��`��h_��������d�����������,��X��v`J���`I������ɰ$�o��X���b���=� ������L +8��,�� �D�������$`H���`G�<���x0#�� �`G�<����x������9���x0#�� �`G�<�����'����K`FX5���������g������`H����_�_�������O�����X�������������� �`DI?�n`��_���O���&�����`��`���������`��b����x�����
���
rg?=&{������ǿ���W����5���فHK���K������ ������ k�`TJM�I�0?�?�/����l
a_����%��
�?�0?�?�2��5����9����X���<�L������&]`��e����������0+k���� ;�`X�o�0?�?�1Ɂ_X�����O�X��7�0,k�0?�?�4/�������{2s�`��_���C���� ;0%{��0$�`��d�t���� A������y����������Ǧ��`I���́"`IL�� �B��0$f���`G��y�`G��y�`G��x�0#��������9��́`G��y�`G����?��L�[0��������� ?g�����Dn�����,�� O�����5����X������`M�"I��s�������݁0/�����������?���K�������������W��`S�9��3����=�����0?�?�1�����
B_�O�X��$����)���`��c^��Ro�O������O���`S
����?�?�1/�`T��Ɂ����������0?�?�1������0"�L���f��Q0*���.��h�����t���[_�`��a��ē�������L
������Ƴ��"����������c_��������������������������`��aف({����'K��&�����m`J �� ���X��$&��=0$��L�?�?�6l J`��d��#0?�� ����@8�#!GQ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G�<8���xp#Á��G�<8�{_���0#��������������G�<8���xp?�8ɰ%`��rف0K�����������`GXRfl�����Ӧ�`��pف8K6`��b�������������0(���"d������&m0'k6�?�?�0�
с0?�?�4L �������y� �M�0?�?�?�?�?�0L �0?�?�/��{X��U��`EL����� �`�����f[�I������L
:������0)������`R ������������������������`R�������������G�<(�@�
xP#��G�<(�@�������L�g���?����G�@�����xP#�2l AX���`L������&�`��j��ԙ�0?�?�4��3X��6`N������m0&�8`��a_���
)y��0?�?�0I�L ������ #�`G �� x`��m�k~�`F ����� �L�� �`^����}�D'�S~��?���������������������`��l���?�?�6�
A������������X�`Z���`�����������L���ٰ?�?�?�?�?�>��������%`gC<���x0#�� �`G�<���x���� �0"fs<���&x`G�<��?������x0#�����M�(+���� �X�������� S:���0#f���0&k���� �X�������`G �� +����E/=�&�� 0#i�;X�������`V��������`O �� ��`O�l�������������`^������L �������0"��(��*`O�������`�������������2�bL�� �`Q���сH0?�?�?�?�?�6k�L C��y������������ ��`\{6�����ٚX���� �@"\���� ������������_��@������������`�� �<x�.|�����������?��8v>lj<�������������������bZ���AFr
$�K(��(��(��(��,� (��,��,��,��,��,��,��,��,��,� ,��(��(��(��,��,��0��,��4� 0�J,�
,�
,�8��(��,��4��4� 0� ,��,�I,��0� 4��0�M8��4� 4� 4�O0�M,��,��<�L0Ì8��0�O0� 4Ӎ?�4��0�M4� 8��4����4��$��(��0�0� 4� 8��<�4�4ӌ0� 8�L,�,� 0� 4�M4Ì4� 8� ��N4�L4ӎ8��3Ì4ӻ8�N;�?4@4 <�Ï?����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8������<�@0��� � ��O?þ<��7��8��4��8�����û8��7�L,�@0��$�0Ӽ4M;��4���0@<��4��,�L,‰,��8�8� 4� 0� 0Í4� <� 4� 0� ,�L0��0��,�O4��4� 0��8�M0�K(��0Œ,�L8�L0� ��(��,��0��0�L4�H(� ,��,��,� ,��(��(��(��0��,��,�(Š,��,��(��$��,� (��0��,��(��,��0��,��,��(��,��(��,��,��,��,��,��,������T'?�M���G?��M��=�_����=����a�o��r]�O�0�9�>���$4����#��Q�YC%�h9C@d�����Zx\9��9(���yN<^@�����8�O�o�o��8�O@���������OS�����?�#��?y��/�+�ܧ�ӒN��1�s�>R���=�!?�?��#}䧌���'9�_?����ė|�r���=�$�K� �� �� �� ��n<� ����M�}��A�{��@ ��X S�m���؎!�0�$A�rFS�s��)AH� ��R�:O������F�ҍb�i���ZR�ҐK�Tl�� ��؛��^ ��ٛ3fl̰�W��tAb: `�!�h���|�Sf�J�7�\ҚP����������{ l�&��G�!�>����q�N��]�J�"{PA�b<���w����;�(t��`�ޑ>PhȜ����0�!@" �)c�G<��4��ROA���<�@�?���}^�~r]�� *C���Ğ����$<(M������w���0א�M�E��Z�?�7(gL9�l��ZyC��k��W�9)�)#���t9!�<���'(�n� <�� �%2c#�%g����F�n:!�%F�h�:����!'OD$\(I�!Q�kɋ$)
B��'@��4E��m$)
B��) �]����X�t�!HRb����脋�� 'D*Bv��th�ц) `��'��'��'� �B����9�!�P�sF)ʃ��q@��O�&�È��<�C�g�q������_)�ۇ d0�3���,�U�àW$�Gsv)ʡ{��8�- )? ���'�ht��' �B����z~F����T��2%��� �h��_��@ #���ab�/8^p���#��Y��$��`B���?��L�n�p�<� �tC�#* ��x��GxQ𵎱PFDPz )�荅
>|(�
s�O�P|���8�f5���{x^�Ȝ��U��֖Q�wp��}�����FѴk�l�F�Þ��^��DQ�kMi���2��(�2Yb��8��0�22��(�2��(�2��3f�LBK fFQ�eFQ�Y�i�F0"!z�=Ns�U�f���6�����^��h�5�j6w#la�R�/EX"(�5���deFQ�e,�1LW�`�C�FQ�eFQ�eFC�3@E��@��������$pG�Qp/` ��@�>���$p8���q�1�.A0"�8�8
z8��8��8��8��8���>��)�Id ��2��(�2k9�5��D/Q���a�w
�l֣]Fѳ^ o��o>8�����W�2Q ��������߆ܕ�[��!����%���ঔrt�(��%�L�=�c��R�����\=�R��BH����c��$$�����*��P�$O��N�$v�>���^U�aЪ1PQ�%�d�����? 晠 ������iJ9:TnK k�$�GOc<�%���|��'tGb(I�����u�����M�q��;"@IA�D�Ѓ���+�Mƥ���O�������Ҥ���a��;��D|���5!�o6$x��
��(�``$B ��`���
#��g~Pn
�dN���!ɳ�@�dH� TG���^ ���UEAGP�ɔ�=���O��a� Wr��9L �� �k=�#H����#yV=������,F�$�����{���5�����0>���zF���H�F���V�TNQ�W��+��[�w�'����gܯ0�S*&��v�vH�.���H�U�p|#���=��G�����{�����C�p�{��A"D�(:�R�VR�)R�J��v
�^��X�G�� �� �W�顈�J�*Uu*��X� P D�� +C�4իV�Z�jիV����<�9��=e��7��zE�7w����-¢r���u]�2ܻ�}q��{�� �>�|}��� |�;�8��~�����~���������J(?-|}�>� ��7�\}> r�'%T�����{?#���<!��$���3؟�������'19��N+��D䌨1�i:FF<`��h��r�U��D���\��'�xq�k�Q9*�u�������0x�� �$`�<����WG���'19��Nbq]��~� ����������%�w�MIt���>�\}r]#�X�����@���!��DE�8����dB;�w��#�Gpn��C'��1�i:FF<`��h��r�U��D���\���l8؍��q�1�Q�P���s.e�ۍ�M�4EP܍�ݍ�ݍ�ݍ�ݍ�ݍ�ݍ�ݍ�܍�h��AF6�\˙s-��Q�1�1��b6#a��hM �4&�.�K���t�].�K����?��[���t�].�K���t�].�K�������,R�t�].�K���t�].hM �4&�<Ӵ:;�8ɡ4&�К�].�K���t�].�K���ǹn�K���t�].�K���t�].�K�s��(#.e̸`C�Q�L6cf6cb6#b6/�6#b6\l��l�Ӎ�ڍ�`Ce��2�\����U �ۍ�܍�܍�܍�܍�܍�܍�܍�ێ�c�ܱK���t�].�K���t��4&�К>�����F���hӔ�+'ȧ,�"fA ����Y���hP�
�C{]�w8��V����.8�1�4����p�gw"������y��ܗ��䷑8t�h�� 1X�2 È�#E�F�����7��3:av[�hH���y8���DܔC{�x��<��f� � �^�� �\���nK�or[Ȝ:H4FP���,I�
�a�A��ӣy�����n|�.�r��1���;'L�AQw��c���p>��^�^Ь�=���i�(#�VE�-e�A ����s���.�y^�s�$� �H "�S��OIB<�DND"nJ!��<st�jr3ԩU�ujիV�+V��V�P�d���q;��t�Y============;'�a�1� �dsP<��իV�GV�Z�VU��N@D�*�0h ж�kZֵ�kZ���g_�GH������hT/�`��m�ֵ�kZֵ���0�4���@��Z�jիV�VV��ʲ�*T�꺌�Z�jը��t��"��׏�x2��;��t��������������잝����0}
:@� ���&z����@��=�D
��)������:AEAރm�}�o�����;Fۀ��7Ё�sB�W���W@�L� ����ܙxq�n~`AC��/b�B��u��B�������ݺ����!BBĐjK����ì�;J7�'�hq��'Dxq����&��V$>�2�)�. �X�$!�__n����ۯ���2$,I�]����G� ����3�.�L�ɗɞL� ��@��l=Ȱ��� �N.�� �q6���Th6�l�W�+Po���=�{�p��9%�~��q��M������Q�u]WV�(�իV�
��P)���$?��ޝ�d���Y====%�Y======WOON�<�2O�8`�T�@>U�ujը�:��*ʲ������H#��`��&��y��kZ�3Zֵ�뵭kZpL��4�}B@٠ �� ��Ă0H�f �`�ǛZֵ��5�kZλZֵ����z�S�OQD �;+V�+V��견��R�*꺕Z�]Z������P)���$�!��========%�i��4�OOOON����<X�'���X>�� ������]�����TKK&%�'D����7NS��$rEfkH����������Aޑwp�'���B~{J q!f�|$';��tD�#!���]ܤ�T�!�TDJ���p������G�Gi(�_�s����������U 2�KJI;���S����"q3�;���4:߿���ï���q*b >¬FΉ�9gB<�;ID��>��?��&����P�,����)!f�u?�L���]��C��������,m-m ���R��>K�17��pMӔ�8 ���������|L��F�����.Р�2�(g��"O�';܉��!����ejիV�Z���
EB(���.H@�ON���z�����������,����������<�pf��EBB+N�իV�Z�G�kZݝ���0���0���ֵ��ֵ�kZֵ�j뵭i�^c��a# q.�m�k@�;@�����n����@��i�Gx�kZ��kZֵ�kZֵu�ִ�/ 1��FzB�V��견�*�ը�2�j�u]Z��Z�1�@��b䃆JzzzzzwOOON��������==WOU����r ��� [�v�mk[��� Z��7� ;E(���b s�!�"�P�%sւ�=�}z�� �� ��'wA=�[�'S�b�����j�L�E�/��@��/re��}����"�ʂM��I"��1*���R�:�S���u:�w�����(�uÙ`I "3�n��{��RW�u�����8�@�<8�[��_2Y�PI�6\�$@�t�%RU?*^�]�u:�N�S��R�T�n�s, !dFbb���Ȱ "��;�^����7�Z�����$F�����!�"Q�ܕȵj�h>���}jt�gA;�+q��rNX�X<�6m���aq�J�n��uZ�j�ui�XD�w�7��7�B��*ʲwN����.����]&�OOON���=WN��WU�u\o��|p���7B _�N��ejիQ����gkLA�+ ��]��fj�v�n��kZ��kZ֮�٭]l�p�B����V& 35��kY����gkZ�֘��V�� � ���պ�j�u�ֵ��ֵ�]u�Z�٬ḅ9?�1���vV��V�Z����2�jիV�� 0�t\��1|7�A;�t���eY===;'��������i��%���u];'d읆�� c��V& 35��kY��Vfف����$K0"-�(����r���u�۽��~Nv��wy9����������\EQb)�`��#��"��>�" �s�tt��"���UĔz�%X��2
�2p���v��O5zM��ۤ�I���ޓ������QV2�/�����U�����uUw�<#7���ht~�����{�*�J=J�H ��Ι8b��;O㧚�&�I����I��I�y��{�d�*��PKz#��"��>�#���p���.Y�h6�\ƀ�,�h�H8�ࢣ�J�)�A�3����f'm�w�;��v<wvwr������U"�/���}Ia�*�y�Hk:��۫V�Z�\��0E���!�=�eYVU�eY=;���t�i�====;+ON���vOU�u]WU�sȼ
���G�{����+V�Z����iBE�G�b��|��]�uٚ���j뮺뮻Zκ�g]l��H�(�?�LB@�J ֳ5�OB���N>ֵ��(H���LW��`��#ѫ�n�3W]��]u�]u�kY�]�뭚�I���G�{��
+V��V�Z�j2�e`n��A�V����N��;�N��;������겵jժ����zzzvN��Z�읏"�+O���! G%�kY�֓7�Y�R�4�q��O�p���q4h� ����-�z�@� ������ ��v�0�p�apXzH��B� �~ ]ܙvu�� a�y�@�/()9�D�ü�ǽN�S�ԵN�S���n��M��=��5��4J�Q����X;Ǽ��a>����'�xq����-���U���������:�N�R�:�N�S���u7S��S��/�*AFW�H��B� �~ ]ܙvrf� 5
Q��n1`�A���x���1�������6��AtAZ���z�@� a��-&Xz
I`��[;���[��WQ���� ��戸G�r�YZ�j�ejիV�+U��V�Z���WV�Z�j:�j:�]Z<�K��$f�U����Z�bԆ�����`���3Wf[�պ��[��뮺뮺٬뭚�ٝv���^�����4���k@�;@��@������kY�R����a�x#���]�n�V��5n�뮺뮺�f���j�fu�ζ<xv� �0J�j�uYWQ���� ��扄� �j�ejիV�Z�i�Z��jիOV�;+V�Z�jիV�Z<f����|F��Y��hF1]+�����v{M�t#�]����n����}��ý����w���w{���wH�Eѥ��~TB3�." o��s�?0��bh�*�5>'9�p��o���|�0��� ����}������y, r�L�����v��l�xx6���� Н�����w���JU���������)�s ����������/w��=��׻�������,D�?B3�." o��s�F1]+�����vz��t#�]�f;Z�㵸<������}����������H��,0������;NC�u��d�p\��t�>:uZ�]Z���Ӻ�j�ej2��Z���V�GV��V�;'d��Z��Z��} n�?����u-h�4K�����a�i5���ve��[�֮���kZκ뵫���ٝv��v�ap��]�"��k@¼8۴9��8�{Z/�����z{Mfj�]�n�V뵫��3Zֳ���j�f��g]�����\#�G���} �uQԩQ�@ @7��7A�1�B��(��u]Z�jիV�Z�*իV�Z�jիV�ZvV�VU��Q�`�C���˳�_�mh���)��a��inn�L �of-�l�k\���4�坥�,�,�,�,�g�Gw-7-im�l�-��ڃ���|���,ь��G��*�l?
�/���L��eJ�J�Ur��6�<��O*ySʞT��r��<���ܪ�S�M���F��td_
����N2��'7w�8���*�l?
�/���L��eJ�J�Ur��6�<��O*ySʞT��r��<���ܪ�S�M���F��Y��2��� !�S�,����6n�0L�v\��ܶ��---9iyiyi�NZ;KKKNZ;�j�-�-�-����\�pws�O�o���"��T����-�� ����qr��.]
�Y�0��.��3� ��-��-��-��-��ż[� �0&�3.\L)�BЮ.X\�˘qu ���򜃌S����&�G�ASN*b�]EK�R��d$��(J\˚Д$��2�\˙sBP�#2愡(IuBP�]K��b�*b�*�T������B��<@ѻ@�������������*b��LT˨�r�]P���T% BK�sB:��2�\˙s.hJ�b�\Д% .�J˩u,]ELT�S
�<���S�q�|�P�S�������at�\����VB�)���.�c��0&��v�o�o�`L �0& �s�� ��� B�.b��8�at��#��?�{ۘ?���o����ۀQہc������~G~���Lyu��ŷ4�������
��ہ7�@��'�����N����Pqk��gF@�48������q�+8/��A�g��'v�M��'��� ?�7���(Z��m�>-���ˮfp��p
��=| =�?�c�{�
zG�U�<#y1����Vtd?�=C�9{�?�?�=c@��� �^�xq׀'��'��'�v�9C;�����/���;������/������ ���������%�䋒�L�����>d[�j#T�9ϙ�� yQ0�%T��~J9O(!����ނ��$<:��` Ǖ�'V�yXq������� �q���' �������&��K�rY����Os���� ���;��$\��.��ˠx*���?�?�/��#��rW����p���.G�������!y#���5�H��F�-����������������y �K�_G�p��r�-rv �# ��pFpFsd��`$H�x���Ð���xh��(O���E�����Ok�����zǬ���"��.~�d|�#���D$iƜ�EP{E ��\*�WEeQ2�piƜEx���g!�r�#Nh� �Mc�=` �� �� � _�2��RJ�k�AOcTʒABh1iá�H2�礴���W��:4���. ^"�!zvd�x'!'�.�EqѰv��e�W�D��X����2�̮#��5` ��)������=y'���RI��7�6�q�ȼ���2M����j��̂D4{p���!$vR�|9�FF��"�������Z'��ń������rJ��q�8�? ��z�M)'�%r7�7&��OAK1�з�,eL��i!#�
��8�,m���H�Rb�
B�� �:��� ��;±!HR�!HGx���T��`$)
B��2�V��>F,"�@*DH�HGp�2�T.�&�DyH)�O�O�O58�v��?�4 �aq���S�ST1B��OO�NK� oxg�Q�Q
�
RYD�8������Y,��,K��`4�ki.���I,���k/D!� 0��1�'�R��O:��N258�v���8�����ا'MP���4��{�W
�fC<J��w!��!��������%I�$�� �8‹��3���FoCpX�0��+Gpщ���(�Qp��0G �#��=�(��\(�Qp��(�A>G��$a �Up��O�>��b���
VA(<
�/�KƤ<.eL�E�leQq�5���b�i�p��N����2�E�t]+C`�$0�B(�.����.����."Ȇ�DD��f����.��L�t]2�(#Lj�b,�x!�s*�t\�c*��'���T�t]�UQ�X9-���
���.�c)�t]E�r�6
!Cl!�����.����.���B,�`k�àP �&d̘�a�Q�Q�P�<i��d(� �ҍ(�s&d̙�2fLɊ0> sx^��f3&d̙�2fLə3& �7�ˆ����E�t]2���.e0PF��"�X3��C��U蹔�U ��.��n
��>A$� �������8���%�1���T��,{��7�RJ���`���%�ǰ�5O�-w�ω>Nr����\Y�B������Ď�1�x<������9���s�%%���^uq?�2���AA'�eD�=���@�3@������ˉHy*
$��ϲK?�`�5O�-w��>>9II�%�\Y�B����Xq��Gy&��÷(�h�,��xA(1�AGq�%�ׂ���X})E��#��@���#�_�O�x�F$p�0�#rY�n=8��e��`�H��)>�T���>�#����yJV
qL=�6~���s�%�;¿�\K� �/L�����폰�?�b?!��Ў8@���@#Oœ�U��E�����Ѩ�QD"����6����{����.Aw�D�"A*w�w�o{���$n�)�p��ػ�X#�q�x��4#�8�v����8G��{�F�w��zF��j�TQ��E��< ���{����< �@���@gQ~m�����0%�pF���6���l�
�d��dw�-kZַ��@�0�%ϡ,0�!ý��kZֵ�\��#g� (��J�������"��ǀ�
r�'���.�$��c^os{�����NA9�y��iJI�B��89��ps����!NG�o��6}��v�NA9����7�����-�Zsz@�!�1�38��3��<�Ƌi�z��y�~&8Lp��1�c���H�Ɔ��~��38��c� Q)0"Zqo=(y�O���(y{� -9�= Z����fq��� TcE��=I�<�? �&8Lp��1�� �?Dࢀ�g�xxm ��� Q%\H��os{��r�� y� �������
��M����Q����9�s�� ���(<�|��P8C��38��3���-D���Yiż����̙�2f��3fl͙�:gL���H��<1��#d7��\��>g���3�|ϙ�>g���3�|ϙ�=������ xc���H���:gL�3fl͙�2fLə5&�Ԛ�R�L�S)��e2�L�S)�����q2�L�S)��e2�L�S)��e2� � ��"�)��e2�L�S)��e2jMI�5&�<Ӵ:;�8ɩ5&�Ԛ��e2�L�S)��e2�L��G�����e2�L�S)��e2�L�S)��o�_ϡ,gL��3�t͙�6f�ٛ3fd̙�2fLə3&d̙�2fLٛ3fl͙�:gL��3�� �7 �:gL������������3�tΙ��6�?DZe2�L�S)��e2�L�MI�5&�Ԁ���߁��Д�SK9. p��E ��:As����‚��^>��9�V)�=1�c�8�p:]��:nπ���J����$�ᔑ�+��"�#7a^t�R�'�C�_��㇉�.��X s
'�5�s����]>����W����'�hq��'Fhq���\�pP�O�IR�a q2*�3v�@�(x��?��K�8x�����!`%��'��B o�Y��8s�8����@�π�����|�r )`��p �6 ���o��4 ��Ύ_�+�`�%�G�%�:.  ���9΃�s�t����|\?pJ�˵��j�[�պ�[���d��� � �����R�뮺뮺�*2��P$H((|B�Po]u�:�fu�ζk[v�' ��l:�V���kZֵ�k´ Bg�`$�dZ@�����`6��+A�ֵ�kZֵ��Z��3������fu�[5u�kZݭkZ֭�]�����p� �!G�o8Q��V˩R�J�*T�R�J�u*0!�L�3�$"��}v�z�N���SHh���p`���+�p]RoOjM�='�����Oz~��(?�`oA� G3"�v�Z��Q��^�[���R�qz��4����z/N0�<F�}}�����n��z��ffL8��d��Jj�G�'�hq��'Dxq����)d8��fB\ËY��\#n���}}}{�__ �=�x�3 ?�T G3��w�mR��Q����K�j���f�x��b!Hh?��?�E .�%��OI�'�����]�=;�.��P
@�; Y:��R��Q���ٚ�fj�]�u�\Y,&�����IgY��J��J�J�*T�R�J��J�Ԩ�YzI����4C����뭗[3����_����W�P/�B\Z~3ʣ��kZֵvf��kY�kZִ�.Fy���L��+�;4?�9{8��_*����g�G��ֵ�j��kZֳ�ֵ�i�\�����2Bh�a�뮶]u�:�f��֮�W]u�[.,ƐM 2�^~xI�C�J���*Te*T�R�J�J�+u*1�+���t�/�¼c����]��z�(�9��P�,EE�_ �� 8���w��ȣ~���~�q w{�zr�X�qZ ��OAvBGh�!�+��~W;��y��{�_��-��-"n%���^���$��@Q���}���)�����x���̤/E���M�4�5D�tH3��s�?8���4:߿���ɯ��-��-"n%���^���$�d��M�T����������yM���H^�!V)$�M�,�����rpE�����{��{�
yqR�K�į�rG��=���#s�o<���<����[���� ��Z*()=BN�TE��D�9�� ����[��뮺���� p�?�0 �h*V�V�:�*T�QԩR�J�*T�[�Q���p�S0k�x�1l����]vuڿ�Z����A��cx��ֵu�ֵ�kZֵ�]v��&(e����Tլ�Zր'�v�'{w�kZݝ�@�1��,b[Z֮�Zֵ�kZֵ��ֵ��� ���H�1l�뮺뮻W]�u�뭗[.�1]�� �J:�*T�R�J�*T�R�J�*T�R�R� ����A�j�m�kԵ]�����Il�S���?����)d~Ci7�ޓvI��OI�=�=;�&ԗiq+�����-į���\�� έ�WԽK�u����,J� BJر�yJt�Q���T�N�T�u:�N�]�>��uĤ�~d��#r�;�2EORԆE{�^��< ���:�����u�֖%FaP!%lX�<�:A
�(�vC�^�]�u:�N�S��R�:�RW? �NV��_4�H�$^:wjwj�K���[Oz{� 2K` �YO+� ��� ��RH�8��I�='d���zOI}'t����X ���?�R/+c�3$T�-H`4W�u�ۭ�]u��:��� �^���A5�R����R�J�*WQԩQ��R�n�J�J��n��8�?������un�뮽�v���hL����H� �I35n�Z�]v��j뵭kW]l֮�k8\��;��  �fֳ5�f�O�m��k;Z!�(D���,B�L�[�֭�]�kZ��kZ��[5����!t����}��5��u�e�]u�뮺�:�e&�4����#��J��GR�J��J�*T�R�J�*T��T�Q����B7�P�`�mk3Z�n�o�� ��`�(�4I�9q��*���6��9&����9}���Ó���xN��$� �f,a��-#���@�t�΁w����^Khe��@&��I�����L�7�!�����=�O���=��>�o��0O� .K�B�͒�@/Ct�s���� �����@������w���y-��#��R�&�8#�3��<�� ^�o���?���w���}��q�>X�d��o3d���i!��7�'{]�M���~
( "�#C�3� ��8p�۴���n�rm�5���M;��[�6�m��ȓ��h��B�͒�@/Ct�s�����:�e�+�J�U?� �ike*:�J�J�J�J�+e�R�J�ԩ[�[��WQ���a0���T����+r�2뮻Z�v�G�Je���"嫵n�3W]��]u�]u�kY�]�뭚�H��
C��(��J�8Z�f�� �^��� ��ֳ��87BP�(�O��Y-]�uٚ���j뮺뮻Zκ�g]l��D@R��{:��t��º뮺뮺��V 2���I�
Ӱy)Q��T�R�J�+�R�J�*T��T�R�J�*T��`�>C򈉄��#�u�fkZ�Y[E�+���F�I3� ����q�O����oO����zOIvt����~����n0/���&d��‹��D-^�����8��/Bt�5��k� �k�N�S�ԵN�S���n��M��=�滃����,˿I��C� Pu��� ���q���p) Ї��&M|o�j���S���u-S���u:��wSu:�u9����x� 2�ə(�l0��w��p�ӻ:vz�_��1$�:���!Gxm�a���O���'��='���N�~��wt��7. q` ��2Wxチ��η׺��똁��#��(�U��:�l���G[(�WR�uJ�*Te��+�]J�V�2����@� O���1r��2�kY��4�a������5V��]�n�V��5n�뮺뮺�f���j�fu�ζ#3����a��ٝ�hx'hq�hs�xq�}�k0:��1��3��<F�ݙ��-�j�vf��]u�]u�]l�u��]lλY���c�x[��F 3 ��.���� )�0������4�ul�G[)]J�V�T�]J�*WR�J�J�WR�Q����1�2$-?����-��ց�'����(9��?��{ ;|a[�g����G�����www�w{�w�����x+�Z��5@�8��7�$ŬN���A�'�~�udh07���_���w��}�5������حb�!%�=�Ӥ��w�'�o���� ������~LZ��X(
t�zG��P�F��#<��%���K����#^���wxk�b�I�8x���D� �n9�TO0�,�(�_� ���x�Qgo�"ִ�����?w���.���E���n����V����$$��'��t�뭀�9������P� 5�����R���Q�R���u�R�J����]n�-�e+uJ�uF\,B:�?@� �u�ј;��m��P� ��k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]�� ��u/��f�hxW�'v�'7w�'okF`�ŷ��B�.�٬�]��-�j�v�u�fkZ�u�]�]l�����v��.��<��?@� �u�\#A)��� �[(�:�e*Tu���R�QԮ���J�*2��Q��V�2�J��n���-���x���<A�a|ք�� p�aF���C�n_�ex�lY^_�_�K�E��˗���ˋ'h�ܿ���Y;E��Y;K���I>���0�~��8�X�aB,���?b0�ѭ�ܾ��/�}��_r��ܾ��/�/�}�}������Ń�8AO�$D?��8�HA�O��/hsw{����Yb�������ìF�XZ_r��ܾ��/�}��_r��ܾܾ����/�/�/����?D���Q� c� Ж�Q�Q��>�b=�-0����e���iih�����/�x�ܿ���r��_�d�V�'�5�3�e�qŜq�,��Z< �X=?����tEDQC"&3�(����"��Έ�(�DQEDQE1�DLfDLfDQC�&3"(�DQEDNb+��Fw����(D?��X|C�WC�WC�WC�WC�b���Z���b�Z���z���b����������d<�d<�d<�d<�>��(O0�; �ݠ ��� ��DH"���>!�+��+��+��+��1hy��-C�W1f-C��=C�Y�1YC�Y��y�C��b�b�b�b�u�_��gp`�FU�sDE1��tED2"��(�"�dEȉ���"��(�"��(�"c2"�tE��"��(�!�D�c�fDNb+��By��� �?���s�eۄ�n~��f���߀c߁�� ��.��� �m�����*8b��ۄ�n��O�I /�'�%?��~2��Q����\r��48������q�apn�⣆/}�J��)�$�������S�J��/��6�Opm�A���|N� }| =�?�������{�5��ӿ/8=� �X�z�hr�x��zƀ'{@������O�O�OZ�xr�w�'��''/������8�O����8����[���<������M�.H�,����I��E�&�����Nω�"�a�+%4����J�O��'������H97ɇ���.�yp�ˀ' ��������' �q�������?ïAq�o�_����r������<(8����ܡ�.�=?(9����a$���r_�o���#����=�(�UʎH�I���?ɞ|rY�D?�?�;#��?�9���c9 ��+Q�&��(L�C\�ѹ#%�)���.8\r
Y���n�5��>i�L�2�(mϖ�F��O�N���� �� ��|F��!VD�P��R ��΃c�&9���
shF�hF�)�0�uL]�8��A�0�! �c����F�>��'��'��'�F}���@e(p����S��
�D�9h ��x�%/�Ӽ�ˉ��`��$ٶ CL��. N"���;At�I$,8���'�Q��?�\F�dMm�����u��W#tL��'�ht�����>�o�X��?����)5Ƿ��Yq;( �����=��r��36��B��ۏ>J!�C���'"?����m��:������O�m��)�������ZMH ��.=���+��3(��H�����OEJ� ��ș��!,0 f!@A&.��DȓHR�!�������)��!HR�t�tz�q��� i
B��$�̈�X$�8�3 �.KfHG@G�"��t���S������-xZ�F��I�&�r��SLZ�g$�r~��r]���� �2�"�� b*YED��'N*%�5� �b6 h�=��%����&�X��x7�% �-���4���v���<�@�<8�Z��v���zs$9�WM)�Q�5� Ʒ�p��e�L2D!*@���[�R�<,xX���o?�!'�������<��O]�/O�a#� � �b:�^��2w2y�̞9f`�$��:w�q��K�.4���]#�<���BKGI�/!e�ˍn5�מ���: �x�,!i�����'�EL����)��*i+��r2W a��!�TU�C���*��� �@�g��ټ����*����*���{��p I8��*�����ȧEQS!�~5�����q��$J*dQN�� dQP��Tș���Ȣ��R� �#%p�!?2EQLd:*����* �� 6z
=�Ȫ*����*����*�>z:FDp�1�<ǘ�c’��x�$hP���@�v
HR9�1�<ǘ�c�q�N��U�l��c�y�1�<ǘ��< � 'b�EQTU2��*d0OưS��N3���EL�)�S!��*?����-Ŀ<�����y,�_��%����AK^
y0��7���~?��9+���nE���'����=� ��|����I�&��$A (k���>����)D�, ��4,'H!�i91��99��AJc�0s����h������hy�htww�����_0ss�>��~�Q��L��.�����\<W,L4'I" @@[7��}rU���ϔ�h鲃&O��@!�2a>�T����,��9%xy�����S�<sy$#AR:�˒�oq/�k�:yja���� #I�)��?�D�&�},AdR���4K
"rG��o:ya�R���0s����h������hx�| 8�T #d����i3ݒ4���{�7�!J��D�O �8���{����8�0�L@O�%�* K�7��zE�7w�C$�pf�^
����������4�rqP0��~��9��vH�.���H�`�(�A� <���4^���{����0‘1?��0湄2������@��N�g1 ��9��'L #���4,���{�0��K��<S��8 ��r������ r8�"�"J�T(��o{���$n�4�H
�:͐�v&A\�����;���xsÞ���B4��<y��x�Ǟ<��RIC��
�<9��xs�����;�CL4��H�j�����/�f�����&��r6|�{�$gq��w�gq����7$�0AM����o� �����T<D���4Ӏ'�xq���0i�����?a!!06^3x��7��L!0�l�' � H��;��3���;���vHJc�T# ��'xN�1�%5ӿ����@��������� ��'o&O�3 3��'`J�j�������,��P~)��:3x��7��А��j�����#���tuGQ�uGQ�blM��6&�؛fl��1��& ��6��ڛSjmM��6��ڛSjmM��9�_���6f�؛blM��GQ�uGQ�uGQ�rnMɹ7)��m6�M��i��m6�@O����6�M��i��m6�M��i��m6�;��y6�M��i��m6�M��f�ܛ�rn@�;@������rnMɹM��i��m6�M��i���w�ɴ�m6�M��i��m6�M��i���s�HʄuGQ�tך�^k��uGQ�uGQ�uGQ�s�^k�y�5��ך�^�s^��3���L�hٯ5��ך�^k�y�5��ך�]��l�!_�$�m6�M��i��m6�M��ɹ7&�܁��P�
x�J�řtK����5�yy��߁������ۀ�Ǹ�!EbvL�'���Ť��A��P_w��� #8 ���䓛Қ;��B�a4\����P��q�Ύ9�_�o�~5x$ �d,�����E �*b�{�=��>"�Xr!O��/N���.FpA�#�=�'7�4wAZ��h�%��5H��=��o�r���������多6N#�ܜ�i=㇓�����������\p���r钾 B<�.�dލ�5Gh�_p��w�;�&8+p���~�."z�|�Pނ�,g�ܝ���/��"�������Z��`�;��ra�պ��5�kZֵ�u��h!�c���.@8.�ֵ��ֳ@���h�^ET��Zֵ�kZ���@@�D��vb�����&�Ex��(( ,��ֵ�kZַ�*�&�� ����kZ���kZɰa+�T�T�u�]��kZֵu�]l���6<W��M�8q�������z<�`�i��4&�� �)�S�z�N�S�Ի����p�Ѿ �CR�,�0HN:��_]��]���"BLH�8�)�8��o�D� :��u�����}|1~&�!:�b�4I�� 2�� ��i� ��i������(�:
q SqA����u������ݺ��$b�MBt3�3�`<  GQa_[���v��ۯ�����a�Rb<ÃL�AȀ8�
�^��u:�N�Wu8#�K)L�1M$����^�����ֵ�k3Z�B��9 ��i� ]uٖ뮺뮺��κ뵜� ߈��p�C ����m���o���8�
`��Q�4��h��kZ�3Zֵ�뵭kZr�cA3� � ��d�@������� h!��@Z��Zֵ��5�kZλZֵ�)�4?��K��)�k;Zֵ����;Z֭�kP�@%�`�?��VƊ뮶]u�]u�]u�]u�]tzƷ�4$��f���"����9�~(ey^E�"��UQ�m��{��ٲ-��q^��� �~Q�0�2SȄ���8�P�9�g �+��������Z�ۛ2�'`�&SH���r>�{����������D}��S"�����3��LA���G7⧐~B;��4:߿����_�^[s�\D����`���� #��g���y��F~��xz���.E$�ÔSN�� c�z-78/ ��%=���� ��� ^W�S���*��~C�t������<���ʛ�r�� �@�&a�*$<��(8d��g�?!�Z�kV�[�5q�:�a���I4�u�]u�]l�뮺뮺�2뮺볚@^ `��1����f��v���o�Z���a���<��E5�j뵭kZֵ�kZ��kZ:҇�]��D)�25�kZ����n��k[��a��FO��C�ֵ��ֵ�kZֵ�j뵭h�Jaw�2��뵫��ճZֵ�fkWfj�:�@�� 0M#u�뭗]u*W]u�]J��]J뮹��� ��(�0�F�mk[���T�^(fh�H~-%dXI\�"FA�$����^�O����=��z{U��ϙa2�B�H%d6�i�DhP�r�j����ۯ�_��!aL'bF Ȱ! �W�� �z�v���u:�N��}KHӕ�B8p�(�$Q#��7ρ:zu{�^��< ���:�����u�;�f�v$`�@!܋�y�����j�N�S����GԴ�9_#� r�2E+#�S��
" �Su�M����}N(�p� ��ZJ�}%P�DLsdH1�9Y=�ڟ�j{���=�ޟun������s��%B,����ɾ| ���ݺ�mڷkY���p �x����D.�]u�[.���]u�u*W]u�R��u�]uƈH���b�-��ڻY�Ͷ�ֵ�� �tF���XN�H%ٚ�]�[��Zֵu�ֵ���kW[5�*@�E���s�ؠkY�ֳw�'���ֵ�� �tF���XN�H%ٚ�]�[��Zֵu�ֵ���kW[5�*@�E���W!a: l뭙��g[5�fj�v����q1�D@h!r�뮣��Q�ˮ��*T�R���Q�[�����R�">��i�b��fkZ��'���r�B�Q�I6��o�j2H�lف3j
��.�۠{�@�w�.�ww���R
���D�6�$�CM  79�߽^�����Yf pd W���������&�I����I��I�y�����Y�M�lWFG3�Z���b�r�w�<#7���ht~�����{���e�, ���\�bǔb�Rr\o��}'�I���'��'�����t���
Ȯ�O3�N/�H�/��o��m�/��%��AM�.Pڄo������]� � � � �A;�����0��H(ª,##���-B
@�1w9j�۳-�[�-�0��&�O�%�<s.��e�]u�]G]u�]u�뮺�u�e�]u������g��ha��j�]�k;ZY�q� Ho�
Pd9G;Wj�vf��3Z�뮺��ֳ��Y�[5v���)CS�@�q�Ř�kY�ր'�xsƀ'kZ�֖c�e��”Q��ڷ]����֮�뮺뵬���u��]�(�
P��ɳ� #ȴ0��j�g]��-ً1� a&�O�g��x�Q�Q�Q�]l��W]u�]u�]J���]F]F]ty�3LJ��$�(5�1tֳ5�R�-)^��!���� ���6c}���z{��[U��z�;�^�U�_U��q� 1pe��%���nQ� G2���������}]_�1�1M1� J�N�S�j�N�S���K����{��s���1��Ϯ��x���M B����'�xq��������}]_�1�1M1� J�N�S�j�N�S���K����{��s���1��ϫ%���nQ� D%GԵN�)^��"#��M��@� ��[W�յ=���?O���N�V������6c �p4˟]!���������ݙn�������L�]u�뮺뮺�:뮺뮺�u�]u�]u�]F\��v���@E��v�ֵ�a��A ����:™n��ٖ��n�3V뮺뮺뮶k:�f��g]��a�2G�^�A0�6v�� ��� �ݠ ��� ������ 5Bd������vf�̷]�uٚ�]u�]u�]u�Y�[5u�:�g[��=����1��l�W]����:�0���2]u�]u�ˮ����T���*2���]u����]u�ZPl���S 0cgkZ|���)C�9���i�y�s`�o��ʹ��f���)�߃����w�;��w��_��M�/�IO�D��!�b�\ ���~J����خ�_��| ������=o��{�'��<�t�)��9BO�%>8(��'�o���� ������~lXˁ"���O�\�s\������o�?���O�{���ow���dK��OC���� $H�r�KX�B�?o���C�{#��m��mi�o�C�f��w���߉{�N����.�h�P� ?��� dX��ݙn��V ��<�`��]u�2뮺뮺���]u�]u�]u�]u�]u�]l�8 �y�?�+P�2�v�f�$���.Z���f��ٖ��n�Z���5�k:��֮�j�fuڻY�4A􋐏�'8�.���N6�Nn�N8�֌ӀD���E�Q�5���ڻ2�v��kW]vf��g]u����]lλWk;F�>�r��a
p�[3��p�+���b�p�]u�]u�u�u�]u�]u�]u�]u�뮺�2뮺�e�Wa�@��D��4�kBXP�ps��$���г��B�P� �� �� �� �� ���7Bކ} ���� ��.I�1��߄�)�p$KqҒ+`C����8[�+P� н н н н н ��wB�.�WЯ�N��L�����ᄉ/B�hxF�'{@����m�$KqҒ+`C����8[�+P� н н н н н ��wB�.�WЯ�N��L����߄�)�p%�g�1a�M��?X,�n�m �� �� �������Cn��n�� ����ܓs��+c�$�
A�P�a���(#��T�U*�D�U)ҩN�D�U*�d�U*�J�R�T�S%R�T�U�TK�Q.��TK�2U�R(D�d|%jP�I&��#j&���S�iN��:%�4�&��TMJt�UD�4MDҩT�D�4�S"iTM�L��2&�ȚS"d`���$���z7hs7xr4�j�M�F
�M)�4�DҝJtK"iTM)Ҩ�&��T�&��h�&��R�L��iT�DҨ�%ҙJdM)�4�D�����s#�(;BP�a����E%Q,�Jt�U)ҩTK%Q,�J�R�TK%R�T�U*�J�]*�J�R�T�U*�J�R�T�U����$���7��Sp��-ہ���n��J� _�+ߌ��`��[���Cs3�^/?��㓌��]�'�����?������ߌ�⏃���2` ��q� ���N8��^�G�'_һtO���#������+�_����gCq{��g�;�_� n��/��_��߁�� n�%���?�Z�ɀ'��'�v�'/w�'��'��'�hq��9k��N:�������׀'(gx�rp`�*����@����1)��9!H���
��,�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(r ,��(��(��(��$�I$��$�I+��4��_���� ?��y����?�?������HG�O����.y�����x`G�������_��<�����_���� ?��y����?�?������HG�O����.y���?�ǘHL$�6���0�IL?���XIL#�b`��  �

�¿��x������xW�W�)� �   �

�¿��x������xW�W�)� � @\{����^y�|��K�O�S�W�������?���¿½�O�O�K�K�O�S�W�������?���¿½�O�O�J�dL$�3��2`(`���<^#��0W�/��3�8l�xo ��7���p���p_���
�7" ��<��8�Sp;��/�83��7����xo �� ,���^@�
��r ȼ Q��y��`)&�'��p7��
�w�_pg �o ��7����NX3� ༁��V�A�x'�x�Gx*`�p_�gpن���xo ��4᥃80�� ��\`nD�xl �`� A���|A��B0�I��J&&&&&&&&&&&&$�aLLLJ��!A�|A�t�H9�`�l6 ���q�����>� �@�!�B$����HF%B0�&&&%D�� ��>���:A��a�l6�� #���`�8�PqA�t�| B�L!D���$#�������������!E�"aBA����| �A��6 �a�lA�8���:��>!B&�"bba�D�����������Đ�"����B0�! �B���>��i �l ���k��xo�����g���rI�ə<� l�%�&�ͮ u�����o������%�& &d�d��L�d�h��������O�L ��\��������7�? �K�LL���d�,�07�mp[�� �������7�.I0Y3'�$ �d�$�[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڰ�����O��[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڶǣ������9���������q��I�e���gI�=�7���������v��ӌ�JM�,e��:L0�� �m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t������Խ.���m�����]���V��n�����R����m��o��-v���Z���8����������Խ.���m�����]���V��n�����R����m��o��-v���Z�兿�� �?㷎�?������c�c>H\�B��\��������v���������|�g� ��^y �� ���y�/  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'%�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�l0���
�?�>�ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�9�o{����������{�[%:w���9�o{����������{�[%:w���b�������9��ls{������{ӽ�l���2�X�9��ls{������{ӽ�l���2�[KK�u/K��-�������\��V���]K���K` m}�k��/jՀH���������R��o��H_o��e�ڵm-/uԽ/�������Yr��X!�o���C�������0C�fI��&I�v�����#@��3��2L䙒y�I�d���G�%��$�;m���v�C�����&rL�<�$�2A�~���h�f~&I��2O>I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t����� ��?������x �<�G���O����p������Ny��<�G�8G���#�����@<���y����������x����s�<��<�����#����<��y��<��b�$&C �?�٘H�$����,$�� 10�����x�xG�焿�����������)����w����s���<��<%�%�%�%�%�%? M�G�OxC�6`�=���/<�>O��s���<��<%�%�%�%�%�%? M�G�OxC�6`�xC�'�焹�/�/�/�/�/�)�Jl�=�{�����1fr����0�0���`,�n�#�<
�_& �'�1x�^/����R�<X`Y�+�<�>@c )`�,�Y���Gx��L0Ob�x�^/��8��x$�2�� Wx�|��@R�-� �J<��0��?��� �~p'�\ �d�3�f/����x�S�X'�K, 2p'�� d,�� 0���O��ɂf ��^/����x��O�Xd
�O8��
X�b"�DQX��b"�Qb"�b�Qbŋ,X�bŋ��E��)�",DX�R!�,DX��* �",DX�*,DX�",X�"*,X�bŋ,X�b��b"b"�"b"�E���D"�b"�_�`d�E��EDb"�E��EE��DE�DEE�,X�bŋ,R"!,DB,DX�B,DX��bH�R,DX�b���,DX��b��b��b���bŋ,X�bŊDD"ň�E���E��",B)�E��{f�x�����_�~s%�&2y2@Y&K2L��\u��W�� ����̗$�L���d�,�0�������?�#��� �6������������+�.I0 ��ɒ�2Y�`/l��C�����_�� ����d�$��fO&H $�fI��[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���`�?�������[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t�` �������c��lsx���o{�;{�i�[%&��2�q�&��|s��c��7�s{����;N2�)7���3��7[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m� q`_'��[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m�  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'&3�``$��^��/����;x�����3�����!ry �!rrB��������o����s1�1�$.O!y�.NKiiiiu�ݿn���m��~�/�-Z�j�iiiiu�ݿn���m��~�/�-Z�j�a ����}�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�ls���9��{����������Jt�c,s���9��{����������Jt�c,0���+%����s{������{�����{�2�)Ӽe���s{������{�����{�2�)Ӽe������^���[ k��]��{V�����~��@��~�k.^ի �`W'��ii{���~ߥ��6�ߵ�˗�j�Z^��z_��l$ ���v���Z��m��������?�g���&䙒�&I����������'���?�$œ�2O�$�2`�?��#��Oy��;m���'���� �3<���0�$̓�I2L��m��������?�g���&䙒�&I�]u/z^��w��F�_k���\�����/K���l# �寵��k.\����O�뮥�K��.���o�k�v��˗5�R���~�m�a�����]�e˖����߶o߳{�������6���d�������~������oo79��/{&���)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X_��?�fğ��������������m����_~�{ڥ�w~�/���-��k����߾^������������=��I���1�Ls���������������L�&I�2c��1g���L��_�c����������=��I���1�Ls���������������L�&I�2c��n���/����@������]����wt�K�� �_k��w��_����!���N��7wK�����7�����W|�n���/����@������]��{��l��`*{�6�m�ޙ{��{g�{ S����oN��/�����
)�?�ɛ����=��J��ͼ�zw�^�������T��m��ӽ2��/�����7��~�|�n�����`����]����,���������~����������Sw����������� ��?�����?����3���� �2fH_��������>{�'���g��^y�2`?�������L����������|��O�9ϙ���&d����������������|υ��3%/M��7��-�a�����^Wj���~������0�����}�+������������zn�鿻��l# ����W���T�7K�����������+�y]�=���߳~�Di��7>�L���o����߰�t��Ͽ�9-����`79��/�ϖ{�߿f���ӥ�n}���m�����ٿ`"4����r[��}�����J _����y~������.�PZ��+� ?�����`���?��;�o����� Ak�����/��}�����J _����yx��������������^�Ͽ�M�����?��������9{�>�6#�����L���M�&y&>{�������=������3���x��������������^�Ͽ�M������p��W������o�XN����Xa�����)�������?����M�K �_�_���w����`8k�+��~�o����=�y?���o{7���G��<�����#~o�����������?�ϓ7����y�#����K{ٿ���<��������_��v�����������F�l#������_������f�2�����������F�l#�����ߥ���`m�������?��������������<��x�������������y��<��G�G�G�G������x������?�����������?����<�G�y�����?��������y��<��?�ŘHL$�6���0�IL?���XIL#�b`����\��<)�

�¿0���ل��%6a�#� s�|��<)�+�+�+�+�+�
�Ÿ“f�0�لf�T{����^y�|��G�����NxS�W�W�W�W�W���?�&�'6a)���xK���9�O�_�_�_�_�_�W���0�ل��#6�cL$�3��2`(`����� �&b�D�ق�
�w���pgpgpg 8.�ジ(� �-�i
@����.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��l%�y��JI���.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��'�s& ��06`����s�d���������� �8��
)lE�`�@,�'��Cá�:C�!����xa��C�d<<0�C��������������d1 �!����1 ��C�!��r�!�����xt0�Cxd<2 !���xa ����t<<<<<<<<<<<<9 �!����<2�!����xd<1C�<2�� #����a ��C�!��: !�����������������!��<<2��CÐ�<2 ��!�b��C��!��� !����xd<0�C�!��2C!��������������2���C��xr��C�!����9 C���x��6� �������?���<�`13%ɒ$�#�&;`��:����?�����O$� L�rd�I&H�I���������`$�$�'l��g\�����������������.L� $��0 �mp�=�?��#��g�?2y$�bfK�$I2G2M���m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-� �,,d�ݥ��m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-�lz>9�om�����9��x���l���X��t�c���s{m�o����{�ox�8�d��2�X�3��o�0���f��|s��c��7�s{����;N2�)7���3��6ǣ������9���������q��I�e���gI��KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnXc�
�?���KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnX[�_����;x�������f>f3����/<���  ���o���������|��<�琹90��{ '���������v���������|�g� ��^y ����/����;x�����3�����!ry �!rr[KKKK����w���o�[��|�jիV�KKKK����w���o�[��|�jիV�_������������wv����m��-�|�\�jիm�����wv����m��-�|�\�jիc�������{������N��e�S�x�c�������{������N��e�S�x�`�/�`Y/�_�c����7��{�����;����N��,e�c����7��{�����;����N��,e����R��o��H_o��e�ڵm-/uԽ/�������Yr��Xd�
�?��KK�u/K��-�������\��V���]K���K` m}�k��/jՄ�m���%�F�_�����0�$̓�I2L��m�����K�����&䙒�&I� y��`0�{̓�'�o���.�4�f~&I��&d��I�d��m���%�F�_�����0�$̓�I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t�����

84
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-11.exr.meta


fileFormatVersion: 2
guid: 506cc31deeecc3441a375b18c9f5455b
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
externalObjects: {}
serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

126
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-12.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y0 Rl� ���@�$��2!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< �?�����3�s93�����������O���&���6�"k�����������~��������K���������% ���_��������d�����������������`L ��_�������������'O���������ſ�����������?���~zL�9�������6����� k?����������� ?���
A���X��׼�������`��_����¿����� K��"�`��d�0*k���� r���#���&y䙁�����L
������˿��Z'�&��?�`V��X��w���$��`��c���?�?�1�������?�?�0o�`X��`��h_��������d�����������,��X��v`J���`I������ɰ$�o��X���b���=� ������L +8��,�� �D�������$`H���`G�<���x0#�� �`G�<����x������9���x0#�� �`G�<�����'����K`FX5���������g������`H����_�_�������O�����X�������������� �`DI?�n`��_���O���&�����`��`���������`��b����x�����
���
rg?=&{������ǿ���W����5���فHK���K������ ������ k�`TJM�I�0?�?�/����l
a_����%��
�?�0?�?�2��5����9����X���<�L������&]`��e����������0+k���� ;�`X�o�0?�?�1Ɂ_X�����O�X��7�0,k�0?�?�4/�������{2s�`��_���C���� ;0%{��0$�`��d�t���� A������y����������Ǧ��`I���́"`IL�� �B��0$f���`G��y�`G��y�`G��x�0#��������9��́`G��y�`G����?��L�[0��������� ?g�����Dn�����,�� O�����5����X������`M�"I��s�������݁0/�����������?���K�������������W��`S�9��3����=�����0?�?�1�����
B_�O�X��$����)���`��c^��Ro�O������O���`S
����?�?�1/�`T��Ɂ����������0?�?�1������0"�L���f��Q0*���.��h�����t���[_�`��a��ē�������L
������Ƴ��"����������c_��������������������������`��aف({����'K��&�����m`J �� ���X��$&��=0$��L�?�?�6l J`��d��#0?�� ����@6�#!GQ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G�<8���xp#Á��G�<8�{_���0#��������������G�<8���xp?�8ɰ%`��rف0K�����������`GXRfl�����Ӧ�`��pف8K6`��b�������������0(���"d������&m0'k6�?�?�0�
с0?�?�4L �������y� �M�0?�?�?�?�?�0L �0?�?�/��{X��U��`EL����� �`�����f[�I������L
:������0)������`R ������������������������`R�����������������G�<(�@�
xP#��G�<(�{_���0#��������������G�@�
xP#�2l AX���`L������&�`��j��ԙ�0?�?�4��3X��6`N������m0&�8`��a_���
)y��0?�?�0I�L ������ #�`G �� x`��m�k~�`F ����� �L�� �`^����?�-���
!<������������������`_ ����� �`Q�0?�?�6I�GX��F �������������A`R ������������g�?�2�
Q��y��������s����?�?�?�0/����0#�� �`G�<���x0#�� �=�����`D��x?���L���x0#��`G�<�����&��������f�,��R`K�����`MI����N�5������f�,ف�����`F�n�#���������������������������0+Fp������0'������'�6`������������0/D��������`�������������_���������������������̶���d�u������`R ������`�d �����������������������{�(������'0?�?�.����@1Y���� ��������?�����@���������������� �={�.���������������Xv>nk\��������������������pW&��AFr
$�J(�
0��,� ,��0��(�
(� (��,��,��,� ,��,��,��,��,� 0Ë(��(��(��(��,��,� 0��0� 4� ,Š(��0��(��0� 0��,��(Š4� 0�L0��(��,��,��0�L,� 8� 4�M8��4�M0�L0� 4�N0�M4��0L0�N4�?�N8�L4� 0�N8��4� 0� ,�L0 <� �4�0��4�J0��4�@4�@4M���<�4�8� 0�4�<� 4�� � ,� 0��4� 8� 0�@8�0 0�L8��<� 0�8ӌ<� <�<~/�c�8�8�?�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?�3� ?��48�M4@<�4�<@7��4O��;��<M;Ӏ8���4��<���4�8� ,�M0�@8�}7�M<��<��<� �8�� 4��$�4M8� 8�M4ӌ4�K4��4�@4��4� 0� 4�L0�<��,��(��0� 0��4� 4� 0��,�K0��(��,�L4�L0�
,�K,� 0��,��,�L0� 0�L8��0��,�L,��(�K,��,��,��,��0��0��,� ,��(��(�
(�J(��(�K0��(��,��(��(��,��,��,��,��(��,��(��,��,��,��,��(��,� $�D<
���M�(�����I�����0�,��O�]�F�������"��:&���t�Ĕ.$���������"���i$�n���R��YA9I(e$N�+‹��B�+П�C��Z<c@����4h�������0��f�xl������3��M��W���*��_�ħ�9�
��w�=�����[��䓡�p5��IrKЎH?�'�f�7+�4�{�\+x��u���uОM` � � � c������ I �!BP�"ࢠ@(�Y/+�葊x~H  � x�N�j%tZ�#{��@�$w�i*����8p�P��d��������(|��ӂd�$�$~S��(2�@ypFN:{ E�#-[�!����r#��.N9�8�o�r䚝q�8�+�c������ڑ��6*x�A����B|S��Qc�}P!*F��8)(0�w�Wy-�4����J�ty%��e?:_+�^ ��A&�SH�~9�!xGĨ��b� %2�J����4jS�� |����Q��M�
����%��؀D�����E�E�b�Q#�����#�-��R��J��|�(`c�1���Rw�2� %�T�$� X�#�q�$"@�)
�w���b
Bpσ�!�>a�9�a�D���N�!HR��=C�c!HR�!HO�z@�"�V$)
B��� �`J��@Hto�m�@ꆐB�:C������>$��0�xt ����������<K���
ÂpN � @!���#���q>@' ��0F8*�"I�}����P�렴$\N��HK{p �V�'Ȱ�g%�'B������A���*�3��;���'�>(���Ӗ r�(K�ܑ ��"��VG���蒚�b���״jC�֏��`H�(!��
��%4}|�����(�A�(����u8 �N��"��!<w�!�iY;���dd*-Ka?�,4�)��HܘI�l��pN��E� �~��0ڛ�?��?�ߛ�~o���/GqV]�#�ߛ�~o���7��ߛ��Gq�U���7��ߛ�~o�������P�8_[�[PtXK��H�q��������:� ��xsG<s�<s�<s�<s�; �YVx�(ߛ�~o����?��o�mC��?N�nE�fpG��s�pN �On���n#�Tr�؏���2����{���QK�oI���q�+���ç�n���iHV���w'�L��L�y|��_�4�8�DīB�DȪ
K� ��)�FR��TK�€�L�L�P>99��WVQ#��)�T�)
�K[@�Z������X����)�o;�QCLE�Dw������("���5�|q�-��H����{�Md]%D����rU'\�⣠<ND|����J������?��$܌_����E��F��H�Y#G��&�O��?yWՔE��V�� ����ĶI� `3@�����������vH�.���H�X��' �Yv��Ԃ�:���{��������?��Y�✱1����{�,����c��\<�@[�������O�h�9�"�J�*U�Uի���pr#��2���i�=========Y�`�:B
�� �9bc=#{���Y#wy�.�y���<�q�&4 y�����������NA8��j(o�$`��^Ay��^Ay�ӦI�7�YJG�F� �' �����6��7�.XE�TK�,dZRO���3���fV ��I?����3���?��3������´g�$,�!�3���;��BJSE�TIܪ����-�xѓ�������o;y���v�nV �"𓝼��o;y���v��� ,+|��R<"<�r �&�79���kH |��q$0���g>�o��з�f�E �!�H�Ў��[Z�-�[p��mw�r#%B�g�$,�!�3���;��BJSE�TK�,dZr/��������ѽ�7�~8#�8#�8dx��=LSV8�qGqGqGqGqGqGqG՚��q�G��p�pGo��o��oF�n��n�� �܍�ɱ6&�؛�].�K���t�].�K�����.�K���t�].�K���t�].�7�����.�K���t�].�K����؛bl@�;@�����blM��K���t�].�K���t�����0�t�].�K���t�].�K���sx���x�������ߍ�ѽѻ��������q�������ѽѿ���<"��Cp� p�W5f�՚�Vj�Y�5f��a�1����x�K���t�].�K���sblM��6!��F�ӵ"������JAlť�x��0�1�!��~/���+��}�����Rp�;�DD��%n ��}޻�i;�^!|�㿓�srq���.)"��E�y���;�As�<�� ���Up���f~.��N4v��� 2�� �O�m�ôh���4hˍ��o����^������Q(Y��v�g��߇���]�(�f~I��G�" ���J��wv�4��w�����V�����6�i4l��F���H�.˲~tC���� �M�1������sf���n��`��g&'�;H��ń�Nn�㿓�B��ԩU�ejիV�WQ��V������ �,�I;��t�Y============;'�`@�A���<xuWV�Z�j:�YZ�VU��Z@Ihs;�ЉO��kZֵ�o��ڗ�sh&�&����&���w�� ��kZֵ�kZ��
3�/�<xP�jիQ�ejիV�GU��R�*�U�V�Z�jիV�0���� �a======%�������Y====;'�H+H0v�� ���-If�� ����
�O?�� 1�aCΨH�w@V�ס�C3P� �ϡ����kC��vY�@�:�P.P� %9�']
�=�������<����� qT@��I�dL�AAc__n����ۯ��1�R��T � ��;E��N�� Z4���Z4����B�!.*�~/��!�,��((,k�����׻u��f0�R*�1����!ek�^�W�<��On����'��oB�O�S��`F �0���3P�"���n���kP� �ה�7C>���T�&�� s�\�1 |�����WUԨ�2�]WV�;�qh
�-����t�>D=;����������.���������zzv>A�7PO��;@���@�U�ujիQ�uYVU�u����T�<���u��1kZֵvf��kY�kZֵ`�)�/��x��������T�<���u��1kZֵvf��kY�kZֵ`�)�0��-x����j���GQԪʲ�FU�uFV�WV�Ӻw�� "����4�>G�zzzzzzvOOOOOOOON�����=W>A��~_���N*�7����j�.Y��fc݅\���*��:�4w΃��!��J��i�k7��w���pe��]�I�A^`"�JX�� h1s��IgH����.�I����"0g�BT�R�SDfKd�#G�>I���@�������yG(�T\M ��i�G�0�@��w#�eȯ>{��4j߿������,��ya%I%,E4Fd�>"4x�3��I�K�����yO��r��E�4���� v ���磗�w;���H��ڻK�K�h���u�T���:�4�����v�+�5�ݬ�v෻��w{�m{������ȴ� ��Y�|: �r9<����U�u]WV�Z�j��1�������W'�t�Y=VOOOOOOOOOId����]=WON�����g�-�b �i�Z�jիV�+�kZݝ���
y�m r.?�ֵu�ֵ�kZֵ�]v��"�1�<�€�ⱬ�Zր-�v�-{w�kZݝ���
y�m r.?�ֵu�ֵ�kZֵ�]v��"�1�<�����U�ujիV�*ʲ��WU�u]WV�*ʲ��G�����g���ON�����zzzzK�d����������zzzvO!����P��V5�kZ��{�סvB�+f��8�\�8��@BAx����nO�6�n�������Ct3� �>���ܚ��pG94.P`o#�k�D ��-�8�t+�
�B�Яv���� ��R+ItSLJ+�T�&Ri$�/S��:�N�S��z��i4r�j�/9z�4���G��;��{�^��l ���j�����u�C!���]���ø�<���I=K���N�S���uޣ�ZM��� ��^��k�D ���`���{���{t/B���d/-����Q� p���@"��<J)4������Ct5�kP� gCt3ܟ{�G+\�L˔��SH
Q$
�[׻u�۪�ը�2�j��A����BB`=M�YVU�d������];'���M&�����Ӻz���������z��$_�
@���Ӳ�YZ�j:�m��k;Z3�p�0?�hC��i��u�պ뵭kW]�kZ��f�u�Y�ٜCA_�/N��2��f���� ����gkFx��� q�m35n�Z�]v��j뵭kW]l֮�k8�3�h+������U�uj�uZ�YFQ��V�VU��C�a�� ��6�eYVU�d�����]==&�OOI����Y==;'e]WU�u\= �
��zv ��ֳ5�f�QY�Њ���)˱p�t��/�� �<H��h��Hw�H�?ďwx�߸�w�����2�"��W��
9�
� � �hDQ���s��'H��u{�.��o aNY�ҭ ^!S�����|��}'�I���'��'������P�,K!����i6$B��d$N��� a����@������w���w3xK
r�f�hh:�
���=τ������=�O���=��>�=_�0J�%����W���"�*8�g!҉�/wr����4ųN]���� apVNO���E��0��H����?����w�����w H��+ːqȺ��sI�"dP� ��"u]��ej�uj1f?ƉN'E�� Q,F���*��eYVON���=ZwOOOON��ӲzzvOU�u]WU�r4 �A�:t�&"�Z�Z�mkY��,G��Iʲ�������պ��]vf�u�]u�]�g]v���j�%B|n��Vx4��fkZ��� O�}�k;Z%��I9V]�p���>�ڷ]����֮�뮺뵬���u��]��O�›��H�A 1v��U��QիV�Z���0��i��L�«'�t��Ӻ������'��������������vN��;'��d&J���iL%�Z�ִ����c �/��2e J|= (��"lзb}��f�z�/Bڅ�^���wB���[�>�B�HC����(K(d�4x�1�0�:���g[k��T�q`�=Pғ����.Dc��S���Z�S���u7R���u�r"��������������/�"�^���Z8��_b�C�%Aꆔ��F�r#�:�N�R�:�N�S���u7S��S��x~��P�\+#�1�ᄂ��y�O]��c4L!|4d���*� ��" LO�P� ������^O��y>�B����_B�}��C��Qx
��������/�"�^�2��X�# `_�< ��x*ʲ�jիV�Z�j��YZ�jիV�WV�Z�j:�GV��<�x_��0�2�jUf���������3H�·fj��uڷ]��u�]u�]u�[5�u�W[3��u���=� �~*��ր-�v�-v�-;w�-w�ֳ���g����#
ݙ��-�j�vf��]u�]u�]l�u��]lλY��`����0��W�V�(꺕j�D��ǐ�N�ժ�իV�Z�YZ��Zzzzz�j��]Z�jիV��V�� ������p⭝�hQ[-���I?Ĕ���(D�yf�4��#�mE��������w���wq>��ē���\��`�I[/�#G����<�'س�r�S����H����i������?���4�x2=ߔ����x[��'���"�4��G�-�o���� ������~�Y�9z)�ԏ���O$q�y �4�H��?������o��Ľ��8 ��-�jW�#G� !�y��¶[�qr(��)�9�P� ��k@���i��M���7���w���������E�.v �-��a?�g�!�Ċ:�\+�� ����BL>��*2�]WV�ӺwV�Z�Z���V�(�ժ�:�Z�i�;'ej�ej�uX>������A�u-h�`c��a�=��ڻ2�v��kW]vf��g]u����]lλWk;G��G�1��#���[
��n�������h�`c��a�=��ڻ2�v��kW]vf��g]u����]lλWk;G��G�"�CU��Q��{:�
@�6U��2��Z��*�իV�WV�)V�Z�*:�jիV�WU�uj�uj���g����1�p5�D�s?�E�i���/�}��iy˻K�˾]Z]�]Z]^]�K�˾^=˻�{y{w/�����p$9�`���Û1�~�"b�C�э��.�L�����Ö���+�a��J�W����r�������,]���K���g��Ə��~"���Z2��-7w�h���!F4���G0V� K�XrÖ���+�+�_��� ��XrÖ��v��.�]�_��6cD�Dh�����g��ر!D
V/�/�}�{�݋�K��˱w˾]����]����׹|�/�ܾv� �?L��cG��?P�h����F|Όv�1��c61c1#�ə2�˙q��0�
0�
0�
0�a�˙s.e��3#�$b�,͙�1�c�;��>s������� ��M���y�Nb�Y�1\Ę� �9�0�ØS
a��0�˜S
aL)�0�S
a�9�1&�sbLV1&,ŋ�1h�k���<��& hݠ L�� H��J�q��8G��t�,Ř��I�0�Ø�a�9�0��saL)�0�˜sa��0�Øsa�71&$�cb�X�c�&����,+ @V ��X�s�f{�:1�c��s5���a��1&c�2e��2�\˙q�s.e̹�2�[��2f8ČH�a��l�q���;��>g��K��G����/�18}p���e��d����?�)����߁��x\t�18?��Ƿ1������^���p*�›�S���
��S������cq�[���Zf�h�����o� �z�����ہW����›���_�V�Ÿ��f��3�nfq���^<.z�-��Z��c����Z~��[t� �N���G���@���;@��������4h�������-x������k��3�o�i8B���P��������D��&�_�����#���Kr��HI�LPy)��%m+�Q�A��+�2oV �G"���I��gI3��(%tG�z*�1s7��=�^L�/���+Z<�h����g��k|l�� ���������0?����'�����I?�����G�U�!?���o�������䛓~L����%9��>��G�f�7ܖr���ft�<��Hre�Do�o�o�xآ@|��U����f(��Zir r4��9�h��"�w�ǀ2��q J �.E�)�����8�h���#"^R\&��\�!P�@���<o�������:0@���� �'6G�:@�l��R D5w�}`&�F�ҍ�X�(�Ti�9�4��&X�A�ƔҀ�\�8͒,? � � J_�k�p��Yt}�t��x��8��"����R&��B�O���F����!rN�t����$���Qʃ���|'<ri��:�RD�fE ���J$�yQA�D���4jS��?o��I�e$���/BI"6Gb��%p9 �8���AfGG�k}���{���"����@N؜�������6��2$��($����*N˔,��@PPs�R���k#�h��B��8�DT�Ԉ`
�3�!���
��&�Dԓ�HR�! d+Q�R�h#��!HR�CB���V��H��
B��$��H A�4�-$���-��-�$��ր� sJiM)�4����b����JiM)�4��ҚP���Gy�jMI�5(�5 ��� D�U���&�Ԛ�Ra���4�'q�s$hᐍsR���F����.%�4�
'�8~�� 0\��~���rs���%́Ve(<�z�sD�����2� ��� 1Vp��K=B"���1Ac�2���B s���� R����� ȵ�L#�"n � ��`Maj0cɡКN�듧i:��pO�3$���'�DDw��1N��$��v�2LrX#b�/��ӲAc��͠ `�Rj:6�cR����v?Epn� ���h�5�GFѴmF�A )E� $���6��h�6��h�6H�=D0�#š���h�6����tm5�n����-��-�� ���Ni�9�4�ӚsNi�9�:�@��5&�Ԛ�i�9���Ԛ��Q4e)- �mFѴl�dk�h٨�Ct7��w�lԣ]5ԣco�G��䃃W7�YB��2g?�����ߔQg����<Fx����{����H��Q�⦁�*?��u�.�|Ur��&)�rػ%�*���p���NH���o���[d�K)F�<��:���W�O����8'�������+P�h�ww����,����*�����<���������J w�iBb7ë�������ߚ���0IOBC$�\)��ОB85s땔,T `-�aRL� P�����>�'�ו%� ���"A)�ǘ�!�sA8)�◡eA�;����eMV��-�x���\]����) ��d�"�{����8n��)A�pA����{����{����AH�JGC�臤o{���$n�H��4c|z�do�lx�@�2@
�p��M�k[�Z� �Y�"��
�?dL|.�뮺뮺���8�rHz�t0����zF���H�F���4�
+�F?8.Ì��W�j���<��U�W:��ήu�pT���LN�u󯐽ξu���|��(�N"A:���չ�Ξt��ӣ�,&<͉�}�4��������7 n��&����@~�8N�,1�c������? �J���]�"= n�1�ش-��cJ�)��= y��d���=9��NzsӞ���:%�����$��=9��NzsӞ���bK
�' ��{�\����W:��O:y�Ύtu'�eOx��n @ ��h'���(hp����C�� %Ȭ�
`��x��7 n�lZ��1�t��l�B�n�i�5��ך�^:�uGTuGTu�뎸���� ��~�c�;c�;c�;c�nl;c�;c�;c�;c�;X~���e�뎸�a�Q�Ƽך�ZkMi�1�1�3nm͹�6���e2�L�S)��e2�AH��(X&S)��e2�L�S)��e2�L�S$(����:e2�L�S)��e2�L�M��6��ۀ-�v�-Gw�-6��ۛsn�L�S)��e2�L�S)��~B��e2�L�S)��e2�L�S)��e2B�_�h;#��\u�\u�ꎨꎨ�c^k�y�5��֎�1�1�1�1�5��֚�Zk��5��"_��)�5����^k�y�5��ך�^k�y�5���8�AA�2�L�S)��e2�L�S&�ۛsnm�G� ����*b.���� b'��A�����ہ�����F�1�s����jva�GB�@=�� ��:_�9x���䏎�Ly�* ���8V�1;��&DM�
|��c���<�e�'à!�3�֠�<ȉ�!�hvq!�P� �>@ôh���4hˁ��?���
R� Io$��1��6Q7�{�>���>��%r �V�kT}��Xl�Ѓ�Po��E���ہ��.�����vJ��K� b+�\D��:�yO�Dx~���;��w�.��C��X�h9R#��"'d�@�q�ćgN��ֵn֭�fj��u�<>�X*���il���J뮺뮺�T�ˮ�8^����.�g6��]v��W[5�k@��0#���Po�+��kZֵ�k�| ��g�`q��ʀ-��-?Z`F = ��W�Zֵ�kZ����D� `K�xW]���u��j�kZֵ���u�fj뮸�� ���#�R1J�u*T�[.��u*T�Q�R�0�:�g�`q��ʀ-_S��:�[���!�@�<LB6A�<E�,D�GI�?I�'�����]��O�,�>*DL��~���0���p���Uڣ�=�z������{�j]�aX2fd焒8���__n����ۯ��~��9˱�1� R"1Q�I�Z<l�@�4j#��?���S=�p�.ǰ�32s�I �x߯��___^����?xR��������!c$EDɸZ�v���u���o�z�N�V�o*�����<�̄lD�HPJ0��ޞԞ��zOI�;��&� HP����������-����vf��j���]p�4��Z������+eJ���*T�R�J�J�+�Q�q|A�X� �H�D���e�˭��k:�����7����W��*��ֵ�j��kZֳ�ֵ�i0�T�~+�I������`�����5EA9Zֵ�]��kZ�u�ֵ�#&j�o��iJ뮶g]���ζj��[�̷]u�Q�L Ũ���#��T+�R�J�*T�R�J�*:�*V�H�@�D���\� �������h��[s�,b�\�A�0Kx�Ilq��AM�I$����8�����~��q0�@�0|j>RA�y�p�"��[;�U�Gwyc��⻐i0 �\�9k �a>� ����s����=?�{�������[ɔHA�z���yԅ���C9����� P������F���Wr#/� ���-dL#�B����?�������V}�^T��c y�8Hq�&�h�r:���)�t;��Ў�Y�-��Ō[K�h>� o9d�t��AM�I�kAq����߿~Z���Ҡ`��|2� �z����� s�[r����n��u��e�Q�p��X����7A�R�QԨ�T�QԩR�J���*V�Te*2���}c�I�3�j�.�뮺볯�ֵ�;BTz 1���L>Q�kZ��kZֵ�kZ֮�Z֏�D?�7�4�x%F3Y���[�Z���ֵ�;BTz 1���L>Q�kZ��kZֵ�kZ֮�Z֏�D?�7�a�3�j�.�뭗[.�g]u�뮣������ ��:��4ԭ��R�WR�J�*T�R�J�*T�R�I����a����Z���z�+մZ����Q���1h<�!��7��J'�&���n�=?I�;�w����mIv���A�h9x�x���#dhZ��=un�ݪ��ݺ�u�]¬l�~Z� �ʂ$��S�4��z�v���u:�N��}KI3��D�/ �h��Y�>
��eW�u�����h�@�<h�[��_��*��Z'��`Ɍ�"@��<�Oj���j�N�S����GԴ�9iK��𘖈��h��� S����W�}Wj�V�m=� v�
19-�l������S%֓�zOI�<���v�����_I|�8����@{%��!��r6$|�Ǩʯv�ݷ]�u�[(뭀�l�����p
�el�J�*T�R��*Te��*T�R�FR�)[�U#���9��+u�e�]u׶�ֵ�� q ���c�0q�5n�Z�]v��j뵭kW]l֮�k8s ����`c� k3Z�n�����ֳ���!����=�p�6f��kV��ֵ�]v��j뭚���ga�{��)���[��-�]vuٗ]u�[(끼�@��w ����J��J�J��J�*TeJ�*T�R��R�FR�Gp���`c� k3Z�n�VnЙ�8*�0p0B��'�?��C`^:A�r�8�A������P�ܠw��-��� f-Ř�����8Ad�� �����u{�2��”[AdR��+��? Y<SH���ߤ��=�O���=��>�9�@���$��\@$�g�
>�.C*������ߴj ����z��q_�J-���)Ra�Q�,�)�d����m���'�O�����w�ρ ��R R�{ �:d� ��"�A��w�ܟ�@���*A�� �� �pD6g9=�KM^Pٻ?�ܠ��C~���w������,���lȅ� 9A�Y�B����ʮ���뭔u�A�
b���>=l�G[)[)[)R��R�l��T�R��+u+uJ�2�,��=?��� �д��]n��ֵ��� 5�"�P��Y��ڷ]����֮�뮺뵬���u��]�h\����R<5���v���h��-<h�����h��Y��� bȍ&�պ��]vf�u�]u�]�g]v���j�#B�5���S ���Q���˨뭔u�Š� �XS��4�YKe*:�J�*T���R�]u�[�R�J�*T�[��V��?�����xkQJ�k3Z�Z������ �ϓҋ��?�������M�7�ޟ�ޓ�zK���?Iv����>��3\:��/|��8\����<��ݝm�����8�)I���y����:�N�R�:�N�S���u7S��S�n�8���&�/�4f�x���[��������\���%)1��7 �8#��S���Z�S���u7R���u�s��Mü�b���3��<a0n ��^��;=^��!5B�{������t��z~�ԛ�oI�='���jM��}�]�;��|g�)#���ɬ ����F+}{����� dO���T�j�l�Q�[(�eJ��J�:�*T��u*WR�)]J�FR�]F!bco���i�����2�kY�Ty����� �o-ٚ�2�v��fj�u�]u�]u��g]l���뵝l>F�����x%F;;Z��N��n��n��n�Z�`�h�����A��vf�̷]�uٚ�]u�]u�]u�Y�[5u�:�g[��;�;��li���]u�]G]l3� �c���)�ɤ�[)Q��WR��]J�J�*T�R�FR�u+�[��u���nn����� ����kC*- �n(J�RIb"yq�dٛ�Cn���?��,o�{� ����ww��K��������`m����w:j��������Jb*E ����s��o�S���T�{ ���g������^�f �`�_��F�Q�uHc�����Z���������+�Ĵ0D�A������Cx����}[�T���=���s}����K�����Y�l!��#d"�s���с��℠�%$�"'�- �&ִ'�Z|����{������S����z��sx�p(1F��l#d(�:�1�\2ǐ; ��!�hp�
�uu��GQ��:�WQ�ˮ��*Te�]J�un�)[��V���2��
�=�\�P �J뵣`|�!]���?8'��ڻ2�v��kW]vf��g]u����]lλWk;C�)Oq��d#`_�� a^�m�����q���Y
��=��9�8�f��ٖ��n�Z���5�k:��֮�j�fuڻY��J{���� �:뮸c�\���<�8&ZQ�u��:��R�����l���뮺��Ԯ�R�����n�(�V����g����d#`_���,�a.f�o��K3̀0
�'�W�M�<ɴ�f�6�W�\��O2���2�2n�O2��S��vs'�WI1l{��4<�i%>:���*d�O�Jb�� ���L�ds#���G29�̎ds#������F�C�C��A�*d��#�&9�rJ�,��-�hї�i��� F�����*d�O�Jb�� ���L�ds#���G29�̎ds#������F�C�C��A�*d��#�6P�%0�H�5��ƌ��%��pA#2y�̛L���̛̫̫L�es+�\ɼ�v�N�)�e=̛���2����t���S�d�<.IPE� �P����byn��h�&��7D�1���&��7D�4K"h�&��h�&��6D�1�Ș�dMD�1�Ț%�.��h�&y����� ��J����q2��.��.��.��.�dDѢ&��4E4\њ4EDQE4f��dE4f�"&�D9�ȉ�ȉ�ȉ�ȉ�#���S�/�x�7h�7x�0�,Ĩ����(��艢艢艢��DM"h��DQE��DQEDQFh�DQFh�"h�C�,��,��,��,���9���G�^# H�����<��h�&�dK 7D�4MD�&�dMȚ&4��&��h�&4��&�tM��%�4M���dM��D�&���?���>������^q��2���ۆOn�d ���߆O~]�]#�n���rs?��<=���=������_� �[�`��_���C���� Z8��n��-��#�����ƿ���Ʒ�������`��������98F������^�_ ��]�?�O������߆_H� :G��_�3���-��-�v�-/w�-��-��-�hѷ�ik��Z:�������׀-(gx���s#w��P��g��#���g��d� ?̏������g(��ro)亁􄭈�c
:�/�+�!�&O�J=g�
.WKX���'��X��4����I��/�]�H�\h�� G�Z<���������6` G��h������������'�#����/��<��T�-�������������7'= �E�.�)�K9��/�w�~'9+�o�~��rm�@y;俒H��������D�S�Ua��xB����p���T8 �9 f!���/�(�����!eP�;���'!e񸀚�4��L����lM��.�-��-�x���� ly�8�3@��0�&8Tx��@\䝆�����;��<��"�׀�;�ȩ8�Q�Q�8�$P���5��1�=�����������Uܓ����4��g�Hg��ĈOch=i����d� ��3���=��|A���8H��6������U����L ��G`��Puঔa.��N�"$��&����� R��A���U���D:J"FN��(���+�3�k��`��Ȝd��4��_�jl���q����qJ���eTs�7��sG�(-#Y"C
��0^��b�� F1�=��\ ���H�(�פ(����B\��Q � c$m$Qrv�
B�� S0�E�@<�
��)
B��#� �(���S�
B��$��pKѴ<DbN��o�m�0*H��ØmF�mF��5��6E;p�Q�Q�Q�Q���&���b"��.���Cĝ��V�`.�2.������x�!;��<R3��F:.���{9�Qg�p�q������Ʉ���nNy�xR�X��� �$�ž3��—Q��5�� �)I˙v�/�"��S�wnjm{@�<mh�K�d8��Ѯ��
pPy)rs�*���) ��;H�'�rqy8��KXA8/�ˈ�&_����]'S�c8� #_�p���Q �sh�eE�2�d]6A�+ܑ����E�2����2��(�Zt�� �"H�2��(�2��(�2 �$A<L��f��(�2�����2�`тh6���ڃ���(�N����.�d]E����*ȸ �B �.����2�d]E�B�.p�̭h�2��(�-����(� &�`�b��͔R2��E�.��G����@�MVn#o'��R�����B���^
n#\N���߷��1.U�>��%2h��I�H���v�*��qLgb�B�rn�u�������k�%� E�O���$u#��wH�Og����h�3�@U��-��TI h� Q�����7��������"\+�<��x���8?�� CK�nIԓp��5�������3�H '< @Al�'&�7�O"����Fy| 䰤&İD �������Rpc.A�[� _�H�:����h7�z�M��4g�T �`*�G&� (�0� �e�`9��(@���l��ݒ4���{�7��� ��D�Q��A���{����{�ƀk�JKФ�/Adg"����{�,�����-��6 ��p����8�a��ǘ�#�������!XKD� E��l����x N"Z#hRb��3�OH����H��l�@?��t�!�a�8Le�^^��������������� ����*?��?��?��?���%�W�$�.G�O�}s��\���>����gB"%���)����e���7�o��HB�2h$�AQ ��3�gp���� ���qT���7 ��3xfZ��P`��M?9�[���'�?9���~s������H����$��?9���~s�����9%�W�$�.G�G�G�G�G���1��/��,��ˁˁˀ��Bo ʒ$���9�9�9�9�9�9��p��ܚ�AQ0��p����7�e�}.a e�"���mNI�9'$䜓�rNI�9'$䜓�rNI�%�9�-�i�9g,圳�r�Y�9g,圳�r�Y�9$<������� �� �� ��9�8���s�q�9�8�<����s�i��m6�M��i��m6������m6�M��i��m6�M��i��m6�<�BJ4�m6�M��i��m6�M���s�y�[4�Z��Z2s�y�9�=6�M��i��m6�M��hI/�[&�i��m6�M��i��m6�M��h���^&NI�9'$䜓�rNI�9'$䜓�rNI�8���S�qN)�8���S�qN)�8�$_���3�p��8g ��3�p��8g  ���IF�M��i��m6�M��i��s�y�9�u�_�v�iW���b���&uCL��9�|�?�����i��0p)����܏4���@�wg��{p��������?9�j!�j��qvb�y�y�!c�
�o������7�4�G���5+��}Cgy�sȄȒ({򓍮]�=@ôh���4hˁ������
5�5I\]���wCP���|}������p���^�Ԯ$�P��i��$P;}�u��������wN���W�s�L^��8��# !�Wó�k5��c��
��@�(��iI8����� �$P��'?\8:?�����kl��� @>FE�
&�V��ֵ�kZֳ��٭D,H��4��MkZ�k��ZX���
~!�6��ֵ�kZַ�6���M�~��`�����zh����m ����kZֵ�� ��?|b ��۵�k[���kZֵ�kZ�h����F("�qn���ֵ�kZ�u�]l�Et�8�_�8g�0��ۮ��ݗ���3ư6��3�:�,E���5:����u:�K��N��� ��2 ��dy�"�l�.��}n��ݠ F���g���\�BwFQ� ��q��ۯ���v��������#�����s��6���-�hѦ�-Dxѧ���+'����EpBM �GX&���__n����ۯ��n3���X���|k��"�l�.��v���}�v�������3�G��C�t@~"��<�[��Z�W���K��pK�'@7�BD�� β��._����kvv��kZ�F�E ��5��M]uٖ뮺뮺��κ뵜�C����R���)�]�fk[ݭ���g3�`/� �0E�� -kZ֮�ֵ�k:�kZ֞�,B+�B�BL���[�Z^�g��_\`��3�@Zֵ�]��kZ�u�ֵ�< X��)��)�k;Z��kZֵ��ֵ��2��aJa��^F�뭗]u�u*T�R�F]u�]u�q�����M � 3ƣ7����Ň<��Y�-˃��-'4�C�AN$�vl��������-��iVg���5�t�#dN�'���Mr����������܁E�YA��?L��A�D�H9�B �EA?����?�������4g���c( �"��2��!:\���C8�w�-�h�'����������ePj-��8��j�q��h�PO�������yY���4g���7( �=����<�����Ϋ����L�qaŗ6��-��r~嬁ɤE""p�a$ROۑ�����ߕ�w��q4g����LD|\ȩ�(q�.t�!�F;����fjݙ�� ��W���Fm"�뮺뮶]u�]u�]uu�]u�6��A��4��H1���f�֭��o�����c�*������F5�j뵭kZֵ�kZ��kZ<҇�s��Pl�k6ֵ� b� ^���ַghQ�`����
�ֵ��ֵ�kZֵ�j뵭h�JA���`R���l֭��f���[�5��4) �E+�AB��E��]l��:��]u�]u��W]uu�ch/D�TF1Z͵�o����S�h|��*�|���5�b8'hĎx2�^�����{U����wW�9u �=��5tZM�$1�h�YԵ}��u�g�t1J�i,��&�&~� ��<j^�]�u:�N�S��R�˘"��ح%��oCt "̐}{�^��l ���j�����u�g�t1J�i,��&�&~� ��<j^�]�u:�N�S��R�˘"��ح%��>a�!��#a#Q��z��_R�ڧ��@m*��kk�mq
�#cƟ��[Sޟ���w�ڟ�v���˪2E�5(,���ŝ�$^�׻n�kV�[�-��e���e�]u�]G[.���R�u�]u+��]u�g �������"�vu�V�]���ֵ�� ��Q���� �P�5n�Z�]v��j뵭kW]l֮�k8nD�!��� �fֳ5�f�[�m��k;Z�H�-���`��fj�v�n��kZ��kZ֮�٭]l�p���B��Y�p�ٝl��ճZ�fj��u��@h-��p.p ����]J�uԩ[.���ԩ]u*2�W]u�l0\_�Dy�p�kY�ֳwI�����/�� D�$x㛰�!D �8l��i?n��B��^����� ��q;���e��0MI��2p����F).����Д�P�/b`�<А���V��%q���6�On��'�OwzO��7�or��x } :�p�`�Ћ��]�[������߿����^������x,I愇x�B��!(㏇�I��{t��?�{��}�q�3x|`�+�#�0��� ��(���z�k�����v�Ŀ�����yXH�����rw�V�m���O�'���y?�r~��⻁&�
b���1�c�U"NP�Bs����V��ve�z !�c�Bc�, O��뮺�uu�R�뮺���e�[����뮹��%�g�Qp�%�����g[5�gkK���
O_�l�gx�j�[����fkW]u�]u��u�k:�f�Ӽd�Ȃ��3 �/KZ�ִm ��4h�Z�v��!z��E��ɖw��պ��]vf�u�]u�]�g]v���j�;�Hl�'�Q��7K�Alζg[5n̷f[�^E�/��j��x.�������Q�ˮ��*T�R����eԮ�]n���!�>�x�����%�fkZ�S��pl�^���{�� #H�6㍕��z�+յ^�W����z�����c��)���1=I9��<`H6B �Q��m|f����0"ڧ�)�9�!�����u:����u:�MԻ���G��C�9L��1=��4a����-��[��������[#8h��j���ІCΧS���Z�S���u7R���u�q p"��3�|��$����ٲ����S��l�K3���h_�3�l�p�ez�^��z~���z��{�ӻS�S�S�M��q�g����'q�8�6��9o�ve�2�J=B����P@�]u�]u�]u�Q�]u�]u�]u�]u�]u�Q�iF�t�0B1��]�lֵ�) )Ƨ��Сa��fj��uڷ]��u�]u�]u�[5�u�W[3��u����:?�)�`)#;Z��N��n��n��n�Z�`�0���?B�y��ݙ��-�j�vf��]u�]u�]l�u��]lλY���j����� S e����veق��
���6��=k��뮺�uu�u�뮺뮺�F]uu�]u�]n<ҍ����� ����kC_Lf�QG�JɌE��-���M�m"�����+��߁9���P�wx�����A�O h����� �q5���b�,��o*�?�N�N�B?�?� ��;4?��������yb�~$���ш.��g(cW�/@DP�:�{�����Z���������]E�Z �QG�IЉ�HG���;���Ƈ��4=����,^�ķwy�b ��Y�b�%� #����_Ũ3 r�H��ab<?���f �|��B����W����������w��.���ȑ�_��C����̷ Y���}�`
�.���ˮ�뮺뮺뮺뮺뮺뮺뮺뭗gT
�؋���<��u��hf������� �Q5���ve��[�֮���kZκ뵫���ٝv��v��P�7����Z�� Fݠ M�� G���;m���z`�k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]�� ��?�o��g�h u��h�*Ko�#���'�]u�]G]G]u�]u�]u�]u�]F]u�]u�]u�\@�#�+���� ��H��@Fo�����(ۚ�٦�Ƈ49��hsC����4��C�h>h>h=� �h�8T91+�/�_����e&�Q\<���L�Ј�?�Lёj������������C�>�~������!.t �%�{Lj���@�4h�������o�TW$��?�"%��dZ��~��~��~��~��~��}�����C��|d;�K�*�_� !�I5I��-Gp����&2���Xp���CcC� ����Ƈ49��hsC��49��h>h>hnA\*d�O�O����5DuC������N�d�U*�J�R�N�Jt�)��TS%R�T�U*�J�R�*�J�R��J��*�t�J��)���J�����z )�Pb'(?�?�TU)�T�ER�JtS"�TU)Ҩ�*��T�*����*��R�L���T�ER��)ҙJdU)�T�EO�%��rl5��������j D����j��:*���S��N�dU*��:UER�*�EQTUEQT�U)�TU*�ȪUE:S"�L��2*�ȩ�D��(IP`X`�B<�����T�U*�J�R�T�U�T�U*�J�R�T�U*�J�R�T�U*�J�R�T�J�R�TS�R��?����j��A����/ N�5�p��Ʒn5��o�[� �k���߃� _�28��g�y��]�^v�h����] ��h���+��3?���\lC@�<i��� G�g�y��]�^v�h����] ��h���+��3?�����#���. ]�bv��ۍ�_���5��~���#�τ��38��-��-�v�-/w�-��-��-�hѷ�ik��Z:�������׀-(gx���p`�*����@����1)��9!H���
��,�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(r ,��(��(��(��$�I$��$�I+��4��_���� ?��y����?�?������HG�O����.y�����x`G�������_��<�����_���� ?��y����?�?������HG�O����.y���?�ǘHL$�6���0�IL?���XIL#�b`��  �

�¿��x������xW�W�)� �   �

�¿��x������xW�W�)� � @\{����^y�|��K�O�S�W�������?���¿½�O�O�K�K�O�S�W�������?���¿½�O�O�J�dL$�3��2`(`���<^#��0W�/��3�8l�xo ��7���p���p_���
�7" ��<��8�Sp;��/�83��7����xo �� ,���^@�
��r ȼ Q��y��`)&�'��p7��
�w�_pg �o ��7����NX3� ༁��V�A�x'�x�Gx*`�p_�gpن���xo ��4᥃80�� ��\`nD�xl �`� A���|A��B0�I��J&&&&&&&&&&&&$�aLLLJ��!A�|A�t�H9�`�l6 ���q�����>� �@�!�B$����HF%B0�&&&%D�� ��>���:A��a�l6�� #���`�8�PqA�t�| B�L!D���$#�������������!E�"aBA����| �A��6 �a�lA�8���:��>!B&�"bba�D�����������Đ�"����B0�! �B���>��i �l ���k��xo�����g���rI�ə<� l�%�&�ͮ u�����o������%�& &d�d��L�d�h��������O�L ��\��������7�? �K�LL���d�,�07�mp[�� �������7�.I0Y3'�$ �d�$�[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڰ�����O��[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڶǣ������9���������q��I�e���gI�=�7���������v��ӌ�JM�,e��:L0�� �m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t������Խ.���m�����]���V��n�����R����m��o��-v���Z���8����������Խ.���m�����]���V��n�����R����m��o��-v���Z�兿�� �?㷎�?������c�c>H\�B��\��������v���������|�g� ��^y �� ���y�/  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'%�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�l0���
�?�>�ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�9�o{����������{�[%:w���9�o{����������{�[%:w���b�������9��ls{������{ӽ�l���2�X�9��ls{������{ӽ�l���2�[KK�u/K��-�������\��V���]K���K` m}�k��/jՀH���������R��o��H_o��e�ڵm-/uԽ/�������Yr��X!�o���C�������0C�fI��&I�v�����#@��3��2L䙒y�I�d���G�%��$�;m���v�C�����&rL�<�$�2A�~���h�f~&I��2O>I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t����� ��?������x �<�G���O����p������Ny��<�G�8G���#�����@<���y����������x����s�<��<�����#����<��y��<��b�$&C �?�٘H�$����,$�� 10�����x�xG�焿�����������)����w����s���<��<%�%�%�%�%�%? M�G�OxC�6`�=���/<�>O��s���<��<%�%�%�%�%�%? M�G�OxC�6`�xC�'�焹�/�/�/�/�/�)�Jl�=�{�����1fr����0�0���`,�n�#�<
�_& �'�1x�^/����R�<X`Y�+�<�>@c )`�,�Y���Gx��L0Ob�x�^/��8��x$�2�� Wx�|��@R�-� �J<��0��?��� �~p'�\ �d�3�f/����x�S�X'�K, 2p'�� d,�� 0���O��ɂf ��^/����x��O�Xd
�O8��
X�b"�DQX��b"�Qb"�b�Qbŋ,X�bŋ��E��)�",DX�R!�,DX��* �",DX�*,DX�",X�"*,X�bŋ,X�b��b"b"�"b"�E���D"�b"�_�`d�E��EDb"�E��EE��DE�DEE�,X�bŋ,R"!,DB,DX�B,DX��bH�R,DX�b���,DX��b��b��b���bŋ,X�bŊDD"ň�E���E��",B)�E��{f�x�����_�~s%�&2y2@Y&K2L��\u��W�� ����̗$�L���d�,�0�������?�#��� �6������������+�.I0 ��ɒ�2Y�`/l��C�����_�� ����d�$��fO&H $�fI��[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���`�?�������[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t�` �������c��lsx���o{�;{�i�[%&��2�q�&��|s��c��7�s{����;N2�)7���3��7[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m� q`_'��[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m�  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'&3�``$��^��/����;x�����3�����!ry �!rrB��������o����s1�1�$.O!y�.NKiiiiu�ݿn���m��~�/�-Z�j�iiiiu�ݿn���m��~�/�-Z�j�a ����}�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�ls���9��{����������Jt�c,s���9��{����������Jt�c,0���+%����s{������{�����{�2�)Ӽe���s{������{�����{�2�)Ӽe������^���[ k��]��{V�����~��@��~�k.^ի �`W'��ii{���~ߥ��6�ߵ�˗�j�Z^��z_��l$ ���v���Z��m��������?�g���&䙒�&I����������'���?�$œ�2O�$�2`�?��#��Oy��;m���'���� �3<���0�$̓�I2L��m��������?�g���&䙒�&I�]u/z^��w��F�_k���\�����/K���l# �寵��k.\����O�뮥�K��.���o�k�v��˗5�R���~�m�a�����]�e˖����߶o߳{�������6���d�������~������oo79��/{&���)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X_��?�fğ��������������m����_~�{ڥ�w~�/���-��k����߾^������������=��I���1�Ls���������������L�&I�2c��1g���L��_�c����������=��I���1�Ls���������������L�&I�2c��n���/����@������]����wt�K�� �_k��w��_����!���N��7wK�����7�����W|�n���/����@������]��{��l��`*{�6�m�ޙ{��{g�{ S����oN��/�����
)�?�ɛ����=��J��ͼ�zw�^�������T��m��ӽ2��/�����7��~�|�n�����`����]����,���������~����������Sw����������� ��?�����?����3���� �2fH_��������>{�'���g��^y�2`?�������L����������|��O�9ϙ���&d����������������|υ��3%/M��7��-�a�����^Wj���~������0�����}�+������������zn�鿻��l# ����W���T�7K�����������+�y]�=���߳~�Di��7>�L���o����߰�t��Ͽ�9-����`79��/�ϖ{�߿f���ӥ�n}���m�����ٿ`"4����r[��}�����J _����y~������.�PZ��+� ?�����`���?��;�o����� Ak�����/��}�����J _����yx��������������^�Ͽ�M�����?��������9{�>�6#�����L���M�&y&>{�������=������3���x��������������^�Ͽ�M������p��W������o�XN����Xa�����)�������?����M�K �_�_���w����`8k�+��~�o����=�y?���o{7���G��<�����#~o�����������?�ϓ7����y�#����K{ٿ���<��������_��v�����������F�l#������_������f�2�����������F�l#�����ߥ���`m�������?��������������<��x�������������y��<��G�G�G�G������x������?�����������?����<�G�y�����?��������y��<��?�ŘHL$�6���0�IL?���XIL#�b`����\��<)�

�¿0���ل��%6a�#� s�|��<)�+�+�+�+�+�
�Ÿ“f�0�لf�T{����^y�|��G�����NxS�W�W�W�W�W���?�&�'6a)���xK���9�O�_�_�_�_�_�W���0�ل��#6�cL$�3��2`(`����� �&b�D�ق�
�w���pgpgpg 8.�ジ(� �-�i
@����.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��l%�y��JI���.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��'�s& ��06`����s�d���������� �8��
)lE�`�@,�'��Cá�:C�!����xa��C�d<<0�C��������������d1 �!����1 ��C�!��r�!�����xt0�Cxd<2 !���xa ����t<<<<<<<<<<<<9 �!����<2�!����xd<1C�<2�� #����a ��C�!��: !�����������������!��<<2��CÐ�<2 ��!�b��C��!��� !����xd<0�C�!��2C!��������������2���C��xr��C�!����9 C���x��6� �������?���<�`13%ɒ$�#�&;`��:����?�����O$� L�rd�I&H�I���������`$�$�'l��g\�����������������.L� $��0 �mp�=�?��#��g�?2y$�bfK�$I2G2M���m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-� �,,d�ݥ��m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-�lz>9�om�����9��x���l���X��t�c���s{m�o����{�ox�8�d��2�X�3��o�0���f��|s��c��7�s{����;N2�)7���3��6ǣ������9���������q��I�e���gI��KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnXc�
�?���KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnX[�_����;x�������f>f3����/<���  ���o���������|��<�琹90��{ '���������v���������|�g� ��^y ����/����;x�����3�����!ry �!rr[KKKK����w���o�[��|�jիV�KKKK����w���o�[��|�jիV�_������������wv����m��-�|�\�jիm�����wv����m��-�|�\�jիc�������{������N��e�S�x�c�������{������N��e�S�x�`�/�`Y/�_�c����7��{�����;����N��,e�c����7��{�����;����N��,e����R��o��H_o��e�ڵm-/uԽ/�������Yr��Xd�
�?��KK�u/K��-�������\��V���]K���K` m}�k��/jՄ�m���%�F�_�����0�$̓�I2L��m�����K�����&䙒�&I� y��`0�{̓�'�o���.�4�f~&I��&d��I�d��m���%�F�_�����0�$̓�I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t�����

84
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-12.exr.meta


fileFormatVersion: 2
guid: b4e0feaca9f15fc419c0ac9f9c56d6c1
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
externalObjects: {}
serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

103
SampleScenes/HDTest/BasicProfiling/ReflectionProbe-13.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y0 �W� ���@�$��2!D����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������< �?�����3�s93�����������O���&���6�"k�����������~��������K���������% ���_��������d�����������������`L ��_�������������'O���������ſ�����������?���~zL�9�������6����� k?����������� ?���
A���X��׼�������`��_����¿����� K��"�`��d�0*k���� r���#���&y䙁�����L
������˿��Z'�&��?�`V��X��w���$��`��c���?�?�1�������?�?�0o�`X��`��h_��������d�����������,��X��v`J���`I������ɰ$�o��X���b���=� ������L +8��,�� �D�������$`H���`G�<���x0#�� �`G�<����x������9���x0#�� �`G�<�����'����K`FX5���������g������`H����_�_�������O�����X�������������� �`DI?�n`��_���O���&�����`��`���������`��b����x�����
���
rg?=&{������ǿ���W����5���فHK���K������ ������ k�`TJM�I�0?�?�/����l
a_����%��
�?�0?�?�2��5����9����X���<�L������&]`��e����������0+k���� ;�`X�o�0?�?�1Ɂ_X�����O�X��7�0,k�0?�?�4/�������{2s�`��_���C���� ;0%{��0$�`��d�t���� A������y����������Ǧ��`I���́"`IL�� �B��0$f���`G��y�`G��y�`G��x�0#��������9��́`G��y�`G����?��L�[0��������� ?g�����Dn�����,�� O�����5����X������`M�"I��s�������݁0/�����������?���K�������������W��`S�9��3����=�����0?�?�1�����
B_�O�X��$����)���`��c^��Ro�O������O���`S
����?�?�1/�`T��Ɂ����������0?�?�1������0"�L���f��Q0*���.��h�����t���[_�`��a��ē�������L
������Ƴ��"����������c_��������������������������`��aف({����'K��&�����m`J �� ���X��$&��=0$��L�?�?�6l J`��d��#0?�� ����@9�'#!GQ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G�<8���xp#Á��G�<8�{_���0#��������������G�<8���xp?�8ɰ%`��rف0K�����������`GXRfl�����Ӧ�`��pف8K6`��b�������������0(���"d������&m0'k6�?�?�0�
с0?�?�4L �������y� �M�0?�?�?�?�?�0L �0?�?�/��{X��U��`EL����� �`�����f[�I������L
:������0)������`R ������������������������`R�������������G�@�����xP#��G�<(�@�
x���� �0"fs<���&x�G�<(�@�
xP#�2l AX���`L������&�`��j��ԙ�0?�?�4��3X��6`N������m0&�8`��a_���
)y��0?�?�0I�L ������ #�`G �� x`��m�k~�`F ����� �L�� �`^��}���������}�D'�S���������������`��l���?�?�6�
A���������I��=���PX�`����������T{6�Q�J0?�?�?�?�*�������x�y����x0#�� �`G�<���x���� �0"fs<���&x`G�<���x0#�� �2l AX���`L������&�`��j��ԙ�0?�?�4��3X��6`N������m0&�8`��a_���
)y��0?�?�0I�L ������ #�`G �� x`��m�k~�`F ����� �L�� �`^��}���������}�D'�S���������������`��l���?�?�6�
A���������I��=���PX�`����������T{6�Q�J0?�?�?�?�*�������x@�D����k�������������_��@�����ϛ��?������ G?�={�.^��������������\v>�j� ��������������������1�B*��AFr $�J(��,��,��,� ,��(��(�K0��0��,��,��,��(��(��,��,��,��4��(�J(��,��,��,��0� 0� 0� 0� (��(� 0��0� 0� 0Ì(��0��0��4��(��,��,��$��4��0� 0� 0ӎ4� 4��0�M4��4�M4�M0� ,�L4�M4��7��0�N4�M4� 8�4M8� <�M<�L0�M4��4��4��4��(�
,�0� ��O?Î4ӎ8� �M4ӻ<�O4�H0��4� 4� 4�4���7��8Ӎ0��<Ӏ8� 0Ï<��4�;��4?/��;��8�?������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L��O��L<�<Ӏ7��<�����?Ï��N<��<��<�O<ӎ4����0L0@4�O,��4�8�M8��<�8� 8��<�@7���O8�4��,� 8�8�N4� 0�M0�L0�L4�M4��4��0� 4�O0�4�,��0��4�L<� ,�M0�L4�K4�L0�K0�J(��4��0�L$� 0��,��(��0�L0Ӎ0�N0�K0� 0��,� 4��,��0�J$��(��0��,��,��,�K,��,��,��,��$��(� 0��,� ,��(��$��,��,��(��(��(��(��0��,��(��,��,� ,��(��,ˆ(��������?�/��s��$?�O�G���K��� �3��I�yIT�QP2�=R��4�QO�=�Ҥ�zI�K�N+b��\U˿��C��ƀE���xc@"��������<8`G������ƀE���xc@"�_ɿ򇞼��������JO�=H��Ӣ}�B��UJ��)8��E���&r��~J;Ɍ�p��E��E��E��E�H�*O�VK�a�I��� {���ðW���.K�`O�z%Cl��`���9S�H���"����BKTs����pP�d/�/4�D �r��ث$��B9��B$x�4�HrfXG�C�:C�8�;#�,�B���RR=#�gL�� r�sǁ ���!���R��W%p�gY�k9�H ����7��Zy��T�B�b��7 Y�"�bC���֚�ZkLa����B�:c�:c�:aȎ�Lt�Lt�Lt�P�����<�p�����d̙��fd̙�f��D�<�a�3flΙ��L��.)��q�a��( �)8��s�ER�� 4�lP�Ý�~D���Ċ�
��9;��<�6��$(B���)�R�����|êI�4�:�?=�د!��H�|9�4D ��s��6I�?���$E ��X�g9�y��y(��d�E�Gi�D���*�t����: �L gЊ��=�&'�� ��jz���bX`J�Rs R� Ә�&�C�����k6��9�Jɴ�m6�#�4[�1~st�m6�M��a��|/�.����d@HmZֵ�w� f@͠�kZִ�Q��4j�Zm6�M�.jQ�me��,�YH&g1jA��Rsr�>��;�)"�� 1>'�C8�� .*����_�RJIE�]�9�����N�/�8X�x��d��_*'�Oq=ʉKE��Y�\��EHxZ���H�im=�Ғ�Y&�$�bp�a��+�\�7�]_��h��q�"���؝�����s>��l��VV��h�$��Ӳ|J�4ɤ,�GQ�uƝI#�RXY�x=�j�sNi�6FѴmFѱb%A^FB45��FѴmFѴmF�X#���E��E��b p�ن�6�� ���Dș"Z��N �� ��r2&Dș"dL��2&D0-�eA�,B1FѴmF�74�����z8���H��N�tuGMHRo�= �̝�_����ߚ�f�\�������/)����۽�n#� ��&���)�dv�JN���h�S�o��O
`�*���$g!�N8~�4�����)1e$Sr �<-�4*;��"�G�k$��6<�zH&��@"�Q�sĤ@�"�bBl���cR*GI�$����[��V Q�|��
x��9����>ls���X�+ �* �B $��&�����pN�C`LÐ�9�7�$�7{����+(�b�x!C<�&���{����{ɨ6yJx$`�mL�{ �0�ddP6T�R�WR��R�X7�9�l H��I���Z�jիV�Zy!`"RC��� e)X1���{�l������,�38 �!�&����Xm��>C9 �3��C9 �3��mɘ��{rRB� �+��B���}�~k�B:UŬQ���9$�&{B^����"L����I�"`A�(��g��6x��g�1䎀�X_����"̚����N�ɤ!Q%p��W®���ؚ> B*Hq 0aUxUp��U«�U�!�G�Ƞ �
��Q�c��68K��K,��WZ-d�Ԕ)`s�<wGtwGtwGtwGtwGtwGtwGtwLy�c[�TC�P҆�vGdvG\u�\Ƙ�c0ꎨ�`#�=��=�ڋ���.����.����.�� �f����.����.����.����.��� ܀E�v�EGw�E��:�uGTuLi�1�4u�\u�c��솔4��%$?��[�������c�y�1�<ǘ�;c�;c�>Mo�*.����.����.����.=��=��=�H�%��CaE ��/���𿻶�2]� ��|yE��� [�>ϧr�wp�뻂A�������~Py
�����h��"�N�PP��7H(Ay��w���򣎞K�,��WɄ-@"��*3@"��+�$,�h(�#m�u��9�%��*!�R�"��!��y��9y�@w�g�Ix*]�� A�_�o'I���'�Y;����߈>�.�E*6��6������==========WON���1���$�����V�Z�Z��Z��*�T�E �Z�dj��W�ֵ�kZֵ���2�\/�-:�*��jիV���իV�x� ��`
��bzwOU���ҝ;'��t�OOOOOOO��� /C�05`P͸Hj��Aރ�6�}�{�����g G Hm�ɓٟ�02R��U�/� .�gq�����ج`�!%�A��>e�#3πbW�ۯ���v���|�p��ĀE�hQ��EDxQ��E���-d�>w A�Z��|5hi� 0� 3�7h=��|��>��A�P�Po����������F䑈C��xS��#D =VON������T�U)��������t������_�S�[�z���V�Z���ʲ���������g�d5 ؛���kWfkZֵ�v��kI�6�K���J�)U�uFV��V�Ӻ�n�N �
���jH�*�����=)��������ҙ======$�����e(�l�������]�\�ψpȢD���|�֝]��r����w�t����HY D(���g�X}q$|-�.G⒓���Wt��S+8��,Mʸ�$Ĭ7&�g#�BIIܜ=�����O�CDX �Q[&2�,����X��O~���w�EIڻJ�0�fb T$��y 0n�Y�%�&�"�`��M��+Z������{�&��%�Ad-P��%��3��G�~I+��4�����I�_������'�t������������t�]=;'��o���t ��&�ejիV�VU����n��dG��0��2H���j뵭kZֵ�kZ��kZ�����B�������WU�u]Z�j����XB?�7���OOU�Ӻ�������J�R�������vOU����w����U��kZ���� �@r�D ��� ����+P]�W�ݝ�ot��q(����!6"U�u���q^à]����{�_n�'$<X��J��A-����"N����z�v���u:�N��}KO�)f;�4!�,It,��"��*�"��,�[@��-���/@�'� ѕ&�l!��H��%��=�}�}�}�otA��n�~��pN�=B`r%QA5�a�g`�# �^�׻o�:D�< �YVU�eY;�t���OOOJ�R�T���������;*꺮������3H� ui�Z��Z�G��ֵ��!�����d�fj�v�n��kZ��kZ֮�٭]l�r�7���uFQ���իU��j;��y�"Qٞ�*ʲ������ҝ;'��R�T�zzwJd���읕u]WU�v_����pl�cZ�ֵ��������%����7�V�[v�_�����.��#����wp�t���TW��g�x�uI�,�a ��F��'�M��hÊyb�R ����vG)$&��ޕo�v�_ҿ�ww�{���\s@E
!Fi�4�����߿����,336Ѝb��¬�P7�r�2���hq�t֙v�n�C���������k����I�I;��(
�z:��ls^�# �9O�����E�:�B��+V�VU�Ӻ���է������ON����=WU�u]WU���7�Ĺ
S�Rҵj:�j�ֳ��,��\Lʂ�� f|�m]�uٚ���j뮺뮻Zκ�g]l��|�������x���իV�X�G(���� 1uuYVN��;�ʲzz���'t������쫧���=WUէe]WUΡ�g��T@�&Z�f������p��D�M
��k �@� h���=w@����7t��"4�6�����|��3#<�/Od ��g[k��$Cī�cPr���� ��J�N�S�j�N�S���K����{����g��7P����8��"��k ���� ��(�+ᰑ ԁ���k z ��,��v@��+P=�A;P7t���'�r��p� �'���
� �JG��^�����i��5VN�իV�FV�Z�j�ejիV�WV��V�Z�Z�j�udi=��
���V�J�ֵ�X�����q�s�e�3Wf[�պ��[��뮺뮺٬뭚�ٝv���q���,˴(۴)ۼ(ۼ,
��Z��IB���r��3S��j�u]Z�jիV�Z�i��իV�Z�jիV�Z�읎48r�h�b*������S�DȐ|$J��ֵ���fk`R����}��������L���!���&��ع�0;���"���
h��J���x�#|�H�o� �����������B��I=ߝ��� �,J�O�(����*��������@va_+A�'���y�"dH��5� Fffi+��L�� ����xJ;����wwwu�N��n�@~/�J�����HoI"��6F�m��2�]WV�+V�Z�j�ejUuj2�*ժ�:�Z�i�;'ej�ej�uX7$����A
x�u-ha�1 ?�8$ F{Y��Wf[�պ�j���ֵ�뮻Z�٫���j�gi/���0��n��������Fx.B ���P<L�j��Z�j���*�իQ��R��V�)V�GV�Z���꺵j:��VV<P�H��1 �
�)���;���5`��<�f�6� н Ж�:�:�.�N�wt.��',w,^����hL��.ȷ����v��Œ%8Ń����《CvU�V^U���|�⇕|P�(x�����qCʾU��r���Ү�(�#%����*��/hSw{�"��,� ���4��l[#V�,8���رذ� j�-�KP� З�]�Wz�r��X�Ņ�X>j���dW�1a� b^I���B$i8�a��B3�9�tf���^�df9x�伌�q�Q��.2�*2�.2�-��y/fFd�b�3c63�9ƃ �q�Sh����"�4M
r����B����im2�� `�V-cZ�Yk-%��r�Z�Ii-%�����Z�V-%�����0e��q�2ن ���݋i�N�m]�L��h�2eH����I��hƃ ���:3Xf��/c1�dfK�/#-��y/%众��^F[����dfK�{/\f�k���q�4hƔi9�M��)��M���ۏ��n�������������
���x�>[p���7��^��^p��g�n� �‡�
�C�({�2�7~���Y��ExS7{@"�<, ��?���x�<�������u�������߀w߅_I�<��-�J��������������F����w�(��"��"��"ֻ^����I�g�����?ȧ�]�� ׿�����g���(�����T��KԒ�M)�����@ļ �l��Aϩ/��b
L$�v���nY��|\?����5�VyXQ�`G��E?���[��xp�"������`G��EVyXQ���}���}��w%��ϪW;:TAIT��|W(�VUO�W<��1=���y&���������_�_�_�S����xI9��HuM��?�~���$ M�c�3|� 7"h@�:P%8+O�5T- <R%H� s����{��PR7
�*����R*Ey��=����+ȯ;dVt��$����n)O����'997�C���/%�b)#�MI'$��A�9��/��jf��\� =ూ� rZK�!����c ��
N��7��}o�
�����e0���9��9����E��E�"�Fq�q�n@�N<��<��<�˛������������@$� ��#R R�@�)>���I��<�N�~��A�)� �!N�kq9&� H\g='�����b|�� � X3t���T���$�M.��2���:�*������1;b)�R����K=!�%�'ǐ���!+H����⋈��!Z�t�?���@8#�TH����&�e�Fb��f�O��'���*�9G2B ��)���MЂ&u �SĺD������p�K`�6�Xi�y�9i��`5&��
X��ژ��9�c���m6�M���6��
��m6�M��a��L/�.��+Cr� �rP@h �0�8 �������m6�M�i� `Q �� R�6�M���̳�����)blSc�)�=69a�CX�Q6B��p!��t&�"� ���NE"]����E��w��,��^99����s� �,�aV�0a��#Ō]C� 8����B��
��-�R���P�1\\G�ǜ=��쌋�!�.@HAm��{���#��UCnp���#���XG�6 J?$�Ngܼ�( �.K@��~ ����."�H `Q��s�Q�N�!��d9��
1���*�a���*������'�B�D;�TUEQTUEQTT%��_�\P܀4
p�rLY�1f,�b��#�I
�& S � ً1f,Ř�b�X
�I"`���*K�UEQTTs�)�TTs�
1�:�02�~�碝�9��Rɯ >E$���dw����AE�,���:y�[� n���{EDG A�h�s̜I��A��'��L�����+ ���'0�=���D�12���/?�� P�,M�!�ÇP�������09��$�?H��&'@��zI�!�Wnz�'AA�!��&�H�A�,���� ��o ���LD��=�S|��?(2e×�*�
S�J��3�DI��L���M
�.[�0� a@��"��t=�'I����'ypAhU��:{��Ig@z��{����y�ZI${�0������"N�3!������itb�BHWB�YVH��뮺뮺뮹!0�)�F�a��"��zN���I�N���6�Y�쁂�a���
�f׀E,Y'�-����n�w���-ȷ\��O��"���Ew79���nZm�oq�.#F&%��Ju��$��oq���(F��8Ft��&x/c��7�����x�O��_����"̛|���j�H�?OOOO:$I��"�D�GBrc���� �|.�]���ZI'ȟ�: %D�7���{���x��҉�ehѝq������=#�=#�=c�=c�=c�=XzG�zG�zG�<��AT<��<�yG�y1�2�\ʙS*eL��2fL�a�Q�Q�FQ�eFQ�eFQ�eFOs��x�FQ�eFQ�eFQ�eFQ�eFQ�y�E�v�EGw�E�2\ə3&d̙�2fLəS*eL��2�\˞�{�0 ��2�T�s.e̹�2�\˙s*eL��2�=�=��2��(�2��(�2��(�2>��>��>�H�&�6���Y��3�
�Sݸ#/��k��P�:�?�"ș���?{]���|w� �(8'9�Ǘ'\ݔ�����V�6l� �@;� ~rp��?�_�^��$V1u%��m�2����2�����כ����E�F�X@�-����T:��Q���w�����wqX�&o ��2Ũ҃�&dh���S�<�����K�_: J��G�<��:��뮥J�*2뮥J���Xp��&�������j�f��kZրE *0�C�t!�@���kZֵ�k�@b:��E��E�kZ�ٚ��]��������X`�&��[.�J�*T�R�J�n�J�3����
�B�<* �H��!#}?OҺ{S��+�Y�ޟ�#���!�� Hֆ�- � �8�U]��T}G��Q����Č�!�+��j�|��vW�ۯ���v��ଁ`�6�ڀE�hQ��EDxQ��ER�:�S�z�����8�� HG��0e"m*���zWJ�]+�;R�wxa���=��5 C�D�84 �"?EC�"���)NP�R��+e*T�R�J�*T�ԩ]J�r� /��7G��N�뮺�u�:�g[������"�V?��U�p�kZֵvf��kY�kZִ������E��E�[�5���]u��:�يPR�P x�9��J��J��J�*T�R�GR�J�J�r�#�'��$��l����o��m����>��!$�g���s��������&n�w�S ���:%$��c�K��Eȓ����D�"{��V�,���̲�X�+���UM�:���D~��i���_߽�O�Ҙ���/g|B�/��ZƀEB{�����+��ۋ����g� 7��+�}����y�=��rv�����_wx�r�!��OJIm#��ODrE����E���Hd�b��Tu+e*T��T�R�J�J�*T��Te��@b��1F��Q�뮺뮶g_��kvv�q��o�7���SZ֮�Zֵ�kZֵ��ֵ��� �ɀE�v�E{w�E[��]u�u�u�q�aX������R�GR�J�]J�*T�R�J�*T�R�J�il �R�8��I��ZրE$>��p��G��J�W��*���ҝ�])ڕjU���\N��}�'|��<���toջ�v���v���Ŕ8�X�*D�UBN�1�=
Y1�
���j�N�S����GԴ��������'B���E�xQ��E@xQ��E�V�[U�����Y�L����x/���9d��ڕҙ�]+�t���WJ};��qR�}&#�|UG�oN��Y���v�ݷ�E8�
`R�]J��GR�J�+�R�J�J�*T�R�J��n
`�8���p����2뮺����ֳ��|;������3AP�պ�j�u�ֵ��ֵ�]u�Z�٬��!�������뮶Q� ��B����R��l�J�*Uu*T�R�J�*T�R�)R�)U���e!���q���to�mk3Z�n�����4�>D�y�A��iEk�P�(�?yE�r��wrx���R���d���rP � �H��6�'wk��� (���T.�����rD�$���J�һt��_һ�ҽ�k��:���B����L�����P]������"� {�����D��vC���C�R�~Pٛ�_�/���B����k����\��.aQÂPI�I$���v���G�ZӘ�(�e*:�J��l�J��]uԩR�)R�R�Q���)$��E��A� "�u�[��5�gkJ�� "�F ���a�BZ�V��5uٚ��]u�]v��u�κ٫���JX[ǀE<hY��[(뭁���)Ā��� )�b�R��R�J�J�J�*T�R�J���*T�Q���e$�c�@���0?Ȓ�C�fk[����,��Z���?OүOҺWJ�V���S��;S��w�q���2G(�� ��� XA��iWӻ:�_�xoS�_�@�4ྩ��u:����u:�MԻ���G���q���.b@"�<(��"���W�TV��r�LP1 �X1�i�淋*��*������ҺWN�Jvt�:S��>������,H'�����LѬ?B@�[������?�*�J���G[)]J�GR�QԩR�J�ԩ]J��Q���e��FQ��Y���pO ��n���Z�a�h����E��� vf�̷]�uٚ�]u�]u�]u�Y�[5u�:�g[ᶋT,˴(۴)ۼ(ۼ,
뮶�q����@���J��R��������[)R�J�*T�Ԩ�u+un�)[�Q������c�k���k��S�B� � I���nsg��6{�������������"�����1���@ �?���Eț�� 9f*EؔA�)$� �B@����S��o�����c�{��� ����ި���":Q���hT'w������`� ���^�������p� ��]���so��6��{�����w����7wwy�Ђ�SB��>%��}��u����@Cu��:���G[)]l�����R�J�uԨ˨�un�Q���Q�e�(�#G��BD��ZƐ�_�H���k3Wj��uڷ]�]uֵٚ�u�kW[5u�:�]��pP ��E�xQ�hSwxQƀE�]p��h��8F�c��G]l�Q�u��l���u��:�+���T�˩Q��2�*T��en�\1��p��.H�[ ����?`�q#���X�������f�V�V�|�����.�.ݥ�ܺ��\�v�or��]sN6��W�}�n��X���,!�K��ITH��)c&���<���.ys˞\���<�����.w.ys�r�r��w�rh)�4,�@"���M���6��ct\�J_B_�z�A�~]�]�]Z]���]�]�]Z]�]���v�W�n���]�K��wiv�.�曅3��y ��46`z>A#�����.��t���t�[N�K���.��s ��t�].�K���n�K�L�0�.�Kt���t�K���t��K�)I(�,E�_��!"`L0& �� ��`L0f��.`��0&��`�����3� �0&�,`L0& � "= m]�L��h�@)Y���T���t�Kd���t�0�.�K��\¥��s
�K���.�K�L�K��&K���t���t�]-���;��d�,No����~��8:�!�p���!���������߃������K���<n��iۅ�������_���Zw�w�-8�fq�L���8���#����7�N�W��[��o�-���~8;�Dt�����W��~e�"��"�;@"���"��"��"�4(������Ex_�_�Z�k�"�3�/�)8���w�� ?�c����k^���/���B>����_���r����{*$��bn Ү��O��x^ g|���
RI|�ξ�(Ig�?,��?�G������G��<�Q��"��������<8`G�������G��<�Q��"������nPy>�C�.H�� ���4���uƒ�X����~%xPq;���ϙ�I��%��P'��s������{�"�<��@ңJ�<�,���,"4
~BE� &��¼�$�d�4�B��3@� �0��;�pI�&�ep���3��x؍:N�t��~I�ӧ�<��2bK�9.�}��5�ӿ�����DÞ��bL�@Jy��X#�qN �P$a��`c��3�� �& ø�����`�p�&�)� ���S�-��PV��T�0�Øp�h_�^3��T�HT�HT��k�y�5����`�7��ޛ�~w���~o�8'��p��"�Fx$P��p��8�N�~��A�*�8�$��8 ����"�tN�"4Am@Kj��JR$�n�C,�4M����&��$�2����-��yJ(\��EJxZ�m�������j~l�H�Ӝ���H"��lB�a� D��p���* ��a�h���;�qE�s��B�pI�>����4�=X�`R���s�� �XF���<``fpV�A��\�
�O �18��f�
l�3�9
�e!�4��@Y6�M��0P"����i��m6�3���W@"��"铂�Հ//��Ê�SY�8���0q��P
@&`V��8%�0���m6���0�FhVAV��W Dٚ��S0�<!Y+��>N!�g4�X�W� ��8��[�2� .�e954F�Y�:�y5pjr���‚e ���.�Xue���1��o-(HjD��?��������Z�� �Sʸ������8�8�wp3�h�!ts'0��ӊ3��崯�,�
�@�'�@u�^�Py5��u'�"��/�a��ًs@"rj� ����E�D�I���%�J&hYسs��0V���tMD����&��h��6PB��+H�&��h�&��h�&��:Ȕ/�.)��^|Øs8�Øsa����4�@k9�
�Øsa�9�0�Øp!�APD�K �MD�4L�dK�h���{0�;�2͝�B&bQ.���bQ0�G�\#���W�o�����{Prˀ�@$˂ӑ�%�~����+�8�NJJy/=���4����⫠���UŁf}����}�="y���.�� �(9�b(P�a×���������0��s��H���x�C<�����VsÃE;�1�,A̛����2q��<�����?H@u���$�F���|p����* ��S�4F��FI��M' ,�� �[�8'P�8�4ݒt���{�w����C �9�RP!Rs����{���������E��E�8���/�O�,8�������$-�q% �R�n�3����%� f�7;�d����D='{����'wy���+�P��8� �p�}�)a,<J9�Ύts����G:9������?w�~s��ԗIt�It����dF�7�i����s����4�@!E��x�p,�o �\.�]p��u�� i�'e</����fR]%�%�x�ڑ���I�����
C�7!<O��Y�����y���� ���]'�8QG��s�.x\���qh %|j�tSp���8�R��+�i�5��֚�ZkMi�5��֚�ZkMi��h�����i�i�i��RjMI�5&�Ԛ�u"2#"2#"4}G��}G��}G��|�>�I��>����>����>����>����>�8�q]�Q��fQ�uGQ�uGQ�uGQ�uGQ�t�;�H��6��h٦ƜӚn��h�6��h�6��?���G��}G��}G��}"2#"2#"0���n���HcZ�������ݸAH�*����Q�����<��2�π ��
_�b���_�\xs��R�>⺆%�n���T� f㳑�e�2���+x_r1�L�r�K�h�e�Q�e�_�R� .Fxls��1'<��QB,A��H�r$���l���� ����4x�w�=w�At2ʲ�.iD J��}BxLJ(�%�����4)Q&-@f˵�kZֵ�kZκ�h& "LB<i�Alֵ�f�Z�����"��HN�+M/�Zֵ�kZ���h) Z>���kZֵ�kZִD����PZպ뮺뮺뮺�f��(Ē;�Hf���f����H��N�S���u:������)�M8YD@�g�k�}n����4$�|���%�jH�#M��H��}}�����n��1��#"�{@"Ҵ(�@"�<(��"��n�}}|��-��!�����1�uz�^�W���ڥ�����LG����A*n 3D�xSо���]vf��뮺뮺뭗]u�9Ć ��� ��D8W5����kv������Lq��B��p��
p��kZ֮�ֵ�k:�kZ֜(`J�l/�-+Zֵ��kZ�] � �%��.�3��]u�u�]u�]u�]uԮ���cL�o�e�4µ�������X� ��O�-�0�s<��ַ%��q��{Į��W* �u@�$��}��X�8��si��ͻȭ︥�,����g�\W�����H��A�q�x�o����1��{��#�A|e���2�18<�8`k ��������������Qw+���i�� �ɽ!f��g�2e����"����Q;��Rʁ���/�b �r �q�Ԋ9�\��c�) u��8�]n��:뮺뮺뮺�u�]u������0L@2�fu�WkZַ��kvv��9����� ���kZ��kZֵ�kZֵu�ִ|� 3`h]�^��_�ֵ��j����K
��� �D�Q�]G[.���J�u�]J�+��Q�]F\�
�� ��501 �mkZ���éA�<�d�^��z�?O����zwj��Ʌ D�"G��&�Q����^/ 8J�{���Z�ۯ�_��&ا,����"I` &��� �R�:�S���u:�w����+�0�-��,}@"�<(�@"�<(�@"�/�z�S���〧S3�#N��A�,��i�W����?O�����V���y�a0��G��=��@am7nu�O^�׻o�:u�����뮣��]u*T�R�F]u�뮷]u�\r��!�ⴍ�볭���]����ֳ��tl�Ew��. PV�5n�Z�]v��j뵭kW]l֮�k9�y�E �gY��fjݙn�渮+ΐw1C-u�]J��[.��*T�R�F]u*2�uuu� ��Uat.��f�������F?`b6�� j6 6�?j �@�@�A;�t�y����w�E����.<i���$CR �t�w������ŀ9 A��\�0����" W���o�v�_ҿ�ww�{��|lq܅!hЁ�E�f������������=���Q��Av1�%xj�(�"A��58,� ��AAA��ނ{����
ۀDB������ʤ���"�<� �U�����.1u�]G]u���뮺뮺��ˮ�]uu�]s�jL~�����2K3:ٝlζkZ�֖h�!!�e$L֮պ��]vf�u�]u�]�g]v���j�H��@��E�xSƀE�[�-�j停�D ?��#��[.��eԮ���뮺뮺���e��2�2�2�1Ć ����D���X!��f�������f�w0��ڭ�ڽ^�W����n����_U�_�1�4���e�5a2h S�N��m���Z> ঁF���f���ާS���Z�S���u7R���u�q��,���o�������V�)��i�Llՠ~����w�V������z���?O���;�[��^�ڮ��.�Ls���l)�� sD"N5�����ø'�%u�]u�]u�]u�]u�]u�Q�]u�]u�]F\|�hg�R�B|�j��f���cQo���#�n��ٖ��n�3V뮺뮺뮶k:�f��g]��a��3�f]�FݠN��F��`V��v`�3”+�������뮺���e�R�]u�]u*2��ˮ��2���\|�#7�ˆq��g�����:��DIQF��@���F큫o�W�����x�w��En�sH06 ȅ��������r1 ,"�K�N!����"gq5B �?�����_w��,o�Q=ߒ�w��a�%�@�"�7�����������,ߖQt'�N!��8��A ��k0M۴��h���5�}߄۽�������w�# ��8D4,��ć��� ���J��`�[��2뮺뮺뮺뮺뮺뮺뮺뮺�vpNbJ������a|�]� �lN��KE��sY��Wf[�պ�j���ֵ�뮻Z�٫���j�gh��-"���6��n��8��kv��l
����H��*�뮺�e�]u�ˮ�]u�]u�]u�]u�뮺��뮸&�|�����\ v����D�+6!�C�?Cއ�~�� j�����ݨ~�}��;���l8Q9:'��dG|-I�F@�f`��(���E��\�� �� �� �� �� �� �ۡ�t7Cn�} �~�!�I=��U�F^�����ExX0�!� �Dl��I� Z�>�~��~��~��~��~��}����;�w���� p�rr&�/�dž�j����H�L�:!�)��L�2�d�e1�)��L�S)��e2�L�2e2�D:e��C�Q�ɔC�2e��TI��G�Y�A^^��.�E1��DSLtC")�E1�(�"����"��(�"��S)���)��DS(�!�LdE1��DIq!�E�v�E3w�E� 1� �o���N�S)��e2�L�S)��e1�)��L�S)��e2�L�S)��e2�ɔ�e2�L�S)�C�IQ����?B������y�>���n��Y��g�,���~�����߃� ���6���H���Ǐ����»�g�G�G���]�+��?�� �8��n��ExXD?W�n �N�>�-{q�ۍ��w����׿~N�����L/�-C�){�/�/�-c@"���K^�xQ׀E��E��E�v�)C;�"��"��`�*����@����1)��9!H���
��,�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(r ,��(��(��(��$�I$��$�I+��4��_���� ?��y����?�?������HG�O����.y�����x`G�������_��<�����_���� ?��y����?�?������HG�O����.y���?�ǘHL$�6���0�IL?���XIL#�b`��  �

�¿��x������xW�W�)� �   �

�¿��x������xW�W�)� � @\{����^y�|��K�O�S�W�������?���¿½�O�O�K�K�O�S�W�������?���¿½�O�O�J�dL$�3��2`(`���<^#��0W�/��3�8l�xo ��7���p���p_���
�7" ��<��8�Sp;��/�83��7����xo �� ,���^@�
��r ȼ Q��y��`)&�'��p7��
�w�_pg �o ��7����NX3� ༁��V�A�x'�x�Gx*`�p_�gpن���xo ��4᥃80�� ��\`nD�xl �`� A���|A��B0�I��J&&&&&&&&&&&&$�aLLLJ��!A�|A�t�H9�`�l6 ���q�����>� �@�!�B$����HF%B0�&&&%D�� ��>���:A��a�l6�� #���`�8�PqA�t�| B�L!D���$#�������������!E�"aBA����| �A��6 �a�lA�8���:��>!B&�"bba�D�����������Đ�"����B0�! �B���>��i �l ���k��xo�����g���rI�ə<� l�%�&�ͮ u�����o������%�& &d�d��L�d�h��������O�L ��\��������7�? �K�LL���d�,�07�mp[�� �������7�.I0Y3'�$ �d�$�[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڰ�����O��[��ۭ�Ի��m�����Yjܶ�n[V��m��m.�ݷ�m����Z�V���rڶǣ������9���������q��I�e���gI�=�7���������v��ӌ�JM�,e��:L0�� �m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t������Խ.���m�����]���V��n�����R����m��o��-v���Z���8����������Խ.���m�����]���V��n�����R����m��o��-v���Z�兿�� �?㷎�?������c�c>H\�B��\��������v���������|�g� ��^y �� ���y�/  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'%�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�l0���
�?�>�ZZZ]wwoۿ����߷���V�Z��ZZZ]wwoۿ����߷���V�Z�9�o{����������{�[%:w���9�o{����������{�[%:w���b�������9��ls{������{ӽ�l���2�X�9��ls{������{ӽ�l���2�[KK�u/K��-�������\��V���]K���K` m}�k��/jՀH���������R��o��H_o��e�ڵm-/uԽ/�������Yr��X!�o���C�������0C�fI��&I�v�����#@��3��2L䙒y�I�d���G�%��$�;m���v�C�����&rL�<�$�2A�~���h�f~&I��2O>I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t����� ��?������x �<�G���O����p������Ny��<�G�8G���#�����@<���y����������x����s�<��<�����#����<��y��<��b�$&C �?�٘H�$����,$�� 10�����x�xG�焿�����������)����w����s���<��<%�%�%�%�%�%? M�G�OxC�6`�=���/<�>O��s���<��<%�%�%�%�%�%? M�G�OxC�6`�xC�'�焹�/�/�/�/�/�)�Jl�=�{�����1fr����0�0���`,�n�#�<
�_& �'�1x�^/����R�<X`Y�+�<�>@c )`�,�Y���Gx��L0Ob�x�^/��8��x$�2�� Wx�|��@R�-� �J<��0��?��� �~p'�\ �d�3�f/����x�S�X'�K, 2p'�� d,�� 0���O��ɂf ��^/����x��O�Xd
�O8��
X�b"�DQX��b"�Qb"�b�Qbŋ,X�bŋ��E��)�",DX�R!�,DX��* �",DX�*,DX�",X�"*,X�bŋ,X�b��b"b"�"b"�E���D"�b"�_�`d�E��EDb"�E��EE��DE�DEE�,X�bŋ,R"!,DB,DX�B,DX��bH�R,DX�b���,DX��b��b��b���bŋ,X�bŊDD"ň�E���E��",B)�E��{f�x�����_�~s%�&2y2@Y&K2L��\u��W�� ����̗$�L���d�,�0�������?�#��� �6������������+�.I0 ��ɒ�2Y�`/l��C�����_�� ����d�$��fO&H $�fI��[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���`�?�������[m�[K�wm��m��o��չm�ܶ����m��]K�o��m��|����m���m�G�1���9�s{�7������-��x�c8Γlz>9�om�����9��x���l���X��t�` �������c��lsx���o{�;{�i�[%&��2�q�&��|s��c��7�s{����;N2�)7���3��7[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m� q`_'��[iii{�z]���m��o��Y{V�[r�m������wm��m����Z�e�Z�m�  ���o���������|��<�琹9!o������㷏���?�9���ϒ'���'&3�``$��^��/����;x�����3�����!ry �!rrB��������o����s1�1�$.O!y�.NKiiiiu�ݿn���m��~�/�-Z�j�iiiiu�ݿn���m��~�/�-Z�j�a ����}�������߷�m����o�˖�Z�m�������߷�m����o�˖�Z�ls���9��{����������Jt�c,s���9��{����������Jt�c,0���+%����s{������{�����{�2�)Ӽe���s{������{�����{�2�)Ӽe������^���[ k��]��{V�����~��@��~�k.^ի �`W'��ii{���~ߥ��6�ߵ�˗�j�Z^��z_��l$ ���v���Z��m��������?�g���&䙒�&I����������'���?�$œ�2O�$�2`�?��#��Oy��;m���'���� �3<���0�$̓�I2L��m��������?�g���&䙒�&I�]u/z^��w��F�_k���\�����/K���l# �寵��k.\����O�뮥�K��.���o�k�v��˗5�R���~�m�a�����]�e˖����߶o߳{�������6���d�������~������oo79��/{&���)�_��巽�g��������/�{y�ͷ�{�-��{=�l߿f�������m����K����_���[m�������|��R���~�����m����k��/{X_��?�fğ��������������m����_~�{ڥ�w~�/���-��k����߾^������������=��I���1�Ls���������������L�&I�2c��1g���L��_�c����������=��I���1�Ls���������������L�&I�2c��n���/����@������]����wt�K�� �_k��w��_����!���N��7wK�����7�����W|�n���/����@������]��{��l��`*{�6�m�ޙ{��{g�{ S����oN��/�����
)�?�ɛ����=��J��ͼ�zw�^�������T��m��ӽ2��/�����7��~�|�n�����`����]����,���������~����������Sw����������� ��?�����?����3���� �2fH_��������>{�'���g��^y�2`?�������L����������|��O�9ϙ���&d����������������|υ��3%/M��7��-�a�����^Wj���~������0�����}�+������������zn�鿻��l# ����W���T�7K�����������+�y]�=���߳~�Di��7>�L���o����߰�t��Ͽ�9-����`79��/�ϖ{�߿f���ӥ�n}���m�����ٿ`"4����r[��}�����J _����y~������.�PZ��+� ?�����`���?��;�o����� Ak�����/��}�����J _����yx��������������^�Ͽ�M�����?��������9{�>�6#�����L���M�&y&>{�������=������3���x��������������^�Ͽ�M������p��W������o�XN����Xa�����)�������?����M�K �_�_���w����`8k�+��~�o����=�y?���o{7���G��<�����#~o�����������?�ϓ7����y�#����K{ٿ���<��������_��v�����������F�l#������_������f�2�����������F�l#�����ߥ���`m�������?��������������<��x�������������y��<��G�G�G�G������x������?�����������?����<�G�y�����?��������y��<��?�ŘHL$�6���0�IL?���XIL#�b`����\��<)�

�¿0���ل��%6a�#� s�|��<)�+�+�+�+�+�
�Ÿ“f�0�لf�T{����^y�|��G�����NxS�W�W�W�W�W���?�&�'6a)���xK���9�O�_�_�_�_�_�W���0�ل��#6�cL$�3��2`(`����� �&b�D�ق�
�w���pgpgpg 8.�ジ(� �-�i
@����.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��l%�y��JI���.`d�3b&�0W�.`� �3�83�83�80�Y�v�E m��lHR��'�s& ��06`����s�d���������� �8��
)lE�`�@,�'��Cá�:C�!����xa��C�d<<0�C��������������d1 �!����1 ��C�!��r�!�����xt0�Cxd<2 !���xa ����t<<<<<<<<<<<<9 �!����<2�!����xd<1C�<2�� #����a ��C�!��: !�����������������!��<<2��CÐ�<2 ��!�b��C��!��� !����xd<0�C�!��2C!��������������2���C��xr��C�!����9 C���x��6� �������?���<�`13%ɒ$�#�&;`��:����?�����O$� L�rd�I&H�I���������`$�$�'l��g\�����������������.L� $��0 �mp�=�?��#��g�?2y$�bfK�$I2G2M���m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-� �,,d�ݥ��m��]K�o��m��|����m���m-��m���]���m��嬵n[m�-�lz>9�om�����9��x���l���X��t�c���s{m�o����{�ox�8�d��2�X�3��o�0���f��|s��c��7�s{����;N2�)7���3��6ǣ������9���������q��I�e���gI��KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnXc�
�?���KKK�K������m��|���ڵjۖ�m--/u/K�o��m��m��k/jիnX[�_����;x�������f>f3����/<���  ���o���������|��<�琹90��{ '���������v���������|�g� ��^y ����/����;x�����3�����!ry �!rr[KKKK����w���o�[��|�jիV�KKKK����w���o�[��|�jիV�_������������wv����m��-�|�\�jիm�����wv����m��-�|�\�jիc�������{������N��e�S�x�c�������{������N��e�S�x�`�/�`Y/�_�c����7��{�����;����N��,e�c����7��{�����;����N��,e����R��o��H_o��e�ڵm-/uԽ/�������Yr��Xd�
�?��KK�u/K��-�������\��V���]K���K` m}�k��/jՄ�m���%�F�_�����0�$̓�I2L��m�����K�����&䙒�&I� y��`0�{̓�'�o���.�4�f~&I��&d��I�d��m���%�F�_�����0�$̓�I2L���{���K���0��Z�]�����uԽ�z_���`m�-}��{Yr����2��]u/z^��w��F�_k���\�����/K���l# �寵��k.\�������~������oo79��/{%���g��������/�{y�ͷ�{�0ğ�`O2���-��{=�l߿f�������m����m�{���f��7��K���nsm�^�J^�w���o���m�����}���j�����������m����_~�{���_���0�$�������ߥ������m��������/{������m��_�o��������������������L�&I�2c����~�����������fi2Ly��`�<��g������������������L�&I�2c����~�����������fi2Ly��Sw���~������ח���Mޛ���_��H���^_+�V����)���t�黺_�������������Sw���~������ח���{��{g�{ S����oN������=��J��ͼ�zw�`7���QL����L��������T��m��ӽ2�����~����o6ޝ����~����������Sw���������8��f������K���l& ��ߵ�*��/�����7��~�|�_��������>{�'���g��^y�2B������������?��s>g��̙� ���0��f�g����������������|υ��3$/���������=����G3�|/<ə)zn�鿻��l# ����W���T�7K�����������+�y]�0����0����K�t�M���K`m�_��וڥ��_�������6��/�_k��Y���~���#N�����g%�{�߿f���ӥ�n}���l0����� �����|������7�$F�/�s���Kl���~�� �K����3��������.�PZ��+��t����v���k��^X`�����������?���}�����J _����y~������.�PZ��+�������������r��}�2o=��y����������ޙ��ɰ���?��`|���o�3�1��������y���������������������r��}�2o�}������򿿗������p��W��� _�����L%O���������o�XN����_���M�K �_�_�������y�#����K{ٿ���<��������������$%�����&|������#�`O��z[��������'��-��������GK���}�K����6�`/���B�_����S0��������O�K����6�`/����/����m�t�����

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存