From 023ad93855f76af45dc83e4b184663778a9db892 Mon Sep 17 00:00:00 2001 From: KG Date: Thu, 6 Apr 2017 00:04:56 +1000 Subject: [PATCH] 5.6 update --- .../Examples/Scripts/BGTestCurveDynamic.cs | 2 +- .../Examples/Scripts/BGTestCurveMath.cs | 2 +- .../Examples/Scripts/BGTestCurveStatic.cs | 2 +- .../Cc/BGCcVisualizationLineRenderer.cs | 6 +++--- .../Assets/Materials/Searchlight.mat | Bin 5024 -> 5052 bytes .../Assets/Shaders/OneTextureDiffuse.shader | 4 +++- .../Assets/Shaders/TwoToneDiffuse.shader | 4 +++- .../Resources/AmbientOcclusion.cginc | 4 +++- .../AntiAliasing/FXAA/Resources/FXAA.shader | 4 +++- .../AntiAliasing/SMAA/Resources/SMAA.shader | 10 ++++++---- .../Effects/Bloom/Resources/Bloom.cginc | 6 ++++-- .../Resources/BokehSplatting.shader | 4 +++- .../Resources/DepthOfField.shader | 12 +++++++----- .../Resources/MedianFilter.shader | 4 +++- .../Resources/LensAberrations.shader | 4 +++- .../Resources/ScreenSpaceReflection.shader | 4 +++- .../Resources/HistogramRender.shader | 4 +++- .../ToonShading/Shaders/ToonBasic.shader | 4 +++- .../Shaders/ToonBasicOutline.shader | 4 +++- .../Assets/water/WaterShader.shader | 8 +++++--- .../Assets/water/WaveShader_TimeScale.shader | 8 +++++--- .../ProjectSettings/ProjectSettings.asset | Bin 39869 -> 52214 bytes .../ProjectSettings/ProjectVersion.txt | 2 +- 23 files changed, 67 insertions(+), 35 deletions(-) mode change 100755 => 100644 IronToad_UnityProject/Assets/Shaders/TwoToneDiffuse.shader diff --git a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveDynamic.cs b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveDynamic.cs index d7381c1..5e440a7 100644 --- a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveDynamic.cs +++ b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveDynamic.cs @@ -49,7 +49,7 @@ namespace BansheeGz.BGSpline.Example } #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = points; + lineRenderer.positionCount = points; #else lineRenderer.SetVertexCount(points); #endif diff --git a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveMath.cs b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveMath.cs index 4b0314a..752f54f 100644 --- a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveMath.cs +++ b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveMath.cs @@ -119,7 +119,7 @@ namespace BansheeGz.BGSpline.Example positions[i] = Math.CalcByDistanceRatio(BGCurveBaseMath.Field.Position, distanceRatio); } #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = count; + lineRenderer.positionCount = count; #else lineRenderer.SetVertexCount(count); #endif diff --git a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveStatic.cs b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveStatic.cs index ee7d9d8..5ff0931 100644 --- a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveStatic.cs +++ b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Examples/Scripts/BGTestCurveStatic.cs @@ -45,7 +45,7 @@ namespace BansheeGz.BGSpline.Example positions[i] = curveBaseMath.CalcPositionByDistanceRatio(((float) i/(points - 1))); } #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = points; + lineRenderer.positionCount = points; #else lineRenderer.SetVertexCount(points); #endif diff --git a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Scripts/Cc/BGCcVisualizationLineRenderer.cs b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Scripts/Cc/BGCcVisualizationLineRenderer.cs index b469c3f..d7517b0 100644 --- a/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Scripts/Cc/BGCcVisualizationLineRenderer.cs +++ b/IronToad_UnityProject/Assets/BansheeGz/BGCurve/Scripts/Cc/BGCcVisualizationLineRenderer.cs @@ -149,7 +149,7 @@ namespace BansheeGz.BGSpline.Components { //not enough points #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = 0; + lineRenderer.positionCount = 0; #else lineRenderer.SetVertexCount(0); #endif @@ -168,7 +168,7 @@ namespace BansheeGz.BGSpline.Components if (count > 0) { #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = count; + lineRenderer.positionCount = count; #else lineRenderer.SetVertexCount(count); #endif @@ -178,7 +178,7 @@ namespace BansheeGz.BGSpline.Components else { #if UNITY_5_5 || UNITY_5_6 - lineRenderer.numPositions = 0; + lineRenderer.positionCount = 0; #else lineRenderer.SetVertexCount(0); #endif diff --git a/IronToad_UnityProject/Assets/Materials/Searchlight.mat b/IronToad_UnityProject/Assets/Materials/Searchlight.mat index f94deb09c0fcaff5fac54d110d8ecb50c99125c9..badfbf1299cbf3922dbab00d270ee1fab8da56fa 100644 GIT binary patch delta 1350 zcmZ{k%WD%+6vofZV-o9wNULLP)bUYcTU%TE(5ltM8cl4{rcDudVQiv}O2DQrO9yl% zxR48Wp@M>2LFr0}|AAYbo9Q(OgEkAy6Yh@C&>rHZ53}=a~ z8JxJd1wjek3;F_n561vPHNlhlFYra|@q)%q`A+Cj9VfCl>sP8)KUu8WCFgy5H0ovp zlt$(WYFWEmzCyMYS&?9^=F!IFXJq$qR)wu?f}XW|m3H5Mw1(2|ceR2(K=%@7)*fKb z@~OXR!Rz)A^1S#f*yl~hXB$I{c|i1H$H9FLb8Uio(BnMLTt$#3P|JPze8k~?WZz={ z-oOtxYRA)lflmz=gIBym=7PHDl+XOSI4b9Z`a+jm8T5>@+vS?a;xTaBV#s5$hq;Q7 z$09z>wf+Np9(N4S;|Qz{BsF^NBWnexEr>qGSc2>q@Qnlz{qkWzUl>ps&T8}ttyXak zBL)#fhEl!2r)%)SsuSyY*x@H#Zue;d=RQL&57F8_r)1H(I8#tpT zJ**~umM3kV<4TLIdncW6xp&e@@Qo&Yp1BI|q(|gdO^;sSZdihBKQYHoO8L2{{9ICg z(p+Z!>nG!Kub<1{8~GV!uEOglD}QUcnd5F`ph8mvZ9^$v%oswf;cYTQRG1@>}R&OQ}-hWT`M?mddkvvsNqDWFXul zhr*-V$k=S4v%Ts|kHX8Ej74Jo{4bH38tE;ju1=*U$CBA%GMi5)jbbX7DHJl}wtZX1 M*Uh`7d?fGx0|;UH{r~^~ delta 1228 zcmZvbO-vI(6vyA}w%aX=DN)?6w01RO6}6yPzdtC7Ql+9H@n)1nh#K`^JZPfnUiD-$ z@njDrdc|nCc#y=a2TvX=dMwvo39|m*?7Hbfr+Jw-zxUDq%xk~q>-iFq`Hg66orrpf zQrL)!g<@f7c9_;Y&l3Wmm#OEyZ8Wp1&GfV7JCm(ByJl5Dwa=xd=>JXR-oq&d+Xmw$ z@M(d+fR9FAuUr(C*e+jcmTjpF&e18Sk^2C7oRgOGh}s-=IT{y-;jwXahg?Fm4?z|s z$es{LVZoL-~q9gKVI4Y@(%I=Nqh9{G?bBDdTJE=E|RN&K#TsNr|r&s>=q zx%Yt22M~yu|l-iO~JIZP9Mzt409#wlWX~jr0{>q4k3SBh zU}8L&6`XjIWteE=s{y~Vj;{s$>N?IUxX(nuE7MPBp4^u!iM#T-nUnM8VC?bqqZ!#S uC%T;C`(P3a>5 diff --git a/IronToad_UnityProject/Assets/Shaders/OneTextureDiffuse.shader b/IronToad_UnityProject/Assets/Shaders/OneTextureDiffuse.shader index 472edff..13faba3 100644 --- a/IronToad_UnityProject/Assets/Shaders/OneTextureDiffuse.shader +++ b/IronToad_UnityProject/Assets/Shaders/OneTextureDiffuse.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Shader created with Shader Forge v1.30 @@ -90,7 +92,7 @@ Shader "Geomantle/TerrainDiffuse" { o.tangentDir = normalize( mul( unity_ObjectToWorld, float4( v.tangent.xyz, 0.0 ) ).xyz ); o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w); o.posWorld = mul(unity_ObjectToWorld, v.vertex); - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); TRANSFER_VERTEX_TO_FRAGMENT(o) return o; diff --git a/IronToad_UnityProject/Assets/Shaders/TwoToneDiffuse.shader b/IronToad_UnityProject/Assets/Shaders/TwoToneDiffuse.shader old mode 100755 new mode 100644 index 63221f2..4109b93 --- a/IronToad_UnityProject/Assets/Shaders/TwoToneDiffuse.shader +++ b/IronToad_UnityProject/Assets/Shaders/TwoToneDiffuse.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Shader created with Shader Forge v1.30 @@ -94,7 +96,7 @@ Shader "Geomantle/TwoToneDiffuse" { o.tangentDir = normalize( mul( unity_ObjectToWorld, float4( v.tangent.xyz, 0.0 ) ).xyz ); o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w); o.posWorld = mul(unity_ObjectToWorld, v.vertex); - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); TRANSFER_VERTEX_TO_FRAGMENT(o) return o; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/AmbientOcclusion/Resources/AmbientOcclusion.cginc b/IronToad_UnityProject/Assets/Standard Assets/Effects/AmbientOcclusion/Resources/AmbientOcclusion.cginc index ef722db..bb12ece 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/AmbientOcclusion/Resources/AmbientOcclusion.cginc +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/AmbientOcclusion/Resources/AmbientOcclusion.cginc @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + // Upgrade NOTE: commented out 'float4x4 _WorldToCamera', a built-in variable // Upgrade NOTE: replaced '_WorldToCamera' with 'unity_WorldToCamera' @@ -348,7 +350,7 @@ v2f_multitex vert_multitex(appdata_img v) float vflip = sign(_MainTex_TexelSize.y); v2f_multitex o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv0 = v.texcoord.xy; o.uv1 = (v.texcoord.xy - 0.5) * float2(1, vflip) + 0.5; return o; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/FXAA/Resources/FXAA.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/FXAA/Resources/FXAA.shader index 69a1ba3..06ea89e 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/FXAA/Resources/FXAA.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/FXAA/Resources/FXAA.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/Fast Approximate Anti-aliasing" { Properties @@ -51,7 +53,7 @@ Shader "Hidden/Fast Approximate Anti-aliasing" { Varying output; - output.position = mul(UNITY_MATRIX_MVP, input.position); + output.position = UnityObjectToClipPos(input.position); output.uv = input.uv; return output; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/SMAA/Resources/SMAA.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/SMAA/Resources/SMAA.shader index fe37cec..c6c2960 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/SMAA/Resources/SMAA.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/AntiAliasing/SMAA/Resources/SMAA.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/Subpixel Morphological Anti-aliasing" { Properties @@ -78,7 +80,7 @@ Shader "Hidden/Subpixel Morphological Anti-aliasing" fInput_edge vert_edge(vInput i) { fInput_edge o; - o.pos = mul(UNITY_MATRIX_MVP, i.pos); + o.pos = UnityObjectToClipPos(i.pos); o.uv = i.uv; #if UNITY_UV_STARTS_AT_TOP @@ -266,7 +268,7 @@ Shader "Hidden/Subpixel Morphological Anti-aliasing" fInput vert(vInput i) { fInput o; - o.pos = mul(UNITY_MATRIX_MVP, i.pos); + o.pos = UnityObjectToClipPos(i.pos); o.uv = i.uv; o.pixcoord = o.uv * SMAA_RT_METRICS.zw; @@ -321,7 +323,7 @@ Shader "Hidden/Subpixel Morphological Anti-aliasing" fInput vert(vInput i) { fInput o; - o.pos = mul(UNITY_MATRIX_MVP, i.pos); + o.pos = UnityObjectToClipPos(i.pos); o.uv = i.uv; o.offset = mad(SMAA_RT_METRICS.xyxy, float4(1.0, 0.0, 0.0, 1.0), o.uv.xyxy); return o; @@ -364,7 +366,7 @@ Shader "Hidden/Subpixel Morphological Anti-aliasing" fInput vert(vInput i) { fInput o; - o.pos = mul(UNITY_MATRIX_MVP, i.pos); + o.pos = UnityObjectToClipPos(i.pos); o.uv = i.uv; return o; } diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/Bloom/Resources/Bloom.cginc b/IronToad_UnityProject/Assets/Standard Assets/Effects/Bloom/Resources/Bloom.cginc index 59502f5..3d82363 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/Bloom/Resources/Bloom.cginc +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/Bloom/Resources/Bloom.cginc @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + #include "UnityCG.cginc" // Mobile: use RGBM instead of float/half RGB @@ -133,7 +135,7 @@ v2f_img vert(appdata_img v) o.pos = UnityObjectToClipPos(v.vertex); o.uv = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); #else - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord; #endif return o; @@ -154,7 +156,7 @@ v2f_multitex vert_multitex(appdata_img v) o.uvMain = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); o.uvBase = UnityStereoScreenSpaceUVAdjust(v.texcoord, _BaseTex_ST); #else - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uvMain = v.texcoord; o.uvBase = v.texcoord; #endif diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/BokehSplatting.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/BokehSplatting.shader index ad58718..9358a21 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/BokehSplatting.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/BokehSplatting.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + /* DX11 Bokeh splatting @@ -101,7 +103,7 @@ Shader "Hidden/DepthOfField/BokehSplatting" v2f vertCollect (appdata v) { v2f o; - o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos (v.vertex); o.uv = v.texcoord; o.uv_flip = v.texcoord; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/DepthOfField.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/DepthOfField.shader index 5914588..4ba133d 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/DepthOfField.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/DepthOfField.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/DepthOfField/DepthOfField" { Properties @@ -79,7 +81,7 @@ Shader "Hidden/DepthOfField/DepthOfField" v2fDepth vert(appdata_img v) { v2fDepth o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy; #if UNITY_UV_STARTS_AT_TOP @@ -93,7 +95,7 @@ Shader "Hidden/DepthOfField/DepthOfField" v2fDepth vertNoFlip(appdata_img v) { v2fDepth o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy; return o; } @@ -101,7 +103,7 @@ Shader "Hidden/DepthOfField/DepthOfField" v2f vert_d(appdata_img v) { v2f o; - o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos (v.vertex); o.uv1.xy = v.texcoord.xy; o.uv.xy = v.texcoord.xy; @@ -116,7 +118,7 @@ Shader "Hidden/DepthOfField/DepthOfField" v2f vertFlip(appdata_img v) { v2f o; - o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos (v.vertex); o.uv1.xy = v.texcoord.xy; o.uv.xy = v.texcoord.xy; @@ -134,7 +136,7 @@ Shader "Hidden/DepthOfField/DepthOfField" v2fBlur vertBlurPlusMinus(appdata_img v) { v2fBlur o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv.xy = v.texcoord.xy; o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * float4(1,1, -1,-1) * _MainTex_TexelSize.xyxy / 6.0; o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * float4(2,2, -2,-2) * _MainTex_TexelSize.xyxy / 6.0; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/MedianFilter.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/MedianFilter.shader index c3fc8c7..023ec46 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/MedianFilter.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/DepthOfField/Resources/MedianFilter.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/DepthOfField/MedianFilter" { Properties @@ -29,7 +31,7 @@ Shader "Hidden/DepthOfField/MedianFilter" v2f vert(appdata_img v) { v2f o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy; #if UNITY_UV_STARTS_AT_TOP diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/LensAberrations/Resources/LensAberrations.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/LensAberrations/Resources/LensAberrations.shader index 4a38b3a..891ecf2 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/LensAberrations/Resources/LensAberrations.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/LensAberrations/Resources/LensAberrations.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/LensAberrations" { Properties @@ -129,7 +131,7 @@ Shader "Hidden/LensAberrations" v2f vert_blur_prepass(appdata_img v) { v2f o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy; #if UNITY_UV_STARTS_AT_TOP diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader index 13869ed..500440e 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/ScreenSpaceReflection/Resources/ScreenSpaceReflection.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + /** \author Michael Mara and Morgan McGuire, Casual Effects. 2015. */ @@ -100,7 +102,7 @@ Shader "Hidden/ScreenSpaceReflection" { v2f o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord.xy; o.uv2 = v.texcoord.xy; diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/TonemappingColorGrading/Resources/HistogramRender.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/TonemappingColorGrading/Resources/HistogramRender.shader index c78673c..7956de0 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/TonemappingColorGrading/Resources/HistogramRender.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/TonemappingColorGrading/Resources/HistogramRender.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Hidden/TonemappingColorGradingHistogram" { SubShader @@ -28,7 +30,7 @@ Shader "Hidden/TonemappingColorGradingHistogram" v_data vert(appdata_img v) { v_data o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.texcoord; return o; } diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader index 63f0b37..683b99f 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Toon/Basic" { Properties { _Color ("Main Color", Color) = (.5,.5,.5,1) @@ -40,7 +42,7 @@ Shader "Toon/Basic" { v2f vert (appdata v) { v2f o; - o.pos = mul (UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos (v.vertex); o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); o.cubenormal = mul (UNITY_MATRIX_MV, float4(v.normal,0)); UNITY_TRANSFER_FOG(o,o.pos); diff --git a/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader b/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader index 3d62217..88776ae 100644 --- a/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader +++ b/IronToad_UnityProject/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + Shader "Toon/Basic Outline" { Properties { _Color ("Main Color", Color) = (.5,.5,.5,1) @@ -26,7 +28,7 @@ Shader "Toon/Basic Outline" { v2f vert(appdata v) { v2f o; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); float3 norm = normalize(mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal)); float2 offset = TransformViewToProjection(norm.xy); diff --git a/IronToad_UnityProject/Assets/water/WaterShader.shader b/IronToad_UnityProject/Assets/water/WaterShader.shader index 61eefce..abaa9e1 100644 --- a/IronToad_UnityProject/Assets/water/WaterShader.shader +++ b/IronToad_UnityProject/Assets/water/WaterShader.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' @@ -125,7 +127,7 @@ Shader "LightHouse/WaterShader" { v.vertex.xyz += (node_133*_BulgeScale*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); float3 lightColor = _LightColor0.rgb; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); o.projPos = ComputeScreenPos (o.pos); COMPUTE_EYEDEPTH(o.projPos.z); @@ -308,7 +310,7 @@ Shader "LightHouse/WaterShader" { v.vertex.xyz += (node_133*_BulgeScale*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); float3 lightColor = _LightColor0.rgb; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); o.projPos = ComputeScreenPos (o.pos); COMPUTE_EYEDEPTH(o.projPos.z); @@ -444,7 +446,7 @@ Shader "LightHouse/WaterShader" { float node_133 = pow(lerp((_Perlin_var.r*node_6956),(_Perlin_copy_var.r*node_6956),(sin((node_9449.g*_bufferSpeed))*0.5+0.5)),_BulgeShape); // Panning gradient v.vertex.xyz += (node_133*_BulgeScale*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); TRANSFER_SHADOW_CASTER(o) return o; } diff --git a/IronToad_UnityProject/Assets/water/WaveShader_TimeScale.shader b/IronToad_UnityProject/Assets/water/WaveShader_TimeScale.shader index 5a5f8ab..fd4b227 100644 --- a/IronToad_UnityProject/Assets/water/WaveShader_TimeScale.shader +++ b/IronToad_UnityProject/Assets/water/WaveShader_TimeScale.shader @@ -1,3 +1,5 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Shader created with Shader Forge v1.30 @@ -92,7 +94,7 @@ Shader "LightHouse/WaterShader" { v.vertex.xyz += ((node_5748*_WaveHeight)*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); float3 lightColor = _LightColor0.rgb; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); return o; } @@ -216,7 +218,7 @@ Shader "LightHouse/WaterShader" { v.vertex.xyz += ((node_5748*_WaveHeight)*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); float3 lightColor = _LightColor0.rgb; - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); UNITY_TRANSFER_FOG(o,o.pos); TRANSFER_VERTEX_TO_FRAGMENT(o) return o; @@ -299,7 +301,7 @@ Shader "LightHouse/WaterShader" { float node_5748 = sin(((node_9544+(_Speed*0.5+0.0))*_Ring_Amount)); v.vertex.xyz += ((node_5748*_WaveHeight)*v.normal); o.posWorld = mul(unity_ObjectToWorld, v.vertex); - o.pos = mul(UNITY_MATRIX_MVP, v.vertex ); + o.pos = UnityObjectToClipPos(v.vertex ); TRANSFER_SHADOW_CASTER(o) return o; } diff --git a/IronToad_UnityProject/ProjectSettings/ProjectSettings.asset b/IronToad_UnityProject/ProjectSettings/ProjectSettings.asset index f29a12161e556394fd51cbc78ed3c1d5d6edfad9..b63cb297f74769d179fed2141e8bd4a418a283ea 100644 GIT binary patch literal 52214 zcmeI5cYGYx*|tZv!Svp%Lk|SwhD{5sEV&3|TUc_TXSG^ei>2LViwh7~l28+B0)!BH zFQElO2h%$tp%WnV9ui1GNCCe4KF>3c=8R?_@B82P`@VsdwAVay%{gaIn=@-E2=1N{ z1dn|d1i|V-aCaHsgB?eXA318?*x<{rzWS=E3E(KwufE!C-IH$^S-W?&XIf5~bMU@* zZyG_+g#Rub8Z>Tb3L3)zsghSy@DyTK#rxIp8iE(M zCj7+s4e>MMhZ157`R4eUoG)%6-wr>MAvtaf`B=OoUsf>Un}YTrXzYsjOviBY41aD4 zUIpI^ZyCQFUfe?7gP+NlC&U(d4skyR!3u<#f%s$amhrA!lut#z&H-cjtc34DgYiR} zM&l>G$X5n#%8(Cr>Dds+(6b7;dkqctM(n|O@jc5gEKmBcz4pXO*vu??Eua zc`ktGO}wLLJ>m#|8}G>1Cw9Ckn2q>%@s4@jfH)GrOq0a39yLYyaOE4t`0~m(j`0~P&&uHVKiCv6Zee}cQuzqNjPMJP&RxNo{%?_E3+vTf<(mmMURJ(&j31|b3-Zi> z|2*YeM&d8Pc^^=|RgAx_eCrrrd5ENQ8|6cgqEB$$$APn)zishD0{X-2wQY=t*Ng3v z8|w+<_fh|M1RFm{`S!}g^Ul-rj*P{J=iMR3!}E@c@$kH8XKoAA6P|aB@uuKe)Xx)e zUbZ9lA3?*V-)pDijQj0$M{;azzvsficFJ-aPuL(I7W@?Dc`f#_9ihK;TN8S&Xgk^o z6qg9EWrAos+S&LpSDrV*!+Ny~UO|TO(oXMGKl?du@pihKW5T2U?;01+AJwxvCD`Jg zJscbC$ru+8io@l%8Jt_(GtsfZo)+Wc*;qZTlwgZ{COJ0PGugQG^WTMsJ!AY-nHk9S3fau zyA9>w)z1#&e*MJQq4C05KUoeljZ67_tm*8G@zoH__^ucquY6XF@2ebrwcEmSs4Jfn z;Vg#}!C4M-WBfwp`^5NN%J+@&x0LS}vA{ID25R{7yEevb0*lVc07xDYp^$9`*yn zFgYau0bblfzLD}D3N}7U`Hy0}UHQ=w&T`lnoaJ*2d1k<0(D-A?v4!V7RQYj&9jE66 z^&B7L=PExT#_v%6;~0Nd`A=f}BjqQ?__E7O`cERy45V{oaF*N2x zLf9Z5;`*Q2>N%AhTgdlSewtw82P*$*jQ1%2S&SEypH7~U^zeS949T_ z6Syfu?vGPHCwDLZe&j6UGEX}~{l5U`79R)C7CgxR%LreB`54E+mB7w1KFphsoeM7M z8RpH$&ND9K=1E8ougm#(apQGi{W(v|=K{gTmny$7#@|$a5qU;DpMwouLGA@FCSU6E z8>|AhK3?1|;g^i?O~AIqi}m4B@}=Zb&O3lJotKekgfpGHf-|3&lVf8&p{GMVR}d~8 z?75O08~ya`qn@h>GvcX(9f23md$n;tJ-;Hy7M9zw>bZt6Gr-SLer<$*g7aPl&iZy8 zdBdI8t8dpE_v_mYjO#q(H%v;K?)=kxV0^Eb9Ot2?q7o5C7z189&4uXFoPBo)PN#bBgCL7Vmq|2f{s&o?X=Q zX^Q8s7VmrhW?a%US3Q4E@qA|SzULpt#Zywx=P90lTDZJYzUK?$ z;<-jWU#57zvUuOaLXMX6L+WwQ65KKVbsu8!zGtX$Nzc3L8Af@6XBmt4JDj=zpPmgPJer=3jQi=?7@WJ}>Dk1%q-UX~XH)a|=^0_%PtUg^ zJer=(jQi=?9Gtu2>Dj`#j60_xJ?w9{G>_EtOTk$mwleOwyRFUR*UxQ?i{~!&d^^Rn zt;PGE?UZvIpN+ctyr%Oz5f9flK2yHEd79k%_P>>nw0PlbtSb54A;LMHZUxSEG>W{z za`UgtX!r&MkW0aSV3xQa<~Evz&J{?w9j;^Z4a6L3vm{HTCZl z@kGmKXY)uooT>4|tEm#fR$8FgU^AY}_yZiR9Q={!OdNa}%bs#o}fDzYX@0w;K2FFD8LY`u+L;WOC>C z=l@fT4|C6bCa8ZZgBv`?_qQ4M{d=;f@fAFO2e_2Oik^ROa+l5(z5CFa#>F4rhjuc!!DD=X7vnSJzJHc^eE)3Y zQcosoInOb_Uk~|QRL<+ylYPjsv7WF#hvmGl#Sin!VLxz5r#xQ^>+}BP&a;eH4hI;Q z&n1!AcL`m^XD8m(Lwx@8Q_O2|6YurtUMdxO#g-8tS8;%4SM`?$bn1x{c`9b z$070lDsNoc`_1Z~$KVA2e8y+Q6K(Ik=JDHm!MONeQUAdy{sk%iKJ)nge&f>L4qIKy zzeqnemOs-uLU}31$0_IY^Dv&{>@;xp&xaWI`{xQccg62Js>UV1S$KH8Y7B0;c(1N$QFHZ3eYMju)QB=9vR<ijrR-f$jOb$FD1{AOMV~J{9Z=hAoufoxp6Z!K`MnxEDZjrWN0K;?+8ZfjdGh@=#-$#9uIay)JF&&*Y1bL| z>*4h=PCx6(4aTM1zS460HF<`9DYq5ZlzMU_d4t?9x0{Un<@Ou%4-GblBdjMkTfARx zw;1=!?N;!la=VQjNs5=-?ZzcvnBO!QcL%>@7%%0yv*zng@&>to-n)$Z<#{(bHl8;+ zA6shi{=D}da7n*E@4c7Yd6x68`+de`{Axiu8FxRwU<=2uS;`+E&j@$v(R@8f-XQm{ z*F)fv9{+khOpZh1^Q%XU%kz}O)&D4i6a0@E_x+EPW1~O%yy*#xm--MsZ+gU*6B6ohj9sSO@_``Yr?-|_SF~0w4#%IX=>;8;+eE+k?Wj=GNmd|s}-+;$2|L2{b z+%KOOoJV-HA9&HY_|H-QODX<8r1)Ppk3U~}#kkA|u7H0Sisn`NQ9!J3oPXY-{ErdN z`u3Ej=QZ-i;QYQ$e@5~Zoo~NE?)-jw-ZU=xeO>);rTE`Y@xNmp-~X<0@&8Hv@1^+P zPw{_X9^e0=aq<60{U4?H|CHkY*gU@f&&K7ttd2>=Fcke?=y&BQd<*5DL^$WMJArfD z|CGEj_o#9q5d^f{A;E7*EWyuU&pxk&r<)o&fgeRKI=I@xqp4vcOK!G8{FGviV|+o*r@6#o_}{w>Yp`?oSK{@vBTwevGge)_j@esaJ3zwJE2qvgM?aq;i1 z{_Rry-%0UrZyrDWBaMr{NBujb_(!GqN1Mm@k1;O(Md}}$;^)7INNT@3n#cE#H!l7Y z)ITA`zf+2TXY=^}U5tzW9QE&-;@>UB|6TL={@sm>|2p;Wk>by!_?yk+`zIO~|9$Fj zN%6O)_$Qgi_fIx1{^!&`CB;8A#ouNg-@m7E@xQPBy;A(`DgJ5Z@%__{i~m3BpOND4 zNb&D&9^XIHxcFCFSNgZk6n|HWf0lWC|7_#p-$MO!Qv7pM{9G4I8XxyHF8-a=zh8=f z{}lfL=JC^ipmFiHtDozU=*|cApWjRIXU*gLyN!$gd+N`n_KxX|F9JQ;VJ&_o5%MbVO;!8>q-A`WQxC$ z;y=nfzW)ct#lN2Vf0*L`QHuX)^Z5Q_jEjE<^&gw!KQ6_8ym@^83C6`gS^Ymw@&6>n zf1-JO|4GKhf1vtLPVt|T;y=|qzW+4i;$Nu#pQiYKmf}C%Jih-7rcs^6lRVkjUE#CM1%D8xj ztuN(#O^WAQi}yX(85hqQ>bX9}bA!eEo?jam&j|J0nBuv~;(gC=jEiTadTvhf++y** z=T_t5*-bsSrFd?)c;9n}aq;Y_o;y=KcUipex!bsS_EFE$6wf^t?|bewE}mZX+?V3H z-{O7G1IER(NIegxcpkEN-}A6>@f@R`M^ZeGTDN_j!_@Pa z6wfCX?|VKqE}oOs^Vby5-z?tu{N1>CE>h2DDV~2=yzlwkxXfp6hKK9P|D-2jz42d+ z&onR(@z?AA?L5Mx>vjJzF8+tr|3!-b%M|}t=JDrCNCwiv^NRl!^*4bhrGE(H6VgA_ zJidRJaar&E8~nqdUWWe2c~{v`%57Ql2GirOa}K8`;k?V4-#_p2#^tXZr61XFXhtJR$vSgD0hb9rA?quWMY=`I?@0J^CZ*|5Ew-F~0dmQvMsn_*mum zyr<`xtbC&w-&Z+*zex1Feabg+oOzIR9;tlO7(Y$_`L|;H7Ui48_+!d9kMUQP zZxQ34DBm*1hixq7vsH|*t9G z?~vn=czxd9xbz!k_2aW%iT)iJpWq*59>2YeHZJ~?)ISD1Dg9#^pWq*79^b#Caq(ZR z{_)^R{t1jv@b6?E-@mhQ@jt5mUBHw4yD~n(zngh{KYuSybe-@$_3sXzk7;{wa)4@S|=g*3UNM^89)t{4B3M z!Fhu4Ir3cPd&PK3c{_PV;$OvqCx8zFn&#r^l=Pnk&h|B(yg}}_uNmM?8FIgU@%I=d zwXeO6i~maX&je5McQQV~-(?=Z{AU@Le)2BO*KBZZVZMH==bb~|Aoue%m!1r{pRaw$ zoyR}#zQ*OeFY9^t1Lqc=_dPxD{^SjE|GWp#lOgxddmy><_~$*yxRmEV)&D*4B!8Ci z3I1;L`2L)6$=C2rrJnHjQE?0NwFWrrNuInx?&oVBJsEO8U-QYG$3JhcaXIg1dfoy! zH=g%ZoM~s}2gmr{$`{1=ACOxh|Ke z{}Avbe}(Z0{;GL=f6ch~?^J&sJjuV1@d^G#=JEZDjf?*o^)CTW@*m3h1pi^?@%@Jz z7yo_>VM??{63v{}<{%3OvdG1I8!#e`p@x|0Cn#UulHYpQFK({Kqgp z!GElIeE)IA#lNolj|WfkpTPJ8|Bub%`+s6w{M)GiMDQg4NsLeMpKKoAe~NMOH>>|t z@Ff3fj8E|Y)I7fbXU4_9uli31Px7C^_yqr%=JEYMH!l55AN<3hJ`0>%*zX-XLazHS z$Q$H-zi~D_8FIhh_$4_GA&=e{pJQCkd*KK<@44XI!hY}05yH=l@#mDEALAb?zaYkg zZ;9u^7++iYMKQju@{419cjcGFc!%;!Bb@zh9-RH{W#kR!%P+Uf!J9HtKJ4c=#4#-Y zE6DLZUT#+!mwC}4@H6fzaBeI&exB-BB@f<;}(}$!$#F>hdfj1M+V2(WzY{#ke;4Bu{CAtjZ%0dwi~nx*-vgfH zznAd|{`<`1`|md{_3AnJna>BnxrO!ZZRHQf_!r6_it#lz7tg~nzNPX&eC7tUpgi__L@F4}r5j{FZzv3q$&)X(8tNZjk-(d)Z0_%NV1$gzdv+V7#II^^?wMSN?U{~0{V{};w5_&+g^ z@Bh@e_zzS6U%`|7e`9=t|L^AU{ht{Z{|V~<2Y8bIbH*q5|7jlI|1aa>KU@9(22b+; zhw%yiFU;fnzceoXE7kuMc#=ODmh5jL$04k@(RtSpZJ5IjimZ^ZZn|HkI={hJt<`-0i<0|lG%3%2mSps0LAj327} zTQPou^35Wg4C_&-(u1n?lizZ2sV{5zY+_wQm{{L5`6^=DV`Ai=*I;}iVf zHIMJ#-MG~M&EN+L_TU$6Vf`PcJQLxp&yzJh&EyTn`}KJucv5;=$erI$Ppfgs?=1CC z0uK`WlNq0(%dgK<%;Wo~8khX$G+%At+`@TUST2b*koTCOEh7I-ak*Gs1cQej7N`-4)}HDW4VNZz!J~ z6XQd-7XREBUq|^qF}|JhePet#<@=FmBwzRpTcZ=4pWEEuxPQNJ0JvNi|9;^> z<4x}GcXX@gAbPOjx_kE>-?Mn%lQk}$lUO@98lv_2gIZaJq)P1sV7U}2MP-Of-S5kPboh*!dXw=0cSZbi19C!_r>@s+emyrc}D!~ zH%5RnUq$i;x!=A@;7R!^lj9KPH#*Ne#JH5(IQ3V+g9Lw-@fq<%=b1J0_vV9U??>W4 z0lylY<$nZuqXD~L{zn@3>s7;f81MgngQF~7e$UU@uoC^i;{D%C@I#CDe=ot0z?(Ak z`@fgqX!1aK^tvBoTz+rEeVVUh!4WE}ee9&NS}l>*w^lc*)oMny<6Smk!R?FUT9@e!k8&kDsq!TD+gHbBz1> zIu|@CU+0nI)bZcDa=vl-y(_$4jJtq-Y`k9V-}nc$*uE|#Z;<=f>mu-^{^4SB=kfc8 zON>jot*!n`!Gi?e6sTEBAn&Czm~)G3L`Uus@F2l|FXI#Z_nF7{-)~&}52^nF@F2neAmbDK51GgJKWx0o{hqN`;a?8wN5FA{ zrm+3~L(lstc?0K&)vL$o$&mZk{c&;}LLMEbo-i)$cg=03e|Qo+NbvvGxbJ_899z8o z{?6k4@%Q%@FYTKB75k;9E#7a}&wxw5{PF8qa(7<8T|Z}BuGhwzujkG0x5pRE@8|19 z^Z4cVl5z2mQvV-P{4b~YUonsGf7Q73KW*?+{YQSm7S6l&184qUi}9-R*JJzyI}U^0y*mT*KY^e1V@vw6h2zmO-x0nQc}BQfR{>`~z`uK$RG!<=@8bRP{5ClbiMOL|jqCgz zeqP7z=*PzNaQx~}{vGm+@OJQSaC*0o#FN*RkBr1K{XYh0`gb62@L0b-i~>(e|7da? z5>Nja|92Um;NRUmem&g7xcG-|FX_*u_?uJw6V2oM zTa1f;ZS}XN_$Q_KC!5FjPcbh3t<*m?#ow0V-_tz4e=pe@^{fDgIe0{@Ld7{d0^@`x}>houU2%Qv3&|_zyCV@Bf~0@n5F?Y>K}-#h){e@9!}#{#(?a zPw~%7@y|Dp@9#A({zuebNbw(>;$L7M-`{6k{4c1Ve?K|t`W93CCG+_HvT^ahrT#-w z{FM}c)jYnxW?cMVs=uD%Uzp-wWFFtY*tqyN94Y=Lg2+_iP`d{vW3Je`MTm??;oX zpXm(e;m26K|M|va!6lvk=NpeBcOL)qjmI08be^HQDJemZ|b?)?7eFi*62 zKbx&2c?!NviJoMtc z@eVf4FyFf4T8xoPX^dr2n}h#eZdr|0?tN{;Q2kyW0qU z_CLR(9~(b!%=_`J^}N>@_w#kFaX(+z#W?!``mZ-G`5LAE8^{|xukZggcv89DNbb_< z=j$fplCM29U%#Q>#Y?_A^}IKeX9l157K``ub!&`=`MS-xd@i~h{*|D<-TeON6Yc<) z^!uMHxYM}wZwob@chS?}F@Afw+qmCemXc#*dx`eL_gK8&zugNiehe$y&}2(C^}9T)STRgAx7^*b8{!S5yTLkvCkvg7?9~zoY%I#SaNS2It?==JrU0 zhkqBFo=3?ul3#w#wwaLJedcNm{AKGgj^lvPKG=gAb$Z!O;U zJY`(^|E=I*|L{9{mb(0U{lo9c8!;(yybzW*KL;y+UT@22?QOYy&N z9^e0gaT$M4f}hv*L;A6W=8I?l5Sj*N5rD9Oa zR_5nxt@(w8Tt28*^D~OA`TlINXJ)=ys#kLPYLLz4@=%oe^R;|sawUIAJzvZ%338?W za<;f+dbU3wrp*1UXKJZes-;TMf6!!{9|`V1s3TkJ#Sb~RV``~ZEthJ+;$R7Ob(Z_G z)m};5#B6TC{7R`_>}e_W!B7e22i-xIQN5)_vxttiaBR2%vVsBGs@W< z4v+0@E*AQwEc}Gf(^*^6mygA_Rb+Q zTF&QcG0#9;N2yY)WDB)#2s7QRh1FnDp{Ldx^yUlmd%s!C0|u8&HHcmXSLS^z_?~(t zsW1o9YYB--2O`28Az*f)QmbeCX6CbfgRlEk)Q|a#CsEppmqfs#U2*evO~w zGVC>isgiq-xv)9;ZvSA3Bt|iy4dhER^TnQg1?OX(25rvO3JdeDzILLHv1&}~vLL=I zb)y;hth0tRGvWEJC1td;LaE9c?p(-hTd}8*%hpPj8O8Qewg)E*P$Sr=zagqtI5c1U zh8Ucyxm<254ix&td~bGP0qw1)P(^E8!uH=+XBW|0$fBH?yym{X(xRzdT^+5ZMa4cO zD#()Ldz$M=X9+z@zN=(c?`!tWDpw0Vd0LVTRzqgG`kCOdi1z%vn(MVXEeY(@(2tEB zGqF%>mAp)>&zr|Suu#o*_vKsj_4#$EtvVfbdSQN` zOoB?i7%ja34YgLUVPz$+5A%gD~jg<3IRtp*E`6WF{` zbeEdtUv=YD=b}O_*Becp^t;*IK#U_jV|#WUj7E=+F{ZGyoX_WaTPH?RG&P^?i4KVa z8JSYgSECt2v2K98yI)!SkR4(LZ7xIhTJ}HXMUR>**_CmEbqg;#d z*_}&@xu7t=h>OzPSMJTW^yRfsXB49qjfnx7Rw|ZI4d&y_?fHfIK9_uOk1a%_DoxAx zmnut8vu5Wjwfy3+dY7x^F&${D6<1(<*PJ_~UZ~_JPML=BpfIazcBFa}Ou@+Bk?on* z+1%^`I_u>!#+vH%dNJ2qU*NG8jNjEluBBA0RZvOM*k}lkn3(Nj-JDp;R(iZ0(@Lz0 z9es5UNdxhiwZu%#>}RA|g%y$q3`DhH!cYrj44lad?#3)hG5RMrgeo7m%h+JYUB(5Y z$L}(F6u<5qxK>&Xx-seK%cI=b#xSYLvybD^)qD-UJo467EZ1w&l+mq6Mxc(Yn>>XT zo&!;MjkK0XtC&)*qnz^Kb#SeY_0rSop8u%0$YO7Mg=$P6%Q+wDTTSlwEaD`K~^g<@yVg0S!vcDdQ-YNl+Dmfo zAX{QXLn^94wN@#VCl%3T&~f5Cg^penTPJDRnvudBV66q+4-f7~2kI^k$})!z3PXM| zUqdo30#t96;Yr)?ATi{u|`6RsB+STTY9s_V!n?Yy}RrGv(*Ktei-2}ZIEmY6kTCP zrxe?aPAyHI06kW1;f&5mQS$9f%;wPtOj?Yw5XoYbA81qVfMiv@4OgJzWze~h_Nt>ac&ui?--ba>J8ug?rb~;?WeB;bBx%zIx*Favleu0rT)2vZZ|iN z9Z`Ji-4|E{g5-?e|7X%I!{!-1Oj=CiYvLKef` zLiyg6o$v0z-COAcA(%C@y))OF@8=!HjLw0)u(Nk)TE3R;b6wh0bZG3EN{ifRm+hO> zQ^2fIhj9*o*}mqEw#X#X)juQ=BPF`LE{rX>!^df+WsA6N>%{y99S??cPWDRr^E_D) zU^V?O!rU2Tc;tkVcj`Iyh9ie`QBqJLi?)c)To&VGR&So7EnY{Nz4A*?XDWGDdIJn| zzqQZ*Hue_*eCbLn9zhv0+B-}W-$rp z_>shTN6brNLH!4{E-7aFJrX%EoJ61+c}ey-N{zemExh9RIU?2#jGImCglq6^d?p!UOg!6^g6{Z8A*`-?FJrZC^UA>s4;MNyQ4|cell2nrRbfR74`*D9%wqOi4 zwJa88$~uxWNlY?(x=FU&?&HFD_oRp*FHLn)ss>Y3y-DR^n7hr5z`$^!+Rzz z&S65!`Iby(Wg?dC3l9&lDlwz`;Fej%T(*vdEQ_z|0WB3QD$dN8anpkOgo$#0zLK3) z#Yoqhueuo@<$XGJ9JB*BVqZf-xMHVho2R8N*hZah{S- zE7f>>N=~hG-Kb+#Pu_*+kauAb%Dd1f@4^C;cVRinyRdlVU05peE-Var7nXs%v#je| zKQ)$7-Rq~vveg+*um_q|1ck~73Ue7jp*n)X{6uw03Q`GVF294^z^r!uI_9Y+qY(o?EqGcPwo@X{eGtxbLi@ zgUe5GLvK&0!J~(%95y&lk-(XFXqBznYK}l%t_W8d1nRhjj<%vBwko3&R;;c@MvjEN zdt&mBMdCj(;~bp(agI)cJ#9YI#Dqby86SBtou(qAvyn$F}Y7;^I z>NWSo|oU*_4WNr?rPk@OWq2l#mbH zY`e9E5Nm(qGi~`k>{-Ak*A?WDr^iaYDfn1{i;5o5$K0Nyqf%Iy%`KTyN0;F3nBGz2 zoea90&@mHF4r=a^6Xvv7^v2ygmmzp+Z`U;3lcV2gEmT~g;9+4`37;Xr3`*{yWGx;? zP2$q&#Cok(D*C!eujnr4Xo})+OcETM1jiAE&m^t?1e=nrU{%`gUqEoF5+EL4l>3RmodM``ge6)x!5Tyulg<=g=F7kex9O7ckyOOZW)=90C$sEfkXVf zYPgPq5e(gRuEyu4crfUO7Wb&r8IXXPcGEu@%Xr;rP&`kxMusX$u+xln>r`Ai1;nig zD!tsI$%2Gnch?hLG7f^E(&TzO7RVFu@O?WP zO0^cJT)&>5FJO=lYnnT_6(7jJV+^x%q{E~E<7rsyulYwjxr21$Oi}bv_BeNv+p!WQM2Lv^=IAh1`tQg(;{6gCM&?_o1Fadj^3nENb={#Sgh&sX?43`W#Pf@py;P zxdmbI>Ceo|B0N}kNtXq_qU$jokehUSJi~#&@z$BsbezF;!IB`P_I_Hvr;x?dNBIm9 zuUu<;iyI}wMo=Ep)r*H+#cW|9{R3lwB^{3si#_&EE;dUVt3I?2Tz#C~!Zce0pUbj6 z;iPfzIzEBn4Dn$XdFjO>h^reeAUX_}$3(_qUQ~Y|#&hE6NQ~soo>(f?ti;m#cn0dK z&!qmkJFA;;bYbZPqk?{@g!!FS#>WqO_#E9up||d<_0Gvw+$R%UKsAqkm{T0L8brjZ zfM-W|TqJ8w?ns656hRLh+?V%9+glag^WYDj$@ATT2Nqu!Wsf_mr3-497UbvQiEEfdE~fJ4t{MF%iYLcjHLzGV4vtubB4&~7^>Hug z#$A`HAlrlI5148>+EOmN3}(v(o*i{TR^irV<=RO2>8lv!(|m1I zEPQ#quOOUxx<~#k_#6cuXQTE>Ya9%lyoJS1-5% z>dce7ng?=>H!KkL>D6EwFF=IgBdzZ4#P#^|G)yFzHr7hHQs01yb+CXchw2&5(eaoS z1yDpRKc*YKYEh2G4~ZLiI>vK3vx}S3(TVD;pEXeDG+T=vv4eqy+cA{u73oFdStUGD9c4w2&y)KbQDV{VhdBC%`V!aQ~ zknu=U_eU$QqHwV*46&AG2Qd%2K%mF8aTS3#{F;#PSh*#c(lN_D!Pcj#dW<|psfMBQ z)(t9dEI{|pA(!8@P2xv)SHcH|;SeY7^dP-ylgEGVt|ELgs7Hk7ME4O+1Hu!#*$O@$ zC9Sy)w|5$h7O0mkse&z`Bz(Zdh&FRa9X`%o8G==6hJ z`Z+BwK@aqz_^iKte2aLX{|j<`rFu^%K2e5G@K?i|y?OXpad)Y-Ao6*i#DPAOu|6N149m9X*qnqRJuCU!j zFKsa8o)dmE`rd8d`ZD~xL19ez{hnXHbjV#BJ=uEuv+qCnN&8#Jkn`V}4AFqy@O^o_ z+OQroqKltH#=rf;tDT=0?k&}E|B|>Jf827rUw_@G-CulR?(X=9DSO}-m0`nod>u%4 zV-K={SEveE+WV0I7vGtgq4=jpc+Cwn1;jKgtKY*kMZfdkD1{rs!t!py7D!&?EBA2= z^Tbnx9=9Xoi(EfmPYf-^9(?#5s{}3{_pP-hBkih>j9zd0yEy#f`!~6nc6>GH_%W4l@`dF=Cx2$C@cU|baSO{K{4P|!evEJYdn-)Sgh+YHUjKRu`@iYy!xMvm zue9y!_a~KCnu*-C1ANcmz#G3Vkg>X--}!3Xx~(G({_KA8zpRP3%^e->Z7t1RZ8N6t zqSIa%#Opk2)TkZt8Z~+}zm6Kk--n2A?wzX$06b4vH=^J5cz0a*#fif&>_<@<8{zw} z`R?-NzQls?4>5WCDvH;@_fd;+Hm15o6FpjY{{L_P50$`b!8g?f_O0ma2lY-#g@kGv zte>>wzhK{#jzk6OdSsg6+SnEdoYXpc{MfPEPw$vJcgN9V$B#K^)Tr&lwiSM-k9iw~ z%&|R2f9Ae$Yhd8wYjFtv%kLbk!_cHA>GrXsz+g85-{w`C_nw&BX-+jedhzUzc?exX{D#B5cd}@qe{N%k6(67=hr)<9BX8bYfq2@z|EhV<)vv z@9iI3EwxYV=$$ZnpZwx_;eXF5ABmvqaPw@-fKnXh)-|3vRW z;cwo&;qrMGbq2wU`v<|cyp42N5H#_~7I)DMf)4!eV_OBy&vgV%nBppWbp+ps?GCu! z5wB@@F?HY_?f1ZY+HXaO6!F=3PtF%p#1F)KvaJb`BEA6c$+sayqCfpX(0rqN9|Y40 zGs1rcempK|KLal&+LPz;o_r=DQlxXHd#~lsOxa%uPJ2|W=`TaMHsg}@vpso}_R~7% z;T>P(F9Yt#kZ7hDnD3xl<%nKdq~1Q%J&Tk9_2eX!J~XJ&RmN8iSnIqyd!uB{qqv! z%W=f`5j36u-Z))o+#jcl$dNdHKLibqQ`Xy|giZ3!;7Zizr*V(t2=UUT4n(f_I652@ zO@!ChL3|t?VZ77T=Pl4-zd91HAVYf@r?;y<;~Z0RoF3(v@VNfb#zp7ns&foQkdivb zI@YR_F)li&4p-hTaHgbAw_~k3J;p_6FV*R#2vSmKv16?|ON>iAKN>o$x21S7MdNWu z`7*)A^UC`Y{4C|iCHT9Pb3S2;^gph=U$EnN-~2K-+j}6v?^nK@JR>^npNOHZe-4_x zKaUI<_xmU24ws_&h5eKDu)?_1&-3c%aDwj$W7>}-_@T;ICiqFp5vyH_>Y<^0b&Rtf zE(K>jtV!@|m7kd4cPKw8!Jkxqa)NKOwdkLc;ICDFYJwl3{ImogRKAuxBke-}CzPK~ zj>PhkpQ}78*!b1T*CqH(%5w>Rr}BJ)KcqZN@ZT#RP4F$s#}a(|ZKQt26MUBPLV_<; zj(+4)RNh|Y>l6G`<;4UqD4$61N#&&ke~0pNf^Sw{N${JMpPAqfD6b~?M)}5=J^Rl9ILE~%@{HJ%k10PZ!8a&> zQ-WWr{LSP@QG4B}{4Iiw->v-Y1pk5Za}xY%%yo#dG*KWBrp-Yz3YqW_11_2Px09b8V>B%kKu z&nc?&E^?%ZpRW80!N&8-uT1bWl)pQ{%gWzFo)LezADIN_I_kaTO_#5?j(Q((M~2*= zr`}KQUjBaMD&w->xk&Xt0G_6QHSII4`X3~BFJFJNaajkxNA*7h&V+jN{Qt1v7XLpI zrF@Ims`R4{6`b~VdWnq&(KEf zUsC?@80R?Maa+;9fgC9s7q3@-qhRC5DE~x^v)xYvXS?4--lUFSZ=VECYnM-vyO-ZC zHyf9FC}_T)24{-Obq+Y6{|sS9ILmdJ+JBZDDJs|X%0DOAar%EZIQ{=Td6V|O|F;0A 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