Showing preview only (6,170K chars total). Download the full file or copy to clipboard to get everything.
Repository: LGhassen/Scatterer
Branch: master
Commit: c2d0b0f2a879
Files: 3995
Total size: 21.3 MB
Directory structure:
gitextract_hn92p19d/
├── .gitignore
├── Readme.md
├── license.md
└── scatterer/
├── CelestialBodySortableByDistance.cs
├── DataSerialization/
│ ├── ConfigPoint.cs
│ ├── ConfigReader.cs
│ ├── MainSettingsReadWrite.cs
│ ├── PlanetshineSource.cs
│ ├── PluginDataReadWrite.cs
│ ├── QualityPresetsLoader.cs
│ └── ScattererCelestialBody.cs
├── Effects/
│ ├── AntiAliasing/
│ │ ├── GenericAntiAliasing.cs
│ │ ├── SubpixelMorphologicalAntialiasing.cs
│ │ ├── TemporalAntiAliasing.cs
│ │ └── Utils/
│ │ └── HaltonSeq.cs
│ ├── PlanetShine/
│ │ ├── PlanetShineLight.cs
│ │ └── PlanetshineManager.cs
│ ├── Proland/
│ │ ├── Atmosphere/
│ │ │ ├── Godrays/
│ │ │ │ └── LegacyGodraysRenderer.cs
│ │ │ ├── Preprocessing/
│ │ │ │ └── AtmoPreprocessor.cs
│ │ │ ├── SkyNode.cs
│ │ │ └── Utils/
│ │ │ ├── AtmospherePQS.cs
│ │ │ ├── AtmosphereProjectorContainer.cs
│ │ │ ├── AtmosphereUtils.cs
│ │ │ ├── GenericLocalAtmosphereContainer.cs
│ │ │ ├── ScaledScatteringContainer.cs
│ │ │ ├── ScreenSpaceScatteringContainer.cs
│ │ │ └── SkySphereContainer.cs
│ │ ├── Ocean/
│ │ │ ├── Caustics/
│ │ │ │ ├── CausticsLightRaysRenderer.cs
│ │ │ │ └── CausticsShadowMaskModulate.cs
│ │ │ ├── FourierCPU.cs
│ │ │ ├── FourierGPU.cs
│ │ │ ├── GPUWaveInteractionHandler.cs
│ │ │ ├── OceanCameraUpdateHook.cs
│ │ │ ├── OceanFFTcpu.cs
│ │ │ ├── OceanFFTgpu.cs
│ │ │ ├── OceanNode.cs
│ │ │ ├── OceanRenderingHook.cs
│ │ │ ├── OceanWhiteCaps.cs
│ │ │ ├── UnderwaterDimmingHook.cs
│ │ │ └── Utils/
│ │ │ ├── CBUtility.cs
│ │ │ ├── FakeOceanPQS.cs
│ │ │ ├── OceanUtils.cs
│ │ │ ├── RTUtility.cs
│ │ │ └── WriteFloat.cs
│ │ └── ProlandManager.cs
│ ├── ScattererCelestialBodiesManager.cs
│ ├── SunFlare/
│ │ ├── SunFlare.cs
│ │ ├── SunflareCameraHook.cs
│ │ ├── SunflareManager.cs
│ │ ├── SunflareSettingsV1.cs
│ │ └── SunflareSettingsV2.cs
│ ├── SunlightModulator/
│ │ ├── SunlightModulator.cs
│ │ ├── SunlightModulatorPostRenderHook.cs
│ │ └── SunlightModulatorPreRenderHook.cs
│ └── Tonemapping/
│ └── HableCurve.cs
├── GUI/
│ ├── AtmoGUI.cs
│ ├── ConfigPointGUI.cs
│ ├── GUIhandler.cs
│ ├── MainOptionsGUI.cs
│ ├── ModularGUI/
│ │ ├── AbstractGUIModule.cs
│ │ ├── GUIModuleBool.cs
│ │ ├── GUIModuleFloat.cs
│ │ ├── GUIModuleInt.cs
│ │ ├── GUIModuleLabel.cs
│ │ ├── GUIModuleString.cs
│ │ ├── GUIModuleVector2.cs
│ │ ├── GUIModuleVector3.cs
│ │ ├── GUIModuleVector4.cs
│ │ └── ModularGUI.cs
│ ├── OceanGUI.cs
│ ├── SunflareGUI.cs
│ └── ToolbarButton.cs
├── OldShaders/
│ ├── readme.md.txt
│ └── scattererShaders/
│ ├── .vs/
│ │ └── scattererShaders/
│ │ ├── DesignTimeBuild/
│ │ │ └── .dtbcache
│ │ ├── v14/
│ │ │ └── .suo
│ │ └── v15/
│ │ ├── .suo
│ │ └── Server/
│ │ └── sqlite3/
│ │ ├── storage.ide
│ │ ├── storage.ide-shm
│ │ └── storage.ide-wal
│ ├── Assembly-CSharp-Editor.csproj
│ ├── Assembly-CSharp-Editor.csproj.orig
│ ├── Assembly-CSharp.csproj
│ ├── Assembly-CSharp.csproj.orig
│ ├── Assembly-UnityScript.unityproj
│ ├── Assets/
│ │ ├── AssetBundles/
│ │ │ ├── AssetBundles
│ │ │ └── AssetBundles.meta
│ │ ├── AssetBundles.meta
│ │ ├── Editor/
│ │ │ ├── ExportAssetBundle.cs
│ │ │ ├── ExportAssetBundle.cs.meta
│ │ │ ├── KSPCurveEditor.cs
│ │ │ └── KSPCurveEditor.cs.meta
│ │ ├── Editor.meta
│ │ ├── Shaders/
│ │ │ ├── AA/
│ │ │ │ ├── AreaTex.tga
│ │ │ │ ├── AreaTex.tga.meta
│ │ │ │ ├── CustomTAA.shader
│ │ │ │ ├── CustomTAA.shader.meta
│ │ │ │ ├── SMAA.cginc
│ │ │ │ ├── SMAA.cginc.meta
│ │ │ │ ├── SMAA.shader
│ │ │ │ ├── SMAA.shader.meta
│ │ │ │ ├── SMAABridge.cginc
│ │ │ │ ├── SMAABridge.cginc.meta
│ │ │ │ ├── SearchTex.tga
│ │ │ │ └── SearchTex.tga.meta
│ │ │ ├── AA.meta
│ │ │ ├── Atmo/
│ │ │ │ ├── CompositeDownscaledScattering.shader
│ │ │ │ ├── CompositeDownscaledScattering.shader.meta
│ │ │ │ ├── DepthBufferScattering.shader
│ │ │ │ ├── DepthBufferScattering.shader.meta
│ │ │ │ ├── Godrays/
│ │ │ │ │ ├── ComputeInverseShadowMatrices.compute
│ │ │ │ │ ├── ComputeInverseShadowMatrices.compute.meta
│ │ │ │ │ ├── GodraysCommon.cginc
│ │ │ │ │ ├── GodraysCommon.cginc.meta
│ │ │ │ │ ├── ShadowVolumeUtils.cginc
│ │ │ │ │ ├── ShadowVolumeUtils.cginc.meta
│ │ │ │ │ ├── VolumeDepth - Copy.shader.BAK
│ │ │ │ │ ├── VolumeDepth - Copy.shader.BAK.meta
│ │ │ │ │ ├── VolumeDepth.shader
│ │ │ │ │ └── VolumeDepth.shader.meta
│ │ │ │ ├── Godrays.meta
│ │ │ │ ├── Preprocessing.meta
│ │ │ │ ├── ProjectorScattering.shader
│ │ │ │ ├── ProjectorScattering.shader.meta
│ │ │ │ ├── ScaledPlanetScattering.shader
│ │ │ │ ├── ScaledPlanetScattering.shader.meta
│ │ │ │ ├── SkySphere.shader
│ │ │ │ └── SkySphere.shader.meta
│ │ │ ├── Atmo.meta
│ │ │ ├── ClippingUtils.cginc
│ │ │ ├── ClippingUtils.cginc.meta
│ │ │ ├── CommonAtmosphere.cginc
│ │ │ ├── CommonAtmosphere.cginc.meta
│ │ │ ├── DecodeEncode/
│ │ │ │ ├── DecodedToFloat.shader
│ │ │ │ ├── DecodedToFloat.shader.meta
│ │ │ │ ├── WriteToFloat.shader
│ │ │ │ └── WriteToFloat.shader.meta
│ │ │ ├── DecodeEncode.meta
│ │ │ ├── Depth/
│ │ │ │ ├── CopyCameraDepth.shader
│ │ │ │ ├── CopyCameraDepth.shader.meta
│ │ │ │ ├── DepthToDistance.shader
│ │ │ │ ├── DepthToDistance.shader.meta
│ │ │ │ ├── DownscaleDepth.shader
│ │ │ │ └── DownscaleDepth.shader.meta
│ │ │ ├── Depth.meta
│ │ │ ├── DepthCommon.cginc
│ │ │ ├── DepthCommon.cginc.meta
│ │ │ ├── EVE/
│ │ │ │ ├── CloudVolumeParticle.shader
│ │ │ │ ├── CloudVolumeParticle.shader.meta
│ │ │ │ ├── EVEUtils.cginc
│ │ │ │ ├── EVEUtils.cginc.meta
│ │ │ │ ├── GeometryCloudVolumeParticle.shader
│ │ │ │ ├── GeometryCloudVolumeParticle.shader.meta
│ │ │ │ ├── GeometryCloudVolumeParticleToTexture.shader
│ │ │ │ ├── GeometryCloudVolumeParticleToTexture.shader.meta
│ │ │ │ ├── SphereCloud.shader
│ │ │ │ ├── SphereCloud.shader.meta
│ │ │ │ ├── SphereCloudShadowMap.shader
│ │ │ │ ├── SphereCloudShadowMap.shader.meta
│ │ │ │ ├── alphaMap.cginc
│ │ │ │ ├── alphaMap.cginc.meta
│ │ │ │ ├── cubeMap.cginc
│ │ │ │ ├── cubeMap.cginc.meta
│ │ │ │ ├── noiseSimplex.cginc
│ │ │ │ └── noiseSimplex.cginc.meta
│ │ │ ├── EVE.meta
│ │ │ ├── EclipseCommon.cginc
│ │ │ ├── EclipseCommon.cginc.meta
│ │ │ ├── IntersectCommon.cginc
│ │ │ ├── IntersectCommon.cginc.meta
│ │ │ ├── Misc.meta
│ │ │ ├── Ocean/
│ │ │ │ ├── Caustics/
│ │ │ │ │ ├── 0042-underwater-beach-sand-texture-seamless.jpg.meta
│ │ │ │ │ ├── CausticsFinal.png.meta
│ │ │ │ │ ├── CausticsGodrays.mat
│ │ │ │ │ ├── CausticsGodrays.mat.meta
│ │ │ │ │ ├── CausticsGodraysRaymarch.shader
│ │ │ │ │ ├── CausticsGodraysRaymarch.shader.meta
│ │ │ │ │ ├── CausticsOcclusion.shader
│ │ │ │ │ ├── CausticsOcclusion.shader.meta
│ │ │ │ │ ├── CausticsScene.unity
│ │ │ │ │ ├── CausticsScene.unity.meta
│ │ │ │ │ ├── CausticsShadowMask.mat
│ │ │ │ │ ├── CausticsShadowMask.mat.meta
│ │ │ │ │ ├── CompositeCausticsGodrays.shader
│ │ │ │ │ ├── CompositeCausticsGodrays.shader.meta
│ │ │ │ │ ├── ModulateShadowMask.cs
│ │ │ │ │ ├── ModulateShadowMask.cs.meta
│ │ │ │ │ ├── SeaFloor.mat
│ │ │ │ │ ├── SeaFloor.mat.meta
│ │ │ │ │ └── WhiteTexture.png.meta
│ │ │ │ ├── Caustics.meta
│ │ │ │ ├── FindHeights.compute
│ │ │ │ ├── FindHeights.compute.meta
│ │ │ │ ├── Fourier.shader
│ │ │ │ ├── Fourier.shader.meta
│ │ │ │ ├── InitDisplacement.shader
│ │ │ │ ├── InitDisplacement.shader.meta
│ │ │ │ ├── InitJacobians.shader
│ │ │ │ ├── InitJacobians.shader.meta
│ │ │ │ ├── InitSpectrum.shader
│ │ │ │ ├── InitSpectrum.shader.meta
│ │ │ │ ├── InvisibleOcean.shader
│ │ │ │ ├── InvisibleOcean.shader.meta
│ │ │ │ ├── OceanBRDF.cginc
│ │ │ │ ├── OceanBRDF.cginc.meta
│ │ │ │ ├── OceanDisplacement3.cginc
│ │ │ │ ├── OceanDisplacement3.cginc.meta
│ │ │ │ ├── OceanLight.cginc
│ │ │ │ ├── OceanLight.cginc.meta
│ │ │ │ ├── OceanShadows.cginc
│ │ │ │ ├── OceanShadows.cginc.meta
│ │ │ │ ├── OceanUtils.cginc
│ │ │ │ ├── OceanUtils.cginc.meta
│ │ │ │ ├── OceanWhiteCapsModProj3.shader
│ │ │ │ ├── OceanWhiteCapsModProj3.shader.meta
│ │ │ │ ├── OceanWhiteCapsModProj3PixelLights.shader
│ │ │ │ ├── OceanWhiteCapsModProj3PixelLights.shader.meta
│ │ │ │ ├── OceanWhiteCapsModProj3VertexSearch.shader
│ │ │ │ ├── OceanWhiteCapsModProj3VertexSearch.shader.meta
│ │ │ │ ├── ReadData.compute
│ │ │ │ ├── ReadData.compute.meta
│ │ │ │ ├── SlopeVariance.compute
│ │ │ │ ├── SlopeVariance.compute.meta
│ │ │ │ ├── UnderwaterDepthBuffer.shader
│ │ │ │ ├── UnderwaterDepthBuffer.shader.meta
│ │ │ │ ├── UnderwaterProjector.shader
│ │ │ │ ├── UnderwaterProjector.shader.meta
│ │ │ │ ├── WhiteCapsPrecompute0.shader
│ │ │ │ └── WhiteCapsPrecompute0.shader.meta
│ │ │ ├── Ocean.meta
│ │ │ ├── RingCommon.cginc
│ │ │ ├── RingCommon.cginc.meta
│ │ │ ├── RingCommon.cgincBAK
│ │ │ ├── RingCommon.cgincBAK.meta
│ │ │ ├── Shadows/
│ │ │ │ ├── DoublePrecisionEmulation.cginc
│ │ │ │ ├── DoublePrecisionEmulation.cginc.meta
│ │ │ │ ├── FixedScreenSpaceShadows.cginc
│ │ │ │ ├── FixedScreenSpaceShadows.cginc.meta
│ │ │ │ ├── FixedScreenSpaceShadows.shader
│ │ │ │ ├── FixedScreenSpaceShadows.shader.meta
│ │ │ │ ├── LongDistanceScreenSpaceShadows.shader
│ │ │ │ └── LongDistanceScreenSpaceShadows.shader.meta
│ │ │ ├── Shadows.meta
│ │ │ ├── ShadowsCommon.cginc
│ │ │ ├── ShadowsCommon.cginc.meta
│ │ │ ├── SunFlare/
│ │ │ │ ├── SunFlare.shader
│ │ │ │ ├── SunFlare.shader.meta
│ │ │ │ ├── SunFlareExtinction.shader
│ │ │ │ └── SunFlareExtinction.shader.meta
│ │ │ ├── SunFlare.meta
│ │ │ ├── Utility.cginc
│ │ │ └── Utility.cginc.meta
│ │ ├── TestScenes.meta
│ │ └── shaders.meta
│ ├── Library/
│ │ ├── APIUpdater/
│ │ │ └── project-dependencies.graph
│ │ ├── AnnotationManager
│ │ ├── AssetImportState
│ │ ├── AssetServerCacheV3
│ │ ├── BuildPlayer.prefs
│ │ ├── BuildSettings.asset
│ │ ├── CurrentLayout-default.dwlt
│ │ ├── CurrentLayout.dwlt
│ │ ├── CurrentMaximizeLayout.dwlt
│ │ ├── EditorOnlyScriptingSettings.json
│ │ ├── EditorOnlyScriptingUserSettings.json
│ │ ├── EditorSnapSettings.asset
│ │ ├── EditorUserBuildSettings.asset
│ │ ├── EditorUserSettings.asset
│ │ ├── InspectorExpandedItems.asset
│ │ ├── LastBuild.buildreport
│ │ ├── LastSceneManagerSetup.txt
│ │ ├── LibraryFormatVersion.txt
│ │ ├── MonoManager.asset
│ │ ├── PackageCache/
│ │ │ ├── com.unity.collab-proxy@1.2.16/
│ │ │ │ ├── .npmignore
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── DEPENDENCIES.md
│ │ │ │ ├── DEPENDENCIES.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── collab-proxy.md
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── Collab/
│ │ │ │ │ │ ├── Bootstrap.cs
│ │ │ │ │ │ ├── Bootstrap.cs.meta
│ │ │ │ │ │ ├── CollabAnalytics.cs
│ │ │ │ │ │ ├── CollabAnalytics.cs.meta
│ │ │ │ │ │ ├── CollabHistoryWindow.cs
│ │ │ │ │ │ ├── CollabHistoryWindow.cs.meta
│ │ │ │ │ │ ├── CollabToolbarButton.cs
│ │ │ │ │ │ ├── CollabToolbarButton.cs.meta
│ │ │ │ │ │ ├── CollabToolbarWindow.cs
│ │ │ │ │ │ ├── CollabToolbarWindow.cs.meta
│ │ │ │ │ │ ├── Presenters/
│ │ │ │ │ │ │ ├── CollabHistoryPresenter.cs
│ │ │ │ │ │ │ └── CollabHistoryPresenter.cs.meta
│ │ │ │ │ │ ├── Presenters.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── BuildStatusButton.cs
│ │ │ │ │ │ │ ├── BuildStatusButton.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryDropDown.cs
│ │ │ │ │ │ │ ├── CollabHistoryDropDown.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryDropDownItem.cs
│ │ │ │ │ │ │ ├── CollabHistoryDropDownItem.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryItem.cs
│ │ │ │ │ │ │ ├── CollabHistoryItem.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryItemFactory.cs
│ │ │ │ │ │ │ ├── CollabHistoryItemFactory.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryRevisionLine.cs
│ │ │ │ │ │ │ ├── CollabHistoryRevisionLine.cs.meta
│ │ │ │ │ │ │ ├── HistoryProgressSpinner.cs
│ │ │ │ │ │ │ ├── HistoryProgressSpinner.cs.meta
│ │ │ │ │ │ │ ├── ICollabHistoryItemFactory.cs
│ │ │ │ │ │ │ ├── ICollabHistoryItemFactory.cs.meta
│ │ │ │ │ │ │ ├── PagedListView.cs
│ │ │ │ │ │ │ ├── PagedListView.cs.meta
│ │ │ │ │ │ │ ├── StatusView.cs
│ │ │ │ │ │ │ └── StatusView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── Collab.meta
│ │ │ │ │ ├── Resources/
│ │ │ │ │ │ ├── Styles/
│ │ │ │ │ │ │ ├── CollabHistoryCommon.uss
│ │ │ │ │ │ │ ├── CollabHistoryCommon.uss.meta
│ │ │ │ │ │ │ ├── CollabHistoryDark.uss
│ │ │ │ │ │ │ ├── CollabHistoryDark.uss.meta
│ │ │ │ │ │ │ ├── CollabHistoryLight.uss
│ │ │ │ │ │ │ └── CollabHistoryLight.uss.meta
│ │ │ │ │ │ └── Styles.meta
│ │ │ │ │ ├── Resources.meta
│ │ │ │ │ ├── Unity.CollabProxy.Editor.asmdef
│ │ │ │ │ └── Unity.CollabProxy.Editor.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── README.md
│ │ │ │ ├── README.md.meta
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── Editor/
│ │ │ │ │ │ ├── HistoryTests.cs
│ │ │ │ │ │ ├── HistoryTests.cs.meta
│ │ │ │ │ │ ├── Unity.CollabProxy.EditorTests.asmdef
│ │ │ │ │ │ └── Unity.CollabProxy.EditorTests.asmdef.meta
│ │ │ │ │ └── Editor.meta
│ │ │ │ ├── Tests.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ext.nunit@1.0.0/
│ │ │ │ ├── .gitlab-ci.yml
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── ext.nunit.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── README.md
│ │ │ │ ├── README.md.meta
│ │ │ │ ├── net35/
│ │ │ │ │ ├── unity-custom/
│ │ │ │ │ │ ├── This is a custom build DONT include.txt
│ │ │ │ │ │ ├── This is a custom build DONT include.txt.meta
│ │ │ │ │ │ ├── nunit.framework.dll.mdb
│ │ │ │ │ │ ├── nunit.framework.dll.mdb.meta
│ │ │ │ │ │ ├── nunit.framework.dll.meta
│ │ │ │ │ │ ├── nunit.framework.pdb
│ │ │ │ │ │ ├── nunit.framework.pdb.meta
│ │ │ │ │ │ ├── nunit.framework.xml
│ │ │ │ │ │ └── nunit.framework.xml.meta
│ │ │ │ │ └── unity-custom.meta
│ │ │ │ ├── net35.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ide.rider@1.1.0/
│ │ │ │ ├── .editorconfig
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── README.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── Rider/
│ │ │ │ │ ├── Editor/
│ │ │ │ │ │ ├── Discovery.cs
│ │ │ │ │ │ ├── Discovery.cs.meta
│ │ │ │ │ │ ├── EditorPluginInterop.cs
│ │ │ │ │ │ ├── EditorPluginInterop.cs.meta
│ │ │ │ │ │ ├── LoggingLevel.cs
│ │ │ │ │ │ ├── LoggingLevel.cs.meta
│ │ │ │ │ │ ├── PluginSettings.cs
│ │ │ │ │ │ ├── PluginSettings.cs.meta
│ │ │ │ │ │ ├── ProjectGeneration.cs
│ │ │ │ │ │ ├── ProjectGeneration.cs.meta
│ │ │ │ │ │ ├── RiderInitializer.cs
│ │ │ │ │ │ ├── RiderInitializer.cs.meta
│ │ │ │ │ │ ├── RiderScriptEditor.cs
│ │ │ │ │ │ ├── RiderScriptEditor.cs.meta
│ │ │ │ │ │ ├── RiderScriptEditorData.cs
│ │ │ │ │ │ ├── RiderScriptEditorData.cs.meta
│ │ │ │ │ │ ├── Util/
│ │ │ │ │ │ │ ├── FileSystemUtil.cs
│ │ │ │ │ │ │ ├── FileSystemUtil.cs.meta
│ │ │ │ │ │ │ ├── LibcNativeInterop.cs
│ │ │ │ │ │ │ ├── LibcNativeInterop.cs.meta
│ │ │ │ │ │ │ ├── UnityUtils.cs
│ │ │ │ │ │ │ └── UnityUtils.cs.meta
│ │ │ │ │ │ ├── Util.meta
│ │ │ │ │ │ ├── com.unity.ide.rider.asmdef
│ │ │ │ │ │ └── com.unity.ide.rider.asmdef.meta
│ │ │ │ │ └── Editor.meta
│ │ │ │ ├── Rider.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ide.vscode@1.1.3/
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── README.md
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── ProjectGeneration/
│ │ │ │ │ │ ├── AssemblyNameProvider.cs
│ │ │ │ │ │ ├── AssemblyNameProvider.cs.meta
│ │ │ │ │ │ ├── FileIO.cs
│ │ │ │ │ │ ├── FileIO.cs.meta
│ │ │ │ │ │ ├── GUIDGenerator.cs
│ │ │ │ │ │ ├── GUIDGenerator.cs.meta
│ │ │ │ │ │ ├── ProjectGeneration.cs
│ │ │ │ │ │ └── ProjectGeneration.cs.meta
│ │ │ │ │ ├── ProjectGeneration.meta
│ │ │ │ │ ├── Unity.com.unity.vscode.Editor.asmdef
│ │ │ │ │ ├── Unity.com.unity.vscode.Editor.asmdef.meta
│ │ │ │ │ ├── Utility.cs
│ │ │ │ │ ├── Utility.cs.meta
│ │ │ │ │ ├── VSCodeDiscovery.cs
│ │ │ │ │ ├── VSCodeDiscovery.cs.meta
│ │ │ │ │ ├── VSCodeScriptEditor.cs
│ │ │ │ │ └── VSCodeScriptEditor.cs.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.test-framework@1.0.13/
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ ├── PlaymodeTestFramework.md
│ │ │ │ │ └── com.unity.test-framework.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── UnityEditor.TestRunner/
│ │ │ │ │ ├── Api/
│ │ │ │ │ │ ├── CallbacksDelegator.cs
│ │ │ │ │ │ ├── CallbacksDelegator.cs.meta
│ │ │ │ │ │ ├── CallbacksDelegatorListener.cs
│ │ │ │ │ │ ├── CallbacksDelegatorListener.cs.meta
│ │ │ │ │ │ ├── CallbacksHolder.cs
│ │ │ │ │ │ ├── CallbacksHolder.cs.meta
│ │ │ │ │ │ ├── ExecutionSettings.cs
│ │ │ │ │ │ ├── ExecutionSettings.cs.meta
│ │ │ │ │ │ ├── Filter.cs
│ │ │ │ │ │ ├── Filter.cs.meta
│ │ │ │ │ │ ├── ICallbacks.cs
│ │ │ │ │ │ ├── ICallbacks.cs.meta
│ │ │ │ │ │ ├── ITestAdaptor.cs
│ │ │ │ │ │ ├── ITestAdaptor.cs.meta
│ │ │ │ │ │ ├── ITestAdaptorFactory.cs
│ │ │ │ │ │ ├── ITestAdaptorFactory.cs.meta
│ │ │ │ │ │ ├── ITestResultAdaptor.cs
│ │ │ │ │ │ ├── ITestResultAdaptor.cs.meta
│ │ │ │ │ │ ├── ITestRunSettings.cs
│ │ │ │ │ │ ├── ITestRunSettings.cs.meta
│ │ │ │ │ │ ├── ITestRunnerApi.cs
│ │ │ │ │ │ ├── ITestRunnerApi.cs.meta
│ │ │ │ │ │ ├── RunState.cs
│ │ │ │ │ │ ├── RunState.cs.meta
│ │ │ │ │ │ ├── TestAdaptor.cs
│ │ │ │ │ │ ├── TestAdaptor.cs.meta
│ │ │ │ │ │ ├── TestAdaptorFactory.cs
│ │ │ │ │ │ ├── TestAdaptorFactory.cs.meta
│ │ │ │ │ │ ├── TestLauncherFactory.cs
│ │ │ │ │ │ ├── TestLauncherFactory.cs.meta
│ │ │ │ │ │ ├── TestMode.cs
│ │ │ │ │ │ ├── TestMode.cs.meta
│ │ │ │ │ │ ├── TestResultAdaptor.cs
│ │ │ │ │ │ ├── TestResultAdaptor.cs.meta
│ │ │ │ │ │ ├── TestRunData.cs
│ │ │ │ │ │ ├── TestRunData.cs.meta
│ │ │ │ │ │ ├── TestRunnerApi.cs
│ │ │ │ │ │ ├── TestRunnerApi.cs.meta
│ │ │ │ │ │ ├── TestStatus.cs
│ │ │ │ │ │ └── TestStatus.cs.meta
│ │ │ │ │ ├── Api.meta
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── CommandLineParser/
│ │ │ │ │ │ ├── CommandLineOption.cs
│ │ │ │ │ │ ├── CommandLineOption.cs.meta
│ │ │ │ │ │ ├── CommandLineOptionSet.cs
│ │ │ │ │ │ ├── CommandLineOptionSet.cs.meta
│ │ │ │ │ │ ├── ICommandLineOption.cs
│ │ │ │ │ │ └── ICommandLineOption.cs.meta
│ │ │ │ │ ├── CommandLineParser.meta
│ │ │ │ │ ├── CommandLineTest/
│ │ │ │ │ │ ├── Executer.cs
│ │ │ │ │ │ ├── Executer.cs.meta
│ │ │ │ │ │ ├── ExecutionSettings.cs
│ │ │ │ │ │ ├── ExecutionSettings.cs.meta
│ │ │ │ │ │ ├── ExitCallbacks.cs
│ │ │ │ │ │ ├── ExitCallbacks.cs.meta
│ │ │ │ │ │ ├── ISettingsBuilder.cs
│ │ │ │ │ │ ├── ISettingsBuilder.cs.meta
│ │ │ │ │ │ ├── LogSavingCallbacks.cs
│ │ │ │ │ │ ├── LogSavingCallbacks.cs.meta
│ │ │ │ │ │ ├── LogWriter.cs
│ │ │ │ │ │ ├── LogWriter.cs.meta
│ │ │ │ │ │ ├── ResultsSavingCallbacks.cs
│ │ │ │ │ │ ├── ResultsSavingCallbacks.cs.meta
│ │ │ │ │ │ ├── ResultsWriter.cs
│ │ │ │ │ │ ├── ResultsWriter.cs.meta
│ │ │ │ │ │ ├── RunData.cs
│ │ │ │ │ │ ├── RunData.cs.meta
│ │ │ │ │ │ ├── RunSettings.cs
│ │ │ │ │ │ ├── RunSettings.cs.meta
│ │ │ │ │ │ ├── SettingsBuilder.cs
│ │ │ │ │ │ ├── SettingsBuilder.cs.meta
│ │ │ │ │ │ ├── SetupException.cs
│ │ │ │ │ │ ├── SetupException.cs.meta
│ │ │ │ │ │ ├── TestStarter.cs
│ │ │ │ │ │ ├── TestStarter.cs.meta
│ │ │ │ │ │ ├── TimeoutCallbacks.cs
│ │ │ │ │ │ └── TimeoutCallbacks.cs.meta
│ │ │ │ │ ├── CommandLineTest.meta
│ │ │ │ │ ├── GUI/
│ │ │ │ │ │ ├── AssetsDatabaseHelper.cs
│ │ │ │ │ │ ├── AssetsDatabaseHelper.cs.meta
│ │ │ │ │ │ ├── GuiHelper.cs
│ │ │ │ │ │ ├── GuiHelper.cs.meta
│ │ │ │ │ │ ├── IAssetsDatabaseHelper.cs
│ │ │ │ │ │ ├── IAssetsDatabaseHelper.cs.meta
│ │ │ │ │ │ ├── IGuiHelper.cs
│ │ │ │ │ │ ├── IGuiHelper.cs.meta
│ │ │ │ │ │ ├── TestListBuilder/
│ │ │ │ │ │ │ ├── RenderingOptions.cs
│ │ │ │ │ │ │ ├── RenderingOptions.cs.meta
│ │ │ │ │ │ │ ├── ResultSummarizer.cs
│ │ │ │ │ │ │ ├── ResultSummarizer.cs.meta
│ │ │ │ │ │ │ ├── TestFilterSettings.cs
│ │ │ │ │ │ │ ├── TestFilterSettings.cs.meta
│ │ │ │ │ │ │ ├── TestTreeViewBuilder.cs
│ │ │ │ │ │ │ └── TestTreeViewBuilder.cs.meta
│ │ │ │ │ │ ├── TestListBuilder.meta
│ │ │ │ │ │ ├── TestListGuiHelper.cs
│ │ │ │ │ │ ├── TestListGuiHelper.cs.meta
│ │ │ │ │ │ ├── TestListTreeView/
│ │ │ │ │ │ │ ├── Icons.cs
│ │ │ │ │ │ │ ├── Icons.cs.meta
│ │ │ │ │ │ │ ├── TestListTreeViewDataSource.cs
│ │ │ │ │ │ │ ├── TestListTreeViewDataSource.cs.meta
│ │ │ │ │ │ │ ├── TestListTreeViewGUI.cs
│ │ │ │ │ │ │ ├── TestListTreeViewGUI.cs.meta
│ │ │ │ │ │ │ ├── TestTreeViewItem.cs
│ │ │ │ │ │ │ └── TestTreeViewItem.cs.meta
│ │ │ │ │ │ ├── TestListTreeView.meta
│ │ │ │ │ │ ├── TestRunnerResult.cs
│ │ │ │ │ │ ├── TestRunnerResult.cs.meta
│ │ │ │ │ │ ├── TestRunnerUIFilter.cs
│ │ │ │ │ │ ├── TestRunnerUIFilter.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── EditModeTestListGUI.cs
│ │ │ │ │ │ │ ├── EditModeTestListGUI.cs.meta
│ │ │ │ │ │ │ ├── PlayModeTestListGUI.cs
│ │ │ │ │ │ │ ├── PlayModeTestListGUI.cs.meta
│ │ │ │ │ │ │ ├── TestListGUIBase.cs
│ │ │ │ │ │ │ └── TestListGUIBase.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── GUI.meta
│ │ │ │ │ ├── NUnitExtension/
│ │ │ │ │ │ ├── Attributes/
│ │ │ │ │ │ │ ├── AssetPipelineIgnore.cs
│ │ │ │ │ │ │ └── AssetPipelineIgnore.cs.meta
│ │ │ │ │ │ ├── Attributes.meta
│ │ │ │ │ │ ├── TestRunnerStateSerializer.cs
│ │ │ │ │ │ └── TestRunnerStateSerializer.cs.meta
│ │ │ │ │ ├── NUnitExtension.meta
│ │ │ │ │ ├── RequireApiProfileAttribute.cs
│ │ │ │ │ ├── RequireApiProfileAttribute.cs.meta
│ │ │ │ │ ├── RequirePlatformSupportAttribute.cs
│ │ │ │ │ ├── RequirePlatformSupportAttribute.cs.meta
│ │ │ │ │ ├── TestBuildAssemblyFilter.cs
│ │ │ │ │ ├── TestBuildAssemblyFilter.cs.meta
│ │ │ │ │ ├── TestLaunchers/
│ │ │ │ │ │ ├── AttributeFinderBase.cs
│ │ │ │ │ │ ├── AttributeFinderBase.cs.meta
│ │ │ │ │ │ ├── EditModeLauncher.cs
│ │ │ │ │ │ ├── EditModeLauncher.cs.meta
│ │ │ │ │ │ ├── EditModeLauncherContextSettings.cs
│ │ │ │ │ │ ├── EditModeLauncherContextSettings.cs.meta
│ │ │ │ │ │ ├── PlatformSetup/
│ │ │ │ │ │ │ ├── AndroidPlatformSetup.cs
│ │ │ │ │ │ │ ├── AndroidPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── ApplePlatformSetup.cs
│ │ │ │ │ │ │ ├── ApplePlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── IPlatformSetup.cs
│ │ │ │ │ │ │ ├── IPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── LuminPlatformSetup.cs
│ │ │ │ │ │ │ ├── LuminPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── PlatformSpecificSetup.cs
│ │ │ │ │ │ │ ├── PlatformSpecificSetup.cs.meta
│ │ │ │ │ │ │ ├── SwitchPlatformSetup.cs
│ │ │ │ │ │ │ ├── SwitchPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── UwpPlatformSetup.cs
│ │ │ │ │ │ │ ├── UwpPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── XboxOnePlatformSetup.cs
│ │ │ │ │ │ │ └── XboxOnePlatformSetup.cs.meta
│ │ │ │ │ │ ├── PlatformSetup.meta
│ │ │ │ │ │ ├── PlayerLauncher.cs
│ │ │ │ │ │ ├── PlayerLauncher.cs.meta
│ │ │ │ │ │ ├── PlayerLauncherBuildOptions.cs
│ │ │ │ │ │ ├── PlayerLauncherBuildOptions.cs.meta
│ │ │ │ │ │ ├── PlayerLauncherContextSettings.cs
│ │ │ │ │ │ ├── PlayerLauncherContextSettings.cs.meta
│ │ │ │ │ │ ├── PlaymodeLauncher.cs
│ │ │ │ │ │ ├── PlaymodeLauncher.cs.meta
│ │ │ │ │ │ ├── PostbuildCleanupAttributeFinder.cs
│ │ │ │ │ │ ├── PostbuildCleanupAttributeFinder.cs.meta
│ │ │ │ │ │ ├── PrebuildSetupAttributeFinder.cs
│ │ │ │ │ │ ├── PrebuildSetupAttributeFinder.cs.meta
│ │ │ │ │ │ ├── RemotePlayerLogController.cs
│ │ │ │ │ │ ├── RemotePlayerLogController.cs.meta
│ │ │ │ │ │ ├── RemotePlayerTestController.cs
│ │ │ │ │ │ ├── RemotePlayerTestController.cs.meta
│ │ │ │ │ │ ├── RemoteTestResultReciever.cs
│ │ │ │ │ │ ├── RemoteTestResultReciever.cs.meta
│ │ │ │ │ │ ├── RuntimeTestLauncherBase.cs
│ │ │ │ │ │ ├── RuntimeTestLauncherBase.cs.meta
│ │ │ │ │ │ ├── TestLauncherBase.cs
│ │ │ │ │ │ └── TestLauncherBase.cs.meta
│ │ │ │ │ ├── TestLaunchers.meta
│ │ │ │ │ ├── TestResultSerializer.cs
│ │ │ │ │ ├── TestResultSerializer.cs.meta
│ │ │ │ │ ├── TestRunner/
│ │ │ │ │ │ ├── Callbacks/
│ │ │ │ │ │ │ ├── EditModeRunnerCallback.cs
│ │ │ │ │ │ │ ├── EditModeRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── RerunCallback.cs
│ │ │ │ │ │ │ ├── RerunCallback.cs.meta
│ │ │ │ │ │ │ ├── RerunCallbackData.cs
│ │ │ │ │ │ │ ├── RerunCallbackData.cs.meta
│ │ │ │ │ │ │ ├── RerunCallbackInitializer.cs
│ │ │ │ │ │ │ ├── RerunCallbackInitializer.cs.meta
│ │ │ │ │ │ │ ├── TestRunnerCallback.cs
│ │ │ │ │ │ │ ├── TestRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── WindowResultUpdater.cs
│ │ │ │ │ │ │ └── WindowResultUpdater.cs.meta
│ │ │ │ │ │ ├── Callbacks.meta
│ │ │ │ │ │ ├── EditModePCHelper.cs
│ │ │ │ │ │ ├── EditModePCHelper.cs.meta
│ │ │ │ │ │ ├── EditModeRunner.cs
│ │ │ │ │ │ ├── EditModeRunner.cs.meta
│ │ │ │ │ │ ├── EditmodeWorkItemFactory.cs
│ │ │ │ │ │ ├── EditmodeWorkItemFactory.cs.meta
│ │ │ │ │ │ ├── EditorEnumeratorTestWorkItem.cs
│ │ │ │ │ │ ├── EditorEnumeratorTestWorkItem.cs.meta
│ │ │ │ │ │ ├── EnumeratorStepHelper.cs
│ │ │ │ │ │ ├── EnumeratorStepHelper.cs.meta
│ │ │ │ │ │ ├── Messages/
│ │ │ │ │ │ │ ├── EnterPlayMode.cs
│ │ │ │ │ │ │ ├── EnterPlayMode.cs.meta
│ │ │ │ │ │ │ ├── ExitPlayMode.cs
│ │ │ │ │ │ │ ├── ExitPlayMode.cs.meta
│ │ │ │ │ │ │ ├── RecompileScripts.cs
│ │ │ │ │ │ │ ├── RecompileScripts.cs.meta
│ │ │ │ │ │ │ ├── WaitForDomainReload.cs
│ │ │ │ │ │ │ └── WaitForDomainReload.cs.meta
│ │ │ │ │ │ ├── Messages.meta
│ │ │ │ │ │ ├── TestFileCleanupVerifier.cs
│ │ │ │ │ │ ├── TestFileCleanupVerifier.cs.meta
│ │ │ │ │ │ ├── Utils/
│ │ │ │ │ │ │ ├── CachingTestListProvider.cs
│ │ │ │ │ │ │ ├── CachingTestListProvider.cs.meta
│ │ │ │ │ │ │ ├── EditorAssembliesProxy.cs
│ │ │ │ │ │ │ ├── EditorAssembliesProxy.cs.meta
│ │ │ │ │ │ │ ├── EditorAssemblyWrapper.cs
│ │ │ │ │ │ │ ├── EditorAssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── EditorCompilationInterfaceProxy.cs
│ │ │ │ │ │ │ ├── EditorCompilationInterfaceProxy.cs.meta
│ │ │ │ │ │ │ ├── EditorLoadedTestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── EditorLoadedTestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── IEditorAssembliesProxy.cs
│ │ │ │ │ │ │ ├── IEditorAssembliesProxy.cs.meta
│ │ │ │ │ │ │ ├── IEditorCompilationInterfaceProxy.cs
│ │ │ │ │ │ │ ├── IEditorCompilationInterfaceProxy.cs.meta
│ │ │ │ │ │ │ ├── ITestListCache.cs
│ │ │ │ │ │ │ ├── ITestListCache.cs.meta
│ │ │ │ │ │ │ ├── ITestListCacheData.cs
│ │ │ │ │ │ │ ├── ITestListCacheData.cs.meta
│ │ │ │ │ │ │ ├── ITestListProvider.cs
│ │ │ │ │ │ │ ├── ITestListProvider.cs.meta
│ │ │ │ │ │ │ ├── TestListCache.cs
│ │ │ │ │ │ │ ├── TestListCache.cs.meta
│ │ │ │ │ │ │ ├── TestListCacheData.cs
│ │ │ │ │ │ │ ├── TestListCacheData.cs.meta
│ │ │ │ │ │ │ ├── TestListJob.cs
│ │ │ │ │ │ │ ├── TestListJob.cs.meta
│ │ │ │ │ │ │ ├── TestListProvider.cs
│ │ │ │ │ │ │ └── TestListProvider.cs.meta
│ │ │ │ │ │ └── Utils.meta
│ │ │ │ │ ├── TestRunner.meta
│ │ │ │ │ ├── TestRunnerWindow.cs
│ │ │ │ │ ├── TestRunnerWindow.cs.meta
│ │ │ │ │ ├── TestRunnerWindowSettings.cs
│ │ │ │ │ ├── TestRunnerWindowSettings.cs.meta
│ │ │ │ │ ├── TestSettings/
│ │ │ │ │ │ ├── ITestSettings.cs
│ │ │ │ │ │ ├── ITestSettings.cs.meta
│ │ │ │ │ │ ├── ITestSettingsDeserializer.cs
│ │ │ │ │ │ ├── ITestSettingsDeserializer.cs.meta
│ │ │ │ │ │ ├── TestSettings.cs
│ │ │ │ │ │ ├── TestSettings.cs.meta
│ │ │ │ │ │ ├── TestSettingsDeserializer.cs
│ │ │ │ │ │ └── TestSettingsDeserializer.cs.meta
│ │ │ │ │ ├── TestSettings.meta
│ │ │ │ │ ├── UnityEditor.TestRunner.asmdef
│ │ │ │ │ ├── UnityEditor.TestRunner.asmdef.meta
│ │ │ │ │ ├── UnityTestProtocol/
│ │ │ │ │ │ ├── AssemblyCompilationErrorsMessage.cs
│ │ │ │ │ │ ├── AssemblyCompilationErrorsMessage.cs.meta
│ │ │ │ │ │ ├── ITestRunnerApiMapper.cs
│ │ │ │ │ │ ├── ITestRunnerApiMapper.cs.meta
│ │ │ │ │ │ ├── IUtpLogger.cs
│ │ │ │ │ │ ├── IUtpLogger.cs.meta
│ │ │ │ │ │ ├── IUtpMessageReporter.cs
│ │ │ │ │ │ ├── IUtpMessageReporter.cs.meta
│ │ │ │ │ │ ├── Message.cs
│ │ │ │ │ │ ├── Message.cs.meta
│ │ │ │ │ │ ├── TestFinishedMessage.cs
│ │ │ │ │ │ ├── TestFinishedMessage.cs.meta
│ │ │ │ │ │ ├── TestPlanMessage.cs
│ │ │ │ │ │ ├── TestPlanMessage.cs.meta
│ │ │ │ │ │ ├── TestRunnerApiMapper.cs
│ │ │ │ │ │ ├── TestRunnerApiMapper.cs.meta
│ │ │ │ │ │ ├── TestStartedMessage.cs
│ │ │ │ │ │ ├── TestStartedMessage.cs.meta
│ │ │ │ │ │ ├── TestState.cs
│ │ │ │ │ │ ├── TestState.cs.meta
│ │ │ │ │ │ ├── UnityTestProtocolListener.cs
│ │ │ │ │ │ ├── UnityTestProtocolListener.cs.meta
│ │ │ │ │ │ ├── UnityTestProtocolStarter.cs
│ │ │ │ │ │ ├── UnityTestProtocolStarter.cs.meta
│ │ │ │ │ │ ├── UtpDebuglogger.cs
│ │ │ │ │ │ ├── UtpDebuglogger.cs.meta
│ │ │ │ │ │ ├── UtpMessageReporter.cs
│ │ │ │ │ │ └── UtpMessageReporter.cs.meta
│ │ │ │ │ └── UnityTestProtocol.meta
│ │ │ │ ├── UnityEditor.TestRunner.meta
│ │ │ │ ├── UnityEngine.TestRunner/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── Assertions/
│ │ │ │ │ │ ├── AllocatingGCMemoryConstraint.cs
│ │ │ │ │ │ ├── AllocatingGCMemoryConstraint.cs.meta
│ │ │ │ │ │ ├── ConstraintsExtensions.cs
│ │ │ │ │ │ ├── ConstraintsExtensions.cs.meta
│ │ │ │ │ │ ├── InvalidSignatureException.cs
│ │ │ │ │ │ ├── InvalidSignatureException.cs.meta
│ │ │ │ │ │ ├── Is.cs
│ │ │ │ │ │ ├── Is.cs.meta
│ │ │ │ │ │ ├── LogAssert.cs
│ │ │ │ │ │ ├── LogAssert.cs.meta
│ │ │ │ │ │ ├── LogScope/
│ │ │ │ │ │ │ ├── ILogScope.cs
│ │ │ │ │ │ │ ├── ILogScope.cs.meta
│ │ │ │ │ │ │ ├── LogEvent.cs
│ │ │ │ │ │ │ ├── LogEvent.cs.meta
│ │ │ │ │ │ │ ├── LogMatch.cs
│ │ │ │ │ │ │ ├── LogMatch.cs.meta
│ │ │ │ │ │ │ ├── LogScope.cs
│ │ │ │ │ │ │ └── LogScope.cs.meta
│ │ │ │ │ │ ├── LogScope.meta
│ │ │ │ │ │ ├── UnexpectedLogMessageException.cs
│ │ │ │ │ │ ├── UnexpectedLogMessageException.cs.meta
│ │ │ │ │ │ ├── UnhandledLogMessageException.cs
│ │ │ │ │ │ ├── UnhandledLogMessageException.cs.meta
│ │ │ │ │ │ ├── UnityTestTimeoutException.cs
│ │ │ │ │ │ └── UnityTestTimeoutException.cs.meta
│ │ │ │ │ ├── Assertions.meta
│ │ │ │ │ ├── NUnitExtensions/
│ │ │ │ │ │ ├── ActionDelegator.cs
│ │ │ │ │ │ ├── ActionDelegator.cs.meta
│ │ │ │ │ │ ├── Attributes/
│ │ │ │ │ │ │ ├── TestEnumerator.cs
│ │ │ │ │ │ │ ├── TestEnumerator.cs.meta
│ │ │ │ │ │ │ ├── UnityCombinatorialStrategy.cs
│ │ │ │ │ │ │ ├── UnityCombinatorialStrategy.cs.meta
│ │ │ │ │ │ │ ├── UnityPlatformAttribute.cs
│ │ │ │ │ │ │ ├── UnityPlatformAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnitySetUpAttribute.cs
│ │ │ │ │ │ │ ├── UnitySetUpAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnityTearDownAttribute.cs
│ │ │ │ │ │ │ ├── UnityTearDownAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnityTestAttribute.cs
│ │ │ │ │ │ │ └── UnityTestAttribute.cs.meta
│ │ │ │ │ │ ├── Attributes.meta
│ │ │ │ │ │ ├── BaseDelegator.cs
│ │ │ │ │ │ ├── BaseDelegator.cs.meta
│ │ │ │ │ │ ├── Commands/
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandBase.cs
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandBase.cs.meta
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandState.cs
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandState.cs.meta
│ │ │ │ │ │ │ ├── EnumerableApplyChangesToContextCommand.cs
│ │ │ │ │ │ │ ├── EnumerableApplyChangesToContextCommand.cs.meta
│ │ │ │ │ │ │ ├── EnumerableSetUpTearDownCommand.cs
│ │ │ │ │ │ │ ├── EnumerableSetUpTearDownCommand.cs.meta
│ │ │ │ │ │ │ ├── EnumerableTestMethodCommand.cs
│ │ │ │ │ │ │ ├── EnumerableTestMethodCommand.cs.meta
│ │ │ │ │ │ │ ├── ImmediateEnumerableCommand.cs
│ │ │ │ │ │ │ ├── ImmediateEnumerableCommand.cs.meta
│ │ │ │ │ │ │ ├── OuterUnityTestActionCommand.cs
│ │ │ │ │ │ │ ├── OuterUnityTestActionCommand.cs.meta
│ │ │ │ │ │ │ ├── SetUpTearDownCommand.cs
│ │ │ │ │ │ │ ├── SetUpTearDownCommand.cs.meta
│ │ │ │ │ │ │ ├── TestActionCommand.cs
│ │ │ │ │ │ │ ├── TestActionCommand.cs.meta
│ │ │ │ │ │ │ ├── TestCommandPcHelper.cs
│ │ │ │ │ │ │ └── TestCommandPcHelper.cs.meta
│ │ │ │ │ │ ├── Commands.meta
│ │ │ │ │ │ ├── ConstructDelegator.cs
│ │ │ │ │ │ ├── ConstructDelegator.cs.meta
│ │ │ │ │ │ ├── Filters/
│ │ │ │ │ │ │ ├── AssemblyNameFilter.cs
│ │ │ │ │ │ │ ├── AssemblyNameFilter.cs.meta
│ │ │ │ │ │ │ ├── CategoryFilterExtended.cs
│ │ │ │ │ │ │ └── CategoryFilterExtended.cs.meta
│ │ │ │ │ │ ├── Filters.meta
│ │ │ │ │ │ ├── IStateSerializer.cs
│ │ │ │ │ │ ├── IStateSerializer.cs.meta
│ │ │ │ │ │ ├── Runner/
│ │ │ │ │ │ │ ├── CompositeWorkItem.cs
│ │ │ │ │ │ │ ├── CompositeWorkItem.cs.meta
│ │ │ │ │ │ │ ├── CoroutineTestWorkItem.cs
│ │ │ │ │ │ │ ├── CoroutineTestWorkItem.cs.meta
│ │ │ │ │ │ │ ├── DefaultTestWorkItem.cs
│ │ │ │ │ │ │ ├── DefaultTestWorkItem.cs.meta
│ │ │ │ │ │ │ ├── FailCommand.cs
│ │ │ │ │ │ │ ├── FailCommand.cs.meta
│ │ │ │ │ │ │ ├── IEnumerableTestMethodCommand.cs
│ │ │ │ │ │ │ ├── IEnumerableTestMethodCommand.cs.meta
│ │ │ │ │ │ │ ├── PlaymodeWorkItemFactory.cs
│ │ │ │ │ │ │ ├── PlaymodeWorkItemFactory.cs.meta
│ │ │ │ │ │ │ ├── RestoreTestContextAfterDomainReload.cs
│ │ │ │ │ │ │ ├── RestoreTestContextAfterDomainReload.cs.meta
│ │ │ │ │ │ │ ├── UnityLogCheckDelegatingCommand.cs
│ │ │ │ │ │ │ ├── UnityLogCheckDelegatingCommand.cs.meta
│ │ │ │ │ │ │ ├── UnityTestAssemblyRunner.cs
│ │ │ │ │ │ │ ├── UnityTestAssemblyRunner.cs.meta
│ │ │ │ │ │ │ ├── UnityTestExecutionContext.cs
│ │ │ │ │ │ │ ├── UnityTestExecutionContext.cs.meta
│ │ │ │ │ │ │ ├── UnityWorkItem.cs
│ │ │ │ │ │ │ ├── UnityWorkItem.cs.meta
│ │ │ │ │ │ │ ├── UnityWorkItemDataHolder.cs
│ │ │ │ │ │ │ ├── UnityWorkItemDataHolder.cs.meta
│ │ │ │ │ │ │ ├── WorkItemFactory.cs
│ │ │ │ │ │ │ └── WorkItemFactory.cs.meta
│ │ │ │ │ │ ├── Runner.meta
│ │ │ │ │ │ ├── TestExtensions.cs
│ │ │ │ │ │ ├── TestExtensions.cs.meta
│ │ │ │ │ │ ├── TestResultExtensions.cs
│ │ │ │ │ │ ├── TestResultExtensions.cs.meta
│ │ │ │ │ │ ├── UnityTestAssemblyBuilder.cs
│ │ │ │ │ │ └── UnityTestAssemblyBuilder.cs.meta
│ │ │ │ │ ├── NUnitExtensions.meta
│ │ │ │ │ ├── TestRunner/
│ │ │ │ │ │ ├── Callbacks/
│ │ │ │ │ │ │ ├── PlayModeRunnerCallback.cs
│ │ │ │ │ │ │ ├── PlayModeRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultSender.cs
│ │ │ │ │ │ │ ├── RemoteTestResultSender.cs.meta
│ │ │ │ │ │ │ ├── TestResultRenderer.cs
│ │ │ │ │ │ │ ├── TestResultRenderer.cs.meta
│ │ │ │ │ │ │ ├── TestResultRendererCallback.cs
│ │ │ │ │ │ │ └── TestResultRendererCallback.cs.meta
│ │ │ │ │ │ ├── Callbacks.meta
│ │ │ │ │ │ ├── ITestRunnerListener.cs
│ │ │ │ │ │ ├── ITestRunnerListener.cs.meta
│ │ │ │ │ │ ├── Messages/
│ │ │ │ │ │ │ ├── IEditModeTestYieldInstruction.cs
│ │ │ │ │ │ │ └── IEditModeTestYieldInstruction.cs.meta
│ │ │ │ │ │ ├── Messages.meta
│ │ │ │ │ │ ├── PlaymodeTestsController.cs
│ │ │ │ │ │ ├── PlaymodeTestsController.cs.meta
│ │ │ │ │ │ ├── PlaymodeTestsControllerSettings.cs
│ │ │ │ │ │ ├── PlaymodeTestsControllerSettings.cs.meta
│ │ │ │ │ │ ├── RemoteHelpers/
│ │ │ │ │ │ │ ├── IRemoteTestResultDataFactory.cs
│ │ │ │ │ │ │ ├── IRemoteTestResultDataFactory.cs.meta
│ │ │ │ │ │ │ ├── PlayerConnectionMessageIds.cs
│ │ │ │ │ │ │ ├── PlayerConnectionMessageIds.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestData.cs
│ │ │ │ │ │ │ ├── RemoteTestData.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultData.cs
│ │ │ │ │ │ │ ├── RemoteTestResultData.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultDataFactory.cs
│ │ │ │ │ │ │ ├── RemoteTestResultDataFactory.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultDataWithTestData.cs
│ │ │ │ │ │ │ └── RemoteTestResultDataWithTestData.cs.meta
│ │ │ │ │ │ ├── RemoteHelpers.meta
│ │ │ │ │ │ ├── TestEnumeratorWrapper.cs
│ │ │ │ │ │ ├── TestEnumeratorWrapper.cs.meta
│ │ │ │ │ │ ├── TestListenerWrapper.cs
│ │ │ │ │ │ ├── TestListenerWrapper.cs.meta
│ │ │ │ │ │ ├── TestPlatform.cs
│ │ │ │ │ │ ├── TestPlatform.cs.meta
│ │ │ │ │ │ ├── TestRunnerFilter.cs
│ │ │ │ │ │ └── TestRunnerFilter.cs.meta
│ │ │ │ │ ├── TestRunner.meta
│ │ │ │ │ ├── UnityEngine.TestRunner.asmdef
│ │ │ │ │ ├── UnityEngine.TestRunner.asmdef.meta
│ │ │ │ │ ├── Utils/
│ │ │ │ │ │ ├── AssemblyProvider/
│ │ │ │ │ │ │ ├── AssemblyLoadProxy.cs
│ │ │ │ │ │ │ ├── AssemblyLoadProxy.cs.meta
│ │ │ │ │ │ │ ├── AssemblyWrapper.cs
│ │ │ │ │ │ │ ├── AssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── IAssemblyLoadProxy.cs
│ │ │ │ │ │ │ ├── IAssemblyLoadProxy.cs.meta
│ │ │ │ │ │ │ ├── IAssemblyWrapper.cs
│ │ │ │ │ │ │ ├── IAssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── IScriptingRuntimeProxy.cs
│ │ │ │ │ │ │ ├── IScriptingRuntimeProxy.cs.meta
│ │ │ │ │ │ │ ├── ITestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── ITestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── PlayerTestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── PlayerTestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── ScriptingRuntimeProxy.cs
│ │ │ │ │ │ │ └── ScriptingRuntimeProxy.cs.meta
│ │ │ │ │ │ ├── AssemblyProvider.meta
│ │ │ │ │ │ ├── AttributeHelper.cs
│ │ │ │ │ │ ├── AttributeHelper.cs.meta
│ │ │ │ │ │ ├── ColorEqualityComparer.cs
│ │ │ │ │ │ ├── ColorEqualityComparer.cs.meta
│ │ │ │ │ │ ├── CoroutineRunner.cs
│ │ │ │ │ │ ├── CoroutineRunner.cs.meta
│ │ │ │ │ │ ├── FloatEqualityComparer.cs
│ │ │ │ │ │ ├── FloatEqualityComparer.cs.meta
│ │ │ │ │ │ ├── IOuterUnityTestAction.cs
│ │ │ │ │ │ ├── IOuterUnityTestAction.cs.meta
│ │ │ │ │ │ ├── IPostBuildCleanup.cs
│ │ │ │ │ │ ├── IPostBuildCleanup.cs.meta
│ │ │ │ │ │ ├── IPrebuildSceneSetup.cs
│ │ │ │ │ │ ├── IPrebuildSceneSetup.cs.meta
│ │ │ │ │ │ ├── MonoBehaviourTest/
│ │ │ │ │ │ │ ├── IMonoBehaviourTest.cs
│ │ │ │ │ │ │ ├── IMonoBehaviourTest.cs.meta
│ │ │ │ │ │ │ ├── MonoBehaviourTest.cs
│ │ │ │ │ │ │ └── MonoBehaviourTest.cs.meta
│ │ │ │ │ │ ├── MonoBehaviourTest.meta
│ │ │ │ │ │ ├── PostBuildCleanupAttribute.cs
│ │ │ │ │ │ ├── PostBuildCleanupAttribute.cs.meta
│ │ │ │ │ │ ├── PrebuildSceneSetupAttribute.cs
│ │ │ │ │ │ ├── PrebuildSceneSetupAttribute.cs.meta
│ │ │ │ │ │ ├── QuaternionEqualityComparer.cs
│ │ │ │ │ │ ├── QuaternionEqualityComparer.cs.meta
│ │ │ │ │ │ ├── StacktraceFilter.cs
│ │ │ │ │ │ ├── StacktraceFilter.cs.meta
│ │ │ │ │ │ ├── Utils.cs
│ │ │ │ │ │ ├── Utils.cs.meta
│ │ │ │ │ │ ├── Vector2ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector2ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector2EqualityComparer.cs
│ │ │ │ │ │ ├── Vector2EqualityComparer.cs.meta
│ │ │ │ │ │ ├── Vector3ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector3ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector3EqualityComparer.cs
│ │ │ │ │ │ ├── Vector3EqualityComparer.cs.meta
│ │ │ │ │ │ ├── Vector4ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector4ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector4EqualityComparer.cs
│ │ │ │ │ │ └── Vector4EqualityComparer.cs.meta
│ │ │ │ │ └── Utils.meta
│ │ │ │ ├── UnityEngine.TestRunner.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ └── com.unity.textmeshpro@2.0.1/
│ │ │ ├── .gitlab-ci.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CHANGELOG.md.meta
│ │ │ ├── Documentation~/
│ │ │ │ ├── TextMeshPro.md
│ │ │ │ └── TextMeshPro.md.meta
│ │ │ ├── Editor Resources/
│ │ │ │ ├── Gizmos/
│ │ │ │ │ ├── TMP - Dropdown Icon.psd
│ │ │ │ │ ├── TMP - Dropdown Icon.psd.meta
│ │ │ │ │ ├── TMP - Font Asset Icon.psd
│ │ │ │ │ ├── TMP - Font Asset Icon.psd.meta
│ │ │ │ │ ├── TMP - Input Field Icon.psd
│ │ │ │ │ ├── TMP - Input Field Icon.psd.meta
│ │ │ │ │ ├── TMP - Sprite Asset Icon.psd
│ │ │ │ │ ├── TMP - Sprite Asset Icon.psd.meta
│ │ │ │ │ ├── TMP - Text Component Icon.psd
│ │ │ │ │ └── TMP - Text Component Icon.psd.meta
│ │ │ │ ├── Gizmos.meta
│ │ │ │ ├── Shaders/
│ │ │ │ │ ├── TMP_Properties.cginc
│ │ │ │ │ ├── TMP_Properties.cginc.meta
│ │ │ │ │ ├── TMP_SDF Internal SSD.shader
│ │ │ │ │ └── TMP_SDF Internal SSD.shader.meta
│ │ │ │ ├── Shaders.meta
│ │ │ │ ├── Textures/
│ │ │ │ │ ├── SectionHeader_Dark.psd
│ │ │ │ │ ├── SectionHeader_Dark.psd.meta
│ │ │ │ │ ├── SectionHeader_Light.psd
│ │ │ │ │ ├── SectionHeader_Light.psd.meta
│ │ │ │ │ ├── btn_AlignBaseLine.psd
│ │ │ │ │ ├── btn_AlignBaseLine.psd.meta
│ │ │ │ │ ├── btn_AlignBaseLine_Light.psd
│ │ │ │ │ ├── btn_AlignBaseLine_Light.psd.meta
│ │ │ │ │ ├── btn_AlignBottom.psd
│ │ │ │ │ ├── btn_AlignBottom.psd.meta
│ │ │ │ │ ├── btn_AlignBottom_Light.psd
│ │ │ │ │ ├── btn_AlignBottom_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCapLine.psd
│ │ │ │ │ ├── btn_AlignCapLine.psd.meta
│ │ │ │ │ ├── btn_AlignCapLine_Light.psd
│ │ │ │ │ ├── btn_AlignCapLine_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCenter.psd
│ │ │ │ │ ├── btn_AlignCenter.psd.meta
│ │ │ │ │ ├── btn_AlignCenterGeo.psd
│ │ │ │ │ ├── btn_AlignCenterGeo.psd.meta
│ │ │ │ │ ├── btn_AlignCenterGeo_Light.psd
│ │ │ │ │ ├── btn_AlignCenterGeo_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCenter_Light.psd
│ │ │ │ │ ├── btn_AlignCenter_Light.psd.meta
│ │ │ │ │ ├── btn_AlignFlush.psd
│ │ │ │ │ ├── btn_AlignFlush.psd.meta
│ │ │ │ │ ├── btn_AlignFlush_Light.psd
│ │ │ │ │ ├── btn_AlignFlush_Light.psd.meta
│ │ │ │ │ ├── btn_AlignJustified.psd
│ │ │ │ │ ├── btn_AlignJustified.psd.meta
│ │ │ │ │ ├── btn_AlignJustified_Light.psd
│ │ │ │ │ ├── btn_AlignJustified_Light.psd.meta
│ │ │ │ │ ├── btn_AlignLeft.psd
│ │ │ │ │ ├── btn_AlignLeft.psd.meta
│ │ │ │ │ ├── btn_AlignLeft_Light.psd
│ │ │ │ │ ├── btn_AlignLeft_Light.psd.meta
│ │ │ │ │ ├── btn_AlignMidLine.psd
│ │ │ │ │ ├── btn_AlignMidLine.psd.meta
│ │ │ │ │ ├── btn_AlignMiddle.psd
│ │ │ │ │ ├── btn_AlignMiddle.psd.meta
│ │ │ │ │ ├── btn_AlignMiddle_Light.psd
│ │ │ │ │ ├── btn_AlignMiddle_Light.psd.meta
│ │ │ │ │ ├── btn_AlignMidline_Light.psd
│ │ │ │ │ ├── btn_AlignMidline_Light.psd.meta
│ │ │ │ │ ├── btn_AlignRight.psd
│ │ │ │ │ ├── btn_AlignRight.psd.meta
│ │ │ │ │ ├── btn_AlignRight_Light.psd
│ │ │ │ │ ├── btn_AlignRight_Light.psd.meta
│ │ │ │ │ ├── btn_AlignTop.psd
│ │ │ │ │ ├── btn_AlignTop.psd.meta
│ │ │ │ │ ├── btn_AlignTop_Light.psd
│ │ │ │ │ └── btn_AlignTop_Light.psd.meta
│ │ │ │ └── Textures.meta
│ │ │ ├── Editor Resources.meta
│ │ │ ├── LICENSE.md
│ │ │ ├── LICENSE.md.meta
│ │ │ ├── Package Resources/
│ │ │ │ ├── TMP Essential Resources.unitypackage
│ │ │ │ ├── TMP Essential Resources.unitypackage.meta
│ │ │ │ ├── TMP Examples & Extras.unitypackage
│ │ │ │ └── TMP Examples & Extras.unitypackage.meta
│ │ │ ├── Package Resources.meta
│ │ │ ├── PackageConversionData.json
│ │ │ ├── PackageConversionData.json.meta
│ │ │ ├── PackageConversionData_Assets.json
│ │ │ ├── PackageConversionData_Assets.json.meta
│ │ │ ├── Scripts/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── DropdownOptionListDrawer.cs
│ │ │ │ │ ├── DropdownOptionListDrawer.cs.meta
│ │ │ │ │ ├── GlyphInfoDrawer.cs
│ │ │ │ │ ├── GlyphInfoDrawer.cs.meta
│ │ │ │ │ ├── GlyphMetricsPropertyDrawer.cs
│ │ │ │ │ ├── GlyphMetricsPropertyDrawer.cs.meta
│ │ │ │ │ ├── GlyphRectPropertyDrawer.cs
│ │ │ │ │ ├── GlyphRectPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_BaseEditorPanel.cs
│ │ │ │ │ ├── TMP_BaseEditorPanel.cs.meta
│ │ │ │ │ ├── TMP_BaseShaderGUI.cs
│ │ │ │ │ ├── TMP_BaseShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_BitmapShaderGUI.cs
│ │ │ │ │ ├── TMP_BitmapShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_CharacterPropertyDrawer.cs
│ │ │ │ │ ├── TMP_CharacterPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_ColorGradientAssetMenu.cs
│ │ │ │ │ ├── TMP_ColorGradientAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_ColorGradientEditor.cs
│ │ │ │ │ ├── TMP_ColorGradientEditor.cs.meta
│ │ │ │ │ ├── TMP_DropdownEditor.cs
│ │ │ │ │ ├── TMP_DropdownEditor.cs.meta
│ │ │ │ │ ├── TMP_EditorCoroutine.cs
│ │ │ │ │ ├── TMP_EditorCoroutine.cs.meta
│ │ │ │ │ ├── TMP_EditorPanel.cs
│ │ │ │ │ ├── TMP_EditorPanel.cs.meta
│ │ │ │ │ ├── TMP_EditorUtility.cs
│ │ │ │ │ ├── TMP_EditorUtility.cs.meta
│ │ │ │ │ ├── TMP_FontAssetEditor.cs
│ │ │ │ │ ├── TMP_FontAssetEditor.cs.meta
│ │ │ │ │ ├── TMP_FontAsset_CreationMenu.cs
│ │ │ │ │ ├── TMP_FontAsset_CreationMenu.cs.meta
│ │ │ │ │ ├── TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs
│ │ │ │ │ ├── TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_GlyphPropertyDrawer.cs
│ │ │ │ │ ├── TMP_GlyphPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_InputFieldEditor.cs
│ │ │ │ │ ├── TMP_InputFieldEditor.cs.meta
│ │ │ │ │ ├── TMP_MeshRendererEditor.cs
│ │ │ │ │ ├── TMP_MeshRendererEditor.cs.meta
│ │ │ │ │ ├── TMP_PackageUtilities.cs
│ │ │ │ │ ├── TMP_PackageUtilities.cs.meta
│ │ │ │ │ ├── TMP_PostBuildProcessHandler.cs
│ │ │ │ │ ├── TMP_PostBuildProcessHandler.cs.meta
│ │ │ │ │ ├── TMP_ProjectTextSettings.cs
│ │ │ │ │ ├── TMP_ProjectTextSettings.cs.meta
│ │ │ │ │ ├── TMP_ResourcesLoader.cs
│ │ │ │ │ ├── TMP_ResourcesLoader.cs.meta
│ │ │ │ │ ├── TMP_SDFShaderGUI.cs
│ │ │ │ │ ├── TMP_SDFShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_SerializedPropertyHolder.cs
│ │ │ │ │ ├── TMP_SerializedPropertyHolder.cs.meta
│ │ │ │ │ ├── TMP_SettingsEditor.cs
│ │ │ │ │ ├── TMP_SettingsEditor.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetEditor.cs
│ │ │ │ │ ├── TMP_SpriteAssetEditor.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetImporter.cs
│ │ │ │ │ ├── TMP_SpriteAssetImporter.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetMenu.cs
│ │ │ │ │ ├── TMP_SpriteAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_SpriteCharacterPropertyDrawer.cs
│ │ │ │ │ ├── TMP_SpriteCharacterPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_SpriteGlyphPropertyDrawer.cs
│ │ │ │ │ ├── TMP_SpriteGlyphPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_StyleAssetMenu.cs
│ │ │ │ │ ├── TMP_StyleAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_StyleSheetEditor.cs
│ │ │ │ │ ├── TMP_StyleSheetEditor.cs.meta
│ │ │ │ │ ├── TMP_SubMeshUI_Editor.cs
│ │ │ │ │ ├── TMP_SubMeshUI_Editor.cs.meta
│ │ │ │ │ ├── TMP_SubMesh_Editor.cs
│ │ │ │ │ ├── TMP_SubMesh_Editor.cs.meta
│ │ │ │ │ ├── TMP_TextAlignmentDrawer.cs
│ │ │ │ │ ├── TMP_TextAlignmentDrawer.cs.meta
│ │ │ │ │ ├── TMP_UIStyleManager.cs
│ │ │ │ │ ├── TMP_UIStyleManager.cs.meta
│ │ │ │ │ ├── TMP_UiEditorPanel.cs
│ │ │ │ │ ├── TMP_UiEditorPanel.cs.meta
│ │ │ │ │ ├── TMPro_ContextMenus.cs
│ │ │ │ │ ├── TMPro_ContextMenus.cs.meta
│ │ │ │ │ ├── TMPro_CreateObjectMenu.cs
│ │ │ │ │ ├── TMPro_CreateObjectMenu.cs.meta
│ │ │ │ │ ├── TMPro_EditorShaderUtilities.cs
│ │ │ │ │ ├── TMPro_EditorShaderUtilities.cs.meta
│ │ │ │ │ ├── TMPro_FontAssetCreatorWindow.cs
│ │ │ │ │ ├── TMPro_FontAssetCreatorWindow.cs.meta
│ │ │ │ │ ├── TMPro_FontPlugin.cs
│ │ │ │ │ ├── TMPro_FontPlugin.cs.meta
│ │ │ │ │ ├── TMPro_SortingLayerHelper.cs
│ │ │ │ │ ├── TMPro_SortingLayerHelper.cs.meta
│ │ │ │ │ ├── TMPro_TextContainerEditor.cs
│ │ │ │ │ ├── TMPro_TextContainerEditor.cs.meta
│ │ │ │ │ ├── TMPro_TexturePostProcessor.cs
│ │ │ │ │ ├── TMPro_TexturePostProcessor.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Editor.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Editor.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Runtime/
│ │ │ │ │ ├── AssemblyInfo.cs.cs
│ │ │ │ │ ├── AssemblyInfo.cs.cs.meta
│ │ │ │ │ ├── FastAction.cs
│ │ │ │ │ ├── FastAction.cs.meta
│ │ │ │ │ ├── MaterialReferenceManager.cs
│ │ │ │ │ ├── MaterialReferenceManager.cs.meta
│ │ │ │ │ ├── TMP_Asset.cs
│ │ │ │ │ ├── TMP_Asset.cs.meta
│ │ │ │ │ ├── TMP_Character.cs
│ │ │ │ │ ├── TMP_Character.cs.meta
│ │ │ │ │ ├── TMP_CharacterInfo.cs
│ │ │ │ │ ├── TMP_CharacterInfo.cs.meta
│ │ │ │ │ ├── TMP_ColorGradient.cs
│ │ │ │ │ ├── TMP_ColorGradient.cs.meta
│ │ │ │ │ ├── TMP_CoroutineTween.cs
│ │ │ │ │ ├── TMP_CoroutineTween.cs.meta
│ │ │ │ │ ├── TMP_DefaultControls.cs
│ │ │ │ │ ├── TMP_DefaultControls.cs.meta
│ │ │ │ │ ├── TMP_Dropdown.cs
│ │ │ │ │ ├── TMP_Dropdown.cs.meta
│ │ │ │ │ ├── TMP_EditorResourceManager.cs
│ │ │ │ │ ├── TMP_EditorResourceManager.cs.meta
│ │ │ │ │ ├── TMP_FontAsset.cs
│ │ │ │ │ ├── TMP_FontAsset.cs.meta
│ │ │ │ │ ├── TMP_FontAssetCommon.cs
│ │ │ │ │ ├── TMP_FontAssetCommon.cs.meta
│ │ │ │ │ ├── TMP_FontAssetUtilities.cs
│ │ │ │ │ ├── TMP_FontAssetUtilities.cs.meta
│ │ │ │ │ ├── TMP_FontFeatureTable.cs
│ │ │ │ │ ├── TMP_FontFeatureTable.cs.meta
│ │ │ │ │ ├── TMP_FontFeaturesCommon.cs
│ │ │ │ │ ├── TMP_FontFeaturesCommon.cs.meta
│ │ │ │ │ ├── TMP_InputField.cs
│ │ │ │ │ ├── TMP_InputField.cs.meta
│ │ │ │ │ ├── TMP_InputValidator.cs
│ │ │ │ │ ├── TMP_InputValidator.cs.meta
│ │ │ │ │ ├── TMP_LineInfo.cs
│ │ │ │ │ ├── TMP_LineInfo.cs.meta
│ │ │ │ │ ├── TMP_ListPool.cs
│ │ │ │ │ ├── TMP_ListPool.cs.meta
│ │ │ │ │ ├── TMP_MaterialManager.cs
│ │ │ │ │ ├── TMP_MaterialManager.cs.meta
│ │ │ │ │ ├── TMP_MeshInfo.cs
│ │ │ │ │ ├── TMP_MeshInfo.cs.meta
│ │ │ │ │ ├── TMP_ObjectPool.cs
│ │ │ │ │ ├── TMP_ObjectPool.cs.meta
│ │ │ │ │ ├── TMP_PackageResourceImporter.cs
│ │ │ │ │ ├── TMP_PackageResourceImporter.cs.meta
│ │ │ │ │ ├── TMP_RichTextTagStack.cs
│ │ │ │ │ ├── TMP_RichTextTagStack.cs.meta
│ │ │ │ │ ├── TMP_RichTextTagsCommon.cs
│ │ │ │ │ ├── TMP_RichTextTagsCommon.cs.meta
│ │ │ │ │ ├── TMP_ScrollbarEventHandler.cs
│ │ │ │ │ ├── TMP_ScrollbarEventHandler.cs.meta
│ │ │ │ │ ├── TMP_SelectionCaret.cs
│ │ │ │ │ ├── TMP_SelectionCaret.cs.meta
│ │ │ │ │ ├── TMP_Settings.cs
│ │ │ │ │ ├── TMP_Settings.cs.meta
│ │ │ │ │ ├── TMP_ShaderUtilities.cs
│ │ │ │ │ ├── TMP_ShaderUtilities.cs.meta
│ │ │ │ │ ├── TMP_Sprite.cs
│ │ │ │ │ ├── TMP_Sprite.cs.meta
│ │ │ │ │ ├── TMP_SpriteAnimator.cs
│ │ │ │ │ ├── TMP_SpriteAnimator.cs.meta
│ │ │ │ │ ├── TMP_SpriteAsset.cs
│ │ │ │ │ ├── TMP_SpriteAsset.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetImportFormats.cs
│ │ │ │ │ ├── TMP_SpriteAssetImportFormats.cs.meta
│ │ │ │ │ ├── TMP_SpriteCharacter.cs
│ │ │ │ │ ├── TMP_SpriteCharacter.cs.meta
│ │ │ │ │ ├── TMP_SpriteGlyph.cs
│ │ │ │ │ ├── TMP_SpriteGlyph.cs.meta
│ │ │ │ │ ├── TMP_Style.cs
│ │ │ │ │ ├── TMP_Style.cs.meta
│ │ │ │ │ ├── TMP_StyleSheet.cs
│ │ │ │ │ ├── TMP_StyleSheet.cs.meta
│ │ │ │ │ ├── TMP_SubMesh.cs
│ │ │ │ │ ├── TMP_SubMesh.cs.meta
│ │ │ │ │ ├── TMP_SubMeshUI.cs
│ │ │ │ │ ├── TMP_SubMeshUI.cs.meta
│ │ │ │ │ ├── TMP_Text.cs
│ │ │ │ │ ├── TMP_Text.cs.meta
│ │ │ │ │ ├── TMP_TextElement.cs
│ │ │ │ │ ├── TMP_TextElement.cs.meta
│ │ │ │ │ ├── TMP_TextElement_Legacy.cs
│ │ │ │ │ ├── TMP_TextElement_Legacy.cs.meta
│ │ │ │ │ ├── TMP_TextInfo.cs
│ │ │ │ │ ├── TMP_TextInfo.cs.meta
│ │ │ │ │ ├── TMP_TextParsingUtilities.cs
│ │ │ │ │ ├── TMP_TextParsingUtilities.cs.meta
│ │ │ │ │ ├── TMP_TextUtilities.cs
│ │ │ │ │ ├── TMP_TextUtilities.cs.meta
│ │ │ │ │ ├── TMP_UpdateManager.cs
│ │ │ │ │ ├── TMP_UpdateManager.cs.meta
│ │ │ │ │ ├── TMP_UpdateRegistery.cs
│ │ │ │ │ ├── TMP_UpdateRegistery.cs.meta
│ │ │ │ │ ├── TMPro_EventManager.cs
│ │ │ │ │ ├── TMPro_EventManager.cs.meta
│ │ │ │ │ ├── TMPro_ExtensionMethods.cs
│ │ │ │ │ ├── TMPro_ExtensionMethods.cs.meta
│ │ │ │ │ ├── TMPro_MeshUtilities.cs
│ │ │ │ │ ├── TMPro_MeshUtilities.cs.meta
│ │ │ │ │ ├── TMPro_Private.cs
│ │ │ │ │ ├── TMPro_Private.cs.meta
│ │ │ │ │ ├── TMPro_UGUI_Private.cs
│ │ │ │ │ ├── TMPro_UGUI_Private.cs.meta
│ │ │ │ │ ├── TextContainer.cs
│ │ │ │ │ ├── TextContainer.cs.meta
│ │ │ │ │ ├── TextMeshPro.cs
│ │ │ │ │ ├── TextMeshPro.cs.meta
│ │ │ │ │ ├── TextMeshProUGUI.cs
│ │ │ │ │ ├── TextMeshProUGUI.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.asmdef.meta
│ │ │ │ └── Runtime.meta
│ │ │ ├── Scripts.meta
│ │ │ ├── Tests/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── TMP_EditorTests.cs
│ │ │ │ │ ├── TMP_EditorTests.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Editor.Tests.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Editor.Tests.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Runtime/
│ │ │ │ │ ├── TMP_RuntimeTests.cs
│ │ │ │ │ ├── TMP_RuntimeTests.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Tests.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Tests.asmdef.meta
│ │ │ │ └── Runtime.meta
│ │ │ ├── Tests.meta
│ │ │ ├── package.json
│ │ │ └── package.json.meta
│ │ ├── ProjectSettings.asset
│ │ ├── SceneVisibilityState.asset
│ │ ├── ScriptAssemblies/
│ │ │ ├── Assembly-CSharp-Editor.pdb
│ │ │ ├── Assembly-CSharp.pdb
│ │ │ ├── BuiltinAssemblies.stamp
│ │ │ ├── Unity.CollabProxy.Editor.pdb
│ │ │ ├── Unity.Rider.Editor.pdb
│ │ │ ├── Unity.TextMeshPro.Editor.pdb
│ │ │ ├── Unity.TextMeshPro.pdb
│ │ │ ├── Unity.Timeline.Editor.pdb
│ │ │ ├── Unity.Timeline.pdb
│ │ │ ├── Unity.VSCode.Editor.pdb
│ │ │ ├── UnityEditor.TestRunner.pdb
│ │ │ ├── UnityEditor.UI.pdb
│ │ │ ├── UnityEngine.TestRunner.pdb
│ │ │ └── UnityEngine.UI.pdb
│ │ ├── ScriptMapper
│ │ ├── SpriteAtlasDatabase.asset
│ │ ├── StateCache/
│ │ │ ├── Hierarchy/
│ │ │ │ └── d2da7c-mainStage.json
│ │ │ ├── LayerSettings/
│ │ │ │ └── LayerSettings.json
│ │ │ └── SceneView/
│ │ │ └── e16c04-mainStage.json
│ │ ├── Style.catalog
│ │ ├── assetDatabase3
│ │ ├── expandedItems
│ │ ├── metadata/
│ │ │ ├── 00/
│ │ │ │ ├── 00000000000000001000000000000000
│ │ │ │ ├── 00000000000000001000000000000000.info
│ │ │ │ ├── 00000000000000002000000000000000
│ │ │ │ ├── 00000000000000002000000000000000.info
│ │ │ │ ├── 00000000000000003000000000000000
│ │ │ │ ├── 00000000000000003000000000000000.info
│ │ │ │ ├── 00000000000000004000000000000000
│ │ │ │ ├── 00000000000000004000000000000000.info
│ │ │ │ ├── 00000000000000004100000000000000
│ │ │ │ ├── 00000000000000004100000000000000.info
│ │ │ │ ├── 00000000000000005000000000000000
│ │ │ │ ├── 00000000000000005000000000000000.info
│ │ │ │ ├── 00000000000000005100000000000000
│ │ │ │ ├── 00000000000000005100000000000000.info
│ │ │ │ ├── 00000000000000006000000000000000
│ │ │ │ ├── 00000000000000006000000000000000.info
│ │ │ │ ├── 00000000000000006100000000000000
│ │ │ │ ├── 00000000000000006100000000000000.info
│ │ │ │ ├── 00000000000000007000000000000000
│ │ │ │ ├── 00000000000000007000000000000000.info
│ │ │ │ ├── 00000000000000007100000000000000
│ │ │ │ ├── 00000000000000007100000000000000.info
│ │ │ │ ├── 00000000000000008000000000000000
│ │ │ │ ├── 00000000000000008000000000000000.info
│ │ │ │ ├── 00000000000000009000000000000000
│ │ │ │ ├── 00000000000000009000000000000000.info
│ │ │ │ ├── 0000000000000000a100000000000000
│ │ │ │ ├── 0000000000000000a100000000000000.info
│ │ │ │ ├── 0000000000000000b000000000000000
│ │ │ │ ├── 0000000000000000b000000000000000.info
│ │ │ │ ├── 0000000000000000b100000000000000
│ │ │ │ ├── 0000000000000000b100000000000000.info
│ │ │ │ ├── 0000000000000000c000000000000000
│ │ │ │ ├── 0000000000000000c000000000000000.info
│ │ │ │ ├── 0000000000000000c100000000000000
│ │ │ │ ├── 0000000000000000c100000000000000.info
│ │ │ │ ├── 00187582b67e7654b914b5a0d37daafb
│ │ │ │ ├── 00187582b67e7654b914b5a0d37daafb.info
│ │ │ │ ├── 006633c8a6f4ae94aa9babf72234e1a2
│ │ │ │ ├── 006633c8a6f4ae94aa9babf72234e1a2.info
│ │ │ │ ├── 00f9a68859b850648902e0c98c25b590
│ │ │ │ └── 00f9a68859b850648902e0c98c25b590.info
│ │ │ ├── 01/
│ │ │ │ ├── 01ada73c4792aba4c937ff5d92cce866
│ │ │ │ ├── 01ada73c4792aba4c937ff5d92cce866.info
│ │ │ │ ├── 01cd96d8687272f4898cfd1562079dd7
│ │ │ │ ├── 01cd96d8687272f4898cfd1562079dd7.info
│ │ │ │ ├── 01df650e1b86e9f4a8e2b5dc9782506f
│ │ │ │ └── 01df650e1b86e9f4a8e2b5dc9782506f.info
│ │ │ ├── 02/
│ │ │ │ ├── 020ee4c1798a3d243a4b8cbfee6cac2d
│ │ │ │ ├── 020ee4c1798a3d243a4b8cbfee6cac2d.info
│ │ │ │ ├── 0217a80286f79419daa202f69409f19b
│ │ │ │ ├── 0217a80286f79419daa202f69409f19b.info
│ │ │ │ ├── 0232a25926bfdf945abd3ccb4519aac3
│ │ │ │ ├── 0232a25926bfdf945abd3ccb4519aac3.info
│ │ │ │ ├── 02893ffb522b490a9fa28eedd2584309
│ │ │ │ ├── 02893ffb522b490a9fa28eedd2584309.info
│ │ │ │ ├── 02e1fe0a338b35545a5fed1345848332
│ │ │ │ ├── 02e1fe0a338b35545a5fed1345848332.info
│ │ │ │ ├── 02e622e7baa59ac449d2c5f5bc992795
│ │ │ │ ├── 02e622e7baa59ac449d2c5f5bc992795.info
│ │ │ │ ├── 02f771204943f4a40949438e873e3eff
│ │ │ │ └── 02f771204943f4a40949438e873e3eff.info
│ │ │ ├── 03/
│ │ │ │ ├── 030f85c3f73729f4f976f66ffb23b875
│ │ │ │ ├── 030f85c3f73729f4f976f66ffb23b875.info
│ │ │ │ ├── 0336a32a79bfaed43a3fd2d88b91e974
│ │ │ │ ├── 0336a32a79bfaed43a3fd2d88b91e974.info
│ │ │ │ ├── 033c884ba52437d49bc55935939ef1c6
│ │ │ │ ├── 033c884ba52437d49bc55935939ef1c6.info
│ │ │ │ ├── 0386b6eb838c47138cd51d1c1b879a35
│ │ │ │ ├── 0386b6eb838c47138cd51d1c1b879a35.info
│ │ │ │ ├── 03e4d63665d06f04c8a6cf68133c1592
│ │ │ │ └── 03e4d63665d06f04c8a6cf68133c1592.info
│ │ │ ├── 04/
│ │ │ │ ├── 046c3854296c5ec48bac50da6ca248ec
│ │ │ │ ├── 046c3854296c5ec48bac50da6ca248ec.info
│ │ │ │ ├── 04cc958f40f350044a432c012f320305
│ │ │ │ └── 04cc958f40f350044a432c012f320305.info
│ │ │ ├── 05/
│ │ │ │ ├── 056819c66570ca54cadb72330a354050
│ │ │ │ ├── 056819c66570ca54cadb72330a354050.info
│ │ │ │ ├── 05778dd1de4433d418793b6f3d3c18cf
│ │ │ │ ├── 05778dd1de4433d418793b6f3d3c18cf.info
│ │ │ │ ├── 058cba836c1846c3aa1c5fd2e28aea77
│ │ │ │ ├── 058cba836c1846c3aa1c5fd2e28aea77.info
│ │ │ │ ├── 05f582d4fbc8e0c40afccb76bbbe0935
│ │ │ │ ├── 05f582d4fbc8e0c40afccb76bbbe0935.info
│ │ │ │ ├── 05f5bfd584002f948982a1498890f9a9
│ │ │ │ ├── 05f5bfd584002f948982a1498890f9a9.info
│ │ │ │ ├── 05f7f519769978b79b31d063a7fc6fa1
│ │ │ │ ├── 05f7f519769978b79b31d063a7fc6fa1.info
│ │ │ │ ├── 05f92e4a2414cb144a92157752dfa324
│ │ │ │ └── 05f92e4a2414cb144a92157752dfa324.info
│ │ │ ├── 06/
│ │ │ │ ├── 066619c9c9c84f89acb1b48c11a7efe2
│ │ │ │ ├── 066619c9c9c84f89acb1b48c11a7efe2.info
│ │ │ │ ├── 06ae1baf5524b314fa65b173b9eca869
│ │ │ │ ├── 06ae1baf5524b314fa65b173b9eca869.info
│ │ │ │ ├── 06bfdc59aae5325499d5beef3aa3d013
│ │ │ │ └── 06bfdc59aae5325499d5beef3aa3d013.info
│ │ │ ├── 07/
│ │ │ │ ├── 071c17858dc6c47ada7b2a1f1ded5402
│ │ │ │ ├── 071c17858dc6c47ada7b2a1f1ded5402.info
│ │ │ │ ├── 077690d334440b044bdd51b26b3e9413
│ │ │ │ ├── 077690d334440b044bdd51b26b3e9413.info
│ │ │ │ ├── 07994bfe8b0e4adb97d706de5dea48d5
│ │ │ │ ├── 07994bfe8b0e4adb97d706de5dea48d5.info
│ │ │ │ ├── 07a967d2fca95324f8922df8394a5655
│ │ │ │ ├── 07a967d2fca95324f8922df8394a5655.info
│ │ │ │ ├── 07ea0326ed848fb4489187cb58f96113
│ │ │ │ └── 07ea0326ed848fb4489187cb58f96113.info
│ │ │ ├── 08/
│ │ │ │ ├── 083c6a3a5426382449369ddc12b691d8
│ │ │ │ ├── 083c6a3a5426382449369ddc12b691d8.info
│ │ │ │ ├── 087cba9fa6ac867479a0b0fdc0a5864b
│ │ │ │ ├── 087cba9fa6ac867479a0b0fdc0a5864b.info
│ │ │ │ ├── 08d23c0b73905c148b525c3c93fff580
│ │ │ │ ├── 08d23c0b73905c148b525c3c93fff580.info
│ │ │ │ ├── 08e9894bdf0834710b22d3c0aa245ac0
│ │ │ │ └── 08e9894bdf0834710b22d3c0aa245ac0.info
│ │ │ ├── 09/
│ │ │ │ ├── 09e28640d754a611467eebfb261ed749
│ │ │ │ ├── 09e28640d754a611467eebfb261ed749.info
│ │ │ │ ├── 09e68d8a529a36340b752b99a1b70f83
│ │ │ │ ├── 09e68d8a529a36340b752b99a1b70f83.info
│ │ │ │ ├── 09f4db536a377bc40a9ac110af702bfa
│ │ │ │ └── 09f4db536a377bc40a9ac110af702bfa.info
│ │ │ ├── 0a/
│ │ │ │ ├── 0a017569bfe174e4890797b4d64cbabc
│ │ │ │ ├── 0a017569bfe174e4890797b4d64cbabc.info
│ │ │ │ ├── 0aaa057ce5566e940b18a0ccd0344693
│ │ │ │ ├── 0aaa057ce5566e940b18a0ccd0344693.info
│ │ │ │ ├── 0acc523941302664db1f4e527237feb3
│ │ │ │ └── 0acc523941302664db1f4e527237feb3.info
│ │ │ ├── 0b/
│ │ │ │ ├── 0b2706df6fdff50448f84a3f6629b40f
│ │ │ │ ├── 0b2706df6fdff50448f84a3f6629b40f.info
│ │ │ │ ├── 0bb74b1c097396c49b1691e6a938f814
│ │ │ │ └── 0bb74b1c097396c49b1691e6a938f814.info
│ │ │ ├── 0c/
│ │ │ │ ├── 0c04c8cb23b78e04492e0f310cdee93e
│ │ │ │ ├── 0c04c8cb23b78e04492e0f310cdee93e.info
│ │ │ │ ├── 0c56471f08a0f6846afc792f0b4205b9
│ │ │ │ ├── 0c56471f08a0f6846afc792f0b4205b9.info
│ │ │ │ ├── 0ca2545d76d1fb34fa45a9f1e432d259
│ │ │ │ ├── 0ca2545d76d1fb34fa45a9f1e432d259.info
│ │ │ │ ├── 0ca81982e37e893498abf804c12a22c7
│ │ │ │ ├── 0ca81982e37e893498abf804c12a22c7.info
│ │ │ │ ├── 0cb14878543cf3d4f8472b15f7ecf0e3
│ │ │ │ ├── 0cb14878543cf3d4f8472b15f7ecf0e3.info
│ │ │ │ ├── 0cd44c1031e13a943bb63640046fad76
│ │ │ │ └── 0cd44c1031e13a943bb63640046fad76.info
│ │ │ ├── 0d/
│ │ │ │ ├── 0d0b652f32a2cc243917e4028fa0f046
│ │ │ │ ├── 0d0b652f32a2cc243917e4028fa0f046.info
│ │ │ │ ├── 0d2d0f36e67d4518a07df76235e91f9a
│ │ │ │ ├── 0d2d0f36e67d4518a07df76235e91f9a.info
│ │ │ │ ├── 0d4fc309a0784294c8ab658b53b12320
│ │ │ │ ├── 0d4fc309a0784294c8ab658b53b12320.info
│ │ │ │ ├── 0d60a406ab64c434e9d731914e11a51e
│ │ │ │ ├── 0d60a406ab64c434e9d731914e11a51e.info
│ │ │ │ ├── 0d9a36012a224080966c7b55896aa0f9
│ │ │ │ ├── 0d9a36012a224080966c7b55896aa0f9.info
│ │ │ │ ├── 0dc62a5955cf04ec298a2c3ca4b2edf2
│ │ │ │ ├── 0dc62a5955cf04ec298a2c3ca4b2edf2.info
│ │ │ │ ├── 0de03ebd74e2b474fa23d05ab42d0cd8
│ │ │ │ └── 0de03ebd74e2b474fa23d05ab42d0cd8.info
│ │ │ ├── 0e/
│ │ │ │ ├── 0e0afa652c0031c48896a97b424d027b
│ │ │ │ ├── 0e0afa652c0031c48896a97b424d027b.info
│ │ │ │ ├── 0e751e877ed14d71a6b8e63ac54949cf
│ │ │ │ ├── 0e751e877ed14d71a6b8e63ac54949cf.info
│ │ │ │ ├── 0efb23ecb373b6d4bbe5217485785138
│ │ │ │ └── 0efb23ecb373b6d4bbe5217485785138.info
│ │ │ ├── 0f/
│ │ │ │ ├── 0f71aeefaa877ae4787e8356f25ad1e5
│ │ │ │ └── 0f71aeefaa877ae4787e8356f25ad1e5.info
│ │ │ ├── 10/
│ │ │ │ ├── 102e512f651ee834f951a2516c1ea3b8
│ │ │ │ ├── 102e512f651ee834f951a2516c1ea3b8.info
│ │ │ │ ├── 1048a87135154606808bf2030da32d18
│ │ │ │ ├── 1048a87135154606808bf2030da32d18.info
│ │ │ │ ├── 105515c1653548242b4fe973c0f375f7
│ │ │ │ ├── 105515c1653548242b4fe973c0f375f7.info
│ │ │ │ ├── 1091bc2ad06e3234aac2b2fa2841c09d
│ │ │ │ ├── 1091bc2ad06e3234aac2b2fa2841c09d.info
│ │ │ │ ├── 10ba9bc9317e315439b0223674162c52
│ │ │ │ └── 10ba9bc9317e315439b0223674162c52.info
│ │ │ ├── 11/
│ │ │ │ ├── 110d5035a36a6a34580fb65bb40cd78f
│ │ │ │ ├── 110d5035a36a6a34580fb65bb40cd78f.info
│ │ │ │ ├── 1158e311a3101950348dcecb1bebc42d
│ │ │ │ ├── 1158e311a3101950348dcecb1bebc42d.info
│ │ │ │ ├── 11a6a034ab84493cbed6af5ae7aae78b
│ │ │ │ └── 11a6a034ab84493cbed6af5ae7aae78b.info
│ │ │ ├── 12/
│ │ │ │ ├── 124533853216377448d786fd7c725701
│ │ │ │ ├── 124533853216377448d786fd7c725701.info
│ │ │ │ ├── 127023922adddf744b59fa7b0b0c3030
│ │ │ │ ├── 127023922adddf744b59fa7b0b0c3030.info
│ │ │ │ ├── 12736c98af174f91827a26b66d2b01b9
│ │ │ │ ├── 12736c98af174f91827a26b66d2b01b9.info
│ │ │ │ ├── 12c42068351bb084abde965d725b9887
│ │ │ │ ├── 12c42068351bb084abde965d725b9887.info
│ │ │ │ ├── 12dfd4bdbb5c8e6419432fbc54ef25d9
│ │ │ │ └── 12dfd4bdbb5c8e6419432fbc54ef25d9.info
│ │ │ ├── 13/
│ │ │ │ ├── 1336690ece4db2740b4ba38873e00dfb
│ │ │ │ ├── 1336690ece4db2740b4ba38873e00dfb.info
│ │ │ │ ├── 1344c3c82d62a2a41a3576d8abb8e3ea
│ │ │ │ ├── 1344c3c82d62a2a41a3576d8abb8e3ea.info
│ │ │ │ ├── 1369382d2c5e64dc5b2ec0b6b0a94531
│ │ │ │ ├── 1369382d2c5e64dc5b2ec0b6b0a94531.info
│ │ │ │ ├── 1385bc74f3945c943be16ecbb1381063
│ │ │ │ ├── 1385bc74f3945c943be16ecbb1381063.info
│ │ │ │ ├── 1389c6be1c6e80b4eb8604aabdda8255
│ │ │ │ ├── 1389c6be1c6e80b4eb8604aabdda8255.info
│ │ │ │ ├── 138dbec4f8742654fbceb0a19d68b9c5
│ │ │ │ ├── 138dbec4f8742654fbceb0a19d68b9c5.info
│ │ │ │ ├── 139c5eac101a4dc4fb3098e30c29f15e
│ │ │ │ ├── 139c5eac101a4dc4fb3098e30c29f15e.info
│ │ │ │ ├── 13a9c1b4df2e489e8eb9cacca7429596
│ │ │ │ ├── 13a9c1b4df2e489e8eb9cacca7429596.info
│ │ │ │ ├── 13cd966480ec3354bb318ee1aeccff6f
│ │ │ │ ├── 13cd966480ec3354bb318ee1aeccff6f.info
│ │ │ │ ├── 13d161b14bb3ab74e8a9634e26fb7a5e
│ │ │ │ ├── 13d161b14bb3ab74e8a9634e26fb7a5e.info
│ │ │ │ ├── 13eb80ce50ac9c43cdbaf2109c0ec7db
│ │ │ │ └── 13eb80ce50ac9c43cdbaf2109c0ec7db.info
│ │ │ ├── 14/
│ │ │ │ ├── 14427eecd0bccea468addc3492aaef57
│ │ │ │ ├── 14427eecd0bccea468addc3492aaef57.info
│ │ │ │ ├── 1489c7cdbe26c444b86705280ebdff02
│ │ │ │ ├── 1489c7cdbe26c444b86705280ebdff02.info
│ │ │ │ ├── 14d748c963c7b3549bed45457cc92c4f
│ │ │ │ └── 14d748c963c7b3549bed45457cc92c4f.info
│ │ │ ├── 15/
│ │ │ │ ├── 1511ccae7919cfc46b603b9b337fdc94
│ │ │ │ ├── 1511ccae7919cfc46b603b9b337fdc94.info
│ │ │ │ ├── 15225778e2107e44bb700adf9df97a60
│ │ │ │ ├── 15225778e2107e44bb700adf9df97a60.info
│ │ │ │ ├── 15c38f6fa1940124db1ab7f6fe7268d1
│ │ │ │ ├── 15c38f6fa1940124db1ab7f6fe7268d1.info
│ │ │ │ ├── 15e0374501f39d54eb30235764636e0e
│ │ │ │ ├── 15e0374501f39d54eb30235764636e0e.info
│ │ │ │ ├── 15f870c6975ad6449b5b52514b90dc2b
│ │ │ │ └── 15f870c6975ad6449b5b52514b90dc2b.info
│ │ │ ├── 16/
│ │ │ │ ├── 16388ae022a89264b84107f0c1b44680
│ │ │ │ ├── 16388ae022a89264b84107f0c1b44680.info
│ │ │ │ ├── 164c9b1458eaab743a4b45c37a4d720d
│ │ │ │ ├── 164c9b1458eaab743a4b45c37a4d720d.info
│ │ │ │ ├── 16548db454f7a3344b41ca2e5cdb52b2
│ │ │ │ ├── 16548db454f7a3344b41ca2e5cdb52b2.info
│ │ │ │ ├── 167329c8289a3a14a9e342df49fc4104
│ │ │ │ ├── 167329c8289a3a14a9e342df49fc4104.info
│ │ │ │ ├── 16950289b516d6747868e0f7bf7b37a0
│ │ │ │ ├── 16950289b516d6747868e0f7bf7b37a0.info
│ │ │ │ ├── 16c6414b77a90ff4098767dce485c495
│ │ │ │ └── 16c6414b77a90ff4098767dce485c495.info
│ │ │ ├── 17/
│ │ │ │ ├── 178008567c08e6d84014fa87825d10bb
│ │ │ │ └── 178008567c08e6d84014fa87825d10bb.info
│ │ │ ├── 18/
│ │ │ │ ├── 1852920dca83b454c8e49493d9ead74c
│ │ │ │ ├── 1852920dca83b454c8e49493d9ead74c.info
│ │ │ │ ├── 18775b51e3bd42299fd30bd036ea982f
│ │ │ │ ├── 18775b51e3bd42299fd30bd036ea982f.info
│ │ │ │ ├── 18a4fadfef534684d5af39ca8dc48fe9
│ │ │ │ └── 18a4fadfef534684d5af39ca8dc48fe9.info
│ │ │ ├── 19/
│ │ │ │ ├── 197c1114eb793d24c8ef31120a134e88
│ │ │ │ ├── 197c1114eb793d24c8ef31120a134e88.info
│ │ │ │ ├── 1999349e7f492c947bb6eb70f624382e
│ │ │ │ ├── 1999349e7f492c947bb6eb70f624382e.info
│ │ │ │ ├── 19a6f000f81e24c4a826c1abd43e77c7
│ │ │ │ ├── 19a6f000f81e24c4a826c1abd43e77c7.info
│ │ │ │ ├── 19c6f364c1e81cb4f829a057824639ad
│ │ │ │ └── 19c6f364c1e81cb4f829a057824639ad.info
│ │ │ ├── 1a/
│ │ │ │ ├── 1a26e19d51cbfac42a02631ad1f9e39e
│ │ │ │ ├── 1a26e19d51cbfac42a02631ad1f9e39e.info
│ │ │ │ ├── 1a34c77a67cf21c4b8523a435293645b
│ │ │ │ ├── 1a34c77a67cf21c4b8523a435293645b.info
│ │ │ │ ├── 1a4266815e998967becf686f9c71f0a6
│ │ │ │ ├── 1a4266815e998967becf686f9c71f0a6.info
│ │ │ │ ├── 1a70a790a43cd0d4a96f75746841f764
│ │ │ │ ├── 1a70a790a43cd0d4a96f75746841f764.info
│ │ │ │ ├── 1a7a541ac0259ac4e8570ac8c3510dfe
│ │ │ │ ├── 1a7a541ac0259ac4e8570ac8c3510dfe.info
│ │ │ │ ├── 1aa08ab6e0800fa44ae55d278d1423e3
│ │ │ │ ├── 1aa08ab6e0800fa44ae55d278d1423e3.info
│ │ │ │ ├── 1ac58cb55fc8daf4abd3945a2bbbb0c5
│ │ │ │ ├── 1ac58cb55fc8daf4abd3945a2bbbb0c5.info
│ │ │ │ ├── 1ac677c5ece15b443b2aaf7fae5842f7
│ │ │ │ ├── 1ac677c5ece15b443b2aaf7fae5842f7.info
│ │ │ │ ├── 1ad55f5ad04d1d045a1f287409c650dd
│ │ │ │ ├── 1ad55f5ad04d1d045a1f287409c650dd.info
│ │ │ │ ├── 1adaa8dcc4fda3d4cb4d3c8e0cb65d12
│ │ │ │ ├── 1adaa8dcc4fda3d4cb4d3c8e0cb65d12.info
│ │ │ │ ├── 1adad61bfb44214ee3e887b5febc4396
│ │ │ │ └── 1adad61bfb44214ee3e887b5febc4396.info
│ │ │ ├── 1b/
│ │ │ │ ├── 1b0a41d64d4e9534481f804049080fbb
│ │ │ │ ├── 1b0a41d64d4e9534481f804049080fbb.info
│ │ │ │ ├── 1b199a26663a15b4db765ffb1df401f2
│ │ │ │ ├── 1b199a26663a15b4db765ffb1df401f2.info
│ │ │ │ ├── 1b393f6b29a9ee84c803af1ab4944b71
│ │ │ │ ├── 1b393f6b29a9ee84c803af1ab4944b71.info
│ │ │ │ ├── 1bbfba4363c8e1e4b8214b4004316ce5
│ │ │ │ ├── 1bbfba4363c8e1e4b8214b4004316ce5.info
│ │ │ │ ├── 1bfe12aa306c0c74db4f4f1a1a0ae5ce
│ │ │ │ └── 1bfe12aa306c0c74db4f4f1a1a0ae5ce.info
│ │ │ ├── 1c/
│ │ │ │ ├── 1c147d10db452eb4b854a35f84472017
│ │ │ │ ├── 1c147d10db452eb4b854a35f84472017.info
│ │ │ │ ├── 1c5afe945b715e149a70113a4be7b32a
│ │ │ │ ├── 1c5afe945b715e149a70113a4be7b32a.info
│ │ │ │ ├── 1c61a04a5b7737c4d16673d64be4194e
│ │ │ │ ├── 1c61a04a5b7737c4d16673d64be4194e.info
│ │ │ │ ├── 1cd98b0d17936ed43bed805e1a150a88
│ │ │ │ ├── 1cd98b0d17936ed43bed805e1a150a88.info
│ │ │ │ ├── 1cddf785b0d07434d8e0607c97b09135
│ │ │ │ ├── 1cddf785b0d07434d8e0607c97b09135.info
│ │ │ │ ├── 1cf2469083ffa484da4d78dd70d708e8
│ │ │ │ └── 1cf2469083ffa484da4d78dd70d708e8.info
│ │ │ ├── 1d/
│ │ │ │ ├── 1d446e57147ca9b4183edfbbfa9bf206
│ │ │ │ ├── 1d446e57147ca9b4183edfbbfa9bf206.info
│ │ │ │ ├── 1d93ffb668978f7488211a331977b73b
│ │ │ │ ├── 1d93ffb668978f7488211a331977b73b.info
│ │ │ │ ├── 1db879070d9a45f4c86cdf5e59616df5
│ │ │ │ ├── 1db879070d9a45f4c86cdf5e59616df5.info
│ │ │ │ ├── 1ddb9e1c877ea80479d1eab4ddaa5d0d
│ │ │ │ └── 1ddb9e1c877ea80479d1eab4ddaa5d0d.info
│ │ │ ├── 1e/
│ │ │ │ ├── 1e5ee557da46d59498c484308be5067e
│ │ │ │ ├── 1e5ee557da46d59498c484308be5067e.info
│ │ │ │ ├── 1ea10891dd782154ca0fb67bce9e6f72
│ │ │ │ ├── 1ea10891dd782154ca0fb67bce9e6f72.info
│ │ │ │ ├── 1ebc1994f9a3d5649a1201d3a84b38df
│ │ │ │ ├── 1ebc1994f9a3d5649a1201d3a84b38df.info
│ │ │ │ ├── 1ec4b8ec4b34f4344bac53c19288eaa2
│ │ │ │ ├── 1ec4b8ec4b34f4344bac53c19288eaa2.info
│ │ │ │ ├── 1ef2923b9c5521948a04299da53ae750
│ │ │ │ └── 1ef2923b9c5521948a04299da53ae750.info
│ │ │ ├── 1f/
│ │ │ │ ├── 1f2a7e0d1b6bbba408a41e206945c23c
│ │ │ │ ├── 1f2a7e0d1b6bbba408a41e206945c23c.info
│ │ │ │ ├── 1f3a562675833b4448299e4f627b0cec
│ │ │ │ ├── 1f3a562675833b4448299e4f627b0cec.info
│ │ │ │ ├── 1f5bbb88ca730434483440cbc0278ef6
│ │ │ │ ├── 1f5bbb88ca730434483440cbc0278ef6.info
│ │ │ │ ├── 1fe0f539450e54dbc85bfb2fa6b466fb
│ │ │ │ └── 1fe0f539450e54dbc85bfb2fa6b466fb.info
│ │ │ ├── 20/
│ │ │ │ ├── 200617708f5b36a4da2e2a3f1ceacedd
│ │ │ │ ├── 200617708f5b36a4da2e2a3f1ceacedd.info
│ │ │ │ ├── 2011a59d3f76b3d4a85cb53f945fceee
│ │ │ │ ├── 2011a59d3f76b3d4a85cb53f945fceee.info
│ │ │ │ ├── 202d758d102b6854a9710c8b93db742c
│ │ │ │ ├── 202d758d102b6854a9710c8b93db742c.info
│ │ │ │ ├── 20793418366caf14293b29c55df5e9ec
│ │ │ │ ├── 20793418366caf14293b29c55df5e9ec.info
│ │ │ │ ├── 208e46d59ff6e304db0318377d20f5a1
│ │ │ │ ├── 208e46d59ff6e304db0318377d20f5a1.info
│ │ │ │ ├── 20a9b557a46149dfbfa04a3a7080f5aa
│ │ │ │ ├── 20a9b557a46149dfbfa04a3a7080f5aa.info
│ │ │ │ ├── 20c8bb6b47a526c4c96ca73314fe2856
│ │ │ │ ├── 20c8bb6b47a526c4c96ca73314fe2856.info
│ │ │ │ ├── 20cdb37e6fea6d946bbb84d2c923db85
│ │ │ │ ├── 20cdb37e6fea6d946bbb84d2c923db85.info
│ │ │ │ ├── 20ff4283f687e044087714f82c4d6d3f
│ │ │ │ └── 20ff4283f687e044087714f82c4d6d3f.info
│ │ │ ├── 21/
│ │ │ │ ├── 212a65848ed53294788b2731538c9d66
│ │ │ │ ├── 212a65848ed53294788b2731538c9d66.info
│ │ │ │ ├── 218eacd3a7686dd4d875c191fdaa058c
│ │ │ │ ├── 218eacd3a7686dd4d875c191fdaa058c.info
│ │ │ │ ├── 21bf7f712d84d26478ebe6a299f21738
│ │ │ │ ├── 21bf7f712d84d26478ebe6a299f21738.info
│ │ │ │ ├── 21c0044a7f964773be90d197a78e4703
│ │ │ │ ├── 21c0044a7f964773be90d197a78e4703.info
│ │ │ │ ├── 21d2d5d6901f2ca43a8015c60ada4e2c
│ │ │ │ └── 21d2d5d6901f2ca43a8015c60ada4e2c.info
│ │ │ ├── 22/
│ │ │ │ ├── 220e9325710f4235a43492dd1ee4980d
│ │ │ │ ├── 220e9325710f4235a43492dd1ee4980d.info
│ │ │ │ ├── 22464cf7ab0243a6bf9c79851183b002
│ │ │ │ ├── 22464cf7ab0243a6bf9c79851183b002.info
│ │ │ │ ├── 22899211c24eeb248b22704499dd108f
│ │ │ │ └── 22899211c24eeb248b22704499dd108f.info
│ │ │ ├── 23/
│ │ │ │ ├── 2300e75732d74890b38a8ff257a3ae15
│ │ │ │ ├── 2300e75732d74890b38a8ff257a3ae15.info
│ │ │ │ ├── 230f3ac09b9ef234cba81ade9bd0e32a
│ │ │ │ ├── 230f3ac09b9ef234cba81ade9bd0e32a.info
│ │ │ │ ├── 2347243c7aa3e224f9282dc94e6fc3b2
│ │ │ │ ├── 2347243c7aa3e224f9282dc94e6fc3b2.info
│ │ │ │ ├── 2359c66dee10c454c97f6aea84e3fe22
│ │ │ │ ├── 2359c66dee10c454c97f6aea84e3fe22.info
│ │ │ │ ├── 23884ce4c1de32846adafea2d53a4cee
│ │ │ │ ├── 23884ce4c1de32846adafea2d53a4cee.info
│ │ │ │ ├── 239dd6edc8e5cd14585c03e09e86a747
│ │ │ │ ├── 239dd6edc8e5cd14585c03e09e86a747.info
│ │ │ │ ├── 23a562f2cac6401f9f91251c68a1a794
│ │ │ │ ├── 23a562f2cac6401f9f91251c68a1a794.info
│ │ │ │ ├── 23a56a19774ed42b6b65646af08a003c
│ │ │ │ └── 23a56a19774ed42b6b65646af08a003c.info
│ │ │ ├── 24/
│ │ │ │ ├── 24a158219395ebf44a60547b97784ddc
│ │ │ │ ├── 24a158219395ebf44a60547b97784ddc.info
│ │ │ │ ├── 24a7ce8b48db53747a4e8abbda77eac4
│ │ │ │ ├── 24a7ce8b48db53747a4e8abbda77eac4.info
│ │ │ │ ├── 24f430bcb0b5b8046adfc8065bffc5c9
│ │ │ │ └── 24f430bcb0b5b8046adfc8065bffc5c9.info
│ │ │ ├── 25/
│ │ │ │ ├── 2537ddddebaa455409dec422eb08fd7e
│ │ │ │ ├── 2537ddddebaa455409dec422eb08fd7e.info
│ │ │ │ ├── 255b0c6d400fd964dab3029c8abc53f4
│ │ │ │ ├── 255b0c6d400fd964dab3029c8abc53f4.info
│ │ │ │ ├── 256a0ca37fa972840bce7fca446e75e7
│ │ │ │ ├── 256a0ca37fa972840bce7fca446e75e7.info
│ │ │ │ ├── 25a477c2f24db8778a4179421a32cc21
│ │ │ │ ├── 25a477c2f24db8778a4179421a32cc21.info
│ │ │ │ ├── 25b01819c6e1649428db2a9b274cf364
│ │ │ │ └── 25b01819c6e1649428db2a9b274cf364.info
│ │ │ ├── 26/
│ │ │ │ ├── 260b531edc40677429c0198d6961e448
│ │ │ │ ├── 260b531edc40677429c0198d6961e448.info
│ │ │ │ ├── 26570be2af04195458e6f1ac1f5c48e0
│ │ │ │ ├── 26570be2af04195458e6f1ac1f5c48e0.info
│ │ │ │ ├── 26721f9940339264fb14bdbfe1290e21
│ │ │ │ ├── 26721f9940339264fb14bdbfe1290e21.info
│ │ │ │ ├── 26a4f29db434fd79025c91f6126382cc
│ │ │ │ ├── 26a4f29db434fd79025c91f6126382cc.info
│ │ │ │ ├── 26f3e7301af463c4ca72fa98d59b429e
│ │ │ │ └── 26f3e7301af463c4ca72fa98d59b429e.info
│ │ │ ├── 27/
│ │ │ │ ├── 2705215ac5b84b70bacc50632be6e391
│ │ │ │ ├── 2705215ac5b84b70bacc50632be6e391.info
│ │ │ │ ├── 27619889b8ba8c24980f49ee34dbb44a
│ │ │ │ ├── 27619889b8ba8c24980f49ee34dbb44a.info
│ │ │ │ ├── 27769e9b00b038d47aefe306a4d20bec
│ │ │ │ ├── 27769e9b00b038d47aefe306a4d20bec.info
│ │ │ │ ├── 2799eb4c84e72e54092a292cf626936b
│ │ │ │ ├── 2799eb4c84e72e54092a292cf626936b.info
│ │ │ │ ├── 27a0335dab59ec542aadd6636a5b4ebd
│ │ │ │ ├── 27a0335dab59ec542aadd6636a5b4ebd.info
│ │ │ │ ├── 27df3b12f30d0b74a9b10a3968c402ff
│ │ │ │ ├── 27df3b12f30d0b74a9b10a3968c402ff.info
│ │ │ │ ├── 27ed3e221887b3544bd9d6505d4a789f
│ │ │ │ └── 27ed3e221887b3544bd9d6505d4a789f.info
│ │ │ ├── 28/
│ │ │ │ ├── 2808ba6bccb2478ec9c7209d8bf1f3cc
│ │ │ │ ├── 2808ba6bccb2478ec9c7209d8bf1f3cc.info
│ │ │ │ ├── 281f7e519f1ddd14b96c09995386ec82
│ │ │ │ ├── 281f7e519f1ddd14b96c09995386ec82.info
│ │ │ │ ├── 28375447bcea455c9b51a6650b10c9d7
│ │ │ │ ├── 28375447bcea455c9b51a6650b10c9d7.info
│ │ │ │ ├── 28542eca5f1b4c64813acfbd512524b6
│ │ │ │ ├── 28542eca5f1b4c64813acfbd512524b6.info
│ │ │ │ ├── 28c8fcb831e6e734a9f564bc4f495eba
│ │ │ │ ├── 28c8fcb831e6e734a9f564bc4f495eba.info
│ │ │ │ ├── 28e8b16370ff78c4faca58757271619f
│ │ │ │ ├── 28e8b16370ff78c4faca58757271619f.info
│ │ │ │ ├── 28f79a0d7e64c2345bc46f8c4cf788f8
│ │ │ │ └── 28f79a0d7e64c2345bc46f8c4cf788f8.info
│ │ │ ├── 29/
│ │ │ │ ├── 29b7e99efaf64b949afd3d5b830c72aa
│ │ │ │ ├── 29b7e99efaf64b949afd3d5b830c72aa.info
│ │ │ │ ├── 29bf1d4ec1012bc45967ce95b729b8b3
│ │ │ │ ├── 29bf1d4ec1012bc45967ce95b729b8b3.info
│ │ │ │ ├── 29d603e0a726a9043b3503112271844a
│ │ │ │ └── 29d603e0a726a9043b3503112271844a.info
│ │ │ ├── 2a/
│ │ │ │ ├── 2a0bd678385f98e4d8eabdfc07d62b4f
│ │ │ │ ├── 2a0bd678385f98e4d8eabdfc07d62b4f.info
│ │ │ │ ├── 2a16748d9461eae46a725db9776d5390
│ │ │ │ ├── 2a16748d9461eae46a725db9776d5390.info
│ │ │ │ ├── 2a28c2fab6b1bb745a844ef6b908e7ee
│ │ │ │ ├── 2a28c2fab6b1bb745a844ef6b908e7ee.info
│ │ │ │ ├── 2a4db7a114972834c8e4117be1d82ba3
│ │ │ │ ├── 2a4db7a114972834c8e4117be1d82ba3.info
│ │ │ │ ├── 2ac6db96cd5bff048a79be0215503e16
│ │ │ │ ├── 2ac6db96cd5bff048a79be0215503e16.info
│ │ │ │ ├── 2ae2ce6274819484fa8747a28cebdf3a
│ │ │ │ ├── 2ae2ce6274819484fa8747a28cebdf3a.info
│ │ │ │ ├── 2aff4fada0516c64a8537a20bfe1b699
│ │ │ │ └── 2aff4fada0516c64a8537a20bfe1b699.info
│ │ │ ├── 2b/
│ │ │ │ ├── 2b301b727225f1941974d69e61a55620
│ │ │ │ ├── 2b301b727225f1941974d69e61a55620.info
│ │ │ │ ├── 2bafac87e7f4b9b418d9448d219b01ab
│ │ │ │ ├── 2bafac87e7f4b9b418d9448d219b01ab.info
│ │ │ │ ├── 2bc8a181dfd9de24388de89bb8db7713
│ │ │ │ ├── 2bc8a181dfd9de24388de89bb8db7713.info
│ │ │ │ ├── 2bd3ca1fde4b154448ef972b0f9d292e
│ │ │ │ ├── 2bd3ca1fde4b154448ef972b0f9d292e.info
│ │ │ │ ├── 2bf68308f6cdff141ab98cd34174e4f1
│ │ │ │ └── 2bf68308f6cdff141ab98cd34174e4f1.info
│ │ │ ├── 2c/
│ │ │ │ ├── 2c03ae9aa36a4fd44a983831f44654be
│ │ │ │ ├── 2c03ae9aa36a4fd44a983831f44654be.info
│ │ │ │ ├── 2c2dfcbbb77359547bcaa7cdabd47ebb
│ │ │ │ ├── 2c2dfcbbb77359547bcaa7cdabd47ebb.info
│ │ │ │ ├── 2c80ef0306e06ac4d8a4b0fe7e4536ac
│ │ │ │ ├── 2c80ef0306e06ac4d8a4b0fe7e4536ac.info
│ │ │ │ ├── 2c814623cb42764d304be0c5ddd03ceb
│ │ │ │ ├── 2c814623cb42764d304be0c5ddd03ceb.info
│ │ │ │ ├── 2c87ec8c97244cd47945ec90a99abe35
│ │ │ │ ├── 2c87ec8c97244cd47945ec90a99abe35.info
│ │ │ │ ├── 2cb24b5a5793c654e899a06bf08ec3ae
│ │ │ │ ├── 2cb24b5a5793c654e899a06bf08ec3ae.info
│ │ │ │ ├── 2ce4bbcc4722440890a03312706037fe
│ │ │ │ └── 2ce4bbcc4722440890a03312706037fe.info
│ │ │ ├── 2d/
│ │ │ │ ├── 2d142b475fbfb8cf12ba3a795194300a
│ │ │ │ ├── 2d142b475fbfb8cf12ba3a795194300a.info
│ │ │ │ ├── 2d49b7c1bcd2e07499844da127be038d
│ │ │ │ ├── 2d49b7c1bcd2e07499844da127be038d.info
│ │ │ │ ├── 2d6ba5cbe47e6ad3c87474c56174d4e0
│ │ │ │ ├── 2d6ba5cbe47e6ad3c87474c56174d4e0.info
│ │ │ │ ├── 2d8485e4e3a2bcb429fc32900ca26d9e
│ │ │ │ ├── 2d8485e4e3a2bcb429fc32900ca26d9e.info
│ │ │ │ ├── 2d9b6ff056b6f484ba6500aa8e06bcf3
│ │ │ │ ├── 2d9b6ff056b6f484ba6500aa8e06bcf3.info
│ │ │ │ ├── 2da0c512f12947e489f739169773d7ca
│ │ │ │ ├── 2da0c512f12947e489f739169773d7ca.info
│ │ │ │ ├── 2da27f5fe80a3a549ac7331d9f52f5f0
│ │ │ │ ├── 2da27f5fe80a3a549ac7331d9f52f5f0.info
│ │ │ │ ├── 2de8ba3b840049641897e0da7ce1d5cd
│ │ │ │ └── 2de8ba3b840049641897e0da7ce1d5cd.info
│ │ │ ├── 2e/
│ │ │ │ ├── 2e0de782b8e9e4e45baeb7bb5ef4907f
│ │ │ │ ├── 2e0de782b8e9e4e45baeb7bb5ef4907f.info
│ │ │ │ ├── 2e3b9bbf2c1a3cd4f88883ca32882ec6
│ │ │ │ └── 2e3b9bbf2c1a3cd4f88883ca32882ec6.info
│ │ │ ├── 2f/
│ │ │ │ ├── 2fa2cf7de51b0d34d9dce3747b72e49d
│ │ │ │ ├── 2fa2cf7de51b0d34d9dce3747b72e49d.info
│ │ │ │ ├── 2fafe2cfe61f6974895a912c3755e8f1
│ │ │ │ ├── 2fafe2cfe61f6974895a912c3755e8f1.info
│ │ │ │ ├── 2fd6421f253b4ef1a19526541f9ffc0c
│ │ │ │ └── 2fd6421f253b4ef1a19526541f9ffc0c.info
│ │ │ ├── 30/
│ │ │ │ ├── 305ca32be1aa5504aa182f583895dfe4
│ │ │ │ ├── 305ca32be1aa5504aa182f583895dfe4.info
│ │ │ │ ├── 30649d3a9faa99c48a7b1166b86bf2a0
│ │ │ │ ├── 30649d3a9faa99c48a7b1166b86bf2a0.info
│ │ │ │ ├── 3069a00b8c364df395994d7d379e0a99
│ │ │ │ ├── 3069a00b8c364df395994d7d379e0a99.info
│ │ │ │ ├── 306cc8c2b49d7114eaa3623786fc2126
│ │ │ │ ├── 306cc8c2b49d7114eaa3623786fc2126.info
│ │ │ │ ├── 309b0604924786544a3786ec4073c5a1
│ │ │ │ ├── 309b0604924786544a3786ec4073c5a1.info
│ │ │ │ ├── 30a939dce2fd4073955f2f20e659d506
│ │ │ │ ├── 30a939dce2fd4073955f2f20e659d506.info
│ │ │ │ ├── 30bed781e402439ab8ce4e3357708115
│ │ │ │ └── 30bed781e402439ab8ce4e3357708115.info
│ │ │ ├── 31/
│ │ │ │ ├── 3168bf9e060ff4b46be4bf08e308ce97
│ │ │ │ ├── 3168bf9e060ff4b46be4bf08e308ce97.info
│ │ │ │ ├── 3174898fbcdf12448963cdb5f5b60a33
│ │ │ │ ├── 3174898fbcdf12448963cdb5f5b60a33.info
│ │ │ │ ├── 319b8889f363f5947acf209c17a94149
│ │ │ │ ├── 319b8889f363f5947acf209c17a94149.info
│ │ │ │ ├── 31a19414c41e5ae4aae2af33fee712f6
│ │ │ │ └── 31a19414c41e5ae4aae2af33fee712f6.info
│ │ │ ├── 32/
│ │ │ │ ├── 321dc2c0720f8dd4f9396ecdc12b8746
│ │ │ │ ├── 321dc2c0720f8dd4f9396ecdc12b8746.info
│ │ │ │ ├── 322392995be44d23a3c86cfd972f838f
│ │ │ │ ├── 322392995be44d23a3c86cfd972f838f.info
│ │ │ │ ├── 3245ec927659c4140ac4f8d17403cc18
│ │ │ │ ├── 3245ec927659c4140ac4f8d17403cc18.info
│ │ │ │ ├── 32535dd294c621e4297fba34b15b1c52
│ │ │ │ ├── 32535dd294c621e4297fba34b15b1c52.info
│ │ │ │ ├── 32a4a0ea998dd6149937d2774781c436
│ │ │ │ ├── 32a4a0ea998dd6149937d2774781c436.info
│ │ │ │ ├── 32d40088a6124c578ad6b428df586e2e
│ │ │ │ ├── 32d40088a6124c578ad6b428df586e2e.info
│ │ │ │ ├── 32da81683c22faf458026716a2b821aa
│ │ │ │ ├── 32da81683c22faf458026716a2b821aa.info
│ │ │ │ ├── 32e2186f4598cff489784aae586f2215
│ │ │ │ └── 32e2186f4598cff489784aae586f2215.info
│ │ │ ├── 33/
│ │ │ │ ├── 3312d7739989d2b4e91e6319e9a96d76
│ │ │ │ ├── 3312d7739989d2b4e91e6319e9a96d76.info
│ │ │ │ ├── 335020228a0fe124897f51f25f6350ee
│ │ │ │ ├── 335020228a0fe124897f51f25f6350ee.info
│ │ │ │ ├── 3371106faf8d06f47a73979a3c8d82a1
│ │ │ │ ├── 3371106faf8d06f47a73979a3c8d82a1.info
│ │ │ │ ├── 3387717991705ce4e8ef033a0e543a06
│ │ │ │ ├── 3387717991705ce4e8ef033a0e543a06.info
│ │ │ │ ├── 33e6b78c96bb0694e96383e3c56b7b54
│ │ │ │ └── 33e6b78c96bb0694e96383e3c56b7b54.info
│ │ │ ├── 34/
│ │ │ │ ├── 3411e19edd44cfd46b548b058c3bc36c
│ │ │ │ ├── 3411e19edd44cfd46b548b058c3bc36c.info
│ │ │ │ ├── 342a0f8aca7f4f0691338912faec0494
│ │ │ │ ├── 342a0f8aca7f4f0691338912faec0494.info
│ │ │ │ ├── 343deaaf83e0cee4ca978e7df0b80d21
│ │ │ │ ├── 343deaaf83e0cee4ca978e7df0b80d21.info
│ │ │ │ ├── 3477d28057cb3e4469c7ea6b8dc23046
│ │ │ │ ├── 3477d28057cb3e4469c7ea6b8dc23046.info
│ │ │ │ ├── 34d6f60b171c1004e8335d52c65928a3
│ │ │ │ ├── 34d6f60b171c1004e8335d52c65928a3.info
│ │ │ │ ├── 34e150112c1c42ac83170b52d898e322
│ │ │ │ ├── 34e150112c1c42ac83170b52d898e322.info
│ │ │ │ ├── 34e2c9b9d9e44953933afe37461f44e6
│ │ │ │ ├── 34e2c9b9d9e44953933afe37461f44e6.info
│ │ │ │ ├── 34f6695d37a94370a3697f6b068f5d5e
│ │ │ │ ├── 34f6695d37a94370a3697f6b068f5d5e.info
│ │ │ │ ├── 34f9419ac53fdb44fa9676a451481931
│ │ │ │ ├── 34f9419ac53fdb44fa9676a451481931.info
│ │ │ │ ├── 34fc60e2fe0cbfa4a87375cdfff9dc86
│ │ │ │ └── 34fc60e2fe0cbfa4a87375cdfff9dc86.info
│ │ │ ├── 35/
│ │ │ │ ├── 3504aa04cda851b44a65973f9aead6f7
│ │ │ │ ├── 3504aa04cda851b44a65973f9aead6f7.info
│ │ │ │ ├── 3550d8ec6f29ab34d895ae9a43d560c2
│ │ │ │ ├── 3550d8ec6f29ab34d895ae9a43d560c2.info
│ │ │ │ ├── 357e9aeae0d19c148b2437b05c8b3361
│ │ │ │ ├── 357e9aeae0d19c148b2437b05c8b3361.info
│ │ │ │ ├── 358a618bc6bd9354d81cc206fd2ed80e
│ │ │ │ ├── 358a618bc6bd9354d81cc206fd2ed80e.info
│ │ │ │ ├── 35a0d10199de49f4db0128003bfd3bda
│ │ │ │ ├── 35a0d10199de49f4db0128003bfd3bda.info
│ │ │ │ ├── 35cb34351b19cf44ba78afbd58746610
│ │ │ │ ├── 35cb34351b19cf44ba78afbd58746610.info
│ │ │ │ ├── 35d143b352678294ab0f5feb97b67f88
│ │ │ │ ├── 35d143b352678294ab0f5feb97b67f88.info
│ │ │ │ ├── 35ff0937876540d3bd4b6a941df62a92
│ │ │ │ └── 35ff0937876540d3bd4b6a941df62a92.info
│ │ │ ├── 36/
│ │ │ │ ├── 3664a2ade19bb7848a4d2c96ac9148e3
│ │ │ │ ├── 3664a2ade19bb7848a4d2c96ac9148e3.info
│ │ │ │ ├── 368d3a0498e78014da578aa5f45e2797
│ │ │ │ └── 368d3a0498e78014da578aa5f45e2797.info
│ │ │ ├── 37/
│ │ │ │ ├── 371b6b9c8adc50745ace66a6fdf67481
│ │ │ │ ├── 371b6b9c8adc50745ace66a6fdf67481.info
│ │ │ │ ├── 373b4c78c0396334288fa5ff8e7b7350
│ │ │ │ ├── 373b4c78c0396334288fa5ff8e7b7350.info
│ │ │ │ ├── 37472f5179ca2004489ac901814cdbc3
│ │ │ │ ├── 37472f5179ca2004489ac901814cdbc3.info
│ │ │ │ ├── 376c84ea405e0f2b80562c23bb977216
│ │ │ │ ├── 376c84ea405e0f2b80562c23bb977216.info
│ │ │ │ ├── 37888acc09d9ee848bf9559f06645c45
│ │ │ │ ├── 37888acc09d9ee848bf9559f06645c45.info
│ │ │ │ ├── 37b164a494cd92a498526852ecceedef
│ │ │ │ ├── 37b164a494cd92a498526852ecceedef.info
│ │ │ │ ├── 37cea569bfefafe49a1513c4d7f0e9eb
│ │ │ │ ├── 37cea569bfefafe49a1513c4d7f0e9eb.info
│ │ │ │ ├── 37cff9f5a86ae494c8cb04423580480d
│ │ │ │ └── 37cff9f5a86ae494c8cb04423580480d.info
│ │ │ ├── 38/
│ │ │ │ ├── 380f7372e785c7d408552e2c760d269d
│ │ │ │ ├── 380f7372e785c7d408552e2c760d269d.info
│ │ │ │ ├── 383966e89d344865a36addd5d378ffd3
│ │ │ │ ├── 383966e89d344865a36addd5d378ffd3.info
│ │ │ │ ├── 38a6d0a81fcac8e4e851c921333f9803
│ │ │ │ ├── 38a6d0a81fcac8e4e851c921333f9803.info
│ │ │ │ ├── 38e3a8976f0b9c586b6dfbcef4e4066c
│ │ │ │ └── 38e3a8976f0b9c586b6dfbcef4e4066c.info
│ │ │ ├── 39/
│ │ │ │ ├── 393b15da08c88194dbbcacd6ee15a89c
│ │ │ │ ├── 393b15da08c88194dbbcacd6ee15a89c.info
│ │ │ │ ├── 39728903e57c60021f80449a8bbc0096
│ │ │ │ ├── 39728903e57c60021f80449a8bbc0096.info
│ │ │ │ ├── 39ab466162988eb4f83443f911bbf5c8
│ │ │ │ ├── 39ab466162988eb4f83443f911bbf5c8.info
│ │ │ │ ├── 39dcddcb5895328489c92214aa73e3bb
│ │ │ │ └── 39dcddcb5895328489c92214aa73e3bb.info
│ │ │ ├── 3a/
│ │ │ │ ├── 3a2d94c8977984b67984caeff9fa666e
│ │ │ │ ├── 3a2d94c8977984b67984caeff9fa666e.info
│ │ │ │ ├── 3a5038547af7c7f46bd90a015862e0b3
│ │ │ │ ├── 3a5038547af7c7f46bd90a015862e0b3.info
│ │ │ │ ├── 3a784fb721704576b3b4c3a7f3324264
│ │ │ │ ├── 3a784fb721704576b3b4c3a7f3324264.info
│ │ │ │ ├── 3ad53269c7421084ab67f804591994e0
│ │ │ │ └── 3ad53269c7421084ab67f804591994e0.info
│ │ │ ├── 3b/
│ │ │ │ ├── 3b0c53b13a1539949b3b212e049151d1
│ │ │ │ ├── 3b0c53b13a1539949b3b212e049151d1.info
│ │ │ │ ├── 3b28913f21577de429da928d6d05219f
│ │ │ │ ├── 3b28913f21577de429da928d6d05219f.info
│ │ │ │ ├── 3b4429eff9fcffb48b006e8edcc90338
│ │ │ │ ├── 3b4429eff9fcffb48b006e8edcc90338.info
│ │ │ │ ├── 3bce033ee26244e419b3bb3bba95a37d
│ │ │ │ ├── 3bce033ee26244e419b3bb3bba95a37d.info
│ │ │ │ ├── 3bda1886f58f4e0ab1139400b160c3ee
│ │ │ │ └── 3bda1886f58f4e0ab1139400b160c3ee.info
│ │ │ ├── 3c/
│ │ │ │ ├── 3c01b61b3a6887c49a15276fd38be918
│ │ │ │ ├── 3c01b61b3a6887c49a15276fd38be918.info
│ │ │ │ ├── 3c09dc5cd0a70cf40856b7d406106ee1
│ │ │ │ ├── 3c09dc5cd0a70cf40856b7d406106ee1.info
│ │ │ │ ├── 3c4ccfb0896bcf44da13e152b267aa49
│ │ │ │ ├── 3c4ccfb0896bcf44da13e152b267aa49.info
│ │ │ │ ├── 3c6c403084eacec478a1129ce20061ea
│ │ │ │ ├── 3c6c403084eacec478a1129ce20061ea.info
│ │ │ │ ├── 3c731404613599947b4b4559797a5168
│ │ │ │ ├── 3c731404613599947b4b4559797a5168.info
│ │ │ │ ├── 3c737f7a9d78541d1ab25f28f045dd32
│ │ │ │ ├── 3c737f7a9d78541d1ab25f28f045dd32.info
│ │ │ │ ├── 3cf5cb9e1ef590c48b1f919f2a7bd895
│ │ │ │ └── 3cf5cb9e1ef590c48b1f919f2a7bd895.info
│ │ │ ├── 3d/
│ │ │ │ ├── 3d42c4854f9093e409cd90c00ef26de0
│ │ │ │ ├── 3d42c4854f9093e409cd90c00ef26de0.info
│ │ │ │ ├── 3d67ccdf81bed8247ad0db2d5f47a7d1
│ │ │ │ ├── 3d67ccdf81bed8247ad0db2d5f47a7d1.info
│ │ │ │ ├── 3dde15f260b0dd1469e60d16eaa795dc
│ │ │ │ └── 3dde15f260b0dd1469e60d16eaa795dc.info
│ │ │ ├── 3e/
│ │ │ │ ├── 3e29cdd1646803545b8fb18908666ec4
│ │ │ │ ├── 3e29cdd1646803545b8fb18908666ec4.info
│ │ │ │ ├── 3e8d6af343b383544ba5743d119f4062
│ │ │ │ ├── 3e8d6af343b383544ba5743d119f4062.info
│ │ │ │ ├── 3e99141cd5dbef844a4338bb87930b89
│ │ │ │ ├── 3e99141cd5dbef844a4338bb87930b89.info
│ │ │ │ ├── 3ec7596410385054a9e0bc90377fbe63
│ │ │ │ ├── 3ec7596410385054a9e0bc90377fbe63.info
│ │ │ │ ├── 3ec9edad2de6c4df3a146b543a0fbc4c
│ │ │ │ ├── 3ec9edad2de6c4df3a146b543a0fbc4c.info
│ │ │ │ ├── 3edf75dd062cabf449c243d3c0da9464
│ │ │ │ ├── 3edf75dd062cabf449c243d3c0da9464.info
│ │ │ │ ├── 3ee40aa79cd242a5b53b0b0ca4f13f0f
│ │ │ │ └── 3ee40aa79cd242a5b53b0b0ca4f13f0f.info
│ │ │ ├── 3f/
│ │ │ │ ├── 3f8643c1f8dd449e85b548a14edbea2e
│ │ │ │ ├── 3f8643c1f8dd449e85b548a14edbea2e.info
│ │ │ │ ├── 3f8c1075884df0249b80e23a0598f9c1
│ │ │ │ ├── 3f8c1075884df0249b80e23a0598f9c1.info
│ │ │ │ ├── 3f9202a39620f51418046c7754f215f0
│ │ │ │ ├── 3f9202a39620f51418046c7754f215f0.info
│ │ │ │ ├── 3fa274f26b1574c40b949e114327022e
│ │ │ │ ├── 3fa274f26b1574c40b949e114327022e.info
│ │ │ │ ├── 3fdd83b151eb8d25c5e2f82fc39dcb04
│ │ │ │ ├── 3fdd83b151eb8d25c5e2f82fc39dcb04.info
│ │ │ │ ├── 3ff3d24ea34f9f74cb138e435f5f491e
│ │ │ │ └── 3ff3d24ea34f9f74cb138e435f5f491e.info
│ │ │ ├── 40/
│ │ │ │ ├── 4068e97704a16794ea218ba560cdc1e9
│ │ │ │ ├── 4068e97704a16794ea218ba560cdc1e9.info
│ │ │ │ ├── 408674d91d506a54aac9a7f07951c018
│ │ │ │ ├── 408674d91d506a54aac9a7f07951c018.info
│ │ │ │ ├── 40bf3cec17fa0b49fe04443c8332d638
│ │ │ │ ├── 40bf3cec17fa0b49fe04443c8332d638.info
│ │ │ │ ├── 40c83ba6a1a64cb4baac27028dd1acc1
│ │ │ │ ├── 40c83ba6a1a64cb4baac27028dd1acc1.info
│ │ │ │ ├── 40cb137d0e9816e48a4141ed13afedad
│ │ │ │ └── 40cb137d0e9816e48a4141ed13afedad.info
│ │ │ ├── 41/
│ │ │ │ ├── 411b7c7ffc0960249b35a2a247b66ff7
│ │ │ │ ├── 411b7c7ffc0960249b35a2a247b66ff7.info
│ │ │ │ ├── 41b96614b2e6494ba995ddcd252d11ae
│ │ │ │ ├── 41b96614b2e6494ba995ddcd252d11ae.info
│ │ │ │ ├── 41d60936b62cc6d4ca7fe628b22b0e40
│ │ │ │ ├── 41d60936b62cc6d4ca7fe628b22b0e40.info
│ │ │ │ ├── 41dcdc094b311464c8d6cb614548d89b
│ │ │ │ ├── 41dcdc094b311464c8d6cb614548d89b.info
│ │ │ │ ├── 41e14f40b915ca743a3dffd18ffc65ab
│ │ │ │ └── 41e14f40b915ca743a3dffd18ffc65ab.info
│ │ │ ├── 42/
│ │ │ │ ├── 423cd382a7804414d9bfdb2e7fb7bb62
│ │ │ │ ├── 423cd382a7804414d9bfdb2e7fb7bb62.info
│ │ │ │ ├── 423fe2ef878fa1140a7e1f7f9e365815
│ │ │ │ ├── 423fe2ef878fa1140a7e1f7f9e365815.info
│ │ │ │ ├── 426106349a0ff964fa4e7178c1d3a4f5
│ │ │ │ ├── 426106349a0ff964fa4e7178c1d3a4f5.info
│ │ │ │ ├── 42fe78c8fe682715a2cb531422e6ccb3
│ │ │ │ └── 42fe78c8fe682715a2cb531422e6ccb3.info
│ │ │ ├── 43/
│ │ │ │ ├── 4335a164bb763104c8805212c23d795f
│ │ │ │ ├── 4335a164bb763104c8805212c23d795f.info
│ │ │ │ ├── 438efd46088d408d8a53f707fa68d976
│ │ │ │ ├── 438efd46088d408d8a53f707fa68d976.info
│ │ │ │ ├── 439c018cf4619e94d9a92110ce0aa188
│ │ │ │ ├── 439c018cf4619e94d9a92110ce0aa188.info
│ │ │ │ ├── 43a3aec217baa9644a7cf34b5f93fed9
│ │ │ │ ├── 43a3aec217baa9644a7cf34b5f93fed9.info
│ │ │ │ ├── 43ad7f10b8cb01a4ca1b57eff53b024c
│ │ │ │ ├── 43ad7f10b8cb01a4ca1b57eff53b024c.info
│ │ │ │ ├── 43b1467da3d29ae4597a733828cdd84a
│ │ │ │ └── 43b1467da3d29ae4597a733828cdd84a.info
│ │ │ ├── 44/
│ │ │ │ ├── 4402dcee6e9969549bf5b33f11533208
│ │ │ │ ├── 4402dcee6e9969549bf5b33f11533208.info
│ │ │ │ ├── 44100f5f60f351348b9719b46d46cebe
│ │ │ │ ├── 44100f5f60f351348b9719b46d46cebe.info
│ │ │ │ ├── 44507a833d0ca8a42aaec1c3d752eb5f
│ │ │ │ ├── 44507a833d0ca8a42aaec1c3d752eb5f.info
│ │ │ │ ├── 445cdcfc747eba94288b97f5869aa2fb
│ │ │ │ ├── 445cdcfc747eba94288b97f5869aa2fb.info
│ │ │ │ ├── 44df73535c7a760458518e95391dbfdc
│ │ │ │ ├── 44df73535c7a760458518e95391dbfdc.info
│ │ │ │ ├── 44e1d646473a40178712cb2150f54cec
│ │ │ │ └── 44e1d646473a40178712cb2150f54cec.info
│ │ │ ├── 45/
│ │ │ │ ├── 4506ac79f5b274cb1b249ed7f4abfb9a
│ │ │ │ ├── 4506ac79f5b274cb1b249ed7f4abfb9a.info
│ │ │ │ ├── 452534715106564439d2240d82999d88
│ │ │ │ ├── 452534715106564439d2240d82999d88.info
│ │ │ │ ├── 45322b284be6baf43a273a61abba527d
│ │ │ │ ├── 45322b284be6baf43a273a61abba527d.info
│ │ │ │ ├── 4545bb65ccebf8040ac212d5792979b5
│ │ │ │ ├── 4545bb65ccebf8040ac212d5792979b5.info
│ │ │ │ ├── 4584db2acba045742a16942983e7fb96
│ │ │ │ ├── 4584db2acba045742a16942983e7fb96.info
│ │ │ │ ├── 4585b5feb801bdb44b0e5eafdd95a3be
│ │ │ │ ├── 4585b5feb801bdb44b0e5eafdd95a3be.info
│ │ │ │ ├── 459f6a07ee4a58b42ba2568b097c3ec4
│ │ │ │ └── 459f6a07ee4a58b42ba2568b097c3ec4.info
│ │ │ ├── 46/
│ │ │ │ ├── 46646a5562f14984690c85ee7b946bc9
│ │ │ │ ├── 46646a5562f14984690c85ee7b946bc9.info
│ │ │ │ ├── 468e1bfc887161e4196f33e942fc3199
│ │ │ │ └── 468e1bfc887161e4196f33e942fc3199.info
│ │ │ ├── 47/
│ │ │ │ ├── 470530e667ad4475786b28fa3187ce95
│ │ │ │ ├── 470530e667ad4475786b28fa3187ce95.info
│ │ │ │ ├── 470fdf3cd8176d94e8aadd242240fe3c
│ │ │ │ ├── 470fdf3cd8176d94e8aadd242240fe3c.info
│ │ │ │ ├── 4722a1362908a1843ab03a055c5c3fa0
│ │ │ │ ├── 4722a1362908a1843ab03a055c5c3fa0.info
│ │ │ │ ├── 472a6f18dd2f97c41af72271d22db869
│ │ │ │ ├── 472a6f18dd2f97c41af72271d22db869.info
│ │ │ │ ├── 475e3699f219c854f8581a9838135002
│ │ │ │ ├── 475e3699f219c854f8581a9838135002.info
│ │ │ │ ├── 47d9eecc3df4a854eaabab84609abb27
│ │ │ │ └── 47d9eecc3df4a854eaabab84609abb27.info
│ │ │ ├── 48/
│ │ │ │ ├── 48230e4e90fb4d14a9d56bddea898413
│ │ │ │ ├── 48230e4e90fb4d14a9d56bddea898413.info
│ │ │ │ ├── 4884ccc3528cb2e40a0e6f0a19a2b35b
│ │ │ │ ├── 4884ccc3528cb2e40a0e6f0a19a2b35b.info
│ │ │ │ ├── 48853ae485fa386428341ac1ea122570
│ │ │ │ ├── 48853ae485fa386428341ac1ea122570.info
│ │ │ │ ├── 48967a2d5427ac2489cc0ea61da5f1a0
│ │ │ │ ├── 48967a2d5427ac2489cc0ea61da5f1a0.info
│ │ │ │ ├── 48b10b41f58d5b49717f376cda59eeb8
│ │ │ │ ├── 48b10b41f58d5b49717f376cda59eeb8.info
│ │ │ │ ├── 48d034c499ee4697af9dd6e327110249
│ │ │ │ └── 48d034c499ee4697af9dd6e327110249.info
│ │ │ ├── 49/
│ │ │ │ ├── 495e2738ac7d88a41a158cd2e237d70b
│ │ │ │ ├── 495e2738ac7d88a41a158cd2e237d70b.info
│ │ │ │ ├── 49679f302ac6408697f6b9314a38985c
│ │ │ │ ├── 49679f302ac6408697f6b9314a38985c.info
│ │ │ │ ├── 49d4c2ab7ff0f4442af256bad7c9d57c
│ │ │ │ ├── 49d4c2ab7ff0f4442af256bad7c9d57c.info
│ │ │ │ ├── 49f1d2c7420db4444b011955726d0046
│ │ │ │ └── 49f1d2c7420db4444b011955726d0046.info
│ │ │ ├── 4a/
│ │ │ │ ├── 4a0757ee0236f39489520769ae710288
│ │ │ │ ├── 4a0757ee0236f39489520769ae710288.info
│ │ │ │ ├── 4ac5b6a65aaeb59478e3b78660e9f134
│ │ │ │ ├── 4ac5b6a65aaeb59478e3b78660e9f134.info
│ │ │ │ ├── 4acbfc0398bab674f922f693e58f4afc
│ │ │ │ ├── 4acbfc0398bab674f922f693e58f4afc.info
│ │ │ │ ├── 4ad09461bf994e54da846f726a23118e
│ │ │ │ ├── 4ad09461bf994e54da846f726a23118e.info
│ │ │ │ ├── 4ae64f3f72004807a9f919f9c27af0db
│ │ │ │ └── 4ae64f3f72004807a9f919f9c27af0db.info
│ │ │ ├── 4b/
│ │ │ │ ├── 4b518b37798c97b0f860962cbf615533
│ │ │ │ ├── 4b518b37798c97b0f860962cbf615533.info
│ │ │ │ ├── 4b57f909f22642d469a39e9628535312
│ │ │ │ ├── 4b57f909f22642d469a39e9628535312.info
│ │ │ │ ├── 4b721099b5d509d4093e516f59ad9ad6
│ │ │ │ ├── 4b721099b5d509d4093e516f59ad9ad6.info
│ │ │ │ ├── 4b8be68229770db4ea3c78ab0d854325
│ │ │ │ ├── 4b8be68229770db4ea3c78ab0d854325.info
│ │ │ │ ├── 4ba2329b63d54f0187bcaa12486b1b0f
│ │ │ │ ├── 4ba2329b63d54f0187bcaa12486b1b0f.info
│ │ │ │ ├── 4bbc17b35884fdf468e4b52ae4222882
│ │ │ │ ├── 4bbc17b35884fdf468e4b52ae4222882.info
│ │ │ │ ├── 4bd2bc28ff24d5c488844851cb785db0
│ │ │ │ └── 4bd2bc28ff24d5c488844851cb785db0.info
│ │ │ ├── 4c/
│ │ │ │ ├── 4c1821c1816c6fa44967b8ecb79ea7e4
│ │ │ │ ├── 4c1821c1816c6fa44967b8ecb79ea7e4.info
│ │ │ │ ├── 4c5eb52d37bb6714a98af73df7d9cf2c
│ │ │ │ ├── 4c5eb52d37bb6714a98af73df7d9cf2c.info
│ │ │ │ ├── 4c6f60d349ea37048af03504fc872f33
│ │ │ │ ├── 4c6f60d349ea37048af03504fc872f33.info
│ │ │ │ ├── 4cb169caa67eddf4d83b39fd0917a945
│ │ │ │ ├── 4cb169caa67eddf4d83b39fd0917a945.info
│ │ │ │ ├── 4cfe5ade9a1375e40aed87618b92bd12
│ │ │ │ └── 4cfe5ade9a1375e40aed87618b92bd12.info
│ │ │ ├── 4d/
│ │ │ │ ├── 4d2250412b81fe34abf39f246e274479
│ │ │ │ ├── 4d2250412b81fe34abf39f246e274479.info
│ │ │ │ ├── 4d31e19fd539ac54c8d9151da43683e9
│ │ │ │ ├── 4d31e19fd539ac54c8d9151da43683e9.info
│ │ │ │ ├── 4d3d51749e989f747b2674e0b4d9b3d7
│ │ │ │ ├── 4d3d51749e989f747b2674e0b4d9b3d7.info
│ │ │ │ ├── 4d616d1a494edd144b262cf6cd5e5fda
│ │ │ │ ├── 4d616d1a494edd144b262cf6cd5e5fda.info
│ │ │ │ ├── 4db13e1060deaae48b30246ed63b7c9b
│ │ │ │ ├── 4db13e1060deaae48b30246ed63b7c9b.info
│ │ │ │ ├── 4dc5887d05b52fd4fb5f52909d09ffe9
│ │ │ │ ├── 4dc5887d05b52fd4fb5f52909d09ffe9.info
│ │ │ │ ├── 4ddcdc3816429494a8bea67e973875f7
│ │ │ │ ├── 4ddcdc3816429494a8bea67e973875f7.info
│ │ │ │ ├── 4dfcd3a631f61d248b7cc0b845d40345
│ │ │ │ └── 4dfcd3a631f61d248b7cc0b845d40345.info
│ │ │ ├── 4e/
│ │ │ │ ├── 4e29b1a8efbd4b44bb3f3716e73f07ff
│ │ │ │ ├── 4e29b1a8efbd4b44bb3f3716e73f07ff.info
│ │ │ │ ├── 4e82512e02403f342aefc6129f4d04a4
│ │ │ │ └── 4e82512e02403f342aefc6129f4d04a4.info
│ │ │ ├── 4f/
│ │ │ │ ├── 4f07c137155b291429c0b3670c4defba
│ │ │ │ ├── 4f07c137155b291429c0b3670c4defba.info
│ │ │ │ ├── 4f0ca6874aa74540bb3d4fe5a0f86bcc
│ │ │ │ ├── 4f0ca6874aa74540bb3d4fe5a0f86bcc.info
│ │ │ │ ├── 4f0f9b9f3ed97ad2b9ba8f1a8e4666c2
│ │ │ │ ├── 4f0f9b9f3ed97ad2b9ba8f1a8e4666c2.info
│ │ │ │ ├── 4f10dd60657c6004587f237a7e90f8e4
│ │ │ │ ├── 4f10dd60657c6004587f237a7e90f8e4.info
│ │ │ │ ├── 4f231c4fb786f3946a6b90b886c48677
│ │ │ │ ├── 4f231c4fb786f3946a6b90b886c48677.info
│ │ │ │ ├── 4f5ed95515938d14189b094f8654d0bd
│ │ │ │ ├── 4f5ed95515938d14189b094f8654d0bd.info
│ │ │ │ ├── 4f809c227a3cfde4bbb9482dc1814105
│ │ │ │ ├── 4f809c227a3cfde4bbb9482dc1814105.info
│ │ │ │ ├── 4f90cfe4bf5cfb44f84a5b11387f2a42
│ │ │ │ ├── 4f90cfe4bf5cfb44f84a5b11387f2a42.info
│ │ │ │ ├── 4f939b9e23a0946439b812551e07ac81
│ │ │ │ ├── 4f939b9e23a0946439b812551e07ac81.info
│ │ │ │ ├── 4f9ac6e545d53f94b9f09c85b9576f36
│ │ │ │ ├── 4f9ac6e545d53f94b9f09c85b9576f36.info
│ │ │ │ ├── 4fbcc9b1f6ace8c4f8724a88dccca5f8
│ │ │ │ └── 4fbcc9b1f6ace8c4f8724a88dccca5f8.info
│ │ │ ├── 50/
│ │ │ │ ├── 505965fb9ab352b4d88882d7c8d822bf
│ │ │ │ ├── 505965fb9ab352b4d88882d7c8d822bf.info
│ │ │ │ ├── 5082cb99a8f99b84d84dd8b4c5233a9e
│ │ │ │ ├── 5082cb99a8f99b84d84dd8b4c5233a9e.info
│ │ │ │ ├── 50de529b6a28f4a7093045e08810a5df
│ │ │ │ └── 50de529b6a28f4a7093045e08810a5df.info
│ │ │ ├── 51/
│ │ │ │ ├── 511aa760b8728a940a41c29837945292
│ │ │ │ ├── 511aa760b8728a940a41c29837945292.info
│ │ │ │ ├── 5143f58107604835ab1a5efa2d8818fd
│ │ │ │ ├── 5143f58107604835ab1a5efa2d8818fd.info
│ │ │ │ ├── 5151708d47edd4344ba8e7bd469d966e
│ │ │ │ ├── 5151708d47edd4344ba8e7bd469d966e.info
│ │ │ │ ├── 51557afa652635743b264a309f0a5c60
│ │ │ │ ├── 51557afa652635743b264a309f0a5c60.info
│ │ │ │ ├── 515638b803bef8599dbd6d5c8bdaa53e
│ │ │ │ ├── 515638b803bef8599dbd6d5c8bdaa53e.info
│ │ │ │ ├── 51a7878f6c989394782db73339e90e46
│ │ │ │ └── 51a7878f6c989394782db73339e90e46.info
│ │ │ ├── 52/
│ │ │ │ ├── 526f285e8d4fb8140b4cdfeb9102d8cb
│ │ │ │ ├── 526f285e8d4fb8140b4cdfeb9102d8cb.info
│ │ │ │ ├── 529fde071171dfd4e99d45ca81a3ac7b
│ │ │ │ ├── 529fde071171dfd4e99d45ca81a3ac7b.info
│ │ │ │ ├── 52c907c81459f324497af504b84fd557
│ │ │ │ └── 52c907c81459f324497af504b84fd557.info
│ │ │ ├── 54/
│ │ │ │ ├── 5415c904c4fbc3e498253bc2866b37cd
│ │ │ │ ├── 5415c904c4fbc3e498253bc2866b37cd.info
│ │ │ │ ├── 543674eec776b1442a192c932e6cd9b3
│ │ │ │ ├── 543674eec776b1442a192c932e6cd9b3.info
│ │ │ │ ├── 5440c1153b397e14c9c7b1d6eb83b9f9
│ │ │ │ ├── 5440c1153b397e14c9c7b1d6eb83b9f9.info
│ │ │ │ ├── 5469ef0820152a4ae45d400fdc4626e4
│ │ │ │ ├── 5469ef0820152a4ae45d400fdc4626e4.info
│ │ │ │ ├── 5472815444de2ce45bf2053a4af04b9d
│ │ │ │ ├── 5472815444de2ce45bf2053a4af04b9d.info
│ │ │ │ ├── 54d21f6ece3b46479f0c328f8c6007e0
│ │ │ │ └── 54d21f6ece3b46479f0c328f8c6007e0.info
│ │ │ ├── 55/
│ │ │ │ ├── 5503f95d174761548a68a901beab13c2
│ │ │ │ ├── 5503f95d174761548a68a901beab13c2.info
│ │ │ │ ├── 559482fe33c79e44882d3a6cedc55fb5
│ │ │ │ ├── 559482fe33c79e44882d3a6cedc55fb5.info
│ │ │ │ ├── 5598b14661b5f4c43bed757f34b6d172
│ │ │ │ ├── 5598b14661b5f4c43bed757f34b6d172.info
│ │ │ │ ├── 55a8539917657b14baf6c6a051a7df22
│ │ │ │ └── 55a8539917657b14baf6c6a051a7df22.info
│ │ │ ├── 56/
│ │ │ │ ├── 5653477a5039f674da8f856adcf47172
│ │ │ │ ├── 5653477a5039f674da8f856adcf47172.info
│ │ │ │ ├── 56666c5a40171f54783dd416a44f42bf
│ │ │ │ ├── 56666c5a40171f54783dd416a44f42bf.info
│ │ │ │ ├── 5673d7b11cb9ad04eb2368068b720c17
│ │ │ │ ├── 5673d7b11cb9ad04eb2368068b720c17.info
│ │ │ │ ├── 56ba6cb160ebfc042b48224bd1a35614
│ │ │ │ └── 56ba6cb160ebfc042b48224bd1a35614.info
│ │ │ ├── 57/
│ │ │ │ ├── 57a39be2178cca94ab21e15c082e3ab6
│ │ │ │ ├── 57a39be2178cca94ab21e15c082e3ab6.info
│ │ │ │ ├── 57acdaad593b8d143b8fb5052a09d7d0
│ │ │ │ ├── 57acdaad593b8d143b8fb5052a09d7d0.info
│ │ │ │ ├── 57b0c806ba25b48aa8a6ecb3345a4a9b
│ │ │ │ ├── 57b0c806ba25b48aa8a6ecb3345a4a9b.info
│ │ │ │ ├── 57d2ac5c7d5786e499d4794973fe0d4e
│ │ │ │ ├── 57d2ac5c7d5786e499d4794973fe0d4e.info
│ │ │ │ ├── 57ff740bce4ab0c498ada374a8ca1dc0
│ │ │ │ └── 57ff740bce4ab0c498ada374a8ca1dc0.info
│ │ │ ├── 58/
│ │ │ │ ├── 58004290eb3aab44e9823d1f25c4ed73
│ │ │ │ ├── 58004290eb3aab44e9823d1f25c4ed73.info
│ │ │ │ ├── 585b70cb75dd43efbfead809c30a1731
│ │ │ │ ├── 585b70cb75dd43efbfead809c30a1731.info
│ │ │ │ ├── 58628227479c34542ac8c5193ccced84
│ │ │ │ ├── 58628227479c34542ac8c5193ccced84.info
│ │ │ │ ├── 5882d0e4313310143acb11d1a66c597f
│ │ │ │ ├── 5882d0e4313310143acb11d1a66c597f.info
│ │ │ │ ├── 589533fb2413e3e4fba7df13a6a75bf2
│ │ │ │ ├── 589533fb2413e3e4fba7df13a6a75bf2.info
│ │ │ │ ├── 58ad09607a0d62d458a78d7174665566
│ │ │ │ ├── 58ad09607a0d62d458a78d7174665566.info
│ │ │ │ ├── 58e7d991249847640b1534192721c5ea
│ │ │ │ └── 58e7d991249847640b1534192721c5ea.info
│ │ │ ├── 59/
│ │ │ │ ├── 592f7288ed0df2c4b884e2cd9baac023
│ │ │ │ ├── 592f7288ed0df2c4b884e2cd9baac023.info
│ │ │ │ ├── 59d3f5586b341a74c84c8f72144a4568
│ │ │ │ ├── 59d3f5586b341a74c84c8f72144a4568.info
│ │ │ │ ├── 59f8146938fff824cb5fd77236b75775
│ │ │ │ ├── 59f8146938fff824cb5fd77236b75775.info
│ │ │ │ ├── 59ff995fabb3bac45afa0f96f333e5dc
│ │ │ │ └── 59ff995fabb3bac45afa0f96f333e5dc.info
│ │ │ ├── 5a/
│ │ │ │ ├── 5a2e98b03511c6f43bc645238cd40857
│ │ │ │ ├── 5a2e98b03511c6f43bc645238cd40857.info
│ │ │ │ ├── 5a31542ccf4e8584ca4f60843e9d02d0
│ │ │ │ ├── 5a31542ccf4e8584ca4f60843e9d02d0.info
│ │ │ │ ├── 5a7f0d89a47f18c41b6ddf60dfae1bde
│ │ │ │ ├── 5a7f0d89a47f18c41b6ddf60dfae1bde.info
│ │ │ │ ├── 5a8c170a1ec28a148ab78df2460a3135
│ │ │ │ ├── 5a8c170a1ec28a148ab78df2460a3135.info
│ │ │ │ ├── 5aa8f57287fc17149bcd798be813180b
│ │ │ │ ├── 5aa8f57287fc17149bcd798be813180b.info
│ │ │ │ ├── 5af3322745e78aa488fca5a2090f8755
│ │ │ │ └── 5af3322745e78aa488fca5a2090f8755.info
│ │ │ ├── 5b/
│ │ │ │ ├── 5b00473355622524394628f7ec51808d
│ │ │ │ ├── 5b00473355622524394628f7ec51808d.info
│ │ │ │ ├── 5b24618beecc3bf41acadfcf2246d772
│ │ │ │ ├── 5b24618beecc3bf41acadfcf2246d772.info
│ │ │ │ ├── 5b2eeca598284bd4abb4a15c30df1576
│ │ │ │ ├── 5b2eeca598284bd4abb4a15c30df1576.info
│ │ │ │ ├── 5b3bd7a976306c9449ba84e0591e8a0f
│ │ │ │ ├── 5b3bd7a976306c9449ba84e0591e8a0f.info
│ │ │ │ ├── 5b3e90046c38f1d4dad2e0d5a79e871c
│ │ │ │ ├── 5b3e90046c38f1d4dad2e0d5a79e871c.info
│ │ │ │ ├── 5b5c6a576605b3c4aab7d27193785f27
│ │ │ │ ├── 5b5c6a576605b3c4aab7d27193785f27.info
│ │ │ │ ├── 5b60206b4b7ac1043ba19efe7ecfd5be
│ │ │ │ ├── 5b60206b4b7ac1043ba19efe7ecfd5be.info
│ │ │ │ ├── 5b6cac4a98010394791c66942a33caf4
│ │ │ │ ├── 5b6cac4a98010394791c66942a33caf4.info
│ │ │ │ ├── 5b994928117e3db418da69c821da7e19
│ │ │ │ ├── 5b994928117e3db418da69c821da7e19.info
│ │ │ │ ├── 5ba130fc1db953547a50bcf5c162a3e8
│ │ │ │ ├── 5ba130fc1db953547a50bcf5c162a3e8.info
│ │ │ │ ├── 5bcb408b7b5e4d346aeb4860ab1d9d9b
│ │ │ │ └── 5bcb408b7b5e4d346aeb4860ab1d9d9b.info
│ │ │ ├── 5c/
│ │ │ │ ├── 5c004b1354944164fb076276c289afc1
│ │ │ │ ├── 5c004b1354944164fb076276c289afc1.info
│ │ │ │ ├── 5c15bf0966eb95847a4260d830a30d30
│ │ │ │ ├── 5c15bf0966eb95847a4260d830a30d30.info
│ │ │ │ ├── 5c9c9f62af2efb948a1974650039e2db
│ │ │ │ └── 5c9c9f62af2efb948a1974650039e2db.info
│ │ │ ├── 5d/
│ │ │ │ ├── 5d4d7b45df12a6845beb7d6a034a41a2
│ │ │ │ ├── 5d4d7b45df12a6845beb7d6a034a41a2.info
│ │ │ │ ├── 5d4de3d4682a8d641907cc75e4fb950e
│ │ │ │ ├── 5d4de3d4682a8d641907cc75e4fb950e.info
│ │ │ │ ├── 5d7f0d6acfced954682a89e7002c04d9
│ │ │ │ ├── 5d7f0d6acfced954682a89e7002c04d9.info
│ │ │ │ ├── 5da62a0c1c5218c4aa16b74546a7822d
│ │ │ │ ├── 5da62a0c1c5218c4aa16b74546a7822d.info
│ │ │ │ ├── 5da77d4d078922b4c8466e9e35fb3f5e
│ │ │ │ ├── 5da77d4d078922b4c8466e9e35fb3f5e.info
│ │ │ │ ├── 5da88f348abcbd94585671a69c672781
│ │ │ │ ├── 5da88f348abcbd94585671a69c672781.info
│ │ │ │ ├── 5ddd9f7d3cce6724696a33752ab2f5a4
│ │ │ │ ├── 5ddd9f7d3cce6724696a33752ab2f5a4.info
│ │ │ │ ├── 5df3c21c5237c994db89660fbdfee07d
│ │ │ │ └── 5df3c21c5237c994db89660fbdfee07d.info
│ │ │ ├── 5e/
│ │ │ │ ├── 5e726086cd652f82087d59d67d2c24cd
│ │ │ │ ├── 5e726086cd652f82087d59d67d2c24cd.info
│ │ │ │ ├── 5e83f8baac96eaa47bdd9ca781cd2002
│ │ │ │ ├── 5e83f8baac96eaa47bdd9ca781cd2002.info
│ │ │ │ ├── 5ea6a8a826704f743b3b0ce3e9d3c9a9
│ │ │ │ ├── 5ea6a8a826704f743b3b0ce3e9d3c9a9.info
│ │ │ │ ├── 5ea9f573d4b800a49b9d83a1f61c0a88
│ │ │ │ ├── 5ea9f573d4b800a49b9d83a1f61c0a88.info
│ │ │ │ ├── 5ebb87899ca30b743bb4274bc00c02b4
│ │ │ │ ├── 5ebb87899ca30b743bb4274bc00c02b4.info
│ │ │ │ ├── 5ebeb75bd91642048bb3f6c1939fde66
│ │ │ │ ├── 5ebeb75bd91642048bb3f6c1939fde66.info
│ │ │ │ ├── 5ec95f4d5b2d1f14e9ff8682562553f9
│ │ │ │ ├── 5ec95f4d5b2d1f14e9ff8682562553f9.info
│ │ │ │ ├── 5ecec8cdc3ff99e4a9c65635d7e6b043
│ │ │ │ └── 5ecec8cdc3ff99e4a9c65635d7e6b043.info
│ │ │ ├── 5f/
│ │ │ │ ├── 5f31f28cc64c91042976555c016ffd5f
│ │ │ │ ├── 5f31f28cc64c91042976555c016ffd5f.info
│ │ │ │ ├── 5f603f10b9ec26841b2ecb6003dc1d0e
│ │ │ │ ├── 5f603f10b9ec26841b2ecb6003dc1d0e.info
│ │ │ │ ├── 5f7201a12d95ffc409449d95f23cf332
│ │ │ │ ├── 5f7201a12d95ffc409449d95f23cf332.info
│ │ │ │ ├── 5f875a14565308a40a5262d2504da705
│ │ │ │ ├── 5f875a14565308a40a5262d2504da705.info
│ │ │ │ ├── 5fc988a1d5b04aee9a5222502b201a45
│ │ │ │ └── 5fc988a1d5b04aee9a5222502b201a45.info
│ │ │ ├── 60/
│ │ │ │ ├── 600f4b74746dbf944901257f81a8af6d
│ │ │ │ ├── 600f4b74746dbf944901257f81a8af6d.info
│ │ │ │ ├── 6023f2b823fc19b4e4a90875281ff117
│ │ │ │ ├── 6023f2b823fc19b4e4a90875281ff117.info
│ │ │ │ ├── 6055be8ebefd69e48b49212b09b47b2f
│ │ │ │ └── 6055be8ebefd69e48b49212b09b47b2f.info
│ │ │ ├── 61/
│ │ │ │ ├── 6124ad3c57404c3429a93ca37df030e9
│ │ │ │ ├── 6124ad3c57404c3429a93ca37df030e9.info
│ │ │ │ ├── 61a20120cddc53849bbc10fc805ffe3e
│ │ │ │ ├── 61a20120cddc53849bbc10fc805ffe3e.info
│ │ │ │ ├── 61d491d99e9292c4a81d7d01a74781ea
│ │ │ │ ├── 61d491d99e9292c4a81d7d01a74781ea.info
│ │ │ │ ├── 61e236e8570a95e4eb754fb291e102e0
│ │ │ │ └── 61e236e8570a95e4eb754fb291e102e0.info
│ │ │ ├── 62/
│ │ │ │ ├── 621a76c0c3927aa45aba7d2ad0c8e1c8
│ │ │ │ ├── 621a76c0c3927aa45aba7d2ad0c8e1c8.info
│ │ │ │ ├── 621fd19bcb071b64aa1d68f0271aa780
│ │ │ │ ├── 621fd19bcb071b64aa1d68f0271aa780.info
│ │ │ │ ├── 623c79a1e113b4941afdbfc88d19e8fd
│ │ │ │ └── 623c79a1e113b4941afdbfc88d19e8fd.info
│ │ │ ├── 63/
│ │ │ │ ├── 63118a0c9ee42ac46b7f30e793177a76
│ │ │ │ ├── 63118a0c9ee42ac46b7f30e793177a76.info
│ │ │ │ ├── 63572993f2104574099a48392460b211
│ │ │ │ ├── 63572993f2104574099a48392460b211.info
│ │ │ │ ├── 6366ee97f6b541449155028b9487355a
│ │ │ │ ├── 6366ee97f6b541449155028b9487355a.info
│ │ │ │ ├── 63cd91d36b6b0e4479ef6e61ad4f6f9a
│ │ │ │ ├── 63cd91d36b6b0e4479ef6e61ad4f6f9a.info
│ │ │ │ ├── 63f2caa33e79582448112b2e286d576d
│ │ │ │ └── 63f2caa33e79582448112b2e286d576d.info
│ │ │ ├── 64/
│ │ │ │ ├── 640125adae259fe47a36be84e510a46e
│ │ │ │ ├── 640125adae259fe47a36be84e510a46e.info
│ │ │ │ ├── 645165c8169474bfbbeb8fb0bcfd26f5
│ │ │ │ ├── 645165c8169474bfbbeb8fb0bcfd26f5.info
│ │ │ │ ├── 64689f8b25eadac4da519e96f514b653
│ │ │ │ ├── 64689f8b25eadac4da519e96f514b653.info
│ │ │ │ ├── 647e1bbd3809b30459d946b4a1ddf22b
│ │ │ │ ├── 647e1bbd3809b30459d946b4a1ddf22b.info
│ │ │ │ ├── 64b9fad609434c489c32b1cdf2004a1c
│ │ │ │ └── 64b9fad609434c489c32b1cdf2004a1c.info
│ │ │ ├── 65/
│ │ │ │ ├── 6546d7765b4165b40850b3667f981c26
│ │ │ │ ├── 6546d7765b4165b40850b3667f981c26.info
│ │ │ │ ├── 656e461844099ae43a609ff6109b0877
│ │ │ │ ├── 656e461844099ae43a609ff6109b0877.info
│ │ │ │ ├── 65701ebe8bada6b4785e9c7afe7f5bee
│ │ │ │ ├── 65701ebe8bada6b4785e9c7afe7f5bee.info
│ │ │ │ ├── 658c1fb149e7498aa072b0c0f3bf13f0
│ │ │ │ ├── 658c1fb149e7498aa072b0c0f3bf13f0.info
│ │ │ │ ├── 65b045927b3948f43afb31234936c6aa
│ │ │ │ ├── 65b045927b3948f43afb31234936c6aa.info
│ │ │ │ ├── 65f3a4c67e4927a478b7036bae1da0e3
│ │ │ │ ├── 65f3a4c67e4927a478b7036bae1da0e3.info
│ │ │ │ ├── 65fb6da362a78334ab360a125cfafdaf
│ │ │ │ └── 65fb6da362a78334ab360a125cfafdaf.info
│ │ │ ├── 66/
│ │ │ │ ├── 661266b8a30572e4fb9365bba3866896
│ │ │ │ ├── 661266b8a30572e4fb9365bba3866896.info
│ │ │ │ ├── 667a99762bdf5484fbaa02573fd396e2
│ │ │ │ ├── 667a99762bdf5484fbaa02573fd396e2.info
│ │ │ │ ├── 667c6ad86a0b7a548aaa5c287f2c2861
│ │ │ │ ├── 667c6ad86a0b7a548aaa5c287f2c2861.info
│ │ │ │ ├── 66b2b8fd1d9b4bc4c96b07335ad822f3
│ │ │ │ ├── 66b2b8fd1d9b4bc4c96b07335ad822f3.info
│ │ │ │ ├── 66c95bb3c74257f41bae2622511dc02d
│ │ │ │ └── 66c95bb3c74257f41bae2622511dc02d.info
│ │ │ ├── 67/
│ │ │ │ ├── 6773203120b27984d9a8572fa3564f03
│ │ │ │ ├── 6773203120b27984d9a8572fa3564f03.info
│ │ │ │ ├── 67db9e8f0e2ae9c40bc1e2b64352a6b4
│ │ │ │ ├── 67db9e8f0e2ae9c40bc1e2b64352a6b4.info
│ │ │ │ ├── 67e3583b91179094094c6a188b232262
│ │ │ │ ├── 67e3583b91179094094c6a188b232262.info
│ │ │ │ ├── 67e9c6cf60c57a54f9f4db1bc33fd2e3
│ │ │ │ ├── 67e9c6cf60c57a54f9f4db1bc33fd2e3.info
│ │ │ │ ├── 67ee43b2f6148de40861b289b0e00591
│ │ │ │ └── 67ee43b2f6148de40861b289b0e00591.info
│ │ │ ├── 68/
│ │ │ │ ├── 685f63932bebd0c4db02ee14845191e2
│ │ │ │ ├── 685f63932bebd0c4db02ee14845191e2.info
│ │ │ │ ├── 68993ba529ae04440916cb7c23bf3279
│ │ │ │ ├── 68993ba529ae04440916cb7c23bf3279.info
│ │ │ │ ├── 68a48d1900320ed458e118415857faf6
│ │ │ │ ├── 68a48d1900320ed458e118415857faf6.info
│ │ │ │ ├── 68cb547af0187634aad591a09c01cd5b
│ │ │ │ ├── 68cb547af0187634aad591a09c01cd5b.info
│ │ │ │ ├── 68e5dc8bfd5d72647a93b7f2e1da831a
│ │ │ │ ├── 68e5dc8bfd5d72647a93b7f2e1da831a.info
│ │ │ │ ├── 68eedd4e5b33b37429c02c4add0036fe
│ │ │ │ └── 68eedd4e5b33b37429c02c4add0036fe.info
│ │ │ ├── 69/
│ │ │ │ ├── 6901fab4d5157ac48b9f263730387c03
│ │ │ │ ├── 6901fab4d5157ac48b9f263730387c03.info
│ │ │ │ ├── 691475c57a824010be0c6f474caeb7e1
│ │ │ │ ├── 691475c57a824010be0c6f474caeb7e1.info
│ │ │ │ ├── 691db8cb70c4426a8ae718465c21345f
│ │ │ │ ├── 691db8cb70c4426a8ae718465c21345f.info
│ │ │ │ ├── 6965880f76f40194593cb53a88f74005
│ │ │ │ ├── 6965880f76f40194593cb53a88f74005.info
│ │ │ │ ├── 698b660e9477f4f16abad03ec00ce38c
│ │ │ │ ├── 698b660e9477f4f16abad03ec00ce38c.info
│ │ │ │ ├── 69ae55f76840b2849ba56cfb53a17df0
│ │ │ │ ├── 69ae55f76840b2849ba56cfb53a17df0.info
│ │ │ │ ├── 69e3979b7029e8a4da2d96b714ba5c3a
│ │ │ │ └── 69e3979b7029e8a4da2d96b714ba5c3a.info
│ │ │ ├── 6a/
│ │ │ │ ├── 6a022d21eb285c143ae29fc2aca21e11
│ │ │ │ ├── 6a022d21eb285c143ae29fc2aca21e11.info
│ │ │ │ ├── 6a44d0f20e3f6cd45881a44134574169
│ │ │ │ ├── 6a44d0f20e3f6cd45881a44134574169.info
│ │ │ │ ├── 6a4f0c91a28ece04198b200dd55145d0
│ │ │ │ ├── 6a4f0c91a28ece04198b200dd55145d0.info
│ │ │ │ ├── 6a981cd1456bec84b86e1c66773f57f5
│ │ │ │ ├── 6a981cd1456bec84b86e1c66773f57f5.info
│ │ │ │ ├── 6ace62d30f494c948b71d5594afce11d
│ │ │ │ ├── 6ace62d30f494c948b71d5594afce11d.info
│ │ │ │ ├── 6ad632cbcc87f634d9b86006cdffdaf5
│ │ │ │ ├── 6ad632cbcc87f634d9b86006cdffdaf5.info
│ │ │ │ ├── 6afb166a156df2d20433d981f4bb2832
│ │ │ │ └── 6afb166a156df2d20433d981f4bb2832.info
│ │ │ ├── 6b/
│ │ │ │ ├── 6b01141ed8f74d198965c86f25eb7040
│ │ │ │ ├── 6b01141ed8f74d198965c86f25eb7040.info
│ │ │ │ ├── 6b152d671c864bf41bbcc096f5a7567c
│ │ │ │ ├── 6b152d671c864bf41bbcc096f5a7567c.info
│ │ │ │ ├── 6b1ae1e78552c459d9ce27048ff51c7f
│ │ │ │ ├── 6b1ae1e78552c459d9ce27048ff51c7f.info
│ │ │ │ ├── 6b259c4003a802847b9ada90744e34c5
│ │ │ │ ├── 6b259c4003a802847b9ada90744e34c5.info
│ │ │ │ ├── 6b32b6725087a0d4bb1670818d26996e
│ │ │ │ ├── 6b32b6725087a0d4bb1670818d26996e.info
│ │ │ │ ├── 6b72875690e0f7343911e06af3145bd5
│ │ │ │ ├── 6b72875690e0f7343911e06af3145bd5.info
│ │ │ │ ├── 6ba7805325c426c43b8e85b5be4eae36
│ │ │ │ ├── 6ba7805325c426c43b8e85b5be4eae36.info
│ │ │ │ ├── 6bfec54ce89b0b642a65d44def023b99
│ │ │ │ └── 6bfec54ce89b0b642a65d44def023b99.info
│ │ │ ├── 6c/
│ │ │ │ ├── 6c3d52cc5c46d7946a920e21901ff38e
│ │ │ │ ├── 6c3d52cc5c46d7946a920e21901ff38e.info
│ │ │ │ ├── 6c61ba0c209bcc74f83e3650039ebdf9
│ │ │ │ ├── 6c61ba0c209bcc74f83e3650039ebdf9.info
│ │ │ │ ├── 6ca745fb561cbf640b6e603f95662fa0
│ │ │ │ ├── 6ca745fb561cbf640b6e603f95662fa0.info
│ │ │ │ ├── 6cccd50ebf7384242bda4d7bcb282ebf
│ │ │ │ └── 6cccd50ebf7384242bda4d7bcb282ebf.info
│ │ │ ├── 6d/
│ │ │ │ ├── 6d16f2e78a356d34c9a32108929de932
│ │ │ │ ├── 6d16f2e78a356d34c9a32108929de932.info
│ │ │ │ ├── 6d437b997e074079b4b2f6e395394f4b
│ │ │ │ ├── 6d437b997e074079b4b2f6e395394f4b.info
│ │ │ │ ├── 6d468ee3657be7a43a2ef2178ec14239
│ │ │ │ ├── 6d468ee3657be7a43a2ef2178ec14239.info
│ │ │ │ ├── 6d56244f8c39a851975d3c0bd432c66f
│ │ │ │ ├── 6d56244f8c39a851975d3c0bd432c66f.info
│ │ │ │ ├── 6d5833966abeadb429de247e4316eef4
│ │ │ │ ├── 6d5833966abeadb429de247e4316eef4.info
│ │ │ │ ├── 6d6f82a762acb4417b895d3babc790f9
│ │ │ │ ├── 6d6f82a762acb4417b895d3babc790f9.info
│ │ │ │ ├── 6d768b1bb52e2c64ba818933dbdd8452
│ │ │ │ ├── 6d768b1bb52e2c64ba818933dbdd8452.info
│ │ │ │ ├── 6d9df2bc198c417db00037803568139c
│ │ │ │ ├── 6d9df2bc198c417db00037803568139c.info
│ │ │ │ ├── 6dbcf248c987476181a37f01a1814975
│ │ │ │ ├── 6dbcf248c987476181a37f01a1814975.info
│ │ │ │ ├── 6de79ae237e51554da96fd28f68b66a6
│ │ │ │ └── 6de79ae237e51554da96fd28f68b66a6.info
│ │ │ ├── 6e/
│ │ │ │ ├── 6e0e62db88935c74288c97c907243bd0
│ │ │ │ ├── 6e0e62db88935c74288c97c907243bd0.info
│ │ │ │ ├── 6e1c8b97ec8aa0464e92506ffe099558
│ │ │ │ ├── 6e1c8b97ec8aa0464e92506ffe099558.info
│ │ │ │ ├── 6e7c80eefe2def5459e0b486b3ab96e2
│ │ │ │ ├── 6e7c80eefe2def5459e0b486b3ab96e2.info
│ │ │ │ ├── 6ecb9e17e44feb84cb80451fa27b09fe
│ │ │ │ └── 6ecb9e17e44feb84cb80451fa27b09fe.info
│ │ │ ├── 6f/
│ │ │ │ ├── 6f1c7ebc8ac78cb951be24c238cbd3ba
│ │ │ │ ├── 6f1c7ebc8ac78cb951be24c238cbd3ba.info
│ │ │ │ ├── 6f25fb081e85cb743b272c2f7fbc2f6b
│ │ │ │ ├── 6f25fb081e85cb743b272c2f7fbc2f6b.info
│ │ │ │ ├── 6f515f8ecd3b6a546b90abaae2553f99
│ │ │ │ ├── 6f515f8ecd3b6a546b90abaae2553f99.info
│ │ │ │ ├── 6f516f1ec21a54a59a92bf99db2d9535
│ │ │ │ ├── 6f516f1ec21a54a59a92bf99db2d9535.info
│ │ │ │ ├── 6f72aa6eab9392548b9e9d92eb6b2ef8
│ │ │ │ ├── 6f72aa6eab9392548b9e9d92eb6b2ef8.info
│ │ │ │ ├── 6f768c3714a34a549960ea903fbadcc2
│ │ │ │ ├── 6f768c3714a34a549960ea903fbadcc2.info
│ │ │ │ ├── 6fdea2af3daa40fe8f88e5e9cfc17abb
│ │ │ │ └── 6fdea2af3daa40fe8f88e5e9cfc17abb.info
│ │ │ ├── 70/
│ │ │ │ ├── 7004c8cc6d477784e8d85fbad56de5f8
│ │ │ │ ├── 7004c8cc6d477784e8d85fbad56de5f8.info
│ │ │ │ ├── 7043e9a330ac2d84a80a965ada4589ad
│ │ │ │ ├── 7043e9a330ac2d84a80a965ada4589ad.info
│ │ │ │ ├── 7065397ff8184621aa3ca4f854491259
│ │ │ │ ├── 7065397ff8184621aa3ca4f854491259.info
│ │ │ │ ├── 7071adaea60f6124d9ab426b002d5afa
│ │ │ │ ├── 7071adaea60f6124d9ab426b002d5afa.info
│ │ │ │ ├── 70a190a1b304d1e43995af35d09231d6
│ │ │ │ ├── 70a190a1b304d1e43995af35d09231d6.info
│ │ │ │ ├── 70b265ed18dc14041bedc0263d4578ef
│ │ │ │ ├── 70b265ed18dc14041bedc0263d4578ef.info
│ │ │ │ ├── 70d4d75a2877243758b0750cbc75b6eb
│ │ │ │ ├── 70d4d75a2877243758b0750cbc75b6eb.info
│ │ │ │ ├── 70eae1897c9d308448eb3bb0b5be9f58
│ │ │ │ ├── 70eae1897c9d308448eb3bb0b5be9f58.info
│ │ │ │ ├── 70f955bbb437a494888ef54d97abb474
│ │ │ │ └── 70f955bbb437a494888ef54d97abb474.info
│ │ │ ├── 71/
│ │ │ │ ├── 7116e04a377b195458798657c617e324
│ │ │ │ ├── 7116e04a377b195458798657c617e324.info
│ │ │ │ ├── 718966f960cb50643986195e5fe953ca
│ │ │ │ ├── 718966f960cb50643986195e5fe953ca.info
│ │ │ │ ├── 71bb46b59a9a7a346bbab1e185c723df
│ │ │ │ ├── 71bb46b59a9a7a346bbab1e185c723df.info
│ │ │ │ ├── 71c1514a6bd24e1e882cebbe1904ce04
│ │ │ │ └── 71c1514a6bd24e1e882cebbe1904ce04.info
│ │ │ ├── 72/
│ │ │ │ ├── 7241c7dc25374fc1a6ab3ef9da79c363
│ │ │ │ ├── 7241c7dc25374fc1a6ab3ef9da79c363.info
│ │ │ │ ├── 725600e98a048ad46aacb96a8bb155cd
│ │ │ │ ├── 725600e98a048ad46aacb96a8bb155cd.info
│ │ │ │ ├── 728d2c19676ea3743aaa087aa28c4a16
│ │ │ │ └── 728d2c19676ea3743aaa087aa28c4a16.info
│ │ │ ├── 73/
│ │ │ │ ├── 7341c0cd0aad4994e8fa461cb443aa7d
│ │ │ │ ├── 7341c0cd0aad4994e8fa461cb443aa7d.info
│ │ │ │ ├── 735d54f21944f834f931716514c87a84
│ │ │ │ ├── 735d54f21944f834f931716514c87a84.info
│ │ │ │ ├── 73deb9b8722aa284eab27c4dc90956c6
│ │ │ │ └── 73deb9b8722aa284eab27c4dc90956c6.info
│ │ │ ├── 74/
│ │ │ │ ├── 740b3785866edda4b8d1e1a05570a5f8
│ │ │ │ ├── 740b3785866edda4b8d1e1a05570a5f8.info
│ │ │ │ ├── 742654cad2425334696ba6ed4495cfef
│ │ │ │ ├── 742654cad2425334696ba6ed4495cfef.info
│ │ │ │ ├── 74374298effb78d47b85450f7f724cef
│ │ │ │ ├── 74374298effb78d47b85450f7f724cef.info
│ │ │ │ ├── 743879b4db4bc1a4b829aae4386f4acf
│ │ │ │ ├── 743879b4db4bc1a4b829aae4386f4acf.info
│ │ │ │ ├── 7496af95dfe67cf429ac65edaaf99106
│ │ │ │ └── 7496af95dfe67cf429ac65edaaf99106.info
│ │ │ ├── 75/
│ │ │ │ ├── 750aad009559b814dbc27001341fc1c3
│ │ │ │ ├── 750aad009559b814dbc27001341fc1c3.info
│ │ │ │ ├── 75df57ccb1e44c64085399277405e1ca
│ │ │ │ ├── 75df57ccb1e44c64085399277405e1ca.info
│ │ │ │ ├── 75e7d7a9a57458841a85fe42d9c9141f
│ │ │ │ └── 75e7d7a9a57458841a85fe42d9c9141f.info
│ │ │ ├── 76/
│ │ │ │ ├── 7602252bdb82b8d45ae3483c3a00d3e1
│ │ │ │ ├── 7602252bdb82b8d45ae3483c3a00d3e1.info
│ │ │ │ ├── 7693972390a4ed841a986c0c452c1058
│ │ │ │ ├── 7693972390a4ed841a986c0c452c1058.info
│ │ │ │ ├── 769f6f5dd7c8f2d4c9ab1caba0bd2628
│ │ │ │ ├── 769f6f5dd7c8f2d4c9ab1caba0bd2628.info
│ │ │ │ ├── 76b6bf32a6fcf934aab8c529bddccc81
│ │ │ │ ├── 76b6bf32a6fcf934aab8c529bddccc81.info
│ │ │ │ ├── 76c392e42b5098c458856cdf6ecaaaa1
│ │ │ │ ├── 76c392e42b5098c458856cdf6ecaaaa1.info
│ │ │ │ ├── 76c82729ad712f14bae1a8a279c52ac3
│ │ │ │ └── 76c82729ad712f14bae1a8a279c52ac3.info
│ │ │ ├── 77/
│ │ │ │ ├── 77476292f9fa4905a787e6417853846b
│ │ │ │ ├── 77476292f9fa4905a787e6417853846b.info
│ │ │ │ ├── 7748a1d3701ac824ea7f366ba0388f5d
│ │ │ │ ├── 7748a1d3701ac824ea7f366ba0388f5d.info
│ │ │ │ ├── 77f432980bb30084299a138e15c6f571
│ │ │ │ └── 77f432980bb30084299a138e15c6f571.info
│ │ │ ├── 78/
│ │ │ │ ├── 78213b1ce4da5e6438195d405c9da0f5
│ │ │ │ ├── 78213b1ce4da5e6438195d405c9da0f5.info
│ │ │ │ ├── 782c49e6e68074dc7ba12c95537825ce
│ │ │ │ ├── 782c49e6e68074dc7ba12c95537825ce.info
│ │ │ │ ├── 782de34c17796430ba8d0ceddb60944e
│ │ │ │ ├── 782de34c17796430ba8d0ceddb60944e.info
│ │ │ │ ├── 7883cd788d83a71478342eef943e8150
│ │ │ │ ├── 7883cd788d83a71478342eef943e8150.info
│ │ │ │ ├── 7895e41fc42ee304cbd33be552917a5a
│ │ │ │ └── 7895e41fc42ee304cbd33be552917a5a.info
│ │ │ ├── 79/
│ │ │ │ ├── 794f3951c48395848920fdb593a2ae38
│ │ │ │ ├── 794f3951c48395848920fdb593a2ae38.info
│ │ │ │ ├── 798968d841703b54bb9d08b1da6bc52f
│ │ │ │ ├── 798968d841703b54bb9d08b1da6bc52f.info
│ │ │ │ ├── 79ced2556f0af814a840b86232613ff1
│ │ │ │ ├── 79ced2556f0af814a840b86232613ff1.info
│ │ │ │ ├── 79ff392d1bde4ad78a3836a4a480392d
│ │ │ │ └── 79ff392d1bde4ad78a3836a4a480392d.info
│ │ │ ├── 7a/
│ │ │ │ ├── 7a24ec4b5c3e08e47bf50c8298c1fe0d
│ │ │ │ ├── 7a24ec4b5c3e08e47bf50c8298c1fe0d.info
│ │ │ │ ├── 7a892c920c8ad2848b469ec9579c5219
│ │ │ │ ├── 7a892c920c8ad2848b469ec9579c5219.info
│ │ │ │ ├── 7a98125502f715b4b83cfb77b434e436
│ │ │ │ ├── 7a98125502f715b4b83cfb77b434e436.info
│ │ │ │ ├── 7af6ac3e6b51b8d4aab04adc85b8de2f
│ │ │ │ └── 7af6ac3e6b51b8d4aab04adc85b8de2f.info
│ │ │ ├── 7b/
│ │ │ │ ├── 7b743370ac3e4ec2a1668f5455a8ef8a
│ │ │ │ ├── 7b743370ac3e4ec2a1668f5455a8ef8a.info
│ │ │ │ ├── 7bd96d76711152648a736c4d28d865f2
│ │ │ │ ├── 7bd96d76711152648a736c4d28d865f2.info
│ │ │ │ ├── 7be84a49bb2cd7e4a9ed097ba22794d0
│ │ │ │ └── 7be84a49bb2cd7e4a9ed097ba22794d0.info
│ │ │ ├── 7c/
│ │ │ │ ├── 7c04f0dfa9243c04681a55d90d3ff3fc
│ │ │ │ ├── 7c04f0dfa9243c04681a55d90d3ff3fc.info
│ │ │ │ ├── 7c6295db74da28645bf49db58b7c9c65
│ │ │ │ ├── 7c6295db74da28645bf49db58b7c9c65.info
│ │ │ │ ├── 7cfaad4e53832d94c9421d2dd1ad82f7
│ │ │ │ └── 7cfaad4e53832d94c9421d2dd1ad82f7.info
│ │ │ ├── 7d/
│ │ │ │ ├── 7d36034e63ad8254b9b2f55280fcc040
│ │ │ │ ├── 7d36034e63ad8254b9b2f55280fcc040.info
│ │ │ │ ├── 7d3aa106cfe752241997b3759bf80163
│ │ │ │ ├── 7d3aa106cfe752241997b3759bf80163.info
│ │ │ │ ├── 7d7bd4bcc815cfb44b9990c29dabdb9f
│ │ │ │ ├── 7d7bd4bcc815cfb44b9990c29dabdb9f.info
│ │ │ │ ├── 7db44d889e0cbbf4281132a752f96ce1
│ │ │ │ └── 7db44d889e0cbbf4281132a752f96ce1.info
│ │ │ ├── 7e/
│ │ │ │ ├── 7e609b27ad2caa14c83dd9951b6c13c6
│ │ │ │ ├── 7e609b27ad2caa14c83dd9951b6c13c6.info
│ │ │ │ ├── 7ef6801a8b664544aa9f2ab1bc1f8b60
│ │ │ │ ├── 7ef6801a8b664544aa9f2ab1bc1f8b60.info
│ │ │ │ ├── 7ef8348b8ea834d7e1bc214b07f7fb87
│ │ │ │ └── 7ef8348b8ea834d7e1bc214b07f7fb87.info
│ │ │ ├── 7f/
│ │ │ │ ├── 7f27709c942d91541be1fd6aa5cb3d78
│ │ │ │ ├── 7f27709c942d91541be1fd6aa5cb3d78.info
│ │ │ │ ├── 7f65567c9026afb4db5de3355accc636
│ │ │ │ ├── 7f65567c9026afb4db5de3355accc636.info
│ │ │ │ ├── 7fc2147e42d71644aad0eaf9a3526249
│ │ │ │ └── 7fc2147e42d71644aad0eaf9a3526249.info
│ │ │ ├── 80/
│ │ │ │ ├── 803abab0f7e17044db56f8760186dbd1
│ │ │ │ ├── 803abab0f7e17044db56f8760186dbd1.info
│ │ │ │ ├── 806de5a9211448c8b65c8435ebb48dd4
│ │ │ │ ├── 806de5a9211448c8b65c8435ebb48dd4.info
│ │ │ │ ├── 80ae83fdf1fb2c649bccb8c293b94556
│ │ │ │ ├── 80ae83fdf1fb2c649bccb8c293b94556.info
│ │ │ │ ├── 80b10e1c58509a449a3c5aecc07d4455
│ │ │ │ ├── 80b10e1c58509a449a3c5aecc07d4455.info
│ │ │ │ ├── 80beef77cb19e713c7c2d481b65ed485
│ │ │ │ └── 80beef77cb19e713c7c2d481b65ed485.info
│ │ │ ├── 81/
│ │ │ │ ├── 811d999912a5f3f459a637aad029fbc8
│ │ │ │ ├── 811d999912a5f3f459a637aad029fbc8.info
│ │ │ │ ├── 812aaaefaab404448a3e4db49dfa5206
│ │ │ │ ├── 812aaaefaab404448a3e4db49dfa5206.info
│ │ │ │ ├── 8143d3a8390f2c64685e3bc272bd9e90
│ │ │ │ ├── 8143d3a8390f2c64685e3bc272bd9e90.info
│ │ │ │ ├── 81a142c61a4e14d46bb21b02548ad24d
│ │ │ │ ├── 81a142c61a4e14d46bb21b02548ad24d.info
│ │ │ │ ├── 81ed8c76d2bc4a4c95d092c98af4e58f
│ │ │ │ └── 81ed8c76d2bc4a4c95d092c98af4e58f.info
│ │ │ ├── 82/
│ │ │ │ ├── 821f5482c5a3f4389885f4432433f56f
│ │ │ │ ├── 821f5482c5a3f4389885f4432433f56f.info
│ │ │ │ ├── 826b6becaef90fb458eedebe4c2f3664
│ │ │ │ ├── 826b6becaef90fb458eedebe4c2f3664.info
│ │ │ │ ├── 828075bc53f2de84982a943870529b7b
│ │ │ │ ├── 828075bc53f2de84982a943870529b7b.info
│ │ │ │ ├── 82a8ce43816925d4b971951094cb755c
│ │ │ │ ├── 82a8ce43816925d4b971951094cb755c.info
│ │ │ │ ├── 82bf3f737dec0be43a60891958a8da87
│ │ │ │ ├── 82bf3f737dec0be43a60891958a8da87.info
│ │ │ │ ├── 82cd92ffc29383742932b27ca414c80f
│ │ │ │ └── 82cd92ffc29383742932b27ca414c80f.info
│ │ │ ├── 83/
│ │ │ │ ├── 83088ba2132cbc940b7ca0c679a02b0d
│ │ │ │ ├── 83088ba2132cbc940b7ca0c679a02b0d.info
│ │ │ │ ├── 8313ea704470a264295ec9e09aec6ebc
│ │ │ │ ├── 8313ea704470a264295ec9e09aec6ebc.info
│ │ │ │ ├── 83154bbefa9fb00469e42ff5014345a2
│ │ │ │ ├── 83154bbefa9fb00469e42ff5014345a2.info
│ │ │ │ ├── 833143c443f979e44ae0b8ed899e3b59
│ │ │ │ ├── 833143c443f979e44ae0b8ed899e3b59.info
│ │ │ │ ├── 8349e42a2b30c7a4abd8678c203428ba
│ │ │ │ ├── 8349e42a2b30c7a4abd8678c203428ba.info
│ │ │ │ ├── 83eda34b7da01e04aa894f268158b0c0
│ │ │ │ └── 83eda34b7da01e04aa894f268158b0c0.info
│ │ │ ├── 84/
│ │ │ │ ├── 8413ca0e506d42a1a4bd9769f204ad16
│ │ │ │ ├── 8413ca0e506d42a1a4bd9769f204ad16.info
│ │ │ │ ├── 844873d1afe1c3142ab922324950e1dd
│ │ │ │ ├── 844873d1afe1c3142ab922324950e1dd.info
│ │ │ │ ├── 84a92b25f83d49b9bc132d206b370281
│ │ │ │ ├── 84a92b25f83d49b9bc132d206b370281.info
│ │ │ │ ├── 84b5362754a9d934ba259398b757d0be
│ │ │ │ ├── 84b5362754a9d934ba259398b757d0be.info
│ │ │ │ ├── 84d86c98104d94063ad70bc591530f65
│ │ │ │ └── 84d86c98104d94063ad70bc591530f65.info
│ │ │ ├── 85/
│ │ │ │ ├── 850af9f3bf6d14143baf2ecfbf25db52
│ │ │ │ ├── 850af9f3bf6d14143baf2ecfbf25db52.info
│ │ │ │ ├── 850c54ee0b9e1aa740b1c67792eb1f26
│ │ │ │ ├── 850c54ee0b9e1aa740b1c67792eb1f26.info
│ │ │ │ ├── 853edc343b78a7c4c81cbb3851d48c0a
│ │ │ │ ├── 853edc343b78a7c4c81cbb3851d48c0a.info
│ │ │ │ ├── 8573c56c34e616248a3881b2c56280ef
│ │ │ │ ├── 8573c56c34e616248a3881b2c56280ef.info
│ │ │ │ ├── 85dd7af03f02aea4aae13a3945e3b313
│ │ │ │ ├── 85dd7af03f02aea4aae13a3945e3b313.info
│ │ │ │ ├── 85f3c3a3c2623cd4da1661b0479e2ef2
│ │ │ │ └── 85f3c3a3c2623cd4da1661b0479e2ef2.info
│ │ │ ├── 86/
│ │ │ │ ├── 8620e97e7e9859049934889a52248435
│ │ │ │ ├── 8620e97e7e9859049934889a52248435.info
│ │ │ │ ├── 8645aa9c3c74fb34ba9499e14fb332b5
│ │ │ │ ├── 8645aa9c3c74fb34ba9499e14fb332b5.info
│ │ │ │ ├── 86710e43de46f6f4bac7c8e50813a599
│ │ │ │ ├── 86710e43de46f6f4bac7c8e50813a599.info
│ │ │ │ ├── 86cacab070a0a46e99aedb596a32c4fe
│ │ │ │ └── 86cacab070a0a46e99aedb596a32c4fe.info
│ │ │ ├── 87/
│ │ │ │ ├── 871f8edd56e84b8fb295b10cc3c78f36
│ │ │ │ ├── 871f8edd56e84b8fb295b10cc3c78f36.info
│ │ │ │ ├── 872e4b92d663b05489fe34966680c29d
│ │ │ │ ├── 872e4b92d663b05489fe34966680c29d.info
│ │ │ │ ├── 87357ff0dec4ef348a295235835c6ee4
│ │ │ │ ├── 87357ff0dec4ef348a295235835c6ee4.info
│ │ │ │ ├── 874c0713cdc44f549b0161750b48d2c2
│ │ │ │ ├── 874c0713cdc44f549b0161750b48d2c2.info
│ │ │ │ ├── 874e40a588dbb1e48bc128d686337d4e
│ │ │ │ ├── 874e40a588dbb1e48bc128d686337d4e.info
│ │ │ │ ├── 8795e0dd0041d2f44b1fe1959fc9fb53
│ │ │ │ ├── 8795e0dd0041d2f44b1fe1959fc9fb53.info
│ │ │ │ ├── 87a1ae9719ec25d44a4dbec20ec0f892
│ │ │ │ ├── 87a1ae9719ec25d44a4dbec20ec0f892.info
│ │ │ │ ├── 87ab1bebe13f41f89d5427e7d2c34d58
│ │ │ │ ├── 87ab1bebe13f41f89d5427e7d2c34d58.info
│ │ │ │ ├── 87d720faa37005c08600090e04d8c739
│ │ │ │ └── 87d720faa37005c08600090e04d8c739.info
│ │ │ ├── 88/
│ │ │ │ ├── 882f1a4147a284f028899b9c018e63eb
│ │ │ │ ├── 882f1a4147a284f028899b9c018e63eb.info
│ │ │ │ ├── 88338eb35defad644a48718188e8f219
│ │ │ │ ├── 88338eb35defad644a48718188e8f219.info
│ │ │ │ ├── 88ed537c17c34f339121fe9a7d6d7a0e
│ │ │ │ └── 88ed537c17c34f339121fe9a7d6d7a0e.info
│ │ │ ├── 89/
│ │ │ │ ├── 8938e753b3f47374889d5cf3265b563c
│ │ │ │ ├── 8938e753b3f47374889d5cf3265b563c.info
│ │ │ │ ├── 898bc38486fc899428fbe5bd6adfe473
│ │ │ │ ├── 898bc38486fc899428fbe5bd6adfe473.info
│ │ │ │ ├── 89b31ff5ca0a5eb4797ac65d43949807
│ │ │ │ ├── 89b31ff5ca0a5eb4797ac65d43949807.info
│ │ │ │ ├── 89b48a03f6f43e94e87cc8d2104d3d4d
│ │ │ │ ├── 89b48a03f6f43e94e87cc8d2104d3d4d.info
│ │ │ │ ├── 89df79cf5061c394d82abd40383976e5
│ │ │ │ ├── 89df79cf5061c394d82abd40383976e5.info
│ │ │ │ ├── 89e0061781af2da4d938cac6c7381fdc
│ │ │ │ └── 89e0061781af2da4d938cac6c7381fdc.info
│ │ │ ├── 8a/
│ │ │ │ ├── 8a13cbeb2099aca47bb456f49845f86c
│ │ │ │ ├── 8a13cbeb2099aca47bb456f49845f86c.info
│ │ │ │ ├── 8a4b6301a5afaec4cb87d21383ceb0b3
│ │ │ │ ├── 8a4b6301a5afaec4cb87d21383ceb0b3.info
│ │ │ │ ├── 8a8695521f0d02e499659fee002a26c2
│ │ │ │ ├── 8a8695521f0d02e499659fee002a26c2.info
│ │ │ │ ├── 8aa8171e088f94069bbd1978a053f7dd
│ │ │ │ └── 8aa8171e088f94069bbd1978a053f7dd.info
│ │ │ ├── 8b/
│ │ │ │ ├── 8b22792c3b570444eb18cb78c2af3a74
│ │ │ │ ├── 8b22792c3b570444eb18cb78c2af3a74.info
│ │ │ │ ├── 8b7d06780fca6fc4384580d3ebed9219
│ │ │ │ ├── 8b7d06780fca6fc4384580d3ebed9219.info
│ │ │ │ ├── 8b845b123ab418448a8be2935fa804e0
│ │ │ │ ├── 8b845b123ab418448a8be2935fa804e0.info
│ │ │ │ ├── 8bb59cb2f66d156418ca1bd1e2703233
│ │ │ │ ├── 8bb59cb2f66d156418ca1bd1e2703233.info
│ │ │ │ ├── 8bc2b083b068f3546a9509c805e0541c
│ │ │ │ ├── 8bc2b083b068f3546a9509c805e0541c.info
│ │ │ │ ├── 8bc445bb79654bf496c92d0407840a92
│ │ │ │ ├── 8bc445bb79654bf496c92d0407840a92.info
│ │ │ │ ├── 8bc74398aa3944646ade4ee78cd57484
│ │ │ │ ├── 8bc74398aa3944646ade4ee78cd57484.info
│ │ │ │ ├── 8beed9aab74505d488e6befe54c3f6ef
│ │ │ │ └── 8beed9aab74505d488e6befe54c3f6ef.info
│ │ │ ├── 8c/
│ │ │ │ ├── 8cc83bff6b39f3d44af0de8320999144
│ │ │ │ └── 8cc83bff6b39f3d44af0de8320999144.info
│ │ │ ├── 8d/
│ │ │ │ ├── 8d20eedbe40f0ce41a4c4f633f225de8
│ │ │ │ ├── 8d20eedbe40f0ce41a4c4f633f225de8.info
│ │ │ │ ├── 8d34348f8b97a334291f5cf31adc5d67
│ │ │ │ ├── 8d34348f8b97a334291f5cf31adc5d67.info
│ │ │ │ ├── 8db4dc37ed52fc24ba715aaa8e0fd20f
│ │ │ │ ├── 8db4dc37ed52fc24ba715aaa8e0fd20f.info
│ │ │ │ ├── 8df45492ff0815a488744d61efcecba7
│ │ │ │ └── 8df45492ff0815a488744d61efcecba7.info
│ │ │ ├── 8e/
│ │ │ │ ├── 8e6115ff67c8ba44ba8780322ca78ef8
│ │ │ │ ├── 8e6115ff67c8ba44ba8780322ca78ef8.info
│ │ │ │ ├── 8e78f8a8575e4a04f8337a54e241cdc5
│ │ │ │ └── 8e78f8a8575e4a04f8337a54e241cdc5.info
│ │ │ ├── 8f/
│ │ │ │ ├── 8f74c99a65464bb4b86ccb314ee95a7f
│ │ │ │ ├── 8f74c99a65464bb4b86ccb314ee95a7f.info
│ │ │ │ ├── 8f7652e09069a1943278893d4264401e
│ │ │ │ ├── 8f7652e09069a1943278893d4264401e.info
│ │ │ │ ├── 8f8b248abe6b4dcebd6cdd0d754717f4
│ │ │ │ └── 8f8b248abe6b4dcebd6cdd0d754717f4.info
│ │ │ ├── 90/
│ │ │ │ ├── 900aac3710bc14542a8d164e3f0ff820
│ │ │ │ ├── 900aac3710bc14542a8d164e3f0ff820.info
│ │ │ │ ├── 900f1a451c764dc3bdcc0de815a15935
│ │ │ │ ├── 900f1a451c764dc3bdcc0de815a15935.info
│ │ │ │ ├── 9014630255533ed42915965b4065cde8
│ │ │ │ ├── 9014630255533ed42915965b4065cde8.info
│ │ │ │ ├── 901b761c5c1e22d4e8a3ba7d95bc1f5d
│ │ │ │ ├── 901b761c5c1e22d4e8a3ba7d95bc1f5d.info
│ │ │ │ ├── 906c12bc9cd95d3963c6d58f62522c78
│ │ │ │ ├── 906c12bc9cd95d3963c6d58f62522c78.info
│ │ │ │ ├── 907dff89ca8c76745b031725757e5f8b
│ │ │ │ ├── 907dff89ca8c76745b031725757e5f8b.info
│ │ │ │ ├── 9085046f02f69544eb97fd06b6048fe2
│ │ │ │ ├── 9085046f02f69544eb97fd06b6048fe2.info
│ │ │ │ ├── 90fe1c65e6bb3bc4e90862df7297719e
│ │ │ │ └── 90fe1c65e6bb3bc4e90862df7297719e.info
│ │ │ ├── 91/
│ │ │ │ ├── 9129183a42052cd43b9c284d6dbd541e
│ │ │ │ ├── 9129183a42052cd43b9c284d6dbd541e.info
│ │ │ │ ├── 91319408591cec1478efd3c62f9f418a
│ │ │ │ ├── 91319408591cec1478efd3c62f9f418a.info
│ │ │ │ ├── 91950f78729ab144aa36e94690b28fad
│ │ │ │ ├── 91950f78729ab144aa36e94690b28fad.info
│ │ │ │ ├── 919d97c1a707113409177d498d31cf51
│ │ │ │ ├── 919d97c1a707113409177d498d31cf51.info
│ │ │ │ ├── 91c20d2c22b8b3a4cb6c816bd225591a
│ │ │ │ ├── 91c20d2c22b8b3a4cb6c816bd225591a.info
│ │ │ │ ├── 91f495459b6e34f419ac123740d798b1
│ │ │ │ └── 91f495459b6e34f419ac123740d798b1.info
│ │ │ ├── 92/
│ │ │ │ ├── 92027f7f8cfc4feaa477da0dc38d3d46
│ │ │ │ ├── 92027f7f8cfc4feaa477da0dc38d3d46.info
│ │ │ │ ├── 9202fbba95ea8294cb5e718f028f21b0
│ │ │ │ ├── 9202fbba95ea8294cb5e718f028f21b0.info
│ │ │ │ ├── 926a61ff0dec44a5aab649acb411e9ad
│ │ │ │ ├── 926a61ff0dec44a5aab649acb411e9ad.info
│ │ │ │ ├── 9288066c33474b94b6ee5465f4df1cc0
│ │ │ │ ├── 9288066c33474b94b6ee5465f4df1cc0.info
│ │ │ │ ├── 928dc55e2c8c3ee4dad33b6d561cb6ea
│ │ │ │ ├── 928dc55e2c8c3ee4dad33b6d561cb6ea.info
│ │ │ │ ├── 92a378669877c05c6071d0fed687bb95
│ │ │ │ └── 92a378669877c05c6071d0fed687bb95.info
│ │ │ ├── 93/
│ │ │ │ ├── 93665e8b67658804d99c4487228cc050
│ │ │ │ ├── 93665e8b67658804d99c4487228cc050.info
│ │ │ │ ├── 936bea4b2545c4a4fad2e623b0f6371f
│ │ │ │ ├── 936bea4b2545c4a4fad2e623b0f6371f.info
│ │ │ │ ├── 936c6340f3468444ebb1785b4c311126
│ │ │ │ ├── 936c6340f3468444ebb1785b4c311126.info
│ │ │ │ ├── 9390296e78291b543b2f4a9761ef8139
│ │ │ │ ├── 9390296e78291b543b2f4a9761ef8139.info
│ │ │ │ ├── 93eea84e53d0226479c9a584f19427b5
│ │ │ │ ├── 93eea84e53d0226479c9a584f19427b5.info
│ │ │ │ ├── 93effba7cf7f3824ab0bd048a27a9c02
│ │ │ │ └── 93effba7cf7f3824ab0bd048a27a9c02.info
│ │ │ ├── 94/
│ │ │ │ ├── 94412382cf909c843b9a46a8f6b364f4
│ │ │ │ ├── 94412382cf909c843b9a46a8f6b364f4.info
│ │ │ │ ├── 945f4ecec6df62244b9ebcc363833642
│ │ │ │ ├── 945f4ecec6df62244b9ebcc363833642.info
│ │ │ │ ├── 949b7e126b3f27940885a6808a15458e
│ │ │ │ ├── 949b7e126b3f27940885a6808a15458e.info
│ │ │ │ ├── 94a7f67cf7303d94fa3f076bd9f33095
│ │ │ │ └── 94a7f67cf7303d94fa3f076bd9f33095.info
│ │ │ ├── 95/
│ │ │ │ ├── 9502550ba4785e3499d6c9251fa2114b
│ │ │ │ ├── 9502550ba4785e3499d6c9251fa2114b.info
│ │ │ │ ├── 950890083f4907541a6ed06d70959e49
│ │ │ │ ├── 950890083f4907541a6ed06d70959e49.info
│ │ │ │ ├── 952b3dc7b47846947b37c8d3ae46579a
│ │ │ │ ├── 952b3dc7b47846947b37c8d3ae46579a.info
│ │ │ │ ├── 953fab16d15d5885b3600fcd6388b2ad
│ │ │ │ ├── 953fab16d15d5885b3600fcd6388b2ad.info
│ │ │ │ ├── 9541d86e2fd84c1d9990edf0852d74ab
│ │ │ │ ├── 9541d86e2fd84c1d9990edf0852d74ab.info
│ │ │ │ ├── 9545c9eb3bf94265810463794fec8334
│ │ │ │ ├── 9545c9eb3bf94265810463794fec8334.info
│ │ │ │ ├── 95a2914724952ef40bb590d0607fc878
│ │ │ │ ├── 95a2914724952ef40bb590d0607fc878.info
│ │ │ │ ├── 95b719082a664ea45bb56759eed1f271
│ │ │ │ ├── 95b719082a664ea45bb56759eed1f271.info
│ │ │ │ ├── 95c91abdcc1ea03458c2ea4e9626a5d8
│ │ │ │ ├── 95c91abdcc1ea03458c2ea4e9626a5d8.info
│ │ │ │ ├── 95cdf27b47eb82747ba9e51f41e72a35
│ │ │ │ ├── 95cdf27b47eb82747ba9e51f41e72a35.info
│ │ │ │ ├── 95f85adeda79e994f011eb2152cf4fc9
│ │ │ │ └── 95f85adeda79e994f011eb2152cf4fc9.info
│ │ │ ├── 96/
│ │ │ │ ├── 961642509dec50b44a293d26240140ec
│ │ │ │ ├── 961642509dec50b44a293d26240140ec.info
│ │ │ │ ├── 9650d910fcaefb34cb45f121c1993892
│ │ │ │ ├── 9650d910fcaefb34cb45f121c1993892.info
│ │ │ │ ├── 9685354eb873b8d4699078b307b0f260
│ │ │ │ ├── 9685354eb873b8d4699078b307b0f260.info
│ │ │ │ ├── 968a09f153574430a6e15ae975145768
│ │ │ │ ├── 968a09f153574430a6e15ae975145768.info
│ │ │ │ ├── 96b44f7d98314b139324a8a87eb66067
│ │ │ │ ├── 96b44f7d98314b139324a8a87eb66067.info
│ │ │ │ ├── 96c503bf059df984c86eecf572370347
│ │ │ │ ├── 96c503bf059df984c86eecf572370347.info
│ │ │ │ ├── 96d14b71b907bb52333b2886e665aba6
│ │ │ │ ├── 96d14b71b907bb52333b2886e665aba6.info
│ │ │ │ ├── 96e9072453a441618754c478755b3028
│ │ │ │ └── 96e9072453a441618754c478755b3028.info
│ │ │ ├── 97/
│ │ │ │ ├── 970e7735a0864fd40842a36d053d08fe
│ │ │ │ ├── 970e7735a0864fd40842a36d053d08fe.info
│ │ │ │ ├── 9713795381722eb43b623dffba25d115
│ │ │ │ ├── 9713795381722eb43b623dffba25d115.info
│ │ │ │ ├── 973b024861c5ae84f869aad614234b04
│ │ │ │ ├── 973b024861c5ae84f869aad614234b04.info
│ │ │ │ ├── 976acc75bfafe594cb01142ba21947be
│ │ │ │ ├── 976acc75bfafe594cb01142ba21947be.info
│ │ │ │ ├── 977190a4db46de442aed27279d247df4
│ │ │ │ ├── 977190a4db46de442aed27279d247df4.info
│ │ │ │ ├── 97a05971510726f438153cd4987526fb
│ │ │ │ ├── 97a05971510726f438153cd4987526fb.info
│ │ │ │ ├── 97d6c87381e3e51488b49f5891490b70
│ │ │ │ ├── 97d6c87381e3e51488b49f5891490b70.info
│ │ │ │ ├── 97f2c862ef7ea1d4fa3423506b5cf0ff
│ │ │ │ └── 97f2c862ef7ea1d4fa3423506b5cf0ff.info
│ │ │ ├── 98/
│ │ │ │ ├── 9805855c8e379ed4cad77f639aaddb73
│ │ │ │ ├── 9805855c8e379ed4cad77f639aaddb73.info
│ │ │ │ ├── 980daac0955b74442b91df43f0f1b776
│ │ │ │ ├── 980daac0955b74442b91df43f0f1b776.info
│ │ │ │ ├── 983c76d87fb6f4f4597a526a4b2b5fd7
│ │ │ │ ├── 983c76d87fb6f4f4597a526a4b2b5fd7.info
│ │ │ │ ├── 985eed4bc2fbee941b761b8816d9055d
│ │ │ │ ├── 985eed4bc2fbee941b761b8816d9055d.info
│ │ │ │ ├── 98808b11e78f6c84a841a6b4bc5a29d2
│ │ │ │ ├── 98808b11e78f6c84a841a6b4bc5a29d2.info
│ │ │ │ ├── 98ba0396e4b4ee8498a8f097affcfddf
│ │ │ │ ├── 98ba0396e4b4ee8498a8f097affcfddf.info
│ │ │ │ ├── 98bf0690f0c9686468d3866e3c0e5e45
│ │ │ │ ├── 98bf0690f0c9686468d3866e3c0e5e45.info
│ │ │ │ ├── 98d14ab1acf42df4f88a0561822ac807
│ │ │ │ └── 98d14ab1acf42df4f88a0561822ac807.info
│ │ │ ├── 99/
│ │ │ │ ├── 9945ffed4692c6044b6d3acf81efd694
│ │ │ │ ├── 9945ffed4692c6044b6d3acf81efd694.info
│ │ │ │ ├── 995c08a3305ff9f0dab5e86f340bd9a7
│ │ │ │ ├── 995c08a3305ff9f0dab5e86f340bd9a7.info
│ │ │ │ ├── 99744ed686e28004180091658ee4f5ae
│ │ │ │ ├── 99744ed686e28004180091658ee4f5ae.info
│ │ │ │ ├── 99c5970046bb263469514e56eb6aa519
│ │ │ │ └── 99c5970046bb263469514e56eb6aa519.info
│ │ │ ├── 9a/
│ │ │ │ ├── 9a0f991b6c2f45b44b92e163f9969e8e
│ │ │ │ ├── 9a0f991b6c2f45b44b92e163f9969e8e.info
│ │ │ │ ├── 9a3557da07c729b4eb774b8e30e157a4
│ │ │ │ ├── 9a3557da07c729b4eb774b8e30e157a4.info
│ │ │ │ ├── 9a371bcbba2084dd0a8ebc6826aa8794
│ │ │ │ ├── 9a371bcbba2084dd0a8ebc6826aa8794.info
│ │ │ │ ├── 9a6069768ff3d8043a79348813f86cba
│ │ │ │ ├── 9a6069768ff3d8043a79348813f86cba.info
│ │ │ │ ├── 9ace5095cc37ed849b52109d2ee305d4
│ │ │ │ ├── 9ace5095cc37ed849b52109d2ee305d4.info
│ │ │ │ ├── 9ad0b0c865b01af4ca1b414689e71259
│ │ │ │ └── 9ad0b0c865b01af4ca1b414689e71259.info
│ │ │ ├── 9b/
│ │ │ │ ├── 9b1a3034a9e81704abdd08677a2d035f
│ │ │ │ ├── 9b1a3034a9e81704abdd08677a2d035f.info
│ │ │ │ ├── 9b4f21acd14fdd445b37b76f6587539e
│ │ │ │ ├── 9b4f21acd14fdd445b37b76f6587539e.info
│ │ │ │ ├── 9b5abcb38bac0c54794ad732a3fa0de3
│ │ │ │ ├── 9b5abcb38bac0c54794ad732a3fa0de3.info
│ │ │ │ ├── 9bc2b69915879416f8df18971dc98e2e
│ │ │ │ ├── 9bc2b69915879416f8df18971dc98e2e.info
│ │ │ │ ├── 9bd5a110ed89025499ddee8c7e73778e
│ │ │ │ ├── 9bd5a110ed89025499ddee8c7e73778e.info
│ │ │ │ ├── 9be6112c2b1c3ae44927680ba7b36e10
│ │ │ │ ├── 9be6112c2b1c3ae44927680ba7b36e10.info
│ │ │ │ ├── 9bedab6f9886aee42b33e424bffdb640
│ │ │ │ └── 9bedab6f9886aee42b33e424bffdb640.info
│ │ │ ├── 9c/
│ │ │ │ ├── 9c2177aaf0fde92439246adc2dc0bfa2
│ │ │ │ ├── 9c2177aaf0fde92439246adc2dc0bfa2.info
│ │ │ │ ├── 9c21cfda3336137438c3001d40564be0
│ │ │ │ ├── 9c21cfda3336137438c3001d40564be0.info
│ │ │ │ ├── 9c4a050f089abb04ebd4125e419f4548
│ │ │ │ ├── 9c4a050f089abb04ebd4125e419f4548.info
│ │ │ │ ├── 9c7ad350fb20c854a9112cf4156d1b6e
│ │ │ │ ├── 9c7ad350fb20c854a9112cf4156d1b6e.info
│ │ │ │ ├── 9c7c268fa6492449654839df69f2a2f4
│ │ │ │ ├── 9c7c268fa6492449654839df69f2a2f4.info
│ │ │ │ ├── 9c8ceb9efacb4974bb3b7e2a87137b07
│ │ │ │ ├── 9c8ceb9efacb4974bb3b7e2a87137b07.info
│ │ │ │ ├── 9c9e5198af35eb74d8c5d84a5194b184
│ │ │ │ ├── 9c9e5198af35eb74d8c5d84a5194b184.info
│ │ │ │ ├── 9ce3cf11b8f74594bb7b1e1dba03122d
│ │ │ │ └── 9ce3cf11b8f74594bb7b1e1dba03122d.info
│ │ │ ├── 9d/
│ │ │ │ ├── 9d614808f9add8a4f8e4860db2c7af0d
│ │ │ │ ├── 9d614808f9add8a4f8e4860db2c7af0d.info
│ │ │ │ ├── 9d816a6ab06c6834480f5f45f440e287
│ │ │ │ ├── 9d816a6ab06c6834480f5f45f440e287.info
│ │ │ │ ├── 9db19a04003fca7439552acd4de9baa1
│ │ │ │ ├── 9db19a04003fca7439552acd4de9baa1.info
│ │ │ │ ├── 9de24983a2c6cbe4f925c3e98a79b804
│ │ │ │ └── 9de24983a2c6cbe4f925c3e98a79b804.info
│ │ │ ├── 9e/
│ │ │ │ ├── 9e2b7a65f0a52974193ed497d145b0bc
│ │ │ │ ├── 9e2b7a65f0a52974193ed497d145b0bc.info
│ │ │ │ ├── 9ec94545c5b00344c9bd8e691f15d799
│ │ │ │ ├── 9ec94545c5b00344c9bd8e691f15d799.info
│ │ │ │ ├── 9edc9283e7d6409fab242fe8fb6a822c
│ │ │ │ └── 9edc9283e7d6409fab242fe8fb6a822c.info
│ │ │ ├── 9f/
│ │ │ │ ├── 9f1026265f8e3d54fb6e9f082c43debf
│ │ │ │ ├── 9f1026265f8e3d54fb6e9f082c43debf.info
│ │ │ │ ├── 9f2f480fb2536e54ab8493a4e7421720
│ │ │ │ └── 9f2f480fb2536e54ab8493a4e7421720.info
│ │ │ ├── a0/
│ │ │ │ ├── a002d3737b873954395b7cf862873ab8
│ │ │ │ ├── a002d3737b873954395b7cf862873ab8.info
│ │ │ │ ├── a021b6d2ca2e9404b8a4d94343ecd068
│ │ │ │ ├── a021b6d2ca2e9404b8a4d94343ecd068.info
│ │ │ │ ├── a025ba7ee40d0104db8d08b1d9eabb0d
│ │ │ │ ├── a025ba7ee40d0104db8d08b1d9eabb0d.info
│ │ │ │ ├── a04a45bbed9e1714f9902fc9443669b9
│ │ │ │ ├── a04a45bbed9e1714f9902fc9443669b9.info
│ │ │ │ ├── a0a02e768c802b641b6793fa864f1c2c
│ │ │ │ ├── a0a02e768c802b641b6793fa864f1c2c.info
│ │ │ │ ├── a0b56195e00682b4594dfaeef9d5fa78
│ │ │ │ ├── a0b56195e00682b4594dfaeef9d5fa78.info
│ │ │ │ ├── a0bae4ff8f5baf64aad3b92b8aea0603
│ │ │ │ ├── a0bae4ff8f5baf64aad3b92b8aea0603.info
│ │ │ │ ├── a0fba9bd62d2b5c4bb89c81f58569c58
│ │ │ │ └── a0fba9bd62d2b5c4bb89c81f58569c58.info
│ │ │ ├── a1/
│ │ │ │ ├── a132bd53f9677ee489dac2f1da2b05ea
│ │ │ │ ├── a132bd53f9677ee489dac2f1da2b05ea.info
│ │ │ │ ├── a14a59f2a5c757e469c3e4e17b798c2e
│ │ │ │ └── a14a59f2a5c757e469c3e4e17b798c2e.info
│ │ │ ├── a2/
│ │ │ │ ├── a2a8aecb05814e644abbb070fbd91156
│ │ │ │ ├── a2a8aecb05814e644abbb070fbd91156.info
│ │ │ │ ├── a2cb43d6b0c226443be7e176590837a5
│ │ │ │ ├── a2cb43d6b0c226443be7e176590837a5.info
│ │ │ │ ├── a2cc3e5914c2bb345a87c15d0b894ee8
│ │ │ │ └── a2cc3e5914c2bb345a87c15d0b894ee8.info
│ │ │ ├── a3/
│ │ │ │ ├── a331c23f613bfba4294059442ab01d4e
│ │ │ │ ├── a331c23f613bfba4294059442ab01d4e.info
│ │ │ │ ├── a3529368f4cd0424a89aa51080a16b06
│ │ │ │ ├── a3529368f4cd0424a89aa51080a16b06.info
│ │ │ │ ├── a36d8b72880a8004f96ac54ce4598ff9
│ │ │ │ ├── a36d8b72880a8004f96ac54ce4598ff9.info
│ │ │ │ ├── a3949cc8bd731bb47bedf6589367d0c9
│ │ │ │ ├── a3949cc8bd731bb47bedf6589367d0c9.info
│ │ │ │ ├── a3c7ce509d225e740aed9d6579e2a1e9
│ │ │ │ └── a3c7ce509d225e740aed9d6579e2a1e9.info
│ │ │ ├── a4/
│ │ │ │ ├── a429b38ee9d48c7408c8870baf406034
│ │ │ │ ├── a429b38ee9d48c7408c8870baf406034.info
│ │ │ │ ├── a4610cf559d77b9f256416d9ccaeac55
│ │ │ │ ├── a4610cf559d77b9f256416d9ccaeac55.info
│ │ │ │ ├── a483595b0257945278dc75c5ff7d82ee
│ │ │ │ ├── a483595b0257945278dc75c5ff7d82ee.info
│ │ │ │ ├── a4cac3a64ff3a4540bbabd58e2d7c8b2
│ │ │ │ └── a4cac3a64ff3a4540bbabd58e2d7c8b2.info
│ │ │ ├── a5/
│ │ │ │ ├── a55fb7b4961a425381d1282fc424f966
│ │ │ │ ├── a55fb7b4961a425381d1282fc424f966.info
│ │ │ │ ├── a582090813554df479fb9ca03e9857d3
│ │ │ │ ├── a582090813554df479fb9ca03e9857d3.info
│ │ │ │ ├── a598580d0cfc7224ebed8d2b627d9e00
│ │ │ │ ├── a598580d0cfc7224ebed8d2b627d9e00.info
│ │ │ │ ├── a59c2e62fbd97f84f92c3b546e3903cb
│ │ │ │ ├── a59c2e62fbd97f84f92c3b546e3903cb.info
│ │ │ │ ├── a5c214e5846a99242b348c37e49b2f59
│ │ │ │ └── a5c214e5846a99242b348c37e49b2f59.info
│ │ │ ├── a6/
│ │ │ │ ├── a6238e9452bfc704f82ff36791fe1a45
│ │ │ │ ├── a6238e9452bfc704f82ff36791fe1a45.info
│ │ │ │ ├── a62706dc421fc9b4fa368a8050a930f7
│ │ │ │ ├── a62706dc421fc9b4fa368a8050a930f7.info
│ │ │ │ ├── a667f6654ad7a9548b8c8e68b51c8895
│ │ │ │ ├── a667f6654ad7a9548b8c8e68b51c8895.info
│ │ │ │ ├── a6ab6fd2b91214e8a9c8ec2224a528de
│ │ │ │ └── a6ab6fd2b91214e8a9c8ec2224a528de.info
│ │ │ ├── a7/
│ │ │ │ ├── a704c010bcdb1ec4a9f3417b3c393164
│ │ │ │ ├── a704c010bcdb1ec4a9f3417b3c393164.info
│ │ │ │ ├── a73ebdb6c1006364f8c7b37dc53d8ab7
│ │ │ │ ├── a73ebdb6c1006364f8c7b37dc53d8ab7.info
│ │ │ │ ├── a7842a837a4b13e41ae16193db753418
│ │ │ │ ├── a7842a837a4b13e41ae16193db753418.info
│ │ │ │ ├── a7c91a123806d41a0873fcdcb629b1c4
│ │ │ │ ├── a7c91a123806d41a0873fcdcb629b1c4.info
│ │ │ │ ├── a7ebd1239373d5f41af65ef32d67f445
│ │ │ │ ├── a7ebd1239373d5f41af65ef32d67f445.info
│ │ │ │ ├── a7ec9e7ad8b847b7ae4510af83c5d868
│ │ │ │ └── a7ec9e7ad8b847b7ae4510af83c5d868.info
│ │ │ ├── a8/
│ │ │ │ ├── a809a4b50addbf44b9023b5e7f9fd4d2
│ │ │ │ ├── a809a4b50addbf44b9023b5e7f9fd4d2.info
│ │ │ │ ├── a8604e8f13b3be84b8bc0c1507d8f3f6
│ │ │ │ ├── a8604e8f13b3be84b8bc0c1507d8f3f6.info
│ │ │ │ ├── a8ed4063f2beecd41a234a582202f3c4
│ │ │ │ └── a8ed4063f2beecd41a234a582202f3c4.info
│ │ │ ├── a9/
│ │ │ │ ├── a9126848c43c4dd499da39a90664dd73
│ │ │ │ ├── a9126848c43c4dd499da39a90664dd73.info
│ │ │ │ ├── a956e5803e95df349bd35832492d4014
│ │ │ │ └── a956e5803e95df349bd35832492d4014.info
│ │ │ ├── aa/
│ │ │ │ ├── aa14b70e6a58c5b4fa6663623e3dca91
│ │ │ │ ├── aa14b70e6a58c5b4fa6663623e3dca91.info
│ │ │ │ ├── aa160f27c3fe4052a5850e21108811b6
│ │ │ │ ├── aa160f27c3fe4052a5850e21108811b6.info
│ │ │ │ ├── aa76955fe5bb44f7915d91db8c7043c4
│ │ │ │ └── aa76955fe5bb44f7915d91db8c7043c4.info
│ │ │ ├── ab/
│ │ │ │ ├── ab2114bdc8544297b417dfefe9f1e410
│ │ │ │ ├── ab2114bdc8544297b417dfefe9f1e410.info
│ │ │ │ ├── ab93e1a81defc3243a6e9cd0df3cb443
│ │ │ │ └── ab93e1a81defc3243a6e9cd0df3cb443.info
│ │ │ ├── ac/
│ │ │ │ ├── ac071ac86a8f1af43827e11a522640e4
│ │ │ │ ├── ac071ac86a8f1af43827e11a522640e4.info
│ │ │ │ ├── ac281230df7b14becb40b3c479f1b429
│ │ │ │ ├── ac281230df7b14becb40b3c479f1b429.info
│ │ │ │ ├── ac3f13489022aa34d861a0320a6917b9
│ │ │ │ ├── ac3f13489022aa34d861a0320a6917b9.info
│ │ │ │ ├── ac68f5ae37c8957468562b8da42f9984
│ │ │ │ ├── ac68f5ae37c8957468562b8da42f9984.info
│ │ │ │ ├── ac742e1acf5f82f45b9d8ec53fe15b21
│ │ │ │ ├── ac742e1acf5f82f45b9d8ec53fe15b21.info
│ │ │ │ ├── acc16f0c684508f44813662a300c574b
│ │ │ │ ├── acc16f0c684508f44813662a300c574b.info
│ │ │ │ ├── acfa3573efc38c844be021fdaa8cf8a6
│ │ │ │ └── acfa3573efc38c844be021fdaa8cf8a6.info
│ │ │ ├── ad/
│ │ │ │ ├── ad09d3e70e7b09244b56b51e495a319c
│ │ │ │ ├── ad09d3e70e7b09244b56b51e495a319c.info
│ │ │ │ ├── ad70ff8d98b257540b683737743828cb
│ │ │ │ ├── ad70ff8d98b257540b683737743828cb.info
│ │ │ │ ├── adf7bea9401c1834380d55601add6cfb
│ │ │ │ └── adf7bea9401c1834380d55601add6cfb.info
│ │ │ ├── ae/
│ │ │ │ ├── ae05f0dd1cf145e4e8e905c7971ee433
│ │ │ │ ├── ae05f0dd1cf145e4e8e905c7971ee433.info
│ │ │ │ ├── ae242449e9279d44789513b922d3178a
│ │ │ │ ├── ae242449e9279d44789513b922d3178a.info
│ │ │ │ ├── ae8ce3ffe04ac2c42945fd27e0291fc3
│ │ │ │ ├── ae8ce3ffe04ac2c42945fd27e0291fc3.info
│ │ │ │ ├── aed7ab02155e43341a2dbcb7bc17c160
│ │ │ │ └── aed7ab02155e43341a2dbcb7bc17c160.info
│ │ │ ├── af/
│ │ │ │ ├── af30a361ab68260438b6ec3fb7e64500
│ │ │ │ ├── af30a361ab68260438b6ec3fb7e64500.info
│ │ │ │ ├── af5042802f06c804c8abddd544b77a4a
│ │ │ │ ├── af5042802f06c804c8abddd544b77a4a.info
│ │ │ │ ├── af84cf39b8fa0654badd9278cbd00d77
│ │ │ │ ├── af84cf39b8fa0654badd9278cbd00d77.info
│ │ │ │ ├── afeb55855d7a63b45ba6f8bd97599202
│ │ │ │ └── afeb55855d7a63b45ba6f8bd97599202.info
│ │ │ ├── b0/
│ │ │ │ ├── b09be1f217d34247af54863a2f5587e1
│ │ │ │ ├── b09be1f217d34247af54863a2f5587e1.info
│ │ │ │ ├── b0c73ea1c5ff95e43806e9002c155070
│ │ │ │ ├── b0c73ea1c5ff95e43806e9002c155070.info
│ │ │ │ ├── b0eeee3cdfa56734abca5c1a4e7989ba
│ │ │ │ └── b0eeee3cdfa56734abca5c1a4e7989ba.info
│ │ │ ├── b1/
│ │ │ │ ├── b10cb8fee5b39014d8a417bf413f5e5c
│ │ │ │ ├── b10cb8fee5b39014d8a417bf413f5e5c.info
│ │ │ │ ├── b124f0b8ca43e6e46bdc0322fad15ea3
│ │ │ │ ├── b124f0b8ca43e6e46bdc0322fad15ea3.info
│ │ │ │ ├── b135ec222fdcd11468014c90d11d6821
│ │ │ │ ├── b135ec222fdcd11468014c90d11d6821.info
│ │ │ │ ├── b14b67faac4aff04fac7127cf1ab4f97
│ │ │ │ ├── b14b67faac4aff04fac7127cf1ab4f97.info
│ │ │ │ ├── b180fd8310805e44dbbef545d0231418
│ │ │ │ ├── b180fd8310805e44dbbef545d0231418.info
│ │ │ │ ├── b1c789407b55e3a4c9cc86135a714e33
│ │ │ │ ├── b1c789407b55e3a4c9cc86135a714e33.info
│ │ │ │ ├── b1d8465ba1376b148bdab58965101f47
│ │ │ │ └── b1d8465ba1376b148bdab58965101f47.info
│ │ │ ├── b2/
│ │ │ │ ├── b219c86ce508e478367c0a46e1aa9fe4
│ │ │ │ ├── b219c86ce508e478367c0a46e1aa9fe4.info
│ │ │ │ ├── b222f61a1f7253e4d8e8cc82bfde9e42
│ │ │ │ ├── b222f61a1f7253e4d8e8cc82bfde9e42.info
│ │ │ │ ├── b250be9db55288b48ac121c074d795e6
│ │ │ │ └── b250be9db55288b48ac121c074d795e6.info
│ │ │ ├── b3/
│ │ │ │ ├── b33687803b08
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.userprefs
scatterer/obj
scatterer/bin
scatterer/bin/Release/Assembly-CSharp-firstpass.dll
scatterer/bin/Release/Assembly-CSharp.dll
scatterer/bin/Release/Mono.Cecil.dll
scatterer/bin/Release/Mono.Security.dll
scatterer/bin/Release/mscorlib.dll
scatterer/bin/Release/System.Core.dll
scatterer/bin/Release/System.dll
scatterer/bin/Release/System.Xml.dll
scatterer/bin/Release/TDx.TDxInput.dll
scatterer/bin/Release/TrackIRUnity.dll
scatterer/bin/Release/UnityEngine.dll
scatterer/Shaders/scattererShaders/Library
================================================
FILE: Readme.md
================================================
Scatterer
---------------------------------------------------------------------------------
Atmospheric scattering graphical effects for Kerbal Space Program.
This project contains the plugin source which is under the following license:
GNU GENERAL PUBLIC LICENSE Version 3
This repo does not contain shaders for versions higher than 0.0772 and they are not necessary to compile/load the plugin. Shaders are loaded dynamically from asset bundles and can be replaced by custom shaders.
Copyright (c) 2015-2022 Ghassen Lahmar
================================================
FILE: license.md
================================================
Copyright (c) 2015-2022 Ghassen Lahmar
You may use, distribute and copy Scatterer under the terms of GNU General
Public License version 3, which is displayed below.
-------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
/*
* Proland: a procedural landscape rendering library.
* Website : http://proland.inrialpes.fr/
* Copyright (c) 2008-2015 INRIA - LJK (CNRS - Grenoble University)
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*
* Proland is distributed under the Berkeley Software Distribution 3 Licence.
* For any assistance, feedback and enquiries about training programs, you can check out the
* contact page on our website :
* http://proland.inrialpes.fr/
*/
/*
* Main authors: Eric Bruneton, Antoine Begault, Guillaume Piolat.
*/
/*
* Proland-To-Unity
* Website: https://github.com/Scrawk/Proland-To-Unity
*/
/*
* BSD 3-Clause License
*
* Copyright (c) 2022, Justin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* Intel Corporation - Outdoor Light Scattering Sample
* Website:https://github.com/GameTechDev/OutdoorLightScattering
*/
/*
*
* Apache License
* Version 2.0, January 2004
*
* http://www.apache.org/licenses/
*
* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
*
* 1. Definitions.
*
* "License" shall mean the terms and conditions for use, reproduction, and
* distribution as defined by Sections 1 through 9 of this document.
*
* "Licensor" shall mean the copyright owner or entity authorized by the copyright
* owner that is granting the License.
*
* "Legal Entity" shall mean the union of the acting entity and all other entities
* that control, are controlled by, or are under common control with that entity.
* For the purposes of this definition, "control" means (i) the power, direct or
* indirect, to cause the direction or management of such entity, whether by
* contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
* outstanding shares, or (iii) beneficial ownership of such entity.
*
* "You" (or "Your") shall mean an individual or Legal Entity exercising
* permissions granted by this License.
*
* "Source" form shall mean the preferred form for making modifications, including
* but not limited to software source code, documentation source, and configuration
* files.
*
* "Object" form shall mean any form resulting from mechanical transformation or
* translation of a Source form, including but not limited to compiled object code,
* generated documentation, and conversions to other media types.
*
* "Work" shall mean the work of authorship, whether in Source or Object form, made
* available under the License, as indicated by a copyright notice that is included
* in or attached to the work (an example is provided in the Appendix below).
*
* "Derivative Works" shall mean any work, whether in Source or Object form, that
* is based on (or derived from) the Work and for which the editorial revisions,
* annotations, elaborations, or other modifications represent, as a whole, an
* original work of authorship. For the purposes of this License, Derivative Works
* shall not include works that remain separable from, or merely link (or bind by
* name) to the interfaces of, the Work and Derivative Works thereof.
*
* "Contribution" shall mean any work of authorship, including the original version
* of the Work and any modifications or additions to that Work or Derivative Works
* thereof, that is intentionally submitted to Licensor for inclusion in the Work
* by the copyright owner or by an individual or Legal Entity authorized to submit
* on behalf of the copyright owner. For the purposes of this definition,
* "submitted" means any form of electronic, verbal, or written communication sent
* to the Licensor or its representatives, including but not limited to
* communication on electronic mailing lists, source code control systems, and
* issue tracking systems that are managed by, or on behalf of, the Licensor for
* the purpose of discussing and improving the Work, but excluding communication
* that is conspicuously marked or otherwise designated in writing by the copyright
* owner as "Not a Contribution."
*
* "Contributor" shall mean Licensor and any individual or Legal Entity on behalf
* of whom a Contribution has been received by Licensor and subsequently
* incorporated within the Work.
*
* 2. Grant of Copyright License. Subject to the terms and conditions of this
* License, each Contributor hereby grants to You a perpetual, worldwide,
* non-exclusive, no-charge, royalty-free, irrevocable copyright license to
* reproduce, prepare Derivative Works of, publicly display, publicly perform,
* sublicense, and distribute the Work and such Derivative Works in Source or
* Object form.
*
* 3. Grant of Patent License. Subject to the terms and conditions of this License,
* each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
* no-charge, royalty-free, irrevocable (except as stated in this section) patent
* license to make, have made, use, offer to sell, sell, import, and otherwise
* transfer the Work, where such license applies only to those patent claims
* licensable by such Contributor that are necessarily infringed by their
* Contribution(s) alone or by combination of their Contribution(s) with the Work
* to which such Contribution(s) was submitted. If You institute patent litigation
* against any entity (including a cross-claim or counterclaim in a lawsuit)
* alleging that the Work or a Contribution incorporated within the Work
* constitutes direct or contributory patent infringement, then any patent licenses
* granted to You under this License for that Work shall terminate as of the date
* such litigation is filed.
*
* 4. Redistribution. You may reproduce and distribute copies of the Work or
* Derivative Works thereof in any medium, with or without modifications, and in
* Source or Object form, provided that You meet the following conditions:
* You must give any other recipients of the Work or Derivative Works a copy of
* this License; and
*
*
* You must cause any modified files to carry prominent notices stating that You
* changed the files; and
*
*
* You must retain, in the Source form of any Derivative Works that You
* distribute, all copyright, patent, trademark, and attribution notices from the
* Source form of the Work, excluding those notices that do not pertain to any
* part of the Derivative Works; and
*
*
* If the Work includes a "NOTICE" text file as part of its distribution, then
* any Derivative Works that You distribute must include a readable copy of the
* attribution notices contained within such NOTICE file, excluding those notices
* that do not pertain to any part of the Derivative Works, in at least one of
* the following places: within a NOTICE text file distributed as part of the
* Derivative Works; within the Source form or documentation, if provided along
* with the Derivative Works; or, within a display generated by the Derivative
* Works, if and wherever such third-party notices normally appear. The contents
* of the NOTICE file are for informational purposes only and do not modify the
* License. You may add Your own attribution notices within Derivative Works that
* You distribute, alongside or as an addendum to the NOTICE text from the Work,
* provided that such additional attribution notices cannot be construed as
* modifying the License.
* You may add Your own copyright statement to Your modifications and may provide
* additional or different license terms and conditions for use, reproduction, or
* distribution of Your modifications, or for any such Derivative Works as a whole,
* provided Your use, reproduction, and distribution of the Work otherwise complies
* with the conditions stated in this License.
*
* 5. Submission of Contributions. Unless You explicitly state otherwise, any
* Contribution intentionally submitted for inclusion in the Work by You to the
* Licensor shall be under the terms and conditions of this License, without any
* additional terms or conditions. Notwithstanding the above, nothing herein shall
* supersede or modify the terms of any separate license agreement you may have
* executed with Licensor regarding such Contributions.
*
* 6. Trademarks. This License does not grant permission to use the trade names,
* trademarks, service marks, or product names of the Licensor, except as required
* for reasonable and customary use in describing the origin of the Work and
* reproducing the content of the NOTICE file.
*
* 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
* writing, Licensor provides the Work (and each Contributor provides its
* Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied, including, without limitation, any warranties
* or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
* PARTICULAR PURPOSE. You are solely responsible for determining the
* appropriateness of using or redistributing the Work and assume any risks
* associated with Your exercise of permissions under this License.
*
* 8. Limitation of Liability. In no event and under no legal theory, whether in
* tort (including negligence), contract, or otherwise, unless required by
* applicable law (such as deliberate and grossly negligent acts) or agreed to in
* writing, shall any Contributor be liable to You for damages, including any
* direct, indirect, special, incidental, or consequential damages of any character
* arising as a result of this License or out of the use or inability to use the
* Work (including but not limited to damages for loss of goodwill, work stoppage,
* computer failure or malfunction, or any and all other commercial damages or
* losses), even if such Contributor has been advised of the possibility of such
* damages.
*
* 9. Accepting Warranty or Additional Liability. While redistributing the Work or
* Derivative Works thereof, You may choose to offer, and charge a fee for,
* acceptance of support, warranty, indemnity, or other liability obligations
* and/or rights consistent with this License. However, in accepting such
* obligations, You may act only on Your own behalf and on Your sole
* responsibility, not on behalf of any other Contributor, and only if You agree to
* indemnify, defend, and hold each Contributor harmless for any liability incurred
* by, or claims asserted against, such Contributor by reason of your accepting any
* such warranty or additional liability.
*
* END OF TERMS AND CONDITIONS
*
* APPENDIX: How to apply the Apache License to your work
*
* To apply the Apache License to your work, attach the following boilerplate
* notice, with the fields enclosed by brackets "[]" replaced with your own
* identifying information. (Don't include the brackets!) The text should be
* enclosed in the appropriate comment syntax for the file format. We also
* recommend that a file or class name and description of purpose be included on
* the same "printed page" as the copyright notice for easier identification within
* third-party archives.
*
* Copyright [yyyy] [name of copyright owner] Licensed under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or
* agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
================================================
FILE: scatterer/CelestialBodySortableByDistance.cs
================================================
using System;
using System.Collections.Generic;
namespace scatterer
{
public class celestialBodySortableByDistance : IEquatable<celestialBodySortableByDistance> , IComparable<celestialBodySortableByDistance>
{
public CelestialBody CelestialBody { get; set; }
public float Distance { get; set; }
public bool usesScatterer { get; set; }
public int scattererIndex { get; set; }
public override string ToString()
{
return "dist: " + Distance + " CelestialBodyName: " + CelestialBody.name;
}
public override bool Equals(object obj)
{
if (obj == null) return false;
celestialBodySortableByDistance objAsCelestialBodySortableByDistance = obj as celestialBodySortableByDistance;
if (objAsCelestialBodySortableByDistance == null) return false;
else return Equals(objAsCelestialBodySortableByDistance);
}
public int SortByNameAscending(string name1, string name2)
{
return name1.CompareTo(name2);
}
// Default comparer for Part type.
public int CompareTo(celestialBodySortableByDistance comparecelestialBodySortableByDistance)
{
// A null value means that this object is greater.
if (comparecelestialBodySortableByDistance == null)
return 1;
else
return this.Distance.CompareTo(comparecelestialBodySortableByDistance.Distance);
}
public override int GetHashCode()
{
return (int)Distance;
}
public bool Equals(celestialBodySortableByDistance other)
{
if (other == null) return false;
return (this.Distance.Equals(other.Distance));
}
// Should also override == and != operators.
}
}
================================================
FILE: scatterer/DataSerialization/ConfigPoint.cs
================================================
using System;
using UnityEngine;
namespace Scatterer
{
public class ConfigPoint
{
[Persistent] public float altitude;
[Persistent] public float skyExposure;
[Persistent] public float skyAlpha;
[Persistent] public float skyExtinctionTint;
[Persistent] public float scatteringExposure;
[Persistent] public float extinctionThickness;
[Persistent] public float postProcessAlpha;
[Persistent] public float postProcessDepth;
[Persistent] public float extinctionTint;
public ConfigPoint(float inAltitude,float inSkyAlpha,float inSkyExposure,float inPostProcessAlpha,
float inPostProcessDepth,float inPostProcessExposure,
float inSkyExtinctionTint, float in_Post_Extinction_Tint,
float inExtinctionThickness)
{
altitude=inAltitude;
skyAlpha=inSkyAlpha;
skyExposure=inSkyExposure;
postProcessAlpha=inPostProcessAlpha;
postProcessDepth=inPostProcessDepth;
scatteringExposure=inPostProcessExposure;
skyExtinctionTint=inSkyExtinctionTint;
extinctionTint = in_Post_Extinction_Tint;
extinctionThickness = inExtinctionThickness;
}
public void getValuesFrom(ConfigPoint inConfigPoint)
{
skyAlpha=inConfigPoint.skyAlpha;
skyExposure=inConfigPoint.skyExposure;
postProcessAlpha=inConfigPoint.postProcessAlpha;
postProcessDepth=inConfigPoint.postProcessDepth;
scatteringExposure=inConfigPoint.scatteringExposure;
skyExtinctionTint=inConfigPoint.skyExtinctionTint;
extinctionTint = inConfigPoint.extinctionTint;
extinctionThickness = inConfigPoint.extinctionThickness;
}
public void interpolateValuesFrom(ConfigPoint inConfigPoint1, ConfigPoint inConfigPoint2, float x)
{
skyAlpha=Mathf.Lerp(inConfigPoint1.skyAlpha, inConfigPoint2.skyAlpha ,x);
skyExposure=Mathf.Lerp(inConfigPoint1.skyExposure, inConfigPoint2.skyExposure ,x);
postProcessAlpha=Mathf.Lerp(inConfigPoint1.postProcessAlpha, inConfigPoint2.postProcessAlpha ,x);
postProcessDepth=Mathf.Lerp(inConfigPoint1.postProcessDepth, inConfigPoint2.postProcessDepth ,x);
scatteringExposure=Mathf.Lerp(inConfigPoint1.scatteringExposure, inConfigPoint2.scatteringExposure ,x);
skyExtinctionTint=Mathf.Lerp(inConfigPoint1.skyExtinctionTint, inConfigPoint2.skyExtinctionTint ,x);
extinctionTint = Mathf.Lerp(inConfigPoint1.extinctionTint, inConfigPoint2.extinctionTint ,x);
extinctionThickness = Mathf.Lerp(inConfigPoint1.extinctionThickness, inConfigPoint2.extinctionThickness ,x);
}
public ConfigPoint()
{
}
}
}
================================================
FILE: scatterer/DataSerialization/ConfigReader.cs
================================================
using System.Collections;
using System.Collections.Generic;
using KSP;
using KSP.IO;
using UnityEngine;
namespace Scatterer
{
public class ConfigReader
{
[Persistent]
public List <ScattererCelestialBody> scattererCelestialBodies = new List <ScattererCelestialBody> {};
[Persistent]
public List<PlanetShineLightSource> celestialLightSourcesData=new List<PlanetShineLightSource> {};
public ConfigNode[] sunflareConfigs;
public UrlDir.UrlConfig[] baseConfigs,atmoConfigs,oceanConfigs;
public void loadConfigs ()
{
baseConfigs = GameDatabase.Instance.GetConfigs ("Scatterer_config"); //only used for displaying filepath
ConfigNode[] confNodes = GameDatabase.Instance.GetConfigNodes ("Scatterer_planetsList");
if (confNodes.Length == 0) {
Utils.LogError ("No planetsList file found, check your install");
return;
}
if (confNodes.Length > 1) {
Utils.LogError ("Multiple planetsList files detected, check your install");
}
ConfigNode.LoadObjectFromConfig (this, confNodes [0]);
atmoConfigs = GameDatabase.Instance.GetConfigs ("Scatterer_atmosphere");
oceanConfigs = GameDatabase.Instance.GetConfigs ("Scatterer_ocean");
sunflareConfigs = GameDatabase.Instance.GetConfigNodes ("Scatterer_sunflare");
}
}
}
================================================
FILE: scatterer/DataSerialization/MainSettingsReadWrite.cs
================================================
using System.Collections;
using System.Collections.Generic;
using KSP;
using KSP.IO;
using UnityEngine;
namespace Scatterer
{
public class MainSettingsReadWrite
{
[Persistent]
public bool autosavePlanetSettingsOnSceneChange=false;
[Persistent]
public bool disableAmbientLight=true;
[Persistent]
public bool integrateWithEVEClouds=true;
// [Persistent]
// public bool integrateEVECloudsGodrays=true;
[Persistent]
public bool overrideNearClipPlane=false;
[Persistent]
public float nearClipPlane=0.5f;
[Persistent]
public bool useOceanShaders = true;
[Persistent]
public bool oceanFoam = true;
[Persistent]
public bool oceanTransparencyAndRefractions = true;
[Persistent]
public bool shadowsOnOcean = true;
[Persistent]
public bool oceanSkyReflections = true;
[Persistent]
public bool oceanCaustics = true;
[Persistent]
public bool oceanLightRays = false;
[Persistent]
public bool oceanCraftWaveInteractions = true;
[Persistent]
public bool oceanCraftWaveInteractionsOverrideWaterCrashTolerance = true;
[Persistent]
public float buoyancyCrashToleranceMultOverride=1.2f * 3f;
[Persistent]
public bool oceanCraftWaveInteractionsOverrideDrag = true;
[Persistent]
public bool oceanCraftWaveInteractionsOverrideRecoveryVelocity = true;
[Persistent]
public float waterMaxRecoveryVelocity = 5f;
[Persistent]
public bool oceanPixelLights = false;
[Persistent]
public bool fullLensFlareReplacement = true;
[Persistent]
public bool sunlightExtinction = true;
[Persistent]
public bool underwaterLightDimming = true;
[Persistent]
public bool showMenuOnStart = true;
[Persistent]
public bool useEclipses = true;
[Persistent]
public bool useRingShadows = true;
//[Persistent]
public bool usePlanetShine = false;
[Persistent]
public bool d3d11ShadowFix = true;
[Persistent]
public bool useLegacyTerrainGodrays = false;
//[Persistent]
public bool mergeDepthPrePass = false;
//[Persistent]
public bool quarterResScattering = true;
[Persistent]
public bool useSubpixelMorphologicalAntialiasing = true;
[Persistent]
public int smaaQuality = 0;
[Persistent]
public bool useTemporalAntiAliasing = true;
[Persistent]
public float taaStationaryBlending = 0.90f;
[Persistent]
public float taaMotionBlending = 0.55f;
[Persistent]
public float taaJitterSpread = 0.9f;
[Persistent]
public float taaSharpness = 0.25f;
[Persistent]
public int disableTaaBelowFrameRateThreshold = 26;
[Persistent]
public bool terrainShadows = false;
//0 - None, 1 - Bruneton, 2 - Uncharted, 3 - Hable but disabled
[Persistent]
public int scatteringTonemapper = 2;
/*
[Persistent]
public float hableToeStrength;
[Persistent]
public float hableToeLength;
[Persistent]
public float hableShoulderStrength;
[Persistent]
public float hableShoulderLength;
[Persistent]
public float hableShoulderAngle;
[Persistent]
public float hableGamma;
*/
[Persistent]
public float unifiedCamShadowsDistance=50000f;
[Persistent]
public float unifiedCamShadowNormalBiasOverride=0.4f;
[Persistent]
public float unifiedCamShadowBiasOverride=0.125f;
[Persistent]
public int unifiedCamShadowResolutionOverride=0;
[Persistent]
public Vector3 unifiedCamShadowCascadeSplitsOverride=Vector3.zero;
[Persistent]
public float dualCamShadowsDistance=50000f;
[Persistent]
public float dualCamShadowNormalBiasOverride=0.4f;
[Persistent]
public float dualCamShadowBiasOverride=0.125f;
[Persistent]
public int dualCamShadowResolutionOverride=0;
[Persistent]
public Vector3 dualCamShadowCascadeSplitsOverride=Vector3.zero;
[Persistent]
public bool useDithering = true;
[Persistent]
public int m_fourierGridSize = 64;
[Persistent]
public int oceanMeshResolution = 8;
[Persistent]
public bool useLowResolutionAtmosphere = false;
public void loadMainSettings ()
{
UrlDir.UrlConfig[] baseConfigs = GameDatabase.Instance.GetConfigs ("Scatterer_config");
if (baseConfigs.Length == 0)
{
Utils.LogError ("No config file found, check your install");
return;
}
if (baseConfigs.Length > 1)
{
Utils.LogError ("Multiple config files detected, check your install");
}
ConfigNode.LoadObjectFromConfig (this, (baseConfigs [0]).config);
}
public void saveMainSettingsIfChanged()
{
UrlDir.UrlConfig[] baseConfigs = GameDatabase.Instance.GetConfigs ("Scatterer_config");
if (baseConfigs.Length == 0)
{
Utils.LogDebug ("No config file found, check your install");
return;
}
if (baseConfigs.Length > 1)
{
Utils.LogDebug ("Multiple config files detected, check your install");
}
MainSettingsReadWrite OldConfig = new MainSettingsReadWrite ();
ConfigNode.LoadObjectFromConfig (OldConfig, (baseConfigs [0]).config);
bool configChanged =
(OldConfig.autosavePlanetSettingsOnSceneChange != autosavePlanetSettingsOnSceneChange ||
OldConfig.disableAmbientLight != disableAmbientLight ||
OldConfig.integrateWithEVEClouds != integrateWithEVEClouds ||
// OldConfig.integrateEVECloudsGodrays != integrateEVECloudsGodrays ||
OldConfig.overrideNearClipPlane != overrideNearClipPlane ||
OldConfig.nearClipPlane != nearClipPlane ||
OldConfig.useOceanShaders != useOceanShaders ||
OldConfig.oceanFoam != oceanFoam ||
OldConfig.oceanTransparencyAndRefractions != oceanTransparencyAndRefractions ||
OldConfig.shadowsOnOcean != shadowsOnOcean ||
OldConfig.oceanSkyReflections != oceanSkyReflections ||
OldConfig.oceanCaustics != oceanCaustics ||
OldConfig.oceanLightRays != oceanLightRays ||
OldConfig.oceanCraftWaveInteractions != oceanCraftWaveInteractions ||
OldConfig.oceanCraftWaveInteractionsOverrideWaterCrashTolerance != oceanCraftWaveInteractionsOverrideWaterCrashTolerance ||
OldConfig.buoyancyCrashToleranceMultOverride != buoyancyCrashToleranceMultOverride ||
OldConfig.oceanCraftWaveInteractionsOverrideDrag != oceanCraftWaveInteractionsOverrideDrag ||
OldConfig.oceanCraftWaveInteractionsOverrideRecoveryVelocity != oceanCraftWaveInteractionsOverrideRecoveryVelocity ||
OldConfig.waterMaxRecoveryVelocity != waterMaxRecoveryVelocity ||
OldConfig.oceanPixelLights != oceanPixelLights ||
OldConfig.fullLensFlareReplacement != fullLensFlareReplacement ||
OldConfig.sunlightExtinction != sunlightExtinction ||
OldConfig.underwaterLightDimming != underwaterLightDimming ||
OldConfig.showMenuOnStart != showMenuOnStart ||
OldConfig.useEclipses != useEclipses ||
OldConfig.useRingShadows != useRingShadows ||
OldConfig.d3d11ShadowFix != d3d11ShadowFix ||
OldConfig.useLegacyTerrainGodrays != useLegacyTerrainGodrays ||
//OldConfig.mergeDepthPrePass != mergeDepthPrePass ||
OldConfig.quarterResScattering != quarterResScattering ||
OldConfig.useSubpixelMorphologicalAntialiasing != useSubpixelMorphologicalAntialiasing ||
OldConfig.smaaQuality != smaaQuality ||
OldConfig.useTemporalAntiAliasing != useTemporalAntiAliasing ||
OldConfig.taaStationaryBlending != taaStationaryBlending ||
OldConfig.taaMotionBlending != taaMotionBlending ||
OldConfig.taaJitterSpread != taaJitterSpread ||
OldConfig.taaSharpness != taaSharpness ||
OldConfig.disableTaaBelowFrameRateThreshold != disableTaaBelowFrameRateThreshold ||
OldConfig.terrainShadows != terrainShadows ||
OldConfig.scatteringTonemapper != scatteringTonemapper ||
/*
OldConfig.hableToeStrength != hableToeStrength ||
OldConfig.hableToeLength != hableToeLength ||
OldConfig.hableShoulderStrength != hableShoulderStrength ||
OldConfig.hableShoulderLength != hableShoulderLength ||
OldConfig.hableShoulderAngle != hableShoulderAngle ||
OldConfig.hableGamma != hableGamma ||
*/
OldConfig.useDithering != useDithering ||
OldConfig.unifiedCamShadowsDistance != unifiedCamShadowsDistance ||
OldConfig.unifiedCamShadowNormalBiasOverride != unifiedCamShadowNormalBiasOverride ||
OldConfig.unifiedCamShadowBiasOverride != unifiedCamShadowBiasOverride ||
OldConfig.unifiedCamShadowCascadeSplitsOverride != unifiedCamShadowCascadeSplitsOverride ||
OldConfig.unifiedCamShadowResolutionOverride != unifiedCamShadowResolutionOverride ||
OldConfig.dualCamShadowsDistance != dualCamShadowsDistance ||
OldConfig.dualCamShadowNormalBiasOverride != dualCamShadowNormalBiasOverride ||
OldConfig.dualCamShadowBiasOverride != dualCamShadowBiasOverride ||
OldConfig.dualCamShadowCascadeSplitsOverride != dualCamShadowCascadeSplitsOverride ||
OldConfig.dualCamShadowResolutionOverride != dualCamShadowResolutionOverride ||
OldConfig.m_fourierGridSize != m_fourierGridSize ||
OldConfig.oceanMeshResolution != oceanMeshResolution) ||
OldConfig.useLowResolutionAtmosphere != useLowResolutionAtmosphere;
if (configChanged)
{
Utils.LogDebug("Main config changed");
baseConfigs [0].config = ConfigNode.CreateConfigFromObject (this);
baseConfigs [0].config.name = "Scatterer_config";
Utils.LogDebug ("Saving settings to: " + baseConfigs [0].parent.url+".cfg");
baseConfigs [0].parent.SaveConfigs ();
}
else
{
Utils.LogDebug("No changes to main config, skipping saving.");
}
}
}
}
================================================
FILE: scatterer/DataSerialization/PlanetshineSource.cs
================================================
using System;
using UnityEngine;
using System.Collections.Generic;
namespace Scatterer
{
public class AtmoPlanetShineSource
{
[Persistent] public string bodyName;
[Persistent] public Vector3 color;
[Persistent] public float intensity;
[Persistent] public bool isSun;
public CelestialBody body;
}
public class PlanetShineLightSource
{
[Persistent] public string bodyName;
[Persistent] public Vector3 color;
[Persistent] public float intensity;
[Persistent] public bool isSun;
[Persistent] public string mainSunCelestialBody;
[Persistent] public float localRange;
[Persistent] public float scaledRange;
[Persistent] public float fadeRadius;
}
}
================================================
FILE: scatterer/DataSerialization/PluginDataReadWrite.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
using KSP;
using KSP.IO;
using UnityEngine;
namespace Scatterer
{
public class PluginDataReadWrite
{
[Persistent]
public string guiModifierKey1String=KeyCode.LeftAlt.ToString();
[Persistent]
public string guiModifierKey2String=KeyCode.RightAlt.ToString();
[Persistent]
public string guiKey1String=KeyCode.F10.ToString();
[Persistent]
public string guiKey2String=KeyCode.F11.ToString();
[Persistent]
public int scrollSectionHeight = 500;
[Persistent]
public Vector2 inGameWindowLocation=Vector2.zero;
public KeyCode guiKey1, guiKey2, guiModifierKey1, guiModifierKey2 ;
public void loadPluginData ()
{
try
{
ConfigNode confNode = ConfigNode.Load (Utils.PluginPath + "/config/PluginData/pluginData.cfg");
ConfigNode.LoadObjectFromConfig (this, confNode);
guiKey1 = (KeyCode)Enum.Parse(typeof(KeyCode), guiKey1String);
guiKey2 = (KeyCode)Enum.Parse(typeof(KeyCode), guiKey2String);
guiModifierKey1 = (KeyCode)Enum.Parse(typeof(KeyCode), guiModifierKey1String);
guiModifierKey2 = (KeyCode)Enum.Parse(typeof(KeyCode), guiModifierKey2String);
}
catch (Exception stupid)
{
Utils.LogError("Couldn't load pluginData "+stupid.ToString());
}
}
public void savePluginData ()
{
try
{
var dir = Utils.PluginPath + "/config/PluginData";
if (!System.IO.Directory.Exists(dir)) System.IO.Directory.CreateDirectory(dir);
ConfigNode cnTemp = ConfigNode.CreateConfigFromObject (this);
cnTemp.Save (dir + "/pluginData.cfg");
}
catch (Exception stupid)
{
Utils.LogError("Couldn't save pluginData "+stupid.ToString());
}
}
}
}
================================================
FILE: scatterer/DataSerialization/QualityPresetsLoader.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;
using System.Runtime;
using KSP;
using KSP.IO;
using UnityEngine;
namespace Scatterer
{
public class QualityPresetsLoader
{
public static String[] GetPresetsList()
{
List<String> presetStrings = new List<String> ();
UrlDir.UrlConfig[] presetsList = GameDatabase.Instance.GetConfigs ("Scatterer_quality_preset");
foreach (UrlDir.UrlConfig _url in presetsList)
{
ConfigNode[] configNodeArray = _url.config.GetNodes("Quality_preset");
foreach(ConfigNode _cn in configNodeArray)
{
if (_cn.HasValue("name"))
{
presetStrings.Add(_cn.GetValue("name"));
}
}
}
return presetStrings.ToArray();
}
public static void LoadPresetIntoMainSettings(MainSettingsReadWrite settings, string presetName)
{
List<String> presetStrings = new List<String> ();
UrlDir.UrlConfig[] presetsList = GameDatabase.Instance.GetConfigs ("Scatterer_quality_preset");
foreach (UrlDir.UrlConfig _url in presetsList)
{
ConfigNode[] configNodeArray = _url.config.GetNodes("Quality_preset");
foreach(ConfigNode _cn in configNodeArray)
{
if (_cn.HasValue("name") && (_cn.GetValue("name") == presetName))
{
LoadConfigNodeIntoMainSettings(settings, _cn);
break;
}
}
}
}
private static void LoadConfigNodeIntoMainSettings(MainSettingsReadWrite settings, ConfigNode cn)
{
MainSettingsReadWrite tempMainSettings = new MainSettingsReadWrite();
Type targetType = tempMainSettings.GetType ();
ConfigNode.LoadObjectFromConfig (tempMainSettings, cn);
foreach (FieldInfo fi in targetType.GetFields())
{
if (cn.HasValue(fi.Name))
{
fi.SetValue(settings, fi.GetValue(tempMainSettings));
}
}
}
public static string FindPresetOfCurrentSettings(MainSettingsReadWrite settings)
{
UrlDir.UrlConfig[] presetsList = GameDatabase.Instance.GetConfigs ("Scatterer_quality_preset");
foreach (UrlDir.UrlConfig _url in presetsList)
{
ConfigNode[] configNodeArray = _url.config.GetNodes("Quality_preset");
foreach(ConfigNode _cn in configNodeArray)
{
if (_cn.HasValue("name"))
{
if (PresetMatchesCurrentSettings(settings,_cn))
{
return _cn.GetValue("name");
}
}
}
}
return ("No preset - custom settings");
}
private static bool PresetMatchesCurrentSettings(MainSettingsReadWrite settings, ConfigNode cn)
{
MainSettingsReadWrite tempMainSettings = new MainSettingsReadWrite();
Type targetType = tempMainSettings.GetType ();
ConfigNode.LoadObjectFromConfig (tempMainSettings, cn);
bool match = true;
bool compared = false;
foreach (FieldInfo fi in targetType.GetFields())
{
if (cn.HasValue(fi.Name))
{
if (!CompareFields(fi, settings, tempMainSettings))
{
return false;
}
compared = true;
}
}
return match && compared;
}
private static bool CompareFields(FieldInfo fi, MainSettingsReadWrite settings1, MainSettingsReadWrite settings2)
{
if (fi.FieldType == typeof(float))
{
return ((float)(fi.GetValue (settings1)) == (float)(fi.GetValue (settings2)));
}
else if (fi.FieldType == typeof(int))
{
return ((int)(fi.GetValue (settings1)) == (int)(fi.GetValue (settings2)));
}
else if (fi.FieldType == typeof(bool))
{
return ((bool)(fi.GetValue (settings1)) == (bool)(fi.GetValue (settings2)));
}
else if (fi.FieldType == typeof(Vector3))
{
return ((Vector3)(fi.GetValue (settings1)) == (Vector3)(fi.GetValue (settings2)));
}
Utils.LogError("Unhandled preset type? "+fi.FieldType.ToString());
return false;
}
}
}
================================================
FILE: scatterer/DataSerialization/ScattererCelestialBody.cs
================================================
using System;
using UnityEngine;
using System.Collections.Generic;
using System.Linq;
namespace Scatterer
{
public class ScattererCelestialBody
{
[Persistent] public string celestialBodyName;
[Persistent] public string transformName;
[Persistent] public float loadDistance;
[Persistent] public float unloadDistance;
[Persistent] public bool hasOcean;
[Persistent] public bool usesCloudIntegration;
[Persistent] public bool cloudIntegrationUsesScattererSunColors = false;
[Persistent] public bool flatScaledSpaceModel;
[Persistent] public string mainSunCelestialBody;
[Persistent] public bool sunsUseIntensityCurves = false;
[Persistent] public Color sunColor = Color.white;
[Persistent] public List<string> eclipseCasters=new List<string> {};
[Persistent] public List<SecondarySunConfig> secondarySuns=new List<SecondarySunConfig> {};
[Persistent] public List<AtmoPlanetShineSource> planetshineSources=new List<AtmoPlanetShineSource> {};
public CelestialBody celestialBody;
public Transform transform;
public bool isFound = false;
public bool active;
public ProlandManager prolandManager;
public ScattererCelestialBody ()
{
}
}
public class SecondarySunConfig
{
[Persistent] public string celestialBodyName;
[Persistent] public Color sunColor = Color.white;
//[Persistent] public List<string> eclipseCasters=new List<string> {}; //maybe don't do this at the start? or at all, especially since we will half-ass it by not being able to eclipse light on terrain anyway
}
public class SecondarySun
{
public SecondarySunConfig config;
public CelestialBody celestialBody;
public Light sunLight = null;
public Light scaledSunLight = null;
//public List<CelestialBody> eclipseCasters=new List<CelestialBody> {};
public SecondarySun (SecondarySunConfig inConfig, CelestialBody body)
{
config = inConfig;
celestialBody = body;
}
public static SecondarySun FindSecondarySun (SecondarySunConfig inConfig)
{
var celestialBody = FlightGlobals.Bodies.SingleOrDefault (_cb => _cb.GetName () == inConfig.celestialBodyName);
if (celestialBody == null)
{
Utils.LogError ("Secondary sun " + inConfig.celestialBodyName + " not found, will be unavailable for atmo/ocean effects");
return null;
}
else
{
SecondarySun secondarySun = new SecondarySun(inConfig, celestialBody);
return secondarySun;
}
}
}
}
================================================
FILE: scatterer/Effects/AntiAliasing/GenericAntiAliasing.cs
================================================
using UnityEngine;
namespace Scatterer
{
public abstract class GenericAntiAliasing : MonoBehaviour
{
public GenericAntiAliasing ()
{
}
}
}
================================================
FILE: scatterer/Effects/AntiAliasing/SubpixelMorphologicalAntialiasing.cs
================================================
using System;
using UnityEngine;
using UnityEngine.Rendering;
namespace Scatterer
{
public class SubpixelMorphologicalAntialiasing : GenericAntiAliasing
{
Camera targetCamera;
CommandBuffer SMAACommandBuffer;
Material SMAAMaterial;
enum Pass { EdgeDetection = 0, BlendWeights = 3, NeighborhoodBlending = 6 }
public enum Quality { DepthMode = 0, Medium = 1, High = 2 }
private static CameraEvent SMAACameraEvent = CameraEvent.AfterForwardAlpha; // BeforeImageEffects doesn't work well
Quality quality;
public void forceDepthBuffermode()
{
quality = Quality.DepthMode;
initialized = false;
}
int flipRenderTargetNameID, flopRenderTargetNameID;
static Texture2D areaTex, searchTex;
bool initialized = false;
bool hdrEnabled = false;
public Quality QualityUsed { get => quality; }
public void Awake()
{
targetCamera = GetComponent<Camera> ();
targetCamera.forceIntoRenderTexture = true;
hdrEnabled = targetCamera.allowHDR;
// surely there are better names for these? They're both temporaries
flipRenderTargetNameID = Shader.PropertyToID("_SMAA_Flip");
flopRenderTargetNameID = Shader.PropertyToID("_SMAA_Flop");
SMAAMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/SubpixelMorphologicalAntialiasing")]);
if (areaTex == null)
areaTex = (Texture2D) ShaderReplacer.Instance.LoadedTextures ["AreaTex"];
if (searchTex == null)
searchTex = (Texture2D)ShaderReplacer.Instance.LoadedTextures ["SearchTex"];
SMAAMaterial.SetTexture("_AreaTex" , areaTex);
SMAAMaterial.SetTexture("_SearchTex", searchTex);
quality = (Quality)((Int32) Mathf.Clamp( (float) Scatterer.Instance.mainSettings.smaaQuality,1f,2f)); //limit to 1 and 2, 1 and 2 are image-based. 0 is depth-based and would make performance worse by having to run for each camera's depth
//only use depth mode when we force it for the IVA camera
SMAACommandBuffer = new CommandBuffer ();
SMAACommandBuffer.name = $"Scatterer SMAA CommandBuffer for {targetCamera.name}";
}
static readonly int MainTextureProperty = Shader.PropertyToID("_MainTexture");
static readonly int BlendTexproperty = Shader.PropertyToID("_BlendTex");
public void OnPreCull()
{
if (!initialized || targetCamera.allowHDR != hdrEnabled)
{
SMAACommandBuffer.Clear ();
hdrEnabled = targetCamera.allowHDR;
var colorFormat = hdrEnabled ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.ARGB32;
SMAACommandBuffer.GetTemporaryRT(flipRenderTargetNameID, -1, -1, 0, FilterMode.Bilinear, colorFormat);
// TODO: how do we make sure to match the previous settings? Do we need to use RenderTextureDescriptor?
//flip.anisoLevel = 1;
//flip.antiAliasing = 1;
//flip.volumeDepth = 0;
//flip.useMipMap = false;
//flip.autoGenerateMips = false;
//flip.wrapMode = TextureWrapMode.Clamp;
//flip.filterMode = FilterMode.Bilinear;
SMAACommandBuffer.GetTemporaryRT(flopRenderTargetNameID, -1, -1, 0, FilterMode.Bilinear, colorFormat);
SMAACommandBuffer.SetRenderTarget (flopRenderTargetNameID);
SMAACommandBuffer.ClearRenderTarget (false, true, Color.clear);
SMAACommandBuffer.SetRenderTarget (flipRenderTargetNameID);
SMAACommandBuffer.ClearRenderTarget (false, true, Color.clear);
SMAACommandBuffer.SetGlobalTexture (MainTextureProperty, BuiltinRenderTextureType.CameraTarget);
SMAACommandBuffer.Blit (null, flipRenderTargetNameID, SMAAMaterial, (int)Pass.EdgeDetection + (int)quality); //screen to flip with edge detection
SMAACommandBuffer.SetGlobalTexture (MainTextureProperty, flipRenderTargetNameID);
SMAACommandBuffer.Blit (null, flopRenderTargetNameID, SMAAMaterial, (int)Pass.BlendWeights + (int)quality); //flip to flop with blendweights
SMAACommandBuffer.SetGlobalTexture (BlendTexproperty, flopRenderTargetNameID);
SMAACommandBuffer.SetGlobalTexture (MainTextureProperty, BuiltinRenderTextureType.CameraTarget);
SMAACommandBuffer.Blit (null, flipRenderTargetNameID, SMAAMaterial, (int)Pass.NeighborhoodBlending); //neighborhood blending to flip
SMAACommandBuffer.Blit (flipRenderTargetNameID, BuiltinRenderTextureType.CameraTarget); //blit back to screen
targetCamera.AddCommandBuffer (SMAACameraEvent, SMAACommandBuffer);
initialized = true;
}
}
public void OnDestroy()
{
SMAAMaterial = null;
if (SMAACommandBuffer !=null)
{
targetCamera.RemoveCommandBuffer (SMAACameraEvent, SMAACommandBuffer);
SMAACommandBuffer.Clear();
SMAACommandBuffer.Release();
SMAACommandBuffer = null;
initialized = false;
}
}
}
}
================================================
FILE: scatterer/Effects/AntiAliasing/TemporalAntiAliasing.cs
================================================
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.XR;
namespace Scatterer
{
// Temporal anti-aliasing from Unity post-processing stack V2
// Modified to not blur the ocean, removed dependency on other postprocessing classes I don't need here so we can initialize and make everything work by just adding this to a camera
// Generating motion vectors for the ocean is both expensive and unnecessary so we should just not apply TAA on the ocean, otherwise it would just blur it without proper motion vectors
public class TemporalAntiAliasing : GenericAntiAliasing
{
public float jitterSpread = 0.9f; //The diameter (in texels) inside which jitter samples are spread. Smaller values result in crisper but more aliased output, while larger values result in more stable, but blurrier, output. Range(0.1f, 1f)
public float sharpness = 0.25f; //Controls the amount of sharpening applied to the color buffer. High values may introduce dark-border artifacts. Range(0f, 3f)
public float stationaryBlending = 0.90f; //The blend coefficient for a stationary fragment. Controls the percentage of history sample blended into the final color. Range(0f, 0.99f)
public float motionBlending = 0.55f; //The blend coefficient for a fragment with significant motion. Controls the percentage of history sample blended into the final color. Range(0f, 0.99f)
public Vector2 jitter { get; private set; } // The current jitter amount
public int sampleIndex { get; private set; } // The current sample index
enum Pass {SolverDilate, SolverNoDilate}
readonly RenderTargetIdentifier[] m_Mrt = new RenderTargetIdentifier[2];
bool m_ResetHistory = true;
bool hdrEnabled = false;
const int k_SampleCount = 8;
// Ping-pong between two history textures as we can't read & write the same target in the same pass
const int eyesCount = 2; const int historyTexturesCount = 2;
RenderTexture[][] historyTextures = new RenderTexture[eyesCount][];
int[] m_HistoryPingPong = new int [eyesCount];
Camera targetCamera;
CommandBuffer temporalAACommandBuffer;
Material temporalAAMaterial;
DepthTextureMode originalDepthTextureMode;
public bool checkOceanDepth = false;
public bool jitterTransparencies = false;
public bool resetMotionVectors = true;
private static int jitterProperty = Shader.PropertyToID("_Jitter");
private static int keepPreviousMotionVectorsProperty = Shader.PropertyToID("TAA_KeepPreviousMotionVectors");
private static CameraEvent TAACameraEvent = CameraEvent.AfterForwardAlpha; // BeforeImageEffects doesn't work well
bool firstFrame = true;
public void Awake()
{
targetCamera = GetComponent<Camera>();
originalDepthTextureMode = targetCamera.depthTextureMode;
targetCamera.depthTextureMode = DepthTextureMode.Depth | DepthTextureMode.MotionVectors;
targetCamera.forceIntoRenderTexture = true;
temporalAAMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/TemporalAntialiasing")]);
Utils.EnableOrDisableShaderKeywords(temporalAAMaterial, "CUSTOM_OCEAN_ON", "CUSTOM_OCEAN_OFF", false);
jitterSpread = Scatterer.Instance.mainSettings.taaJitterSpread;
sharpness = Scatterer.Instance.mainSettings.taaSharpness;
stationaryBlending = Scatterer.Instance.mainSettings.taaStationaryBlending;
motionBlending = Scatterer.Instance.mainSettings.taaMotionBlending;
const float kMotionAmplification = 100f * 60f;
temporalAAMaterial.SetFloat("_Sharpness", sharpness);
temporalAAMaterial.SetVector("_FinalBlendParameters", new Vector4(stationaryBlending, motionBlending, kMotionAmplification, 0f));
temporalAACommandBuffer = new CommandBuffer();
temporalAACommandBuffer.name = $"Scatterer TAA CommandBuffer for {targetCamera.name}";
}
internal DepthTextureMode GetCameraFlags()
{
return DepthTextureMode.Depth | DepthTextureMode.MotionVectors;
}
internal void ResetHistory()
{
m_ResetHistory = true;
}
Vector2 GenerateRandomOffset()
{
// The variance between 0 and the actual halton sequence values reveals noticeable instability
// in Unity's shadow maps, so we avoid index 0.
var offset = new Vector2(
HaltonSeq.Get((sampleIndex & 1023) + 1, 2) - 0.5f,
HaltonSeq.Get((sampleIndex & 1023) + 1, 3) - 0.5f
);
if (++sampleIndex >= k_SampleCount)
sampleIndex = 0;
return offset;
}
private static class RuntimeUtilities
{
/// Gets a jittered perspective projection matrix for a given camera.
public static Matrix4x4 GetJitteredPerspectiveProjectionMatrix(Camera camera, Vector2 offset)
{
float near = camera.nearClipPlane;
float far = camera.farClipPlane;
float vertical = Mathf.Tan(0.5f * Mathf.Deg2Rad * camera.fieldOfView) * near;
float horizontal = vertical * camera.aspect;
offset.x *= horizontal / (0.5f * camera.pixelWidth);
offset.y *= vertical / (0.5f * camera.pixelHeight);
var matrix = camera.projectionMatrix;
matrix[0, 2] += offset.x / horizontal;
matrix[1, 2] += offset.y / vertical;
return matrix;
}
public static Matrix4x4 GetJitteredOrthographicProjectionMatrix(Camera camera, Vector2 offset)
{
float vertical = camera.orthographicSize;
float horizontal = vertical * camera.aspect;
offset.x *= horizontal / (0.5f * camera.pixelWidth);
offset.y *= vertical / (0.5f * camera.pixelHeight);
float left = offset.x - horizontal;
float right = offset.x + horizontal;
float top = offset.y + vertical;
float bottom = offset.y - vertical;
return Matrix4x4.Ortho(left, right, bottom, top, camera.nearClipPlane, camera.farClipPlane);
}
public static Matrix4x4 GenerateJitteredProjectionMatrixFromOriginal(int screenWidth, int screenHeight, Matrix4x4 origProj, Vector2 jitter)
{
var planes = origProj.decomposeProjection;
float vertFov = Mathf.Abs(planes.top) + Mathf.Abs(planes.bottom);
float horizFov = Mathf.Abs(planes.left) + Mathf.Abs(planes.right);
var planeJitter = new Vector2(jitter.x * horizFov / screenWidth,
jitter.y * vertFov / screenHeight);
planes.left += planeJitter.x;
planes.right += planeJitter.x;
planes.top += planeJitter.y;
planes.bottom += planeJitter.y;
var jitteredMatrix = Matrix4x4.Frustum(planes);
return jitteredMatrix;
}
}
/// Generates a jittered projection matrix for a given camera.
public Matrix4x4 GetJitteredProjectionMatrix(Camera camera)
{
Matrix4x4 cameraProj;
jitter = GenerateRandomOffset();
jitter *= jitterSpread;
cameraProj = camera.orthographic
? RuntimeUtilities.GetJitteredOrthographicProjectionMatrix(camera, jitter)
: RuntimeUtilities.GetJitteredPerspectiveProjectionMatrix(camera, jitter);
jitter = new Vector2(jitter.x / camera.pixelWidth, jitter.y / camera.pixelHeight);
return cameraProj;
}
/// Prepares the jittered and non jittered projection matrices
public void ConfigureJitteredProjectionMatrix(Camera camera)
{
// camera.nonJitteredProjectionMatrix = camera.projectionMatrix; // should this be here? it's in the stock postprocess code
camera.projectionMatrix = GetJitteredProjectionMatrix(camera);
camera.useJitteredProjectionMatrixForTransparentRendering = jitterTransparencies;
}
public void ConfigureStereoJitteredProjectionMatrices(Camera camera)
{
jitter = GenerateRandomOffset();
jitter *= jitterSpread;
// see PostProcessRenderContext.camera set property
int screenWidth, screenHeight;
if (camera.stereoEnabled)
{
screenWidth = XRSettings.eyeTextureWidth;
screenHeight = XRSettings.eyeTextureHeight;
}
else
{
screenWidth = camera.pixelWidth;
screenHeight = camera.pixelHeight;
}
for (var eye = Camera.StereoscopicEye.Left; eye <= Camera.StereoscopicEye.Right; eye++)
{
// This saves off the device generated projection matrices as non-jittered
camera.CopyStereoDeviceProjectionMatrixToNonJittered(eye);
var originalProj = camera.GetStereoNonJitteredProjectionMatrix(eye);
// Currently no support for custom jitter func, as VR devices would need to provide
// original projection matrix as input along with jitter
var jitteredMatrix = RuntimeUtilities.GenerateJitteredProjectionMatrixFromOriginal(screenWidth, screenHeight, originalProj, jitter);
camera.SetStereoProjectionMatrix(eye, jitteredMatrix);
}
// jitter has to be scaled for the actual eye texture size, not just the intermediate texture size
// which could be double-wide in certain stereo rendering scenarios
jitter = new Vector2(jitter.x / screenWidth, jitter.y / screenHeight);
camera.useJitteredProjectionMatrixForTransparentRendering = jitterTransparencies;
}
RenderTexture CheckHistory(int id, CommandBuffer cmd, int activeEye)
{
if (historyTextures[activeEye] == null)
historyTextures[activeEye] = new RenderTexture[historyTexturesCount];
if (hdrEnabled != targetCamera.allowHDR)
ResetHistory();
var historyRT = historyTextures[activeEye][id];
if (m_ResetHistory || historyRT == null || !historyRT.IsCreated())
{
RenderTexture.ReleaseTemporary(historyRT);
int width, height;
if (targetCamera.activeTexture)
{
width = targetCamera.activeTexture.width;
height = targetCamera.activeTexture.height;
}
else
{
width = Screen.width;
height = Screen.height;
}
hdrEnabled = targetCamera.allowHDR;
historyRT = RenderTexture.GetTemporary (width, height, 0, hdrEnabled ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.ARGB32);
historyRT.name = "Temporal Anti-aliasing History id #" + id;
historyRT.filterMode = FilterMode.Bilinear;
historyTextures[activeEye][id] = historyRT;
cmd.Blit(BuiltinRenderTextureType.CameraTarget, historyRT);
}
return historyTextures[activeEye][id];
}
//adapted from the original render() method
public void OnPreCull()
{
bool screenShotModeEnabled = GameSettings.TAKE_SCREENSHOT.GetKeyDown(false);
float currentFps = 1.0f / Time.deltaTime;
bool aboveFpsThreshold = currentFps >= Scatterer.Instance.mainSettings.disableTaaBelowFrameRateThreshold
|| !Scatterer.Instance.mainSettings.useSubpixelMorphologicalAntialiasing;
if (!screenShotModeEnabled && aboveFpsThreshold)
{
temporalAACommandBuffer.Clear();
int activeEye = targetCamera.stereoActiveEye == Camera.MonoOrStereoscopicEye.Right ? 1 : 0;
int pingPongIndex = m_HistoryPingPong[activeEye];
RenderTexture historyRead = CheckHistory(++pingPongIndex % 2, temporalAACommandBuffer, activeEye);
RenderTexture historyWrite = CheckHistory(++pingPongIndex % 2, temporalAACommandBuffer, activeEye);
m_HistoryPingPong[activeEye] = ++pingPongIndex % 2;
if (firstFrame)
{
temporalAACommandBuffer.Blit(BuiltinRenderTextureType.CameraTarget, historyWrite);
}
else
{
ConfigureJitteredProjectionMatrix(targetCamera);
//TODO: move to shader properties
if (checkOceanDepth)
Utils.EnableOrDisableShaderKeywords(temporalAAMaterial, "CUSTOM_OCEAN_ON", "CUSTOM_OCEAN_OFF", Scatterer.Instance.scattererCelestialBodiesManager.isCustomOceanEnabledOnScattererPlanet);
temporalAAMaterial.SetTexture(ShaderProperties._HistoryTex_PROPERTY, historyRead);
int pass = (int)Pass.SolverDilate;
temporalAACommandBuffer.SetGlobalTexture(ShaderProperties._ScreenColor_PROPERTY, BuiltinRenderTextureType.CameraTarget);
temporalAACommandBuffer.Blit(null, historyWrite, temporalAAMaterial, pass);
temporalAACommandBuffer.Blit(historyWrite, BuiltinRenderTextureType.CameraTarget);
}
targetCamera.AddCommandBuffer (TAACameraEvent, temporalAACommandBuffer);
m_ResetHistory = false;
firstFrame = false;
if (resetMotionVectors)
{
Shader.SetGlobalInt(keepPreviousMotionVectorsProperty, 0);
}
else
{
Shader.SetGlobalInt(keepPreviousMotionVectorsProperty, 1);
}
}
else
{
firstFrame = true;
}
}
public void OnPostRender()
{
ResetProjection();
targetCamera.RemoveCommandBuffer (TAACameraEvent, temporalAACommandBuffer);
}
// This is needed otherwise transparencies jitter
public void ResetProjection()
{
targetCamera.ResetProjectionMatrix();
targetCamera.nonJitteredProjectionMatrix = targetCamera.projectionMatrix;
}
public void OnDestroy()
{
if (temporalAACommandBuffer != null)
targetCamera.RemoveCommandBuffer (TAACameraEvent, temporalAACommandBuffer);
targetCamera.depthTextureMode = originalDepthTextureMode;
if (historyTextures != null)
{
for (int i = 0; i < historyTextures.Length; i++)
{
if (historyTextures[i] == null)
continue;
for (int j = 0; j < historyTextures[i].Length; j++)
{
RenderTexture.ReleaseTemporary(historyTextures[i][j]);
historyTextures[i][j] = null;
}
historyTextures[i] = null;
}
}
sampleIndex = 0;
m_HistoryPingPong[0] = 0;
m_HistoryPingPong[1] = 1;
ResetHistory();
targetCamera.ResetProjectionMatrix();
}
}
}
================================================
FILE: scatterer/Effects/AntiAliasing/Utils/HaltonSeq.cs
================================================
namespace Scatterer
{
/// Halton sequence utility from unity post-processing stack V2
public static class HaltonSeq
{
/// <summary>
/// Gets a value from the Halton sequence for a given index and radix.
/// </summary>
/// <param name="index">The sequence index</param>
/// <param name="radix">The sequence base</param>
/// <returns>A number from the Halton sequence between 0 and 1.</returns>
public static float Get(int index, int radix)
{
float result = 0f;
float fraction = 1f / (float)radix;
while (index > 0)
{
result += (float)(index % radix) * fraction;
index /= radix;
fraction /= (float)radix;
}
return result;
}
}
}
================================================
FILE: scatterer/Effects/PlanetShine/PlanetShineLight.cs
================================================
using System;
using UnityEngine;
namespace Scatterer
{
public class PlanetShineLight : MonoBehaviour
{
public GameObject scaledLight, localLight;
public bool isSun;
public CelestialBody source, sunCelestialBody;
public void updateLight()
{
scaledLight.gameObject.transform.position=ScaledSpace.LocalToScaledSpace(source.transform.position);
localLight.gameObject.transform.position=(source.transform.position);
if (!isSun)
{
localLight.gameObject.transform.LookAt(sunCelestialBody.transform.position);
scaledLight.gameObject.transform.LookAt (ScaledSpace.LocalToScaledSpace (sunCelestialBody.transform.position));
}
}
public void OnDestroy()
{
UnityEngine.Object.Destroy (scaledLight);
UnityEngine.Object.Destroy (localLight);
}
}
}
================================================
FILE: scatterer/Effects/PlanetShine/PlanetshineManager.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Scatterer
{
public class PlanetshineManager
{
List<PlanetShineLight> celestialLightSources=new List<PlanetShineLight> {};
Cubemap planetShineCookieCubeMap;
public PlanetshineManager ()
{
//load planetshine "cookie" cubemap
planetShineCookieCubeMap = new Cubemap (512, TextureFormat.ARGB32, true);
Texture2D[] cubeMapFaces = new Texture2D[6];
for (int i = 0; i < 6; i++) {
cubeMapFaces [i] = new Texture2D (512, 512);
}
cubeMapFaces [0].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_NegativeX.png")));
cubeMapFaces [1].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_PositiveX.png")));
cubeMapFaces [2].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_NegativeY.png")));
cubeMapFaces [3].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_PositiveY.png")));
cubeMapFaces [4].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_NegativeZ.png")));
cubeMapFaces [5].LoadImage (System.IO.File.ReadAllBytes (String.Format ("{0}/{1}", Utils.PluginPath + "/planetShineCubemap", "_PositiveZ.png")));
planetShineCookieCubeMap.SetPixels (cubeMapFaces [0].GetPixels (), CubemapFace.NegativeX);
planetShineCookieCubeMap.SetPixels (cubeMapFaces [1].GetPixels (), CubemapFace.PositiveX);
planetShineCookieCubeMap.SetPixels (cubeMapFaces [2].GetPixels (), CubemapFace.NegativeY);
planetShineCookieCubeMap.SetPixels (cubeMapFaces [3].GetPixels (), CubemapFace.PositiveY);
planetShineCookieCubeMap.SetPixels (cubeMapFaces [4].GetPixels (), CubemapFace.NegativeZ);
planetShineCookieCubeMap.SetPixels (cubeMapFaces [5].GetPixels (), CubemapFace.PositiveZ);
planetShineCookieCubeMap.Apply ();
foreach (PlanetShineLightSource _aSource in Scatterer.Instance.planetsConfigsReader.celestialLightSourcesData)
{
var celBody = FlightGlobals.Bodies.SingleOrDefault (_cb => _cb.bodyName == _aSource.bodyName);
if (celBody)
{
PlanetShineLight aPsLight = new PlanetShineLight ();
aPsLight.isSun = _aSource.isSun;
aPsLight.source = celBody;
if (!_aSource.isSun)
aPsLight.sunCelestialBody = FlightGlobals.Bodies.SingleOrDefault (_cb => _cb.GetName () == _aSource.mainSunCelestialBody);
// GameObject ScaledPlanetShineLight = (UnityEngine.GameObject)Instantiate (Scatterer.Instance.scaledSpaceSunLight.gameObject);
// GameObject LocalPlanetShineLight = (UnityEngine.GameObject)Instantiate (Scatterer.Instance.scaledSpaceSunLight.gameObject);
//TODO: fix this if I ever come back to it
GameObject ScaledPlanetShineLight = new GameObject();
GameObject LocalPlanetShineLight = new GameObject();
ScaledPlanetShineLight.GetComponent<Light> ().type = LightType.Point;
if (!_aSource.isSun)
ScaledPlanetShineLight.GetComponent<Light> ().cookie = planetShineCookieCubeMap;
//ScaledPlanetShineLight.GetComponent<Light>().range=1E9f;
ScaledPlanetShineLight.GetComponent<Light> ().range = _aSource.scaledRange;
ScaledPlanetShineLight.GetComponent<Light> ().color = new Color (_aSource.color.x, _aSource.color.y, _aSource.color.z);
ScaledPlanetShineLight.name = celBody.name + "PlanetShineLight(ScaledSpace)";
LocalPlanetShineLight.GetComponent<Light> ().type = LightType.Point;
if (!_aSource.isSun)
LocalPlanetShineLight.GetComponent<Light> ().cookie = planetShineCookieCubeMap;
//LocalPlanetShineLight.GetComponent<Light>().range=1E9f;
LocalPlanetShineLight.GetComponent<Light> ().range = _aSource.scaledRange * ScaledSpace.ScaleFactor;
LocalPlanetShineLight.GetComponent<Light> ().color = new Color (_aSource.color.x, _aSource.color.y, _aSource.color.z);
LocalPlanetShineLight.GetComponent<Light> ().cullingMask = 557591;
LocalPlanetShineLight.GetComponent<Light> ().shadows = LightShadows.Soft;
LocalPlanetShineLight.GetComponent<Light> ().shadowCustomResolution = 2048;
LocalPlanetShineLight.name = celBody.name + "PlanetShineLight(LocalSpace)";
aPsLight.scaledLight = ScaledPlanetShineLight;
aPsLight.localLight = LocalPlanetShineLight;
celestialLightSources.Add (aPsLight);
Utils.LogDebug ("Added celestialLightSource " + aPsLight.source.name);
}
}
}
public void UpdatePlanetshine ()
{
foreach (PlanetShineLight _aLight in celestialLightSources)
{
_aLight.updateLight();
}
}
public void Cleanup()
{
foreach (PlanetShineLight _aLight in celestialLightSources)
{
_aLight.OnDestroy();
UnityEngine.Object.Destroy(_aLight);
}
}
}
}
================================================
FILE: scatterer/Effects/Proland/Atmosphere/Godrays/LegacyGodraysRenderer.cs
================================================
using UnityEngine;
using UnityEngine.Rendering;
using System.Collections.Generic;
using System;
namespace Scatterer
{
public class LegacyGodraysRenderer : MonoBehaviour
{
SkyNode parentSkyNode;
Camera targetCamera;
Light targetLight;
ComputeBuffer inverseShadowMatricesBuffer;
ComputeShader inverseShadowMatricesComputeShader;
CommandBuffer shadowVolumeCB;
Material volumeDepthMaterial;
GameObject volumeDepthGO;
public RenderTexture volumeDepthTexture;
// GameObject cloudShadowGO;
// MeshRenderer cloudShadowMR;
// Dictionary<ShadowMapPass, List<CommandBuffer>> shadowRenderCommandBuffers = new Dictionary<ShadowMapPass, List<CommandBuffer>> ();
// List<Tuple<EVEClouds2d,Material>> cloudsShadowsMaterials = new List<Tuple<EVEClouds2d, Material>>();
// RenderTexture cloudShadowMap;
// CommandBuffer clearShadowMapCB;
bool commandBufferAdded = false;
public LegacyGodraysRenderer ()
{
}
public bool Init(Light inputLight, SkyNode inputParentSkyNode)
{
if (!SystemInfo.supportsComputeShaders)
{
Utils.LogError("Compute shaders not supported, godrays can't be added");
return false;
}
if (ShaderReplacer.Instance.LoadedComputeShaders.ContainsKey ("ComputeInverseShadowMatrices"))
{
inverseShadowMatricesComputeShader = ShaderReplacer.Instance.LoadedComputeShaders ["ComputeInverseShadowMatrices"];
}
else
{
Utils.LogError("Godrays inverse shadow matrices compute shader can't be found, godrays can't be added");
return false;
}
if (ShaderReplacer.Instance.LoadedShaders.ContainsKey ("Scatterer/VolumeDepth"))
{
volumeDepthMaterial = new Material(ShaderReplacer.Instance.LoadedShaders ["Scatterer/VolumeDepth"]);
}
else
{
Utils.LogError("Godrays depth shader can't be found, godrays can't be added");
return false;
}
if (!inputLight)
{
Utils.LogError("Godrays light is null, godrays can't be added");
return false;
}
targetLight = inputLight;
parentSkyNode = inputParentSkyNode;
Utils.EnableOrDisableShaderKeywords (volumeDepthMaterial, "OCEAN_INTERSECT_ANALYTICAL", "OCEAN_INTERSECT_OFF", parentSkyNode.prolandManager.hasOcean && Scatterer.Instance.mainSettings.useOceanShaders);
volumeDepthMaterial.SetFloat ("Rt", parentSkyNode.Rt);
volumeDepthMaterial.SetFloat ("Rg", parentSkyNode.Rg);
Utils.EnableOrDisableShaderKeywords(volumeDepthMaterial, "CLOUDSMAP_ON", "CLOUDSMAP_OFF", false);
//Utils.EnableOrDisableShaderKeywords(volumeDepthMaterial, "DOWNSCALE_DEPTH_ON", "DOWNSCALE_DEPTH_OFF", Scatterer.Instance.mainSettings.quarterResScattering);
Utils.EnableOrDisableShaderKeywords(volumeDepthMaterial, "DOWNSCALE_DEPTH_ON", "DOWNSCALE_DEPTH_OFF", false);
volumeDepthGO = new GameObject ("GodraysVolumeDepth "+inputParentSkyNode.prolandManager.parentCelestialBody.name);
volumeDepthMaterial.renderQueue = 2999; //for debugging only
volumeDepthGO.layer = 15;
MeshFilter _mf = volumeDepthGO.AddComponent<MeshFilter> ();
_mf.mesh.Clear ();
_mf.mesh = MeshFactory.MakePlane32BitIndexFormat (512, 512, MeshFactory.PLANE.XY, false, false); //fixed with 32bit indices
//_mf.mesh = MeshFactory.MakePlane16BitIndexFormat (256, 256, MeshFactory.PLANE.XY, false, false); //Definitely need to subdivide more here and in the tesselation check edge length and culling
_mf.mesh.bounds = new Bounds (Vector4.zero, new Vector3 (1e18f, 1e18f, 1e18f)); //apparently mathf.Infinity is bad, remember this
MeshRenderer _mr = volumeDepthGO.AddComponent<MeshRenderer> ();
_mr.material = volumeDepthMaterial;
_mr.receiveShadows = false;
_mr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
_mr.enabled = false;
//disabled quarter res because I haven't fixed it for the sky and probably the perf hit from finding nearest depth in sky shader isn't worth it
// if (Scatterer.Instance.mainSettings.quarterResScattering)
// volumeDepthTexture = new RenderTexture (Screen.width / 2, Screen.height / 2, 0, RenderTextureFormat.RHalf);
// else
volumeDepthTexture = new RenderTexture (Screen.width, Screen.height, 0, RenderTextureFormat.RHalf); //seems to work if we divide the contents by 100, to keep under half's 65000 limit
volumeDepthTexture.useMipMap = false;
volumeDepthTexture.antiAliasing = 1;
volumeDepthTexture.filterMode = FilterMode.Point;
volumeDepthTexture.Create ();
// if (Scatterer.Instance.mainSettings.integrateEVECloudsGodrays)
// {
// InitCloudShadowCommandBuffers ();
// }
//world to shadow matrices aren't exposed in the C# api so we can't compute the shadow to world matrices from them
//since they are exposed in shaders we use a compute shader to do it
inverseShadowMatricesBuffer = new ComputeBuffer (4, 16 * sizeof(float));
shadowVolumeCB = new CommandBuffer();
shadowVolumeCB.name = "Scatterer legacy godrays CommandBuffer";
shadowVolumeCB.SetComputeBufferParam (inverseShadowMatricesComputeShader, 0, "resultBuffer", inverseShadowMatricesBuffer);
shadowVolumeCB.DispatchCompute(inverseShadowMatricesComputeShader, 0, 4, 1, 1);
shadowVolumeCB.SetRenderTarget(volumeDepthTexture);
//shadowVolumeCB.ClearRenderTarget(false, true, Color.black, 1f); //do this after rendering
shadowVolumeCB.SetShadowSamplingMode (ShadowMapCopy.RenderTexture, ShadowSamplingMode.RawDepth);
shadowVolumeCB.DrawRenderer (_mr, volumeDepthMaterial);
targetCamera = gameObject.GetComponent<Camera> ();
return true;
}
// void InitCloudShadowCommandBuffers ()
// {
// if (Scatterer.Instance.eveReflectionHandler.EVEClouds2dDictionary.ContainsKey (parentSkyNode.prolandManager.parentCelestialBody.name))
// {
// foreach (EVEClouds2d clouds2d in Scatterer.Instance.eveReflectionHandler.EVEClouds2dDictionary [parentSkyNode.prolandManager.parentCelestialBody.name])
// {
// if (clouds2d.CloudShadowMaterial != null)
// {
// Material cloudShadowDepthMaterial = new Material (ShaderReplacer.Instance.LoadedShaders ["Scatterer-EVE/CloudShadowMap"]);
// cloudShadowDepthMaterial.CopyKeywordsFrom (clouds2d.CloudShadowMaterial);
// if (cloudShadowGO == null)
// {
// cloudShadowGO = GameObject.CreatePrimitive (PrimitiveType.Sphere);
// GameObject.Destroy (cloudShadowGO.GetComponent<Collider> ());
// MeshFilter cloudShadowMF = cloudShadowGO.GetComponent<MeshFilter> ();
// cloudShadowMF.mesh.Clear ();
// cloudShadowMF.mesh = IcoSphere.CreateIcoSphereMesh ();
// cloudShadowMR = cloudShadowGO.GetComponent<MeshRenderer> ();
// cloudShadowGO.transform.parent = parentSkyNode.prolandManager.parentCelestialBody.transform;
// cloudShadowMR.receiveShadows = false;
// cloudShadowMR.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
// cloudShadowMR.enabled = false;
//
// cloudShadowMap = new RenderTexture (2048, 2048, 0, RenderTextureFormat.RHalf); //replace size after
// cloudShadowMap.useMipMap = false;
// cloudShadowMap.antiAliasing = 1;
// cloudShadowMap.filterMode = FilterMode.Point;
// cloudShadowMap.Create ();
//
// clearShadowMapCB = new CommandBuffer();
// clearShadowMapCB.SetRenderTarget(cloudShadowMap);
// clearShadowMapCB.ClearRenderTarget(false,true,Color.black);
//
// shadowRenderCommandBuffers[ShadowMapPass.DirectionalCascade0] = new List<CommandBuffer>();
// shadowRenderCommandBuffers[ShadowMapPass.DirectionalCascade0].Add(clearShadowMapCB);
//
// Utils.EnableOrDisableShaderKeywords(volumeDepthMaterial, "CLOUDSMAP_ON", "CLOUDSMAP_OFF", true);
// volumeDepthMaterial.SetTexture("cloudShadowMap", cloudShadowMap);
// }
// RenderObjectInCustomCascade (targetLight, cloudShadowMap, cloudShadowMR, cloudShadowDepthMaterial, ShadowMapPass.DirectionalCascade0, 0f, 0f, 0.5f, 0.5f);
// RenderObjectInCustomCascade (targetLight, cloudShadowMap, cloudShadowMR, cloudShadowDepthMaterial, ShadowMapPass.DirectionalCascade1, 0.5f, 0f, 0.5f, 0.5f);
// RenderObjectInCustomCascade (targetLight, cloudShadowMap, cloudShadowMR, cloudShadowDepthMaterial, ShadowMapPass.DirectionalCascade2, 0f, 0.5f, 0.5f, 0.5f);
// RenderObjectInCustomCascade (targetLight, cloudShadowMap, cloudShadowMR, cloudShadowDepthMaterial, ShadowMapPass.DirectionalCascade3, 0.5f, 0.5f, 0.5f, 0.5f);
//
// cloudsShadowsMaterials.Add (new Tuple<EVEClouds2d, Material> (clouds2d, cloudShadowDepthMaterial));
// }
// }
// }
// }
// void RenderObjectInCustomCascade(Light targetLight, RenderTexture rt, MeshRenderer mr, Material mat , ShadowMapPass passMask, float startX, float startY, float width, float height)
// {
// CommandBuffer cloudShadowDepthCB = new CommandBuffer();
// Rect cascadeRect = new Rect ((int)(startX * rt.width), (int)(startY * rt.height), (int)(width * rt.width), (int)(height * rt.height));
//
// cloudShadowDepthCB.SetRenderTarget(rt);
// cloudShadowDepthCB.EnableScissorRect(cascadeRect);
// cloudShadowDepthCB.SetViewport(cascadeRect);
// cloudShadowDepthCB.DrawRenderer(mr, mat);
// cloudShadowDepthCB.DisableScissorRect();
//
// if (shadowRenderCommandBuffers.ContainsKey (passMask))
// {
// shadowRenderCommandBuffers[passMask].Add(cloudShadowDepthCB);
// }
// else
// {
// shadowRenderCommandBuffers[passMask] = new List<CommandBuffer>();
// shadowRenderCommandBuffers[passMask].Add(cloudShadowDepthCB);
// }
// }
public void EnableRenderingForFrame()
{
if (!commandBufferAdded)
{
ShadowMapCopier.RequestShadowMapCopy(targetLight);
targetCamera.AddCommandBuffer (CameraEvent.BeforeForwardOpaque, shadowVolumeCB);
// foreach (ShadowMapPass pass in shadowRenderCommandBuffers.Keys)
// {
// foreach (CommandBuffer cb in shadowRenderCommandBuffers[pass])
// {
// targetLight.AddCommandBuffer (LightEvent.AfterShadowMapPass, cb, pass);
// }
// }
commandBufferAdded = true;
}
}
public void RenderingDone()
{
if (commandBufferAdded && targetCamera.stereoActiveEye != Camera.MonoOrStereoscopicEye.Left)
{
targetCamera.RemoveCommandBuffer (CameraEvent.BeforeForwardOpaque, shadowVolumeCB);
// foreach (ShadowMapPass pass in shadowRenderCommandBuffers.Keys) {
// foreach (CommandBuffer cb in shadowRenderCommandBuffers[pass]) {
// targetLight.RemoveCommandBuffer (LightEvent.AfterShadowMapPass, cb);
// }
// }
RenderTexture rt=RenderTexture.active;
RenderTexture.active= volumeDepthTexture;
GL.Clear(false,true,Color.black, 1f);
RenderTexture.active=rt;
commandBufferAdded = false;
}
}
void OnPreCull()
{
if (parentSkyNode && !parentSkyNode.inScaledSpace)
{
EnableRenderingForFrame();
volumeDepthMaterial.SetMatrix(ShaderProperties.CameraToWorld_PROPERTY, targetCamera.cameraToWorldMatrix);
volumeDepthMaterial.SetTexture(ShaderProperties._ShadowMapTextureCopyScatterer_PROPERTY, ShadowMapCopy.RenderTexture);
volumeDepthMaterial.SetBuffer("inverseShadowMatricesBuffer", inverseShadowMatricesBuffer);
//Calculate light's bounding Box englobing camera's frustum up to the shadows distance
//The idea is to create a "projector" from the light's PoV, which is essentially a bounding box cover the whole range from near clip plance to the shadows, so we can project into the scene
Vector3 lightDirForward = targetLight.transform.forward.normalized;
Vector3 lightDirRight = targetLight.transform.right.normalized;
Vector3 lightDirUp = targetLight.transform.up.normalized;
Vector3[] frustumCornersNear = new Vector3[4];
Vector3[] frustumCornersFar = new Vector3[4];
//the corners appear to be in camera Space even though the documentation says in world Space
targetCamera.CalculateFrustumCorners(new Rect(0, 0, 1, 1), targetCamera.nearClipPlane, Camera.MonoOrStereoscopicEye.Mono, frustumCornersNear);
targetCamera.CalculateFrustumCorners(new Rect(0, 0, 1, 1), QualitySettings.shadowDistance, Camera.MonoOrStereoscopicEye.Mono, frustumCornersFar);
//Kopernicus lights have the same position as their suns, so they are impossibly far, replace their position with something closer to get a useable matrix
Matrix4x4 worldToLocalMatrix = parentSkyNode.prolandManager.mainSunLight.transform.worldToLocalMatrix;
worldToLocalMatrix.m03 = Scatterer.Instance.nearCamera.transform.position.x;
worldToLocalMatrix.m13 = Scatterer.Instance.nearCamera.transform.position.y;
worldToLocalMatrix.m23 = Scatterer.Instance.nearCamera.transform.position.z;
//now, calculate the corners positions in light Space
List<Vector3> frustumCornersInLightSpace = new List<Vector3>();
foreach(Vector3 corner in frustumCornersNear)
{
frustumCornersInLightSpace.Add(worldToLocalMatrix.MultiplyPoint(targetCamera.transform.localToWorldMatrix.MultiplyPoint(corner)));
}
foreach(Vector3 corner in frustumCornersFar)
{
frustumCornersInLightSpace.Add(worldToLocalMatrix.MultiplyPoint(targetCamera.transform.localToWorldMatrix.MultiplyPoint(corner)));
}
Bounds bounds = GeometryUtility.CalculateBounds(frustumCornersInLightSpace.ToArray(), Matrix4x4.identity);
//Create an orthogonal projection matrix from the bounding box
Matrix4x4 shadowProjectionMatrix = Matrix4x4.Ortho(
bounds.center.x-bounds.extents.x,
bounds.center.x+bounds.extents.x,
bounds.center.y-bounds.extents.y,
bounds.center.y+bounds.extents.y,
bounds.center.z-bounds.extents.z,
bounds.center.z+bounds.extents.z);
shadowProjectionMatrix = GL.GetGPUProjectionMatrix(shadowProjectionMatrix, false);
//Transformation from world into our "shadow space" matrix
Matrix4x4 VP = shadowProjectionMatrix * worldToLocalMatrix;
//And inverse transformation from "shadow space" into world used to create our mesh
Matrix4x4 lightToWorld = VP.inverse;
volumeDepthMaterial.SetMatrix(ShaderProperties.lightToWorld_PROPERTY, lightToWorld);
volumeDepthMaterial.SetVector(ShaderProperties.lightDirection_PROPERTY, targetLight.transform.forward);
volumeDepthMaterial.SetVector (ShaderProperties._planetPos_PROPERTY, parentSkyNode.parentLocalTransform.position);
// foreach(Tuple<EVEClouds2d, Material> tuple in cloudsShadowsMaterials)
// {
// tuple.Item2.CopyPropertiesFromMaterial(tuple.Item1.CloudShadowMaterial);
// tuple.Item2.SetVector(ShaderProperties.lightDirection_PROPERTY, targetLight.transform.forward);
// tuple.Item2.SetFloat(ShaderProperties._godrayCloudThreshold_PROPERTY, parentSkyNode.godrayCloudAlphaThreshold);
// }
}
}
public void OnPostRender()
{
if (parentSkyNode)
{
RenderingDone ();
}
}
public void OnDestroy()
{
RenderingDone ();
if (inverseShadowMatricesBuffer != null)
{
inverseShadowMatricesBuffer.Dispose();
}
if (volumeDepthTexture)
{
volumeDepthTexture.Release();
}
if (volumeDepthGO)
{
DestroyImmediate(volumeDepthGO);
}
// if (cloudShadowGO)
// {
// DestroyImmediate(cloudShadowGO);
// }
}
}
}
================================================
FILE: scatterer/Effects/Proland/Atmosphere/Preprocessing/AtmoPreprocessor.cs
================================================
/*
* Proland: a procedural landscape rendering library.
* Copyright (c) 2008-2011 INRIA
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Proland is distributed under a dual-license scheme.
* You can obtain a specific license from Inria: proland-licensing@inria.fr.
*
* Authors: Eric Bruneton, Antoine Begault, Guillaume Piolat.
* Modified and ported to Unity by Justin Hawkins 2014
* Modified and adapted for use with Kerbal Space Program by Ghassen Lahmar 2015-2022
*
*/
using UnityEngine;
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Collections;
using System.Diagnostics;
namespace Scatterer
{
[KSPAddon(KSPAddon.Startup.Instantly, true)]
public class AtmoPreprocessor : MonoBehaviour
{
private static AtmoPreprocessor instance;
public void Awake()
{
if (instance == null)
{
instance = this;
instance.InitMaterials();
Utils.LogDebug("AtmoPreprocessor instance created");
}
else
{
throw new UnityException("Attempted double instance!");
}
}
public static AtmoPreprocessor Instance
{
get
{
return instance;
}
}
public void Start()
{
DontDestroyOnLoad(this);
}
private static bool atmoGenerationRunning = false;
public static Vector4 ScatteringLutDimensionsDefault { get => Scatterer.Instance.mainSettings.useLowResolutionAtmosphere ? scatteringLutDimensionsPreview : scatteringLutDimensionsDefault; }
const int READ = 0; const int WRITE = 1;
float Rg = 60000.0f;
float Rt = 71500.603f;
//Dimensions of the tables
const int TRANSMITTANCE_W = 512;
const int TRANSMITTANCE_H = 128;
const int SKY_W = 64;
const int SKY_H = 16;
private static Vector4 scatteringLutDimensionsDefault = new Vector4(32f, 128f, 32f, 16f); //the one from yusov, double the current one so should be 16 megs in half precision
public static Vector4 scatteringLutDimensionsPreview = new Vector4(16f, 64f, 16f, 2f); //fast preview version, 32x smaller
private static int xTilesDefault = 32, yTilesDefault = 64;
private static int xTilesPreview = 32, yTilesPreview = 16;
Vector4 scatteringLutDimensions = ScatteringLutDimensionsDefault;
int xTiles = xTilesDefault, yTiles = yTilesDefault;
float AVERAGE_GROUND_REFLECTANCE = 0.1f;
Vector4 BETA_R = new Vector4(5.8e-3f, 1.35e-2f, 3.31e-2f, 0.0f);
Vector4 BETA_MSca = new Vector4(4e-3f, 4e-3f, 4e-3f, 0.0f);
float MIE_G = 0.8f;
float HR = 8000.0f;
float HM = 1200.0f;
Vector3 ozoneAbsorption = new Vector3(0.0000003426f, 0.0000008298f, 0.000000036f);
float ozoneHeight = 25000f;
float ozoneFalloff = 15000f;
RenderTexture ozoneTransmittanceRT;
RenderTexture deltaET, deltaSRT, deltaSMT, deltaJT;
public RenderTexture[] irradianceT, inscatterT;
Material transmittanceMaterial, ozoneTransmittanceMaterial, irradianceNMaterial, irradiance1Material, inscatter1Material,
inscatterNMaterial, inscatterSMaterial, copyInscatter1Material, copyInscatterNMaterial, copyIrradianceMaterial, atlasMaterial;
int scatteringOrders = 4; //min is 2 unless you skip that step
bool multipleScattering = true;
bool useOzone = false;
// Process in chunks and return if we spend more time than this
// Otherwise windows thinks the GPU crashed on slower hardware
// https://en.wikipedia.org/wiki/Timeout_Detection_and_Recovery
long generationMsThreshold = 1000;
private void InitMaterials()
{
transmittanceMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/Transmittance")]);
ozoneTransmittanceMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/OzoneTransmittance")]);
irradianceNMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/IrradianceN")]);
irradiance1Material = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/Irradiance1")]);
inscatter1Material = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/Inscatter1")]);
inscatterNMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/InscatterN")]);
inscatterSMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/InscatterS")]);
copyInscatter1Material = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/CopyInscatter1")]);
copyInscatterNMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/CopyInscatterN")]);
copyIrradianceMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/CopyIrradiance")]);
atlasMaterial = new Material(ShaderReplacer.Instance.LoadedShaders[("Scatterer/Preprocessing/Atlas")]);
}
public static float CalculateRt(float inRg, float inHR, float inHM, Vector3 in_betaR, Vector3 in_BETA_MSca, bool useOzone, float ozoneHeight, float ozoneFalloff)
{
float RtHR = - 1000f * inHR * Mathf.Log(0.0000001f / in_betaR.magnitude);
float RtHM = - 1000f * inHM * Mathf.Log(0.0000001f / in_BETA_MSca.magnitude);
float maxHeight = Mathf.Max(RtHR, RtHM);
if (useOzone) maxHeight = Mathf.Max(maxHeight, 1000f * (ozoneHeight + ozoneFalloff));
return inRg + maxHeight;
}
public static void DeleteCache()
{
string cachePath = Utils.GameDataPath + "/ScattererAtmosphereCache/PluginData";
Directory.Delete(cachePath, true);
}
[StructLayout(LayoutKind.Sequential)]
struct AtmoHashData
{
public float Rg;
public float Rt;
public float AVERAGE_GROUND_REFLECTANCE;
public Vector4 BETA_R;
public Vector4 BETA_MSca;
public Vector4 ScatteringLutDimensions;
public float MIE_G;
public float HR;
public float HM;
public Vector3 ozoneAbsorption;
public float ozoneHeight;
public float ozoneFalloff;
public bool useOzone;
public bool useMultipleScattering;
public AtmoHashData(float rg, float rt, float averageGroundReflectance, Vector4 betaR, Vector4 betaMSca, Vector4 scatteringLutDimensions, float mieG, float hr,float hm,Vector3 ozoneAbsorption,float ozoneHeight,float ozoneFalloff,bool useOzone,bool useMultipleScattering)
{
Rg = rg;
Rt = rt;
AVERAGE_GROUND_REFLECTANCE = averageGroundReflectance;
BETA_R = betaR;
BETA_MSca = betaMSca;
ScatteringLutDimensions = scatteringLutDimensions;
MIE_G = mieG;
HR = hr;
HM = hm;
this.ozoneAbsorption = ozoneAbsorption;
this.ozoneHeight = ozoneHeight;
this.ozoneFalloff = ozoneFalloff;
this.useOzone = useOzone;
this.useMultipleScattering = useMultipleScattering;
}
}
public static string GetAtmoHash(float inRG, float inRT, Vector4 inBETA_R, Vector4 inBETA_MSca, float inMIE_G, float inHR, float inHM, float inAverageGroundRreflectance, bool inMultiple, Vector4 inPRECOMPUTED_SCTR_LUT_DIM, bool inUseOzone, Vector4 inOzoneAbsorption, float inOzoneHeight, float inOzoneFalloff)
{
AtmoHashData atmoHashData = new AtmoHashData(
inRG,
inRT,
inAverageGroundRreflectance,
inBETA_R,
inBETA_MSca,
inPRECOMPUTED_SCTR_LUT_DIM,
inMIE_G,
inHR,
inHM,
inUseOzone ? inOzoneAbsorption : Vector4.zero,
inUseOzone ? inOzoneHeight : 0f,
inUseOzone ? inOzoneFalloff : 0f,
inUseOzone,
inMultiple
);
Hash128 result = new Hash128();
HashUtilities.ComputeHash128(ref atmoHashData, ref result);
return result.ToString();
}
public static void Generate(float inRG, float inRT, Vector4 inBETA_R, Vector4 inBETA_MSca, float inMIE_G, float inHR, float inHM, float inGRref, bool inMultiple, Vector4 inScatteringLutDimensions, bool previewMode, string assetPath, bool inUseOzone, Vector4 inOzoneAbsorption, float inOzoneHeight, float inOzoneFalloff, string bodyName)
{
if (!atmoGenerationRunning)
{
Utils.LogInfo("Generating new atmosphere for "+bodyName);
instance.StartCoroutine(instance.GenerateAndSaveAtmoCoroutine(inRG, inRT, inBETA_R, inBETA_MSca, inMIE_G, inHR, inHM, inGRref, inMultiple, inScatteringLutDimensions, previewMode, assetPath, inUseOzone, inOzoneAbsorption, inOzoneHeight, inOzoneFalloff));
}
}
IEnumerator GenerateAndSaveAtmoCoroutine(float inRG, float inRT, Vector4 inBETA_R, Vector4 inBETA_MSca, float inMIE_G, float inHR, float inHM, float inGRref, bool inMultiple, Vector4 inScatteringLutDimensions, bool previewMode, string assetPath, bool inUseOzone, Vector4 inOzoneAbsorption, float inOzoneHeight, float inOzoneFalloff)
{
atmoGenerationRunning = true;
//Rescale to a fixed radius which we know never causes issues
float referenceRadius = 1000000f;
float scaleFactor = referenceRadius / inRG;
Rg = referenceRadius;
Rt = inRT * scaleFactor;
HR = inHR * 1000f * scaleFactor;
HM = inHM * 1000f * scaleFactor;
BETA_R = inBETA_R * 0.001f / scaleFactor;
BETA_MSca = inBETA_MSca * 0.001f / scaleFactor;
MIE_G = inMIE_G;
if (inMultiple)
MIE_G = Mathf.Min (MIE_G, 0.86f); //values of mie_G > 0.86 seem to break multiple scattering for some weird reason
AVERAGE_GROUND_REFLECTANCE = inGRref;
multipleScattering = inMultiple;
scatteringLutDimensions = inScatteringLutDimensions;
useOzone = inUseOzone;
ozoneAbsorption = inOzoneAbsorption * 0.001f / scaleFactor;
if (!useOzone) ozoneAbsorption = Vector4.zero;
ozoneHeight = inOzoneHeight * 1000f * scaleFactor;
ozoneFalloff = inOzoneFalloff * 1000f* scaleFactor;
if (previewMode || Scatterer.Instance.mainSettings.useLowResolutionAtmosphere)
{
xTiles = xTilesPreview; yTiles = yTilesPreview;
}
else
{
xTiles = xTilesDefault; yTiles = yTilesDefault;
}
irradianceT = new RenderTexture[2];
inscatterT = new RenderTexture[2];
ozoneTransmittanceRT = new RenderTexture(TRANSMITTANCE_W, TRANSMITTANCE_H, 0, RenderTextureFormat.ARGBFloat);
ozoneTransmittanceRT.wrapMode = TextureWrapMode.Clamp;
ozoneTransmittanceRT.filterMode = FilterMode.Bilinear;
ozoneTransmittanceRT.Create();
irradianceT[0] = new RenderTexture(SKY_W, SKY_H, 0, RenderTextureFormat.ARGBFloat);
irradianceT[0].wrapMode = TextureWrapMode.Clamp;
irradianceT[0].filterMode = FilterMode.Bilinear;
irradianceT[0].Create();
irradianceT[1] = new RenderTexture(SKY_W, SKY_H, 0, RenderTextureFormat.ARGBFloat);
irradianceT[1].wrapMode = TextureWrapMode.Clamp;
irradianceT[1].filterMode = FilterMode.Bilinear;
irradianceT[1].Create();
deltaET = new RenderTexture(SKY_W, SKY_H, 0, RenderTextureFormat.ARGBFloat);
deltaET.Create();
inscatterT[0] = new RenderTexture((int)(scatteringLutDimensions.x * scatteringLutDimensions.y), (int)(scatteringLutDimensions.z * scatteringLutDimensions.w), 0, RenderTextureFormat.ARGBFloat);
inscatterT[0].wrapMode = TextureWrapMode.Clamp;
inscatterT[0].filterMode = FilterMode.Bilinear;
inscatterT[0].Create();
inscatterT[1] = new RenderTexture((int)(scatteringLutDimensions.x * scatteringLutDimensions.y), (int)(scatteringLutDimensions.z * scatteringLutDimensions.w), 0, RenderTextureFormat.ARGBFloat);
inscatterT[1].wrapMode = TextureWrapMode.Clamp;
inscatterT[1].filterMode = FilterMode.Bilinear;
inscatterT[1].Create();
deltaSRT = new RenderTexture((int)(scatteringLutDimensions.x * scatteringLutDimensions.y), (int)(scatteringLutDimensions.z * scatteringLutDimensions.w), 0, RenderTextureFormat.ARGBFloat);
deltaSRT.wrapMode = TextureWrapMode.Clamp;
deltaSRT.filterMode = FilterMode.Bilinear;
deltaSRT.Create();
deltaSMT = new RenderTexture((int)(scatteringLutDimensions.x * scatteringLutDimensions.y), (int)(scatteringLutDimensions.z * scatteringLutDimensions.w), 0, RenderTextureFormat.ARGBFloat);
deltaSMT.wrapMode = TextureWrapMode.Clamp;
deltaSMT.filterMode = FilterMode.Bilinear;
deltaSMT.Create();
deltaJT = new RenderTexture((int)(scatteringLutDimensions.x * scatteringLutDimensions.y), (int)(scatteringLutDimensions.z * scatteringLutDimensions.w), 0, RenderTextureFormat.ARGBFloat);
deltaJT.wrapMode = TextureWrapMode.Clamp;
deltaJT.filterMode = FilterMode.Bilinear;
deltaJT.Create();
SetParameters(ozoneTransmittanceMaterial);
SetParameters(transmittanceMaterial);
SetParameters(irradianceNMaterial);
SetParameters(irradiance1Material);
SetParameters(inscatter1Material);
SetParameters(inscatterNMaterial);
SetParameters(inscatterSMaterial);
SetParameters(copyInscatter1Material);
SetParameters(copyInscatterNMaterial);
SetParameters(copyIrradianceMaterial);
RTUtility.ClearColor(irradianceT);
yield return Preprocess(assetPath);
ReleaseTextures();
atmoGenerationRunning = false;
}
void SetParameters(Material mat)
{
mat.SetFloat("Rg", Rg);
mat.SetFloat("Rt", Rt);
mat.SetInt("TRANSMITTANCE_W", TRANSMITTANCE_W);
mat.SetInt("TRANSMITTANCE_H", TRANSMITTANCE_H);
mat.SetInt("SKY_W", SKY_W);
mat.SetInt("SKY_H", SKY_H);
mat.SetFloat("AVERAGE_GROUND_REFLECTANCE", AVERAGE_GROUND_REFLECTANCE);
mat.SetFloat("HR", HR);
mat.SetFloat("HM", HM);
mat.SetVector("betaR", BETA_R);
mat.SetVector("betaMSca", BETA_MSca);
mat.SetVector("betaMEx", BETA_MSca / 0.9f);
mat.SetFloat("mieG", Mathf.Clamp(MIE_G, 0.0f, 0.99f));
mat.SetFloat ("Sun_intensity", 10f);
mat.SetVector("PRECOMPUTED_SCTR_LUT_DIM", scatteringLutDimensions);
mat.SetVector ("tiles", new Vector2 (xTiles, yTiles));
mat.SetFloat("ozoneHeight", ozoneHeight);
mat.SetFloat("ozoneFalloff", ozoneFalloff);
mat.SetVector("ozoneAbsorption", new Vector4(ozoneAbsorption.x, ozoneAbsorption.y, ozoneAbsorption.z, 0.0f));
}
IEnumerator Preprocess(string assetPath)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
ComputeTransmittance();
ComputeIrradiance();
yield return ComputeInscatter1(stopwatch);
CopyIrradiance();
yield return CopyInscatter1(stopwatch);
for (int scatteringOrder = 2; scatteringOrder <= (multipleScattering ? scatteringOrders : 2); scatteringOrder++)
{
yield return ComputeInscatterS(2, stopwatch); // is this a mistake? should it be scatteringOrder instead of 2?
ComputeIrradianceN(2);
yield return ComputeInscatterN(stopwatch);
CopyIrradianceK1();
if (multipleScattering)
{
yield return CopyInscatterN(stopwatch);
}
}
if (!Directory.Exists(assetPath))
Directory.CreateDirectory(assetPath);
var atmosphereAtlas = PackTextures(new RenderTexture[] { inscatterT[READ], irradianceT[READ], ozoneTransmittanceRT });
SaveAsHalf(atmosphereAtlas, assetPath + "/atlas");
atmosphereAtlas.Release();
Utils.LogInfo("Atmo generation successful");
}
private RenderTexture PackTextures(RenderTexture[] textures)
{
// Just do the simplest packing possible, top-left to bottom-left
int width = textures.Max(texture => texture.width);
int height = textures.Sum(texture => texture.height);
RenderTexture rt = new RenderTexture(width, height, 0, RenderTextureFormat.ARGBFloat, 0);
rt.wrapMode = TextureWrapMode.Clamp;
rt.Create();
atlasMaterial.SetInt("targetWidth", width);
atlasMaterial.SetInt("targetHeight", height);
int currentHeight = 0;
for (int i = 0; i < textures.Length; i++)
{
var texture = textures[i];
atlasMaterial.SetTexture("inputTexture", texture);
atlasMaterial.SetInt("width", texture.width);
atlasMaterial.SetInt("height", texture.height);
atlasMaterial.SetInt("horizontalOffset", 0);
atlasMaterial.SetInt("verticalOffset", currentHeight);
Graphics.Blit(null, rt, atlasMaterial);
currentHeight += texture.height;
}
return rt;
}
public static List<Vector4> GetPackedTexturesScaleAndOffsets(List<Vector2> dimensions, Vector2 atlasDimensions)
{
var result = new List<Vector4>();
float currentHeight = 0;
foreach(Vector2 dimension in dimensions)
{
Vector2 currentScale = new Vector2(dimension.x / atlasDimensions.x, dimension.y / atlasDimensions.y);
Vector2 currentOffset = new Vector2(0f, currentHeight / atlasDimensions.y);
result.Add(new Vector4(currentScale.x, currentScale.y, currentOffset.x, currentOffset.y));
currentHeight += dimension.y;
}
return result;
}
IEnumerator CopyInscatterN(Stopwatch stopwatch)
{
// adds deltaS into inscatter texture S(line 11 in algorithm 4.1)
yield return ProcessInTiles(stopwatch, (int i, int j) =>
{
copyInscatterNMaterial.SetVector("currentTile", new Vector2(i, j));
copyInscatterNMaterial.SetTexture("deltaSRead", deltaSRT);
copyInscatterNMaterial.SetTexture("inscatterRead", inscatterT[READ]);
Graphics.Blit(null, inscatterT[WRITE], copyInscatterNMaterial, 0);
});
RTUtility.Swap(inscatterT);
}
private void CopyIrradianceK1()
{
// adds deltaE into irradiance texture E (line 10 in algorithm 4.1)
copyIrradianceMaterial.SetFloat("k", 1.0f);
copyIrradianceMaterial.SetTexture("deltaERead", deltaET);
copyIrradianceMaterial.SetTexture("irradianceRead", irradianceT[READ]);
Graphics.Blit(null, irradianceT[WRITE], copyIrradianceMaterial);
RTUtility.Swap(irradianceT);
}
IEnumerator ComputeInscatterN(Stopwatch stopwatch)
{
// computes deltaS (line 9 in algorithm 4.1)
yield return ProcessInTiles(stopwatch, (int i, int j) =>
{
inscatterNMaterial.SetVector("currentTile", new Vector2(i, j));
inscatterNMaterial.SetTexture("transmittanceRead", ozoneTransmittanceRT);
inscatterNMaterial.SetTexture("deltaJRead", deltaJT);
inscatterNMaterial.SetTexture("deltaJReadSampler", deltaJT);
Graphics.Blit(null, deltaSRT, inscatterNMaterial, 0);
});
}
IEnumerator ComputeInscatterS(int scatteringOrder, Stopwatch stopwatch)
{
yield return ProcessInTiles(stopwatch, (int i, int j) =>
{
inscatterSMaterial.SetVector("currentTile", new Vector2(i, j));
inscatterSMaterial.SetInt("first", (scatteringOrder == 2) ? 1 : 0);
inscatterSMaterial.SetTexture("transmittanceRead", ozoneTransmittanceRT);
inscatterSMaterial.SetTexture("deltaERead", deltaET);
inscatterSMaterial.SetTexture("deltaSRRead", deltaSRT);
inscatterSMaterial.SetTexture("deltaSMRead", deltaSMT);
inscatterSMaterial.SetTexture("deltaSRReadSampler", deltaSRT);
inscatterSMaterial.SetTexture("deltaSMReadSampler", deltaSMT);
Graphics.Blit(null, deltaJT, inscatterSMaterial, 0);
});
}
private void ComputeIrradianceN(int scatteringOrder)
{
// computes deltaE (line 8 in algorithm 4.1)
irradianceNMaterial.SetInt("first", (scatteringOrder == 2) ? 1 : 0);
irradianceNMaterial.SetTexture("deltaSRRead", deltaSRT);
irradianceNMaterial.SetTexture("deltaSMRead", deltaSMT);
irradianceNMaterial.SetTexture("deltaSRReadSampler", deltaSRT);
irradianceNMaterial.SetTexture("deltaSMReadSampler", deltaSMT);
Graphics.Blit(null, deltaET, irradianceNMaterial);
}
IEnumerator CopyInscatter1(Stopwatch stopwatch)
{
// copies deltaS into inscatter texture S (line 5 in algorithm 4.1)
yield return ProcessInTiles(stopwatch, (int i, int j) =>
{
copyInscatter1Material.SetVector("currentTile", new Vector2(i, j));
copyInscatter1Material.SetTexture("deltaSRRead", deltaSRT);
copyInscatter1Material.SetTexture("deltaSMRead", deltaSMT);
Graphics.Blit(null, inscatterT[WRITE], copyInscatter1Material, 0);
});
RTUtility.Swap(inscatterT);
}
private void CopyIrradiance()
{
copyIrradianceMaterial.SetFloat("k", 0.0f);
copyIrradianceMaterial.SetTexture("deltaERead", deltaET);
copyIrradianceMaterial.SetTexture("irradianceRead", irradianceT[READ]);
Graphics.Blit(null, irradianceT[WRITE], copyIrradianceMaterial, 0);
RTUtility.Swap(irradianceT);
}
IEnumerator ComputeInscatter1(Stopwatch stopwatch)
{
// computes single scattering texture deltaS (line 3 in algorithm 4.1)
// Rayleigh and Mie separated in deltaSR + deltaSM
inscatter1Material.SetTexture("transmittanceRead", ozoneTransmittanceRT);
yield return ProcessInTiles(stopwatch, (int i, int j) =>
{
inscatter1Material.SetVector("currentTile", new Vector2(i, j));
Graphics.Blit(null, deltaSRT, inscatter1Material, 0); // rayleigh pass
Graphics.Blit(null, deltaSMT, inscatter1Material, 1); // mie pass
});
}
private void ComputeIrradiance()
{
// computes irradiance texture deltaE (line 2 in algorithm 4.1)
irradiance1Material.SetTexture("transmittanceRead", ozoneTransmittanceRT);
Graphics.Blit(null, deltaET, irradiance1Material);
}
private void ComputeTransmittance()
{
Graphics.Blit(null, ozoneTransmittanceRT, ozoneTransmittanceMaterial);
}
//Process in tiles because older GPUs (series 7xx and integrated hd 3xxx) crash when rendering the full res
IEnumerator ProcessInTiles(Stopwatch stopwatch, Action<int, int> process)
{
for (int i = 0; i < xTiles; i++)
{
for (int j = 0; j < yTiles; j++)
{
process(i, j);
}
if (stopwatch.ElapsedMilliseconds > generationMsThreshold) { yield return new WaitForFixedUpdate(); stopwatch.Restart(); }
}
}
public void OnDestroy()
{
ReleaseTextures();
}
void ReleaseTextures()
{
ozoneTransmittanceRT.Release();
irradianceT[0].Release();
irradianceT[1].Release();
inscatterT[0].Release();
inscatterT[1].Release();
deltaET.Release();
deltaSRT.Release();
deltaSMT.Release();
deltaJT.Release();
}
void SaveAsHalf(RenderTexture rtex, string fileName)
{
Texture2D temp = new Texture2D(rtex.width, rtex.height, TextureFormat.RGBAHalf, false, false);
RenderTexture.active = rtex;
temp.ReadPixels (new Rect (0, 0, rtex.width, rtex.height), 0, 0);
temp.Apply ();
byte[] byteArray = temp.GetRawTextureData();
System.IO.File.WriteAllBytes(fileName + ".half", byteArray);
}
}
}
================================================
FILE: scatterer/Effects/Proland/Atmosphere/SkyNode.cs
================================================
using UnityEngine;
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using KSP.IO;
namespace Scatterer
{
public class SkyNode: MonoBehaviour
{
[Persistent] protected string name;
public float Rg; //The radius of the planet
public float Rt; //Radius of the atmosphere, calculated automatically from HR and HM and the scattering factors
[Persistent] public float atmosphereStartRadiusScale = 1f;
[Persistent] public float HR = 8.0f; //Half heights for the atmosphere air density (HR) and particle density (HM), this is the height in km that half the particles are found below
[Persistent] public float HM = 1.2f;
[Persistent] public Vector3 m_betaR = new Vector3 (5.8e-3f, 1.35e-2f, 3.31e-2f);
[Persistent] public Vector3 BETA_MSca = new Vector3 (4e-3f, 4e-3f, 4e-3f); //scatter coefficient for mie
[Persistent] public float m_mieG = 0.85f; //Asymmetry factor for the mie phase function, a higher number means more light is scattered in the forward direction
[Persistent] public Vector3 ozoneAbsorption = new Vector3(0.0003426f, 0.0008298f, 0.000036f); // From Physically Based Sky, Atmosphere & Cloud Rendering in Frostbite (2016), these look better than other coefficients I found in the literature
[Persistent] public float ozoneHeight = 25f; // Ozone density is highest at ozoneHeight(km) and decreases linearly away from that altitude until ozoneFalloff(km), as per Bruneton (2017)
[Persistent] public float ozoneFalloff = 15f; // profile from http://www.kln.ac.lk/science/Chemistry/Teaching_Resources/
[Persistent] public bool useOzone = false;
[Persistent] public float averageGroundReflectance = 0.1f;
[Persistent] public bool multipleScattering = true;
public bool previewMode = false;
public float mainMenuScaleFactor = 1f;
[Persistent] public float godrayStrength = 0.8f;
[Persistent] public float flattenScaledSpaceMesh = 0f;
[Persistent] public float rimBlend = 20f;
[Persistent] public float rimpower = 600f;
[Persistent] public float specR = 0f;
[Persistent] public float specG = 0f;
[Persistent] public float specB = 0f;
[Persistent] public float shininess = 0f;
[Persistent] public float noonSunlightExtinctionStrength = 1f;
[Persistent] public float cloudColorMultiplier=3f;
[Persistent] public float cloudScatteringMultiplier=0.2f;
[Persistent] public float cloudSkyIrradianceMultiplier=0.05f;
[Persistent] public float volumetricsColorMultiplier = 1f;
[Persistent] public bool EVEIntegration_preserveCloudColors = false;
// [Persistent] public float godrayCloudAlphaThreshold = 0.25f;
[Persistent] public List < ConfigPoint > configPoints = new List < ConfigPoint > ();
[Persistent] public bool adjustScaledTexture = false;
[Persistent] public float scaledLandBrightnessAdjust = 1f;
[Persistent] public float scaledLandContrastAdjust = 1f;
[Persistent] public float scaledLandSaturationAdjust = 1f;
[Persistent] public float scaledOceanBrightnessAdjust = 1f;
[Persistent] public float scaledOceanContrastAdjust = 1f;
[Persistent] public float scaledOceanSaturationAdjust = 1f;
//Texture2D m_inscatter, m_irradiance, m_ozoneTransmittance = Texture2D.whiteTexture;
Texture2D atmosphereAtlas; // Combine all the lookup tables to save texture slots on Mac
Vector2 atlasDimensions;
List<Vector4> atlasScaleAndOffsets = new List<Vector4> { Vector4.zero, Vector4.zero, Vector4.zero, Vector4.zero};
//Dimensions of the tables
const int TRANSMITTANCE_W = 512;
const int TRANSMITTANCE_H = 128;
Vector2 transmittanceTableDimensions = new Vector2(TRANSMITTANCE_W, TRANSMITTANCE_H);
const int SKY_W = 64;
const int SKY_H = 16;
Vector4 scatteringLutDimensions = AtmoPreprocessor.ScatteringLutDimensionsDefault;
string celestialBodyName;
public Transform parentScaledTransform, parentLocalTransform;
public ProlandManager prolandManager;
public UrlDir.UrlConfig configUrl;
public bool isConfigModuleManagerPatch = true;
public bool usesCloudIntegration = true;
public float altitude;
public float percentage;
public int currentConfigPoint;
public ConfigPoint interpolatedSettings= new ConfigPoint();
public bool inScaledSpace = true, simulateOceanInteraction=false;
Vector3 sunPosRelPlanet=Vector3.zero;
Matrix4x4 castersMatrix1=Matrix4x4.zero;
Matrix4x4 castersMatrix2=Matrix4x4.zero;
SkySphereContainer skySphere;
GameObject stockSkyGameObject;
MeshRenderer stockScaledPlanetMeshRenderer;
Mesh originalScaledMesh, tweakedScaledmesh;
public ScaledScatteringContainer scaledScatteringContainer;
public Material localScatteringMaterial, skyMaterial, scaledScatteringMaterial, sunflareExtinctionMaterial, scaledEclipseMaterial;
public GenericLocalAtmosphereContainer localScatteringContainer;
public LegacyGodraysRenderer legacyGodraysRenderer;
public bool postprocessingEnabled = true;
GameObject ringObject;
float ringInnerRadius, ringOuterRadius;
Texture2D ringTexture;
bool hasRingObjectAndShadowActivated = false;
bool skyNodeInitiated = false;
bool precomputedAtmoLoaded = false;
bool atmosphereShadersInitiated = false;
public bool useEclipses = false;
Texture2D originalPlanetTexture;
RenderTexture adjustedPlanetTexture;
public void Init ()
{
InitOrRequestPrecomputedAtmo ();
skyMaterial = new Material (ShaderReplacer.Instance.LoadedShaders[("Scatterer/SkySphere")]);
scaledScatteringMaterial = new Material (ShaderReplacer.Instance.LoadedShaders[("Scatterer/ScaledPlanetScattering")]);
localScatteringMaterial = new Material (ShaderReplacer.Instance.LoadedShaders[("Scatterer/DepthBufferScattering")]);
skyMaterial.SetOverrideTag ("IgnoreProjector", "True");
scaledScatteringMaterial.SetOverrideTag ("IgnoreProjector", "True");
localScatteringMaterial.SetOverrideTag ("IgnoreProjector", "True");
useEclipses = Scatterer.Instance.mainSettings.useEclipses && (prolandManager.eclipseCasters.Count > 0) && HighLogic.LoadedScene != GameScenes.MAINMENU ; //disable bugged eclipses on main menu
Utils.EnableOrDisableShaderKeywords (localScatteringMaterial, "ECLIPSES_ON", "ECLIPSES_OFF", useEclipses);
Utils.EnableOrDisableShaderKeywords (localScatteringMaterial, "DISABLE_UNDERWATER_ON", "DISABLE_UNDERWATER_OFF", prolandManager.hasOcean);
if (Scatterer.Instance.mainSettings.useLegacyTerrainGodrays && Scatterer.Instance.unifiedCameraMode && prolandManager.parentCelestialBody.pqsController
&& Scatterer.Instance.mainSettings.terrainShadows && (Scatterer.Instance.mainSettings.unifiedCamShadowResolutionOverride != 0))
{
legacyGodraysRenderer = (LegacyGodraysRenderer)Utils.getEarliestLocalCamera().gameObject.AddComponent(typeof(LegacyGodraysRenderer));
if (!legacyGodraysRenderer.Init(prolandManager.mainSunLight, this))
{
Component.Destroy(legacyGodraysRenderer);
legacyGodraysRenderer = null;
}
}
if (Scatterer.Instance.mainSettings.useRingShadows)
{
InitKopernicusRings ();
}
TweakScaledMesh ();
if (prolandManager.parentCelestialBody.pqsController)
{
prolandManager.parentCelestialBody.pqsController.isActive = false; //sometimes the PQS is forgotten as "active" if a ship is loaded directly around another body, this would mess with the mod
//this sets it to false, if it's really active it will be set to active automatically. EVE mod seems also to have a fix for this
}
if ((HighLogic.LoadedScene != GameScenes.MAINMENU) && (HighLogic.LoadedScene != GameScenes.TRACKSTATION)) // &&useLocalScattering
{
localScatteringContainer = new ScreenSpaceScatteringContainer(localScatteringMaterial, parentLocalTransform, Rt, prolandManager, Scatterer.Instance.mainSettings.quarterResScattering && !legacyGodraysRenderer);
}
if (Scatterer.Instance.mainSettings.fullLensFlareReplacement)
{
sunflareExtinctionMaterial = new Material (ShaderReplacer.Instance.LoadedShaders ["Scatterer/sunFlareExtinction"]);
InitUniforms(sunflareExtinctionMaterial);
if (hasRingObjectAndShadowActivated)
{
sunflareExtinctionMaterial.SetFloat (ShaderProperties.ringInnerRadius_PROPERTY, ringInnerRadius);
sunflareExtinctionMaterial.SetFloat (ShaderProperties.ringOuterRadius_PROPERTY, ringOuterRadius);
sunflareExtinctionMaterial.SetVector (ShaderProperties.ringNormal_PROPERTY, ringObject.transform.up);
sunflareExtinctionMaterial.SetTexture (ShaderProperties.ringTexture_PROPERTY, ringTexture);
}
Utils.EnableOrDisableShaderKeywords (sunflareExtinctionMaterial, "DISABLE_UNDERWATER_ON", "DISABLE_UNDERWATER_OFF", prolandManager.hasOcean);
}
if (useEclipses || hasRingObjectAndShadowActivated)
{
scaledEclipseMaterial = new Material (ShaderReplacer.Instance.LoadedShaders [("Scatterer/ScaledPlanetEclipse")]);
scaledEclipseMaterial.renderQueue = 2001;
Utils.EnableOrDisableShaderKeywords (scaledEclipseMaterial, "ECLIPSES_ON", "ECLIPSES_OFF", useEclipses);
Utils.EnableOrDisableShaderKeywords (scaledEclipseMaterial, "RINGSHADOW_ON", "RINGSHADOW_OFF", hasRingObjectAndShadowActivated);
InitUniforms(scaledEclipseMaterial);
}
stockScaledPlanetMeshRenderer = (MeshRenderer) parentScaledTransform.GetComponent<MeshRenderer>();
skyNodeInitiated = true;
Utils.LogDebug("Skynode initiated for "+celestialBodyName);
}
void InitSkySphere ()
{
float skySphereSize = (1.5f * (Rt - Rg*atmosphereStartRadiusScale) + Rg*atmosphereStartRadiusScale) / ScaledSpace.ScaleFactor;
skySphere = new SkySphereContainer (skySphereSize, skyMaterial, parentLocalTransform, parentScaledTransform);
if (HighLogic.LoadedScene != GameScenes.MAINMENU)
{
if (prolandManager.parentCelestialBody.pqsController != null && prolandManager.parentCelestialBody.pqsController.isActive && HighLogic.LoadedScene != GameScenes.TRACKSTATION)
{
skySphere.SwitchLocalMode ();
}
else
{
skySphere.SwitchScaledMode ();
}
}
skyMaterial.renderQueue = 2998;
InitUniforms (skyMaterial);
}
public void InitScaledScattering ()
{
scaledScatteringContainer = new ScaledScatteringContainer (parentScaledTransform.GetComponent<MeshFilter> ().sharedMesh, scaledScatteringMaterial, parentLocalTransform, parentScaledTransform);
if (HighLogic.LoadedScene != GameScenes.MAINMENU)
{
if (prolandManager.parentCelestialBody.pqsController != null && prolandManager.parentCelestialBody.pqsController.isActive && HighLogic.LoadedScene != GameScenes.TRACKSTATION)
{
scaledScatteringContainer.SwitchLocalMode ();
}
else
{
scaledScatteringContainer.SwitchScaledMode ();
}
}
scaledScatteringMaterial.renderQueue = 2997;
InitUniforms (scaledScatteringMaterial);
}
public void OnPreRender()
{
UpdateGraphicsUniforms ();
if (!MapView.MapIsEnabled && Scatterer.Instance.mainSettings.sunlightExtinction && precomputedAtmoLoaded)
{
UpdateLightExtinctions ();
}
}
public void UpdateGraphicsUniforms()
{
if (!inScaledSpace && !MapView.MapIsEnabled && postprocessingEnabled && localScatteringContainer!=null)
{
UpdatePostProcessMaterialUniforms (localScatteringContainer.material);
}
if (useEclipses)
{
UpdateEclipseCasters ();
}
if (Scatterer.Instance.mainSettings.integrateWithEVEClouds && usesCloudIntegration)
{
UpdateEVECloudMaterials ();
}
if (Scatterer.Instance.sunflareManager)
{
UpdateSunflareExtinctions ();
}
if (scaledScatteringContainer != null)
scaledScatteringContainer.MeshRenderer.enabled = stockScaledPlanetMeshRenderer.enabled;
if (localScatteringContainer != null)
{
localScatteringContainer.SetInScaledSpace (inScaledSpace);
localScatteringContainer.UpdateContainer ();
}
SetUniforms (skyMaterial);
SetUniforms (scaledScatteringMaterial);
if (sunflareExtinctionMaterial)
SetUniforms (sunflareExtinctionMaterial);
if (scaledEclipseMaterial)
{
scaledEclipseMaterial.SetVector (ShaderProperties._Sun_WorldSunDir_PROPERTY, prolandManager.getDirectionToMainSun ());
scaledEclipseMaterial.SetMatrix (ShaderProperties.lightOccluders1_PROPERTY, castersMatrix1);
scaledEclipseMaterial.SetMatrix (ShaderProperties.lightOccluders2_PROPERTY, castersMatrix2);
scaledEclipseMaterial.SetVector (ShaderProperties.sunPosAndRadius_PROPERTY, new Vector4 (sunPosRelPlanet.x, sunPosRelPlanet.y,
sunPosRelPlanet.z, (float)prolandManager.sunCelestialBody.Radius));
}
}
public void UpdateNode ()
{
if ((prolandManager.parentCelestialBody.pqsController != null) && !(HighLogic.LoadedScene == GameScenes.TRACKSTATION))
{
bool previousState = inScaledSpace;
inScaledSpace = !prolandManager.parentCelestialBody.pqsController.isActive;
//if we go from scaled to local space
if (!inScaledSpace && previousState)
{
SwitchEffectsLocal();
}
//if we go from local to scaled
if (inScaledSpace && !previousState)
{
SwitchEffectsScaled();
}
//For wave interactions, consider we are in scaledSpace only if we aren't in map view, otherwise we can be in the surface but pqsController is inactive
if (!MapView.MapIsEnabled)
simulateOceanInteraction = prolandManager.parentCelestialBody.pqsController.isActive;
}
else
{
inScaledSpace = true;
simulateOceanInteraction = false;
}
if (skyNodeInitiated)
{
if (!precomputedAtmoLoaded)
{
InitOrRequestPrecomputedAtmo();
}
else if (!atmosphereShadersInitiated)
{
InitSkySphere ();
InitPostprocessMaterialUniforms (localScatteringMaterial);
InitScaledScattering ();
try {StartCoroutine(DelayedTweakStockPlanet ());}
catch (Exception e){Utils.LogError("Error when starting SkyNode::DelayedTweakStockPlanet coroutine "+e.Message);};
if (Scatterer.Instance.mainSettings.integrateWithEVEClouds && usesCloudIntegration)
InitEVEClouds ();
InitOceanMaterialUniforms();
atmosphereShadersInitiated = true;
}
InterpolateVariables ();
if (prolandManager.hasOcean && !Scatterer.Instance.mainSettings.useOceanShaders)
{
skySphere.MeshRenderer.enabled = (altitude>=0f);
stockSkyGameObject.SetActive(altitude<0f); //re-enable stock sky meshrenderer, for compatibility with stock underwater effect
}
}
}
public void SwitchEffectsScaled()
{
Utils.LogInfo ("Skynode switch effects to scaled mode: "+prolandManager.parentCelestialBody.name);
if (skySphere != null)
skySphere.SwitchScaledMode ();
if (scaledScatteringContainer != null)
scaledScatteringContainer.SwitchScaledMode ();
if (localScatteringContainer != null)
localScatteringContainer.SetActivated(false);
}
public void SwitchEffectsLocal()
{
Utils.LogInfo ("Skynode switch effects to local mode "+prolandManager.parentCelestialBody.name);
if (skySphere != null)
skySphere.SwitchLocalMode();
if (scaledScatteringContainer != null)
scaledScatteringContainer.SwitchLocalMode ();
if (localScatteringContainer != null)
localScatteringContainer.SetActivated(true);
}
public void SetUniforms (Material mat)
{
mat.SetFloat(ShaderProperties._Alpha_Global_PROPERTY, interpolatedSettings.skyAlpha);
mat.SetFloat(ShaderProperties._Extinction_Tint_PROPERTY, interpolatedSettings.skyExtinctionTint);
mat.SetFloat(ShaderProperties.extinctionTint_PROPERTY, interpolatedSettings.extinctionTint); //extinctionTint for scaled+local
mat.SetFloat(ShaderProperties.extinctionThickness_PROPERTY, interpolatedSettings.extinctionThickness);
mat.SetFloat(ShaderProperties.Rg_PROPERTY, Rg * atmosphereStartRadiusScale);
mat.SetFloat(ShaderProperties.Rt_PROPERTY, Rt);
mat.SetFloat(ShaderProperties.mieG_PROPERTY, Mathf.Clamp(m_mieG, 0.0f, 0.99f));
mat.SetVector(ShaderProperties._Sun_WorldSunDir_PROPERTY, prolandManager.getDirectionToMainSun());
mat.SetFloat(ShaderProperties._SkyExposure_PROPERTY, interpolatedSettings.skyExposure);
mat.SetFloat(ShaderProperties._ScatteringExposure_PROPERTY, interpolatedSettings.scatteringExposure);
if ((prolandManager.secondarySuns.Count > 0) || Scatterer.Instance.mainSettings.usePlanetShine)
{
mat.SetMatrix(ShaderProperties.planetShineSources_PROPERTY, prolandManager.planetShineSourcesMatrix);
mat.SetMatrix(ShaderProperties.planetShineRGB_PROPERTY, prolandManager.planetShineRGBMatrix);
}
UpdateEclipseAndRingUniforms(mat);
if (legacyGodraysRenderer)
{
mat.SetFloat(ShaderProperties._godrayStrength_PROPERTY, godrayStrength);
}
mat.SetColor(ShaderProperties._sunColor_PROPERTY, prolandManager.getIntensityModulatedSunColor());
}
private void UpdateEclipseAndRingUniforms(Material mat)
{
if (useEclipses)
{
mat.SetMatrix(ShaderProperties.lightOccluders1_PROPERTY, castersMatrix1);
mat.SetMatrix(ShaderProperties.lightOccluders2_PROPERTY, castersMatrix2);
mat.SetVector(ShaderProperties.sunPosAndRadius_PROPERTY, new Vector4(sunPosRelPlanet.x, sunPosRelPlanet.y,
sunPosRelPlanet.z, (float)prolandManager.sunCelestialBody.Radius));
}
if (hasRingObjectAndShadowActivated)
{
mat.SetVector(ShaderProperties.ringNormal_PROPERTY, ringObject.transform.up);
}
}
public void SetOceanUniforms (Material mat)
{
if (mat == null)
return;
mat.SetFloat (ShaderProperties._ScatteringExposure_PROPERTY, interpolatedSettings.scatteringExposure);
mat.SetFloat (ShaderProperties.Rg_PROPERTY, Rg*atmosphereStartRadiusScale);
mat.SetFloat (ShaderProperties.Rt_PROPERTY, Rt);
mat.SetFloat (ShaderProperties.mieG_PROPERTY, Mathf.Clamp (m_mieG, 0.0f, 0.99f));
mat.SetVector (ShaderProperties._Sun_WorldSunDir_PROPERTY, prolandManager.getDirectionToMainSun ());
mat.SetVector(ShaderProperties._camForward_PROPERTY, Scatterer.Instance.nearCamera.transform.forward);
mat.SetFloat (ShaderProperties._Alpha_Global_PROPERTY, interpolatedSettings.skyAlpha);
mat.SetFloat (ShaderProperties._SkyExposure_PROPERTY, interpolatedSettings.skyExposure);
UpdatePostProcessMaterialUniforms (mat);
}
public void InitPostprocessMaterialUniforms (Material mat)
{
if (mat == null || !precomputedAtmoLoaded)
return;
mat.SetFloat(ShaderProperties.mieG_PROPERTY, Mathf.Clamp(m_mieG, 0.0f, 0.99f));
mat.SetTexture(ShaderProperties.AtmosphereAtlas_PROPERTY, atmosphereAtlas);
mat.SetVector(ShaderProperties.InscatterAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[0]);
mat.SetVector(ShaderProperties.IrradianceAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[1]);
mat.SetVector(ShaderProperties.TransmittanceAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[2]);
mat.SetVector(ShaderProperties.AtmosphereAtlasDimensions_PROPERTY, new Vector2(atmosphereAtlas.width, atmosphereAtlas.height));
mat.SetFloat(ShaderProperties.M_PI_PROPERTY, Mathf.PI);
mat.SetFloat(ShaderProperties.Rg_PROPERTY, Rg * atmosphereStartRadiusScale);
mat.SetFloat(ShaderProperties.Rt_PROPERTY, Rt);
mat.SetVector(ShaderProperties.PRECOMPUTED_SCTR_LUT_DIM_PROPERTY, scatteringLutDimensions);
mat.SetFloat(ShaderProperties.TRANSMITTANCE_W_PROPERTY, TRANSMITTANCE_W);
mat.SetFloat(ShaderProperties.TRANSMITTANCE_H_PROPERTY, TRANSMITTANCE_H);
mat.SetFloat(ShaderProperties.SKY_W_PROPERTY, SKY_W);
mat.SetFloat(ShaderProperties.SKY_H_PROPERTY, SKY_H);
mat.SetVector(ShaderProperties.betaR_PROPERTY, m_betaR / 1000.0f / mainMenuScaleFactor);
mat.SetFloat(ShaderProperties.mieG_PROPERTY, Mathf.Clamp(m_mieG, 0.0f, 0.99f));
mat.SetVector(ShaderProperties.betaMSca_PROPERTY, BETA_MSca / 1000.0f / mainMenuScaleFactor);
mat.SetVector(ShaderProperties.betaMEx_PROPERTY, (BETA_MSca / 1000.0f / mainMenuScaleFactor) / 0.9f);
mat.SetFloat(ShaderProperties.HR_PROPERTY, HR * 1000.0f * mainMenuScaleFactor);
mat.SetFloat(ShaderProperties.HM_PROPERTY, HM * 1000.0f * mainMenuScaleFactor);
mat.SetVector(ShaderProperties.SUN_DIR_PROPERTY, prolandManager.getDirectionToMainSun());
Utils.EnableOrDisableShaderKeywords(mat, "PLANETSHINE_ON", "PLANETSHINE_OFF", (prolandManager.secondarySuns.Count > 0) || Scatterer.Instance.mainSettings.usePlanetShine);
//When using custom ocean shaders, we don't reuse the ocean mesh to render scattering separately: Instead ocean shader handles scattering internally
//When the ocean starts fading out when transitioning to orbit, ocean shader stops doing scattering, and stops writing to z-buffer
//The ocean floor vertexes are then used by the scattering shader, moving them to the surface to render scattering, this is not needed for stock ocean so disable it
Utils.EnableOrDisableShaderKeywords(mat, "CUSTOM_OCEAN_ON", "CUSTOM_OCEAN_OFF", Scatterer.Instance.mainSettings.useOceanShaders && prolandManager.hasOcean);
Utils.EnableOrDisableShaderKeywords(mat, "DITHERING_ON", "DITHERING_OFF", Scatterer.Instance.mainSettings.useDithering);
if (prolandManager.flatScaledSpaceModel && prolandManager.parentCelestialBody.pqsController)
mat.SetFloat(ShaderProperties._PlanetOpacity_PROPERTY, 0f);
else
mat.SetFloat(ShaderProperties._PlanetOpacity_PROPERTY, 1f);
mat.SetColor(ShaderProperties._sunColor_PROPERTY, prolandManager.getIntensityModulatedSunColor());
mat.SetColor(ShaderProperties.cloudSunColor_PROPERTY, prolandManager.cloudIntegrationUsesScattererSunColors ? prolandManager.getIntensityModulatedSunColor() : prolandManager.mainScaledSunLight.color * prolandManager.mainScaledSunLight.intensity);
float camerasOverlap = 0f;
if (!Scatterer.Instance.unifiedCameraMode)
camerasOverlap = Scatterer.Instance.nearCamera.farClipPlane - Scatterer.Instance.farCamera.nearClipPlane;
mat.SetFloat(ShaderProperties._ScattererCameraOverlap_PROPERTY, camerasOverlap);
InitGodraysUniforms(mat);
Utils.SetToneMapping(mat);
InitEclipseAndRingUniforms(mat);
}
public void UpdatePostProcessMaterialUniforms (Material mat)
{
mat.SetFloat (ShaderProperties._global_alpha_PROPERTY, interpolatedSettings.postProcessAlpha);
mat.SetFloat (ShaderProperties._ScatteringExposure_PROPERTY, interpolatedSettings.scatteringExposure);
mat.SetFloat (ShaderProperties._global_depth_PROPERTY, interpolatedSettings.postProcessDepth *1000000);
if (prolandManager.flatScaledSpaceModel && prolandManager.parentCelestialBody.pqsController)
{
if (MapView.MapIsEnabled)
mat.SetFloat (ShaderProperties._PlanetOpacity_PROPERTY, 0f);
else
mat.SetFloat (ShaderProperties._PlanetOpacity_PROPERTY, 1f - prolandManager.parentCelestialBody.pqsController.surfaceMaterial.GetFloat (ShaderProperties._PlanetOpacity_PROPERTY));
}
mat.SetFloat (ShaderProperties._Post_Extinction_Tint_PROPERTY, interpolatedSettings.extinctionTint);
mat.SetFloat (ShaderProperties.extinctionThickness_PROPERTY, interpolatedSettings.extinctionThickness);
mat.SetVector (ShaderProperties.SUN_DIR_PROPERTY, prolandManager.getDirectionToMainSun ());
mat.SetVector (ShaderProperties._planetPos_PROPERTY, parentLocalTransform.position);
mat.SetColor (ShaderProperties.cloudSunColor_PROPERTY, prolandManager.cloudIntegrationUsesScattererSunColors ? prolandManager.getIntensityModulatedSunColor() : prolandManager.mainScaledSunLight.color * prolandManager.mainScaledSunLight.intensity );
if ((prolandManager.secondarySuns.Count > 0) || Scatterer.Instance.mainSettings.usePlanetShine)
{
mat.SetMatrix (ShaderProperties.planetShineSources_PROPERTY, prolandManager.planetShineSourcesMatrix);
mat.SetMatrix (ShaderProperties.planetShineRGB_PROPERTY, prolandManager.planetShineRGBMatrix);
mat.SetMatrix (ShaderProperties.cloudPlanetShineRGB_PROPERTY, prolandManager.cloudIntegrationUsesScattererSunColors ? prolandManager.planetShineRGBMatrix : prolandManager.planetShineOriginalRGBMatrix );
}
if (legacyGodraysRenderer)
{
mat.SetFloat(ShaderProperties._godrayStrength_PROPERTY, godrayStrength);
}
mat.SetColor (ShaderProperties._sunColor_PROPERTY, prolandManager.getIntensityModulatedSunColor());
UpdateEclipseAndRingUniforms(mat);
}
public void InitUniforms (Material mat)
{
if (mat == null || !precomputedAtmoLoaded)
return;
mat.SetFloat(ShaderProperties.M_PI_PROPERTY, Mathf.PI);
mat.SetFloat(ShaderProperties.mieG_PROPERTY, Mathf.Clamp(m_mieG, 0.0f, 0.99f));
mat.SetVector(ShaderProperties.betaR_PROPERTY, m_betaR / 1000.0f / mainMenuScaleFactor);
mat.SetTexture(ShaderProperties.AtmosphereAtlas_PROPERTY, atmosphereAtlas);
mat.SetVector(ShaderProperties.InscatterAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[0]);
mat.SetVector(ShaderProperties.IrradianceAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[1]);
mat.SetVector(ShaderProperties.TransmittanceAtlasScaleAndOffset_PROPERTY, atlasScaleAndOffsets[2]);
mat.SetVector(ShaderProperties.AtmosphereAtlasDimensions_PROPERTY, atlasDimensions);
mat.SetFloat(ShaderProperties.Rg_PROPERTY, Rg * atmosphereStartRadiusScale);
mat.SetFloat(ShaderProperties.Rt_PROPERTY, Rt);
mat.SetFloat(ShaderProperties.TRANSMITTANCE_W_PROPERTY, TRANSMITTANCE_W);
mat.SetFloat(ShaderProperties.TRANSMITTANCE_H_PROPERTY, TRANSMITTANCE_H);
mat.SetFloat(ShaderProperties.SKY_W_PROPERTY, SKY_W);
mat.SetFloat(ShaderProperties.SKY_H_PROPERTY, SKY_H);
mat.SetVector(ShaderProperties.PRECOMPUTED_SCTR_LUT_DIM_PROPERTY, scatteringLutDimensions);
mat.SetFloat(ShaderProperties.HR_PROPERTY, HR * 1000.0f * mainMenuScaleFactor);
mat.SetFloat(ShaderProperties.HM_PROPERTY, HM * 1000.0f * mainMenuScaleFactor);
mat.SetVector(ShaderProperties.betaMSca_PROPERTY, BETA_MSca / 1000.0f / mainMenuScaleFactor);
mat.SetVector(ShaderProperties.betaMEx_PROPERTY, (BETA_MSca / 1000.0f / mainMenuScaleFactor) / 0.9f);
InitEclipseAndRingUniforms(mat);
Utils.EnableOrDisableShaderKeywords(mat, "PLANETSHINE_ON", "PLANETSHINE_OFF", (prolandManager.secondarySuns.Count > 0) || Scatterer.Instance.mainSettings.usePlanetShine);
Utils.EnableOrDisableShaderKeywords(mat, "DITHERING_ON", "DITHERING_OFF", Scatterer.Instance.mainSettings.useDithering);
mat.SetFloat(ShaderProperties.flatScaledSpaceModel_PROPERTY, prolandManager.flatScaledSpaceModel ? 1f : 0f);
mat.SetColor(ShaderProperties._sunColor_PROPERTY, prolandManager.getIntensityModulatedSunColor());
mat.SetColor(ShaderProperties.cloudSunColor_PROPERTY, prolandManager.cloudIntegrationUsesScattererSunColors ? prolandManager.getIntensityModulatedSunColor() : prolandManager.mainScaledSunLight.color * prolandManager.mainScaledSunLight.intensity);
InitGodraysUniforms(mat);
Utils.SetToneMapping(mat);
}
private void InitGodraysUniforms(Material mat)
{
if (legacyGodraysRenderer != null)
{
mat.SetTexture(ShaderProperties._godrayDepthTexture_PROPERTY, legacyGodraysRenderer.volumeDepthTexture);
mat.EnableKeyword("GODRAYS_LEGACY");
mat.EnableKeyword("RAYMARCHED_GODRAYS_OFF");
mat.DisableKeyword("GODRAYS_OFF");
mat.SetFloat(ShaderProperties.godraysSoftwareSwitch_PROPERTY, 0f);
}
else
{
mat.EnableKeyword("RAYMARCHED_GODRAYS_OFF");
mat.EnableKeyword("GODRAYS_OFF");
mat.SetFloat(ShaderProperties.godraysSoftwareSwitch_PROPERTY, 0f);
}
}
private void InitEclipseAndRingUniforms(Material mat)
{
if (hasRingObjectAndShadowActivated)
{
Utils.EnableOrDisableShaderKeywords(mat, "RINGSHADOW_ON", "RINGSHADOW_OFF", true);
mat.SetFloat("useRingShadow", 1f);
mat.SetFloat(ShaderProperties.ringInnerRadius_PROPERTY, ringInnerRadius);
mat.SetFloat(ShaderProperties.ringOuterRadius_PROPERTY, ringOuterRadius);
mat.SetVector(ShaderProperties.ringNormal_PROPERTY, ringObject.transform.up);
mat.SetTexture(ShaderProperties.ringTexture_PROPERTY, ringTexture);
}
else
{
Utils.EnableOrDisableShaderKeywords(mat, "RINGSHADOW_ON", "RINGSHADOW_OFF", false);
mat.SetFloat("useRingShadow", 0f);
}
Utils.EnableOrDisableShaderKeywords(mat, "ECLIPSES_ON", "ECLIPSES_OFF", useEclipses);
mat.SetFloat("useEclipses", useEclipses ? 1f : 0f);
}
public void TogglePostProcessing()
{
postprocessingEnabled = !postprocessingEnabled;
}
void InitOrRequestPrecomputedAtmo ()
{
Rg = (float) prolandManager.GetRadius ();
Rt = AtmoPreprocessor.CalculateRt (Rg*atmosphereStartRadiusScale, HR*mainMenuScaleFactor, HM*mainMenuScaleFactor, m_betaR/mainMenuScaleFactor, BETA_MSca/mainMenuScaleFactor, useOzone, ozoneHeight/mainMenuScaleFactor, ozoneFalloff/mainMenuScaleFactor);
//Compute atmo hash and path
string cachePath = Utils.GameDataPath + "/ScattererAtmosphereCache/PluginData";
float originalRt = AtmoPreprocessor.CalculateRt ((float) prolandManager.parentCelestialBody.Radius * atmosphereStartRadiusScale, HR, HM, m_betaR, BETA_MSca, useOzone, ozoneHeight, ozoneFalloff);
string atmohash = AtmoPreprocessor.GetAtmoHash((float) prolandManager.parentCelestialBody.Radius * atmosphereStartRadiusScale, originalRt, m_betaR, BETA_MSca, m_mieG, HR, HM, averageGroundReflectance, multipleScattering, scatteringLutDimensions, useOzone, ozoneAbsorption, ozoneHeight, ozoneFalloff);
cachePath += "/" + atmohash;
string atlasPath = cachePath + "/atlas.half";
if (!System.IO.File.Exists (atlasPath))
{
AtmoPreprocessor.Generate ((float) prolandManager.parentCelestialBody.Radius * atmosphereStartRadiusScale, originalRt, m_betaR, BETA_MSca, m_mieG, HR, HM, averageGroundReflectance, multipleScattering, scatteringLutDimensions, previewMode, cachePath, useOzone, ozoneAbsorption, ozoneHeight, ozoneFalloff, prolandManager.parentCelestialBody.name);
precomputedAtmoLoaded = false;
return;
}
LoadPrecomputedAtmo(atlasPath);
precomputedAtmoLoaded = true;
if (atmosphereShadersInitiated)
ReinitAllMaterials();
}
private void LoadPrecomputedAtmo(string atlasPath)
{
var textureDimensions = new List<Vector2> {
new Vector2(scatteringLutDimensions.x * scatteringLutDimensions.y, scatteringLutDimensions.z* scatteringLutDimensions.w),
new Vector2(SKY_W, SKY_H),
new Vector2(TRANSMITTANCE_W, TRANSMITTANCE_H) };
// Textures are packed in the simplest way possible, top-left to bottom-left
int atlasWidth = textureDimensions.Max(texture => (int)texture.x);
int atlasHeight = textureDimensions.Sum(texture => (int)texture.y);
atlasDimensions = new Vector2(atlasWidth, atlasHeight);
atmosphereAtlas = new Texture2D(atlasWidth, atlasHeight, TextureFormat.RGBAHalf, false);
atmosphereAtlas.wrapMode = TextureWrapMode.Clamp;
atmosphereAtlas.filterMode = FilterMode.Bilinear;
atmosphereAtlas.LoadRawTextureData(System.IO.File.ReadAllBytes(atlasPath));
atmosphereAtlas.Apply();
atlasScaleAndOffsets = AtmoPreprocessor.GetPackedTexturesScaleAndOffsets(textureDimensions, atlasDimensions);
}
public void ApplyAtmoFromUI(Vector4 inBETA_R, Vector4 inBETA_MSca, float inMIE_G, float inHR, float inHM, float inGRref, bool inMultiple, bool inFastPreviewMode, float inAtmosphereStartRadiusScale, bool inUseOzone, Vector3 inOzoneAbsorption, float inOzoneHeight, float inOzoneFalloff)
{
m_betaR = inBETA_R;
BETA_MSca = inBETA_MSca;
m_mieG = inMIE_G;
HR = inHR;
HM = inHM;
averageGroundReflectance = inGRref;
multipleScattering = inMultiple;
previewMode = inFastPreviewMode;
scatteringLutDimensions = inFastPreviewMode ? AtmoPreprocessor.scatteringLutDimensionsPreview : AtmoPreprocessor.ScatteringLutDimensionsDefault ;
atmosphereStartRadiusScale = inAtmosphereStartRadiusScale;
ozoneAbsorption = inOzoneAbsorption;
ozoneHeight = inOzoneHeight;
ozoneFalloff = inOzoneFalloff;
useOzone = inUseOzone;
InitOrRequestPrecomputedAtmo ();
float skySphereSize = 2 * (4 * (Rt - Rg*atmosphereStartRadiusScale) + Rg*atmosphereStartRadiusScale) / ScaledSpace.ScaleFactor;
skySphere.Resize (skySphereSize);
}
void ReinitAllMaterials()
{
if (scaledEclipseMaterial)
InitUniforms(scaledEclipseMaterial);
if (skyMaterial)
InitUniforms(skyMaterial);
if (scaledScatteringMaterial)
InitUniforms(scaledScatteringMaterial);
if (sunflareExtinctionMaterial)
InitUniforms(sunflareExtinctionMaterial);
if (localScatteringMaterial)
InitPostprocessMaterialUniforms(localScatteringMaterial);
ReInitMaterialUniformsOnRenderTexturesLoss();
// make the clouds2d material optional
// add fields for volumetrics and raymarched volumetrics
if (Scatterer.Instance.eveReflectionHandler.EVECloudLayers.ContainsKey(celestialBodyName))
{
foreach (EVECloudLayer eveCloudLayer in Scatterer.Instance.eveReflectionHandler.EVECloudLayers[celestialBodyName])
{
if (eveCloudLayer.Clouds2dMaterial != null)
{
InitUniforms(eveCloudLayer.Clouds2dMaterial);
InitPostprocessMaterialUniforms(eveCloudLayer.Clouds2dMaterial);
}
if (eveCloudLayer.ParticleVolumetricsMaterial != null)
{
InitUniforms(eveCloudLayer.ParticleVolumetricsMaterial);
InitPostprocessMaterialUniforms(eveCloudLayer.ParticleVolumetricsMaterial);
}
}
}
InitOceanMaterialUniforms();
}
public void InitOceanMaterialUniforms()
{
if (prolandManager.GetOceanNode())
{
if (prolandManager.GetOceanNode().m_oceanMaterial)
{
InitUniforms(prolandManager.GetOceanNode().m_oceanMaterial);
InitPostprocessMaterialUniforms(prolandManager.GetOceanNode().m_oceanMaterial);
}
if (prolandManager.GetOceanNode().underwaterMaterial)
{
InitPostprocessMaterialUniforms(prolandManager.GetOceanNode().underwaterMaterial);
}
}
}
public void OnDestroy()
{
try {StopAllCoroutines ();}
catch (Exception){}
if (Scatterer.Instance.mainSettings.autosavePlanetSettingsOnSceneChange && !isConfigModuleManagerPatch)
{
SaveToConfigNode ();
}
if (atmosphereAtlas)
{
UnityEngine.Object.DestroyImmediate(atmosphereAtlas);
}
if (skySphere != null)
{
skySphere.Cleanup ();
}
if (scaledScatteringContainer != null)
{
scaledScatteringContainer.Cleanup ();
}
if (localScatteringContainer != null)
{
localScatteringContainer.Cleanup();
}
if (legacyGodraysRenderer)
{
Component.DestroyImmediate(legacyGodraysRenderer);
}
//disable eve integration scatterer flag
if (Scatterer.Instance.mainSettings.integrateWithEVEClouds && usesCloudIntegration)
{
try
{
if(Scatterer.Instance.eveReflectionHandler.EVECloudLayers.ContainsKey(celestialBodyName))
{
foreach(var cloudLayer in Scatterer.Instance.eveReflectionHandler.EVECloudLayers[celestialBodyName])
{
if (cloudLayer.Clouds2dMaterial != null)
{
cloudLayer.Clouds2dMaterial.DisableKeyword("SCATTERER_ON");
cloudLayer.Clouds2dMaterial.EnableKeyword("SCATTERER_OFF");
}
if (cloudLayer.ParticleVolumetricsMaterial != null)
{
cloudLayer.ParticleVolumetricsMaterial.DisableKeyword("SCATTERER_ON");
cloudLayer.ParticleVolumetricsMaterial.EnableKeyword("SCATTERER_OFF");
cloudLayer.ParticleVolumetricsMaterial.SetFloat("isUnderwater", 0f);
}
}
}
}
catch (Exception)
{
//TODO
}
}
if (originalScaledMesh && parentScaledTransform)
{
var mf = parentScaledTransform.GetComponent<MeshFilter> ();
if (mf) mf.sharedMesh = originalScaledMesh;
}
RestoreStockScaledTexture ();
}
public bool LoadFromConfigNode ()
{
ConfigNode cnToLoad = new ConfigNode();
ConfigNode[] configNodeArray;
bool found = false;
foreach (UrlDir.UrlConfig _url in Scatterer.Instance.planetsConfigsReader.atmoConfigs)
{
configNodeArray = _url.config.GetNodes("Atmo");
//if (_url.config.TryGetNode("Atmo",ref cnToLoad))
foreach(ConfigNode _cn in configNodeArray)
{
if (_cn.HasValue("name") && _cn.GetValue("name") == celestialBodyName)
{
cnToLoad = _cn;
configUrl = _url;
found = true;
break;
}
}
}
if (found)
{
Utils.LogDebug(" Atmosphere config found for: "+celestialBodyName);
ConfigNode.LoadObjectFromConfig (this, cnToLoad);
Rg = (float) prolandManager.GetRadius ();
Rt = AtmoPreprocessor.CalculateRt (Rg * atmosphereStartRadiusScale, HR*mainMenuScaleFactor, HM*mainMenuScaleFactor, m_betaR/mainMenuScaleFactor, BETA_MSca/mainMenuScaleFactor, useOzone, ozoneHeight / mainMenuScaleFactor, ozoneFalloff / mainMenuScaleFactor);
godrayStrength = Mathf.Min(godrayStrength,1.0f);
//compare parentConfigNode with the one on disk to determine if it's a ModuleManager Patch
string parentConfigNodePath = Utils.GameDataPath + configUrl.parent.url +".cfg";
if (System.IO.File.Exists(parentConfigNodePath))
{
ConfigNode cnParentFromFile = ConfigNode.Load(Utils.GameDataPath + configUrl.parent.url +".cfg");
if (cnParentFromFile.HasNode("Scatterer_atmosphere"))
{
int comparisonResult = configUrl.config.ToString().CompareTo(cnParentFromFile.GetNode("Scatterer_atmosphere").ToString());
isConfigModuleManagerPatch = (comparisonResult != 0);
}
}
}
else
{
Utils.LogError(" Atmosphere config not found for: "+celestialBodyName);
Utils.LogDebug(" Removing "+celestialBodyName +" from planets list");
Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies.Remove(Scatterer.Instance.planetsConfigsReader.scattererCelestialBodies.Find(_cb => _cb.celestialBodyName == celestialBodyName));
prolandManager.OnDestroy();
UnityEngine.Object.Destroy (prolandManager);
UnityEngine.Object.Destroy (this);
}
return found;
}
public void SaveToConfigNode ()
{
ConfigNode[] configNodeArray;
bool found = false;
configNodeArray = configUrl.config.GetNodes("Atmo");
foreach(ConfigNode _cn in configNodeArray)
{
if (_cn.HasValue("name") && _cn.GetValue("name") == celestialBodyName)
{
ConfigNode cnTemp = ConfigNode.CreateConfigFromObject (this);
_cn.ClearData();
ConfigNode.Merge (_cn, cnTemp);
_cn.name="Atmo";
Utils.LogDebug(" saving "+celestialBodyName+" atmo config to: "+configUrl.parent.url);
configUrl.parent.SaveConfigs ();
found=true;
break;
}
}
if (!found)
{
Utils.LogDebug(" couldn't find config file to save to");
}
}
void DisableStockSky ()
{
for (int i = 0; i < parentScaledTransform.childCount; i++) {
if (parentScaledTransform.GetChild (i).gameObject.layer == 9) {
if (parentScaledTransform.GetChild (i).gameObject.name == "Atmosphere") {
stockSkyGameObject = parentScaledTransform.GetChild (i).gameObject;
stockSkyGameObject.SetActive (false);
break;
}
}
}
}
IEnumerator DelayedTweakStockPlanet()
{
if (!stockScaledPlanetMeshRenderer.sharedMaterial.HasProperty ("_MainTex")) //this property is absent on gas giants
{
DisableStockSky();
if (adjustScaledTexture)
TweakStockScaledTexture ();
}
else // Have to delay this until Kopernicus loads the on-demand textures and also check it's not a rendertexture (ie overridden by scatterer)
{
while (true)
{
Texture maintex = stockScaledPlanetMeshRenderer.sharedMaterial.GetTexture("_MainTex");
if (maintex != null && maintex is Texture2D)
{
if (adjustScaledTexture)
TweakStockScaledTexture ();
TweakStockAtmosphere ();
yield return StartCoroutine(CheckOnDemandUnload()); //once loaded, wait for it to unload and resume checking again
}
yield return new WaitForSeconds(1f);
}
}
}
// Check if kopernicus on demand unloads the planet, then we have to start waiting for it to load it again
IEnumerator CheckOnDemandUnload()
{
while (true)
{
if (stockScaledPlanetMeshRenderer.sharedMaterial.GetTexture("_MainTex") == null)
{
break;
}
yield return new WaitForSeconds(3f);
}
}
public void TweakStockAtmosphere () //move to utils/scaledUtils etc
{
DisableStockSky ();
List<Material> materials = new List<Material>(stockScaledPlanetMeshRenderer.sharedMaterials);
materials.RemoveAll(x => x.shader.name == "Scatterer/ScaledPlanetEclipse");
if (useEclipses)
{
var deferred = ReflectionUtils.getType("Deferred.Deferred");
bool deferredInstalled = deferred != null;
// Split the main pass and the additive light passes into separate materials with different renderqueues so we can inject eclipses after the first pass, and make it apply only to the main pass
// But only if deferred is not installed, otherwise this breaks deferred rendering
if (parentScaledTransform.GetComponent<PlanetSecondaryLightUpdater>() == null && !deferredInstalled)
{
List<Material> materialsNoCityLights = new List<Material>(materials);
materialsNoCityLights.RemoveAll(x => x.shader.name == "EVE/PlanetCityLight");
Material planetScaledSpaceMaterial = materialsNoCityLights.ElementAt(0);
planetScaledSpaceMaterial.SetShaderPassEnabled("ForwardBase", true);
planetScaledSpaceMaterial.SetShaderPassEnabled("ForwardAdd", false);
materials.Add(Material.Instantiate(planetScaledSpaceMaterial));
materials.Last().CopyPropertiesFromMaterial(materialsNoCityLights.ElementAt(0));
materials.Last().SetShaderPassEnabled("ForwardBase", false);
materials.Last().SetShaderPassEnabled("ForwardAdd", true);
materials.Last().renderQueue = 2002;
PlanetSecondaryLightUpdater secondaryLightUpdater = parentScaledTransform.gameObject.AddComponent<PlanetSecondaryLightUpdater>();
secondaryLightUpdater.Init(planetScaledSpaceMaterial, materials.Last());
}
materials.Add(scaledEclipseMaterial);
}
stockScaledPlanetMeshRenderer.sharedMaterials = materials.ToArray ();
foreach (Material sharedMaterial in materials)
{
sharedMaterial.SetFloat (Shader.PropertyToID ("_rimBlend"), rimBlend / 100f);
sharedMaterial.SetFloat (Shader.PropertyToID ("_rimPower"), rimpower / 100f);
if (sharedMaterial.shader.name == "Terrain/Scaled Planet (RimAerial) Standard")
{
sharedMaterial.SetColor ("_SpecColor", new Color (specR / 255f, specG / 255f, specB / 255f));
if (HighLogic.LoadedScene == GameScenes.MAINMENU)
{
sharedMaterial.SetFloat ("_Shininess", shininess / 140f); //for some reason still too strong in main menu
}
else
{
sharedMaterial.SetFloat ("_Shininess", shininess / 120f);
}
}
else
{
sharedMaterial.SetColor ("_SpecColor", new Color (specR / 100f, specG / 100f, specB / 100f));
sharedMaterial.SetFloat ("_Shininess", shininess / 100f);
}
}
if (prolandManager.parentCelestialBody.pqsController != null)
{
Utils.EnableOrDisableShaderKeywords(prolandManager.parentCelestialBody.pqsController.fallbackMaterial,"AERIAL_ON", "AERIAL_OFF", false);
Utils.EnableOrDisableShaderKeywords(prolandManager.parentCelestialBody.pqsController.lowQualitySurfaceMaterial,"AERIAL_ON", "AERIAL_OFF", false);
Utils.EnableOrDisableShaderKeywords(prolandManager.parentCelestialBody.pqsController.mediumQualitySurfaceMaterial,"AERIAL_ON", "AERIAL_OFF", false);
Utils.EnableOrDisableShaderKeywords(prolandManager.parentCelestialBody.pqsController.highQualitySurfaceMaterial,"AERIAL_ON", "AERIAL_OFF", false);
Utils.EnableOrDisableShaderKeywords(prolandManager.parentCelestialBody.pqsController.ultraQualitySurfaceMaterial,"AERIAL_ON", "AERIAL_OFF", false);
}
}
public void TweakStockScaledTexture () //move to utils/scaledUtils etc
{
if (HighLogic.LoadedScene != GameScenes.MAINMENU)
{
List<Material> materials = new List<Material>(stockScaledPlanetMeshRenderer.sharedMaterials);
foreach (Material sharedMaterial in materials)
{
if (sharedMaterial.shader.name.Contains("Terrain/Scaled Planet (RimAerial)"))
{
if (!originalPlanetTexture)
{
Texture maintex = sharedMaterial.GetTexture("_MainTex");
if (maintex is Texture2D)
{
originalPlanetTexture = (Texture2D)maintex;
}
}
if (originalPlanetTexture)
{
if (!adjustedPlanetTexture)
{
adjustedPlanetTexture = new RenderTexture(originalPlanetTexture.width, originalPlanetTexture.height, 0, RenderTextureFormat.ARGB32);
adjustedPlanetTexture.name = "ScattererAdjustedPlanetMap";
adjustedPlanetTexture.autoGenerateMips = true;
adjustedPlanetTexture.Create();
}
Material imageAdjustMat = new Material (ShaderReplacer.Instance.LoadedShaders[("Scatterer/ScaledTextureAdjust")]);
imageAdjustMat.SetTexture("inputTexture", originalPlanetTexture);
imageAdjustMat.SetFloat("_scaledLandBrightnessAdjust", scaledLandBrightnessAdjust);
imageAdjustMat.SetFloat("_scaledLandContrastAdjust", scaledLandContrastAdjust);
imageAdjustMat.SetFloat("_scaledLandSaturationAdjust", scaledLandSaturationAdjust);
imageAdjustMat.SetFloat("_scaledOceanBrightnessAdjust", scaledOceanBrightnessAdjust);
imageAdjustMat.SetFloat("_scaledOceanContrastAdjust", scaledOceanContrastAdjust);
imageAdjustMat.SetFloat("_scaledOceanSaturationAdjust", scaledOceanSaturationAdjust);
Graphics.Blit(originalPlanetTexture, adjustedPlanetTexture, imageAdjustMat);
sharedMaterial.SetTexture("_MainTex", adjustedPlanetTexture);
}
}
}
}
}
public void RestoreStockScaledTexture () //move to utils/scaledUtils etc
{
if (originalPlanetTexture && stockScaledPlanetMeshRenderer)
{
List<Material> materials = new List<Material>(stockScaledPlanetMeshRenderer.sharedMaterials);
foreach (Material sharedMaterial in materials)
{
if (sharedMaterial.shader.name.Contains("Terrain/Scaled Planet (RimAerial)"))
{
sharedMaterial.SetTexture("_MainTex", originalPlanetTexture);
}
}
}
if (adjustedPlanetTexture)
{
adjustedPlanetTexture.Release();
}
}
public void TweakScaledMesh() //move to utils/scaledUtils etc
{
if (!originalScaledMesh)
{
originalScaledMesh = parentScaledTransform.GetComponent<MeshFilter> ().sharedMesh;
}
tweakedScaledmesh = (Mesh)Instantiate (originalScaledMesh);
double scaledRadius = prolandManager.GetRadius () / (ScaledSpace.ScaleFactor * parentScaledTransform.localScale.x);
Vector3[] verts = tweakedScaledmesh.vertices;
for (int i=0; i<verts.Length; i++)
{
if (verts [i].magnitude > scaledRadius)
{
verts [i] = verts [i].normalized * (Mathf.Lerp (verts [i].magnitude, (float)scaledRadius, flattenScaledSpaceMesh));
}
}
tweakedScaledmesh.vertices = verts;
tweakedScaledmesh.RecalculateNormals ();
tweakedScaledmesh.RecalculateTangents ();
tweakedScaledmesh.RecalculateBounds ();
parentScaledTransform.GetComponent<MeshFilter> ().sharedMesh = tweakedScaledmesh;
}
public void InterpolateVariables ()
{
if(!(HighLogic.LoadedScene == GameScenes.TRACKSTATION))
{
altitude = Vector3.Distance (Scatterer.Instance.nearCamera.transform.position, parentLocalTransform.position) - Rg;
}
if ((HighLogic.LoadedScene == GameScenes.MAINMENU) || (HighLogic.LoadedScene == GameScenes.TRACKSTATION) || MapView.MapIsEnabled)
{
interpolatedSettings.getValuesFrom(configPoints [configPoints.Count - 1]);
currentConfigPoint = configPoints.Count;
return;
}
if (altitude <= configPoints [0].altitude)
{
interpolatedSettings.getValuesFrom(configPoints [0]);
currentConfigPoint = 0;
}
else if (altitude > configPoints [configPoints.Count - 1].altitude)
{
interpolatedSettings.getValuesFrom(configPoints [configPoints.Count - 1]);
currentConfigPoint = configPoints.Count;
}
else
{
//TODO, replace this with binary search, implement method directly in configPoints class, which will implement a list of config points
for (int j = 1; j < configPoints.Count; j++)
{
if ((altitude > configPoints [j - 1].altitude) && (altitude <= configPoints [j].altitude))
{
percentage = (altitude - configPoints [j - 1].altitude) / (configPoints [j].altitude - configPoints [j - 1].altitude);
interpolatedSettings.interpolateValuesFrom(configPoints [j - 1], configPoints [j], percentage);
currentConfigPoint = j;
}
}
}
}
void UpdateLightExtinctions ()
{
Vector3 sunDirection = prolandManager.getDirectionToMainSun();
Vector3 extinctionPosition = (FlightGlobals.ActiveVessel ? FlightGlobals.ActiveVessel.transform.position : Scatterer.Instance.nearCamera.transform.position) - parentLocalTransform.position;
Color extinction = AtmosphereUtils.getExtinction (extinctionPosition, sunDirection, Rt, Rg * atmosphereStartRadiusScale, HR*1000f, HM*1000f, m_betaR / 1000f, BETA_MSca / 1000f / 0.9f, useOzone, atmosphereAtlas, transmittanceTableDimensions, atlasScaleAndOffsets[2], atlasDimensions);
extinction = Color.Lerp(Color.white, extinction, interpolatedSettings.extinctionThickness);
float extinctionSunsetToNoonTransition = Vector3.Dot(sunDirection, extinctionPosition.normalized);
extinctionSunsetToNoonTransition = Mathf.Clamp01( ((extinctionSunsetToNoonTransition-0.2f) / 0.8f) * (1f - noonSunlightExtinctionStrength) );
extinction = Color.Lerp(extinction, Color.white, extinctionSunsetToNoonTransition);
Scatterer.Instance.sunlightModulatorsManagerInstance.ModulateByColor (prolandManager.mainSunLight, extinction);
foreach(SecondarySun secondarySun in prolandManager.secondarySuns)
{
if (secondarySun.sunLight)
{
extinction = AtmosphereUtils.getExtinction (extinctionPosition, (secondarySun.celestialBody.GetTransform().position - prolandManager.parentCelestialBody.GetTransform().position).normalized, Rt, Rg * atmosphereStartRadiusScale, HR*1000f, HM*1000f, m_betaR / 1000f, BETA_MSca / 1000f / 0.9f, useOzone, atmosphereAtlas, transmittanceTableDimensions, atlasScaleAndOffsets[2], atlasDimensions);
extinction = Color.Lerp(Color.white, extinction, interpolatedSettings.extinctionThickness); //consider getting rid of extinction thickness and tint now
Scatterer.Instance.sunlightModulatorsManagerInstance.ModulateByColor (secondarySun.sunLight, extinction);
}
}
}
void UpdateSunflareExtinctions ()
{
foreach (SunFlare customSunFlare in Scatterer.Instance.sunflareManager.scattererSunFlares.Values)
{
if (customSunFlare.FlareRendering) //not sure if it's worth it to try and add more intelligent culling here, like checking if a ray to the flare intersects the planet/atmo?
{
sunflareExtinctionMaterial.SetVector (ShaderProperties._Sun_WorldSunDir_PROPERTY, prolandManager.getDirectionToCelestialBody (customSunFlare.source).normalized);
if (!MapView.MapIsEnabled)
sunflareExtinctionMaterial.SetVector (ShaderProperties._Globals_WorldCameraPos_PROPERTY, Scatterer.Instance.nearCamera.transform.position - parentLocalTransform.position);
else
sunflareExtinctionMaterial.SetVector (ShaderProperties._Globals_WorldCameraPos_PROPERTY, (Vector3)ScaledSpace.ScaledToLocalSpace (Scatterer.Instance.scaledSpaceCamera.transform.position) - parentLocalTransform.position);
Graphics.Blit (null, customSunFlare.extinctionTexture, sunflareExtinctionMaterial, 0);
if (hasRingObjectAndShadowActivated)
{
sunflareExtinctionMaterial.SetVector (ShaderProperties.ringNormal_PROPERTY, ringObject.transform.up);
Graphics.Blit (null, customSunFlare.extinctionTexture, sunflareExtinctionMaterial, 1);
}
}
}
}
void UpdateEclipseCasters ()
{
float scaleFactor = ScaledSpace.ScaleFactor;
sunPosRelPlanet = Vector3.zero;
sunPosRelPlanet = Vector3.Scale (ScaledSpace.LocalToScaledSpace (prolandManager.sunCelestialBody.transform.position), new Vector3 (scaleFactor, scaleFactor, scaleFactor));
castersMatrix1 = Matrix4x4.zero;
castersMatrix2 = Matrix4x4.zero;
Vector3 casterPosRelPlanet;
float eclipseTerm = 1f;
for (int i = 0; i < Mathf.Min (4, prolandManager.eclipseCasters.Count); i++)
{
casterPosRelPlanet = Vector3.Scale (ScaledSpace.LocalToScaledSpace (prolandManager.eclipseCasters [i].transform.position), new Vector3 (scaleFactor, scaleFactor, scaleFactor)); //wtf is this? this is doing local to scaled and back to local?
castersMatrix1.SetRow (i, new Vector4 (casterPosRelPlanet.x, casterPosRelPlanet.y, casterPosRelPlanet.z, (float)prolandManager.eclipseCasters [i].Radius));
eclipseTerm *= AtmosphereUtils.getEclipseShadow(Scatterer.Instance.nearCamera.transform.position, sunPosRelPlanet, casterPosRelPlanet, (float)prolandManager.eclipseCasters[i].Radius, (float)prolandManager.sunCelestialBody.Radius);
}
for (int i = 4; i < Mathf.Min (8, prolandManager.eclipseCasters.Count); i++)
{
casterPosRelPlanet = Vector3.Scale (ScaledSpace.LocalToScaledSpace (prolandManager.eclipseCasters [i].transform.position), new Vector3 (scaleFactor, scaleFactor, scaleFactor));
castersMatrix2.SetRow (i - 4, new Vector4 (casterPosRelPlanet.x, casterPosRelPlanet.y, casterPosRelPlanet.z, (float)prolandManager.eclipseCasters [i].Radius));
eclipseTerm *= AtmosphereUtils.getEclipseShadow(Scatterer.Instance.nearCamera.transform.position, sunPosRelPlanet, casterPosRelPlanet, (float)prolandManager.eclipseCasters[i].Radius, (float)prolandManager.sunCelestialBody.Radius);
}
Scatterer.Instance.sunlightModulatorsManagerInstance.ModulateByAttenuation(prolandManager.mainSunLight, eclipseTerm);
}
void InitKopernicusRings ()
{
ringObject = GameObject.Find (celestialBodyName + "Ring");
if (ringObject) {
Utils.LogDebug (" Found ring for " + celestialBodyName);
Material ringMat = ringObject.GetComponent<MeshRenderer> ().material;
hasRingObjectAndShadowActivated = true;
MonoBehaviour[] scripts = (MonoBehaviour[])ringObject.GetComponents<MonoBehaviour> ();
foreach (MonoBehaviour _script in scripts) {
if (_script.GetType ().ToString ().Contains ("Ring")) {
const BindingFlags flags = BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static;
FieldInfo[] fields = _script.GetType ().GetFields (flags);
foreach (FieldInfo fi in fields) {
//Utils.Log("fi.Name "+fi.Name+" fi.GetType() "+fi.GetType());
}
try {
ringTexture = _script.GetType ().GetField ("texture", flags).GetValue (_script) as Texture2D;
Utils.LogDebug (" ring texture fetch successful");
Utils.LogDebug (" ringTexture.width " + ringTexture.width.ToString ());
Utils.LogDebug (" ringTexture.height " + ringTexture.height.ToString ());
MeshRenderer ringMR = _script.GetType ().GetField ("ringMr", flags).GetValue (_script) as MeshRenderer;
Utils.LogDebug (" ring MeshRenderer fetch successful");
ringInnerRadius = ringMR.material.GetFloat ("innerRadius");
ringOuterRadius = ringMR.material.GetFloat ("outerRadius");
Utils.LogDebug (" ring innerRadius (with parent scale) " + ringInnerRadius.ToString ());
Utils.LogDebug (" ring outerRadius (with parent scale) " + ringOuterRadius.ToString ());
int tiles = (int)_script.GetType ().GetField ("tiles", flags).GetValue (_script);
if (tiles > 0) {
throw new Exception ("Scatterer doesn't support tiled/thick Kopernicus rings (not implemented)");
}
ringInnerRadius *= ScaledSpace.ScaleFactor;
ringInnerRadius = Mathf.Max(ringInnerRadius,(float)(prolandManager.m_radius)* (1f + 10f/600000f)); //prevent inner ring radius from intersecting planet's radius because that's stupid and it breaks the shader
ringOuterRadius *= ScaledSpace.ScaleFactor;
}
catch (Exception e) {
Utils.LogError ("Kopernicus ring exception: " + e.ToString ());
Utils.LogDebug ("Disabling ring shadows for " + celestialBodyName);
hasRingObjectAndShadowActivated = false;
}
}
}
}
}
public void InitEVEClouds()
{
if ((Scatterer.Instance.eveReflectionHandler.EVEInstance != null) && Scatterer.Instance.eveReflectionHandler.EVECloudLayers.ContainsKey(celestialBodyName))
{
try
{
Scatterer.Instance.eveReflectionHandler.invokeClouds2dReassign(celestialBodyName); // After the shader has been replaced by the modified scatterer shader, the properties are
Showing preview only (320K chars total). Download the full file or copy to clipboard to get everything.
gitextract_hn92p19d/
├── .gitignore
├── Readme.md
├── license.md
└── scatterer/
├── CelestialBodySortableByDistance.cs
├── DataSerialization/
│ ├── ConfigPoint.cs
│ ├── ConfigReader.cs
│ ├── MainSettingsReadWrite.cs
│ ├── PlanetshineSource.cs
│ ├── PluginDataReadWrite.cs
│ ├── QualityPresetsLoader.cs
│ └── ScattererCelestialBody.cs
├── Effects/
│ ├── AntiAliasing/
│ │ ├── GenericAntiAliasing.cs
│ │ ├── SubpixelMorphologicalAntialiasing.cs
│ │ ├── TemporalAntiAliasing.cs
│ │ └── Utils/
│ │ └── HaltonSeq.cs
│ ├── PlanetShine/
│ │ ├── PlanetShineLight.cs
│ │ └── PlanetshineManager.cs
│ ├── Proland/
│ │ ├── Atmosphere/
│ │ │ ├── Godrays/
│ │ │ │ └── LegacyGodraysRenderer.cs
│ │ │ ├── Preprocessing/
│ │ │ │ └── AtmoPreprocessor.cs
│ │ │ ├── SkyNode.cs
│ │ │ └── Utils/
│ │ │ ├── AtmospherePQS.cs
│ │ │ ├── AtmosphereProjectorContainer.cs
│ │ │ ├── AtmosphereUtils.cs
│ │ │ ├── GenericLocalAtmosphereContainer.cs
│ │ │ ├── ScaledScatteringContainer.cs
│ │ │ ├── ScreenSpaceScatteringContainer.cs
│ │ │ └── SkySphereContainer.cs
│ │ ├── Ocean/
│ │ │ ├── Caustics/
│ │ │ │ ├── CausticsLightRaysRenderer.cs
│ │ │ │ └── CausticsShadowMaskModulate.cs
│ │ │ ├── FourierCPU.cs
│ │ │ ├── FourierGPU.cs
│ │ │ ├── GPUWaveInteractionHandler.cs
│ │ │ ├── OceanCameraUpdateHook.cs
│ │ │ ├── OceanFFTcpu.cs
│ │ │ ├── OceanFFTgpu.cs
│ │ │ ├── OceanNode.cs
│ │ │ ├── OceanRenderingHook.cs
│ │ │ ├── OceanWhiteCaps.cs
│ │ │ ├── UnderwaterDimmingHook.cs
│ │ │ └── Utils/
│ │ │ ├── CBUtility.cs
│ │ │ ├── FakeOceanPQS.cs
│ │ │ ├── OceanUtils.cs
│ │ │ ├── RTUtility.cs
│ │ │ └── WriteFloat.cs
│ │ └── ProlandManager.cs
│ ├── ScattererCelestialBodiesManager.cs
│ ├── SunFlare/
│ │ ├── SunFlare.cs
│ │ ├── SunflareCameraHook.cs
│ │ ├── SunflareManager.cs
│ │ ├── SunflareSettingsV1.cs
│ │ └── SunflareSettingsV2.cs
│ ├── SunlightModulator/
│ │ ├── SunlightModulator.cs
│ │ ├── SunlightModulatorPostRenderHook.cs
│ │ └── SunlightModulatorPreRenderHook.cs
│ └── Tonemapping/
│ └── HableCurve.cs
├── GUI/
│ ├── AtmoGUI.cs
│ ├── ConfigPointGUI.cs
│ ├── GUIhandler.cs
│ ├── MainOptionsGUI.cs
│ ├── ModularGUI/
│ │ ├── AbstractGUIModule.cs
│ │ ├── GUIModuleBool.cs
│ │ ├── GUIModuleFloat.cs
│ │ ├── GUIModuleInt.cs
│ │ ├── GUIModuleLabel.cs
│ │ ├── GUIModuleString.cs
│ │ ├── GUIModuleVector2.cs
│ │ ├── GUIModuleVector3.cs
│ │ ├── GUIModuleVector4.cs
│ │ └── ModularGUI.cs
│ ├── OceanGUI.cs
│ ├── SunflareGUI.cs
│ └── ToolbarButton.cs
├── OldShaders/
│ ├── readme.md.txt
│ └── scattererShaders/
│ ├── .vs/
│ │ └── scattererShaders/
│ │ ├── DesignTimeBuild/
│ │ │ └── .dtbcache
│ │ ├── v14/
│ │ │ └── .suo
│ │ └── v15/
│ │ ├── .suo
│ │ └── Server/
│ │ └── sqlite3/
│ │ ├── storage.ide
│ │ ├── storage.ide-shm
│ │ └── storage.ide-wal
│ ├── Assembly-CSharp-Editor.csproj
│ ├── Assembly-CSharp-Editor.csproj.orig
│ ├── Assembly-CSharp.csproj
│ ├── Assembly-CSharp.csproj.orig
│ ├── Assembly-UnityScript.unityproj
│ ├── Assets/
│ │ ├── AssetBundles/
│ │ │ ├── AssetBundles
│ │ │ └── AssetBundles.meta
│ │ ├── AssetBundles.meta
│ │ ├── Editor/
│ │ │ ├── ExportAssetBundle.cs
│ │ │ ├── ExportAssetBundle.cs.meta
│ │ │ ├── KSPCurveEditor.cs
│ │ │ └── KSPCurveEditor.cs.meta
│ │ ├── Editor.meta
│ │ ├── Shaders/
│ │ │ ├── AA/
│ │ │ │ ├── AreaTex.tga
│ │ │ │ ├── AreaTex.tga.meta
│ │ │ │ ├── CustomTAA.shader
│ │ │ │ ├── CustomTAA.shader.meta
│ │ │ │ ├── SMAA.cginc
│ │ │ │ ├── SMAA.cginc.meta
│ │ │ │ ├── SMAA.shader
│ │ │ │ ├── SMAA.shader.meta
│ │ │ │ ├── SMAABridge.cginc
│ │ │ │ ├── SMAABridge.cginc.meta
│ │ │ │ ├── SearchTex.tga
│ │ │ │ └── SearchTex.tga.meta
│ │ │ ├── AA.meta
│ │ │ ├── Atmo/
│ │ │ │ ├── CompositeDownscaledScattering.shader
│ │ │ │ ├── CompositeDownscaledScattering.shader.meta
│ │ │ │ ├── DepthBufferScattering.shader
│ │ │ │ ├── DepthBufferScattering.shader.meta
│ │ │ │ ├── Godrays/
│ │ │ │ │ ├── ComputeInverseShadowMatrices.compute
│ │ │ │ │ ├── ComputeInverseShadowMatrices.compute.meta
│ │ │ │ │ ├── GodraysCommon.cginc
│ │ │ │ │ ├── GodraysCommon.cginc.meta
│ │ │ │ │ ├── ShadowVolumeUtils.cginc
│ │ │ │ │ ├── ShadowVolumeUtils.cginc.meta
│ │ │ │ │ ├── VolumeDepth - Copy.shader.BAK
│ │ │ │ │ ├── VolumeDepth - Copy.shader.BAK.meta
│ │ │ │ │ ├── VolumeDepth.shader
│ │ │ │ │ └── VolumeDepth.shader.meta
│ │ │ │ ├── Godrays.meta
│ │ │ │ ├── Preprocessing.meta
│ │ │ │ ├── ProjectorScattering.shader
│ │ │ │ ├── ProjectorScattering.shader.meta
│ │ │ │ ├── ScaledPlanetScattering.shader
│ │ │ │ ├── ScaledPlanetScattering.shader.meta
│ │ │ │ ├── SkySphere.shader
│ │ │ │ └── SkySphere.shader.meta
│ │ │ ├── Atmo.meta
│ │ │ ├── ClippingUtils.cginc
│ │ │ ├── ClippingUtils.cginc.meta
│ │ │ ├── CommonAtmosphere.cginc
│ │ │ ├── CommonAtmosphere.cginc.meta
│ │ │ ├── DecodeEncode/
│ │ │ │ ├── DecodedToFloat.shader
│ │ │ │ ├── DecodedToFloat.shader.meta
│ │ │ │ ├── WriteToFloat.shader
│ │ │ │ └── WriteToFloat.shader.meta
│ │ │ ├── DecodeEncode.meta
│ │ │ ├── Depth/
│ │ │ │ ├── CopyCameraDepth.shader
│ │ │ │ ├── CopyCameraDepth.shader.meta
│ │ │ │ ├── DepthToDistance.shader
│ │ │ │ ├── DepthToDistance.shader.meta
│ │ │ │ ├── DownscaleDepth.shader
│ │ │ │ └── DownscaleDepth.shader.meta
│ │ │ ├── Depth.meta
│ │ │ ├── DepthCommon.cginc
│ │ │ ├── DepthCommon.cginc.meta
│ │ │ ├── EVE/
│ │ │ │ ├── CloudVolumeParticle.shader
│ │ │ │ ├── CloudVolumeParticle.shader.meta
│ │ │ │ ├── EVEUtils.cginc
│ │ │ │ ├── EVEUtils.cginc.meta
│ │ │ │ ├── GeometryCloudVolumeParticle.shader
│ │ │ │ ├── GeometryCloudVolumeParticle.shader.meta
│ │ │ │ ├── GeometryCloudVolumeParticleToTexture.shader
│ │ │ │ ├── GeometryCloudVolumeParticleToTexture.shader.meta
│ │ │ │ ├── SphereCloud.shader
│ │ │ │ ├── SphereCloud.shader.meta
│ │ │ │ ├── SphereCloudShadowMap.shader
│ │ │ │ ├── SphereCloudShadowMap.shader.meta
│ │ │ │ ├── alphaMap.cginc
│ │ │ │ ├── alphaMap.cginc.meta
│ │ │ │ ├── cubeMap.cginc
│ │ │ │ ├── cubeMap.cginc.meta
│ │ │ │ ├── noiseSimplex.cginc
│ │ │ │ └── noiseSimplex.cginc.meta
│ │ │ ├── EVE.meta
│ │ │ ├── EclipseCommon.cginc
│ │ │ ├── EclipseCommon.cginc.meta
│ │ │ ├── IntersectCommon.cginc
│ │ │ ├── IntersectCommon.cginc.meta
│ │ │ ├── Misc.meta
│ │ │ ├── Ocean/
│ │ │ │ ├── Caustics/
│ │ │ │ │ ├── 0042-underwater-beach-sand-texture-seamless.jpg.meta
│ │ │ │ │ ├── CausticsFinal.png.meta
│ │ │ │ │ ├── CausticsGodrays.mat
│ │ │ │ │ ├── CausticsGodrays.mat.meta
│ │ │ │ │ ├── CausticsGodraysRaymarch.shader
│ │ │ │ │ ├── CausticsGodraysRaymarch.shader.meta
│ │ │ │ │ ├── CausticsOcclusion.shader
│ │ │ │ │ ├── CausticsOcclusion.shader.meta
│ │ │ │ │ ├── CausticsScene.unity
│ │ │ │ │ ├── CausticsScene.unity.meta
│ │ │ │ │ ├── CausticsShadowMask.mat
│ │ │ │ │ ├── CausticsShadowMask.mat.meta
│ │ │ │ │ ├── CompositeCausticsGodrays.shader
│ │ │ │ │ ├── CompositeCausticsGodrays.shader.meta
│ │ │ │ │ ├── ModulateShadowMask.cs
│ │ │ │ │ ├── ModulateShadowMask.cs.meta
│ │ │ │ │ ├── SeaFloor.mat
│ │ │ │ │ ├── SeaFloor.mat.meta
│ │ │ │ │ └── WhiteTexture.png.meta
│ │ │ │ ├── Caustics.meta
│ │ │ │ ├── FindHeights.compute
│ │ │ │ ├── FindHeights.compute.meta
│ │ │ │ ├── Fourier.shader
│ │ │ │ ├── Fourier.shader.meta
│ │ │ │ ├── InitDisplacement.shader
│ │ │ │ ├── InitDisplacement.shader.meta
│ │ │ │ ├── InitJacobians.shader
│ │ │ │ ├── InitJacobians.shader.meta
│ │ │ │ ├── InitSpectrum.shader
│ │ │ │ ├── InitSpectrum.shader.meta
│ │ │ │ ├── InvisibleOcean.shader
│ │ │ │ ├── InvisibleOcean.shader.meta
│ │ │ │ ├── OceanBRDF.cginc
│ │ │ │ ├── OceanBRDF.cginc.meta
│ │ │ │ ├── OceanDisplacement3.cginc
│ │ │ │ ├── OceanDisplacement3.cginc.meta
│ │ │ │ ├── OceanLight.cginc
│ │ │ │ ├── OceanLight.cginc.meta
│ │ │ │ ├── OceanShadows.cginc
│ │ │ │ ├── OceanShadows.cginc.meta
│ │ │ │ ├── OceanUtils.cginc
│ │ │ │ ├── OceanUtils.cginc.meta
│ │ │ │ ├── OceanWhiteCapsModProj3.shader
│ │ │ │ ├── OceanWhiteCapsModProj3.shader.meta
│ │ │ │ ├── OceanWhiteCapsModProj3PixelLights.shader
│ │ │ │ ├── OceanWhiteCapsModProj3PixelLights.shader.meta
│ │ │ │ ├── OceanWhiteCapsModProj3VertexSearch.shader
│ │ │ │ ├── OceanWhiteCapsModProj3VertexSearch.shader.meta
│ │ │ │ ├── ReadData.compute
│ │ │ │ ├── ReadData.compute.meta
│ │ │ │ ├── SlopeVariance.compute
│ │ │ │ ├── SlopeVariance.compute.meta
│ │ │ │ ├── UnderwaterDepthBuffer.shader
│ │ │ │ ├── UnderwaterDepthBuffer.shader.meta
│ │ │ │ ├── UnderwaterProjector.shader
│ │ │ │ ├── UnderwaterProjector.shader.meta
│ │ │ │ ├── WhiteCapsPrecompute0.shader
│ │ │ │ └── WhiteCapsPrecompute0.shader.meta
│ │ │ ├── Ocean.meta
│ │ │ ├── RingCommon.cginc
│ │ │ ├── RingCommon.cginc.meta
│ │ │ ├── RingCommon.cgincBAK
│ │ │ ├── RingCommon.cgincBAK.meta
│ │ │ ├── Shadows/
│ │ │ │ ├── DoublePrecisionEmulation.cginc
│ │ │ │ ├── DoublePrecisionEmulation.cginc.meta
│ │ │ │ ├── FixedScreenSpaceShadows.cginc
│ │ │ │ ├── FixedScreenSpaceShadows.cginc.meta
│ │ │ │ ├── FixedScreenSpaceShadows.shader
│ │ │ │ ├── FixedScreenSpaceShadows.shader.meta
│ │ │ │ ├── LongDistanceScreenSpaceShadows.shader
│ │ │ │ └── LongDistanceScreenSpaceShadows.shader.meta
│ │ │ ├── Shadows.meta
│ │ │ ├── ShadowsCommon.cginc
│ │ │ ├── ShadowsCommon.cginc.meta
│ │ │ ├── SunFlare/
│ │ │ │ ├── SunFlare.shader
│ │ │ │ ├── SunFlare.shader.meta
│ │ │ │ ├── SunFlareExtinction.shader
│ │ │ │ └── SunFlareExtinction.shader.meta
│ │ │ ├── SunFlare.meta
│ │ │ ├── Utility.cginc
│ │ │ └── Utility.cginc.meta
│ │ ├── TestScenes.meta
│ │ └── shaders.meta
│ ├── Library/
│ │ ├── APIUpdater/
│ │ │ └── project-dependencies.graph
│ │ ├── AnnotationManager
│ │ ├── AssetImportState
│ │ ├── AssetServerCacheV3
│ │ ├── BuildPlayer.prefs
│ │ ├── BuildSettings.asset
│ │ ├── CurrentLayout-default.dwlt
│ │ ├── CurrentLayout.dwlt
│ │ ├── CurrentMaximizeLayout.dwlt
│ │ ├── EditorOnlyScriptingSettings.json
│ │ ├── EditorOnlyScriptingUserSettings.json
│ │ ├── EditorSnapSettings.asset
│ │ ├── EditorUserBuildSettings.asset
│ │ ├── EditorUserSettings.asset
│ │ ├── InspectorExpandedItems.asset
│ │ ├── LastBuild.buildreport
│ │ ├── LastSceneManagerSetup.txt
│ │ ├── LibraryFormatVersion.txt
│ │ ├── MonoManager.asset
│ │ ├── PackageCache/
│ │ │ ├── com.unity.collab-proxy@1.2.16/
│ │ │ │ ├── .npmignore
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── DEPENDENCIES.md
│ │ │ │ ├── DEPENDENCIES.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── collab-proxy.md
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── Collab/
│ │ │ │ │ │ ├── Bootstrap.cs
│ │ │ │ │ │ ├── Bootstrap.cs.meta
│ │ │ │ │ │ ├── CollabAnalytics.cs
│ │ │ │ │ │ ├── CollabAnalytics.cs.meta
│ │ │ │ │ │ ├── CollabHistoryWindow.cs
│ │ │ │ │ │ ├── CollabHistoryWindow.cs.meta
│ │ │ │ │ │ ├── CollabToolbarButton.cs
│ │ │ │ │ │ ├── CollabToolbarButton.cs.meta
│ │ │ │ │ │ ├── CollabToolbarWindow.cs
│ │ │ │ │ │ ├── CollabToolbarWindow.cs.meta
│ │ │ │ │ │ ├── Presenters/
│ │ │ │ │ │ │ ├── CollabHistoryPresenter.cs
│ │ │ │ │ │ │ └── CollabHistoryPresenter.cs.meta
│ │ │ │ │ │ ├── Presenters.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── BuildStatusButton.cs
│ │ │ │ │ │ │ ├── BuildStatusButton.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryDropDown.cs
│ │ │ │ │ │ │ ├── CollabHistoryDropDown.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryDropDownItem.cs
│ │ │ │ │ │ │ ├── CollabHistoryDropDownItem.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryItem.cs
│ │ │ │ │ │ │ ├── CollabHistoryItem.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryItemFactory.cs
│ │ │ │ │ │ │ ├── CollabHistoryItemFactory.cs.meta
│ │ │ │ │ │ │ ├── CollabHistoryRevisionLine.cs
│ │ │ │ │ │ │ ├── CollabHistoryRevisionLine.cs.meta
│ │ │ │ │ │ │ ├── HistoryProgressSpinner.cs
│ │ │ │ │ │ │ ├── HistoryProgressSpinner.cs.meta
│ │ │ │ │ │ │ ├── ICollabHistoryItemFactory.cs
│ │ │ │ │ │ │ ├── ICollabHistoryItemFactory.cs.meta
│ │ │ │ │ │ │ ├── PagedListView.cs
│ │ │ │ │ │ │ ├── PagedListView.cs.meta
│ │ │ │ │ │ │ ├── StatusView.cs
│ │ │ │ │ │ │ └── StatusView.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── Collab.meta
│ │ │ │ │ ├── Resources/
│ │ │ │ │ │ ├── Styles/
│ │ │ │ │ │ │ ├── CollabHistoryCommon.uss
│ │ │ │ │ │ │ ├── CollabHistoryCommon.uss.meta
│ │ │ │ │ │ │ ├── CollabHistoryDark.uss
│ │ │ │ │ │ │ ├── CollabHistoryDark.uss.meta
│ │ │ │ │ │ │ ├── CollabHistoryLight.uss
│ │ │ │ │ │ │ └── CollabHistoryLight.uss.meta
│ │ │ │ │ │ └── Styles.meta
│ │ │ │ │ ├── Resources.meta
│ │ │ │ │ ├── Unity.CollabProxy.Editor.asmdef
│ │ │ │ │ └── Unity.CollabProxy.Editor.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── README.md
│ │ │ │ ├── README.md.meta
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── Editor/
│ │ │ │ │ │ ├── HistoryTests.cs
│ │ │ │ │ │ ├── HistoryTests.cs.meta
│ │ │ │ │ │ ├── Unity.CollabProxy.EditorTests.asmdef
│ │ │ │ │ │ └── Unity.CollabProxy.EditorTests.asmdef.meta
│ │ │ │ │ └── Editor.meta
│ │ │ │ ├── Tests.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ext.nunit@1.0.0/
│ │ │ │ ├── .gitlab-ci.yml
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── ext.nunit.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── README.md
│ │ │ │ ├── README.md.meta
│ │ │ │ ├── net35/
│ │ │ │ │ ├── unity-custom/
│ │ │ │ │ │ ├── This is a custom build DONT include.txt
│ │ │ │ │ │ ├── This is a custom build DONT include.txt.meta
│ │ │ │ │ │ ├── nunit.framework.dll.mdb
│ │ │ │ │ │ ├── nunit.framework.dll.mdb.meta
│ │ │ │ │ │ ├── nunit.framework.dll.meta
│ │ │ │ │ │ ├── nunit.framework.pdb
│ │ │ │ │ │ ├── nunit.framework.pdb.meta
│ │ │ │ │ │ ├── nunit.framework.xml
│ │ │ │ │ │ └── nunit.framework.xml.meta
│ │ │ │ │ └── unity-custom.meta
│ │ │ │ ├── net35.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ide.rider@1.1.0/
│ │ │ │ ├── .editorconfig
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── README.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── Rider/
│ │ │ │ │ ├── Editor/
│ │ │ │ │ │ ├── Discovery.cs
│ │ │ │ │ │ ├── Discovery.cs.meta
│ │ │ │ │ │ ├── EditorPluginInterop.cs
│ │ │ │ │ │ ├── EditorPluginInterop.cs.meta
│ │ │ │ │ │ ├── LoggingLevel.cs
│ │ │ │ │ │ ├── LoggingLevel.cs.meta
│ │ │ │ │ │ ├── PluginSettings.cs
│ │ │ │ │ │ ├── PluginSettings.cs.meta
│ │ │ │ │ │ ├── ProjectGeneration.cs
│ │ │ │ │ │ ├── ProjectGeneration.cs.meta
│ │ │ │ │ │ ├── RiderInitializer.cs
│ │ │ │ │ │ ├── RiderInitializer.cs.meta
│ │ │ │ │ │ ├── RiderScriptEditor.cs
│ │ │ │ │ │ ├── RiderScriptEditor.cs.meta
│ │ │ │ │ │ ├── RiderScriptEditorData.cs
│ │ │ │ │ │ ├── RiderScriptEditorData.cs.meta
│ │ │ │ │ │ ├── Util/
│ │ │ │ │ │ │ ├── FileSystemUtil.cs
│ │ │ │ │ │ │ ├── FileSystemUtil.cs.meta
│ │ │ │ │ │ │ ├── LibcNativeInterop.cs
│ │ │ │ │ │ │ ├── LibcNativeInterop.cs.meta
│ │ │ │ │ │ │ ├── UnityUtils.cs
│ │ │ │ │ │ │ └── UnityUtils.cs.meta
│ │ │ │ │ │ ├── Util.meta
│ │ │ │ │ │ ├── com.unity.ide.rider.asmdef
│ │ │ │ │ │ └── com.unity.ide.rider.asmdef.meta
│ │ │ │ │ └── Editor.meta
│ │ │ │ ├── Rider.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.ide.vscode@1.1.3/
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ └── README.md
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── ProjectGeneration/
│ │ │ │ │ │ ├── AssemblyNameProvider.cs
│ │ │ │ │ │ ├── AssemblyNameProvider.cs.meta
│ │ │ │ │ │ ├── FileIO.cs
│ │ │ │ │ │ ├── FileIO.cs.meta
│ │ │ │ │ │ ├── GUIDGenerator.cs
│ │ │ │ │ │ ├── GUIDGenerator.cs.meta
│ │ │ │ │ │ ├── ProjectGeneration.cs
│ │ │ │ │ │ └── ProjectGeneration.cs.meta
│ │ │ │ │ ├── ProjectGeneration.meta
│ │ │ │ │ ├── Unity.com.unity.vscode.Editor.asmdef
│ │ │ │ │ ├── Unity.com.unity.vscode.Editor.asmdef.meta
│ │ │ │ │ ├── Utility.cs
│ │ │ │ │ ├── Utility.cs.meta
│ │ │ │ │ ├── VSCodeDiscovery.cs
│ │ │ │ │ ├── VSCodeDiscovery.cs.meta
│ │ │ │ │ ├── VSCodeScriptEditor.cs
│ │ │ │ │ └── VSCodeScriptEditor.cs.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ ├── com.unity.test-framework@1.0.13/
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CHANGELOG.md.meta
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── CONTRIBUTING.md.meta
│ │ │ │ ├── Documentation~/
│ │ │ │ │ ├── PlaymodeTestFramework.md
│ │ │ │ │ └── com.unity.test-framework.md
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── LICENSE.md.meta
│ │ │ │ ├── UnityEditor.TestRunner/
│ │ │ │ │ ├── Api/
│ │ │ │ │ │ ├── CallbacksDelegator.cs
│ │ │ │ │ │ ├── CallbacksDelegator.cs.meta
│ │ │ │ │ │ ├── CallbacksDelegatorListener.cs
│ │ │ │ │ │ ├── CallbacksDelegatorListener.cs.meta
│ │ │ │ │ │ ├── CallbacksHolder.cs
│ │ │ │ │ │ ├── CallbacksHolder.cs.meta
│ │ │ │ │ │ ├── ExecutionSettings.cs
│ │ │ │ │ │ ├── ExecutionSettings.cs.meta
│ │ │ │ │ │ ├── Filter.cs
│ │ │ │ │ │ ├── Filter.cs.meta
│ │ │ │ │ │ ├── ICallbacks.cs
│ │ │ │ │ │ ├── ICallbacks.cs.meta
│ │ │ │ │ │ ├── ITestAdaptor.cs
│ │ │ │ │ │ ├── ITestAdaptor.cs.meta
│ │ │ │ │ │ ├── ITestAdaptorFactory.cs
│ │ │ │ │ │ ├── ITestAdaptorFactory.cs.meta
│ │ │ │ │ │ ├── ITestResultAdaptor.cs
│ │ │ │ │ │ ├── ITestResultAdaptor.cs.meta
│ │ │ │ │ │ ├── ITestRunSettings.cs
│ │ │ │ │ │ ├── ITestRunSettings.cs.meta
│ │ │ │ │ │ ├── ITestRunnerApi.cs
│ │ │ │ │ │ ├── ITestRunnerApi.cs.meta
│ │ │ │ │ │ ├── RunState.cs
│ │ │ │ │ │ ├── RunState.cs.meta
│ │ │ │ │ │ ├── TestAdaptor.cs
│ │ │ │ │ │ ├── TestAdaptor.cs.meta
│ │ │ │ │ │ ├── TestAdaptorFactory.cs
│ │ │ │ │ │ ├── TestAdaptorFactory.cs.meta
│ │ │ │ │ │ ├── TestLauncherFactory.cs
│ │ │ │ │ │ ├── TestLauncherFactory.cs.meta
│ │ │ │ │ │ ├── TestMode.cs
│ │ │ │ │ │ ├── TestMode.cs.meta
│ │ │ │ │ │ ├── TestResultAdaptor.cs
│ │ │ │ │ │ ├── TestResultAdaptor.cs.meta
│ │ │ │ │ │ ├── TestRunData.cs
│ │ │ │ │ │ ├── TestRunData.cs.meta
│ │ │ │ │ │ ├── TestRunnerApi.cs
│ │ │ │ │ │ ├── TestRunnerApi.cs.meta
│ │ │ │ │ │ ├── TestStatus.cs
│ │ │ │ │ │ └── TestStatus.cs.meta
│ │ │ │ │ ├── Api.meta
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── CommandLineParser/
│ │ │ │ │ │ ├── CommandLineOption.cs
│ │ │ │ │ │ ├── CommandLineOption.cs.meta
│ │ │ │ │ │ ├── CommandLineOptionSet.cs
│ │ │ │ │ │ ├── CommandLineOptionSet.cs.meta
│ │ │ │ │ │ ├── ICommandLineOption.cs
│ │ │ │ │ │ └── ICommandLineOption.cs.meta
│ │ │ │ │ ├── CommandLineParser.meta
│ │ │ │ │ ├── CommandLineTest/
│ │ │ │ │ │ ├── Executer.cs
│ │ │ │ │ │ ├── Executer.cs.meta
│ │ │ │ │ │ ├── ExecutionSettings.cs
│ │ │ │ │ │ ├── ExecutionSettings.cs.meta
│ │ │ │ │ │ ├── ExitCallbacks.cs
│ │ │ │ │ │ ├── ExitCallbacks.cs.meta
│ │ │ │ │ │ ├── ISettingsBuilder.cs
│ │ │ │ │ │ ├── ISettingsBuilder.cs.meta
│ │ │ │ │ │ ├── LogSavingCallbacks.cs
│ │ │ │ │ │ ├── LogSavingCallbacks.cs.meta
│ │ │ │ │ │ ├── LogWriter.cs
│ │ │ │ │ │ ├── LogWriter.cs.meta
│ │ │ │ │ │ ├── ResultsSavingCallbacks.cs
│ │ │ │ │ │ ├── ResultsSavingCallbacks.cs.meta
│ │ │ │ │ │ ├── ResultsWriter.cs
│ │ │ │ │ │ ├── ResultsWriter.cs.meta
│ │ │ │ │ │ ├── RunData.cs
│ │ │ │ │ │ ├── RunData.cs.meta
│ │ │ │ │ │ ├── RunSettings.cs
│ │ │ │ │ │ ├── RunSettings.cs.meta
│ │ │ │ │ │ ├── SettingsBuilder.cs
│ │ │ │ │ │ ├── SettingsBuilder.cs.meta
│ │ │ │ │ │ ├── SetupException.cs
│ │ │ │ │ │ ├── SetupException.cs.meta
│ │ │ │ │ │ ├── TestStarter.cs
│ │ │ │ │ │ ├── TestStarter.cs.meta
│ │ │ │ │ │ ├── TimeoutCallbacks.cs
│ │ │ │ │ │ └── TimeoutCallbacks.cs.meta
│ │ │ │ │ ├── CommandLineTest.meta
│ │ │ │ │ ├── GUI/
│ │ │ │ │ │ ├── AssetsDatabaseHelper.cs
│ │ │ │ │ │ ├── AssetsDatabaseHelper.cs.meta
│ │ │ │ │ │ ├── GuiHelper.cs
│ │ │ │ │ │ ├── GuiHelper.cs.meta
│ │ │ │ │ │ ├── IAssetsDatabaseHelper.cs
│ │ │ │ │ │ ├── IAssetsDatabaseHelper.cs.meta
│ │ │ │ │ │ ├── IGuiHelper.cs
│ │ │ │ │ │ ├── IGuiHelper.cs.meta
│ │ │ │ │ │ ├── TestListBuilder/
│ │ │ │ │ │ │ ├── RenderingOptions.cs
│ │ │ │ │ │ │ ├── RenderingOptions.cs.meta
│ │ │ │ │ │ │ ├── ResultSummarizer.cs
│ │ │ │ │ │ │ ├── ResultSummarizer.cs.meta
│ │ │ │ │ │ │ ├── TestFilterSettings.cs
│ │ │ │ │ │ │ ├── TestFilterSettings.cs.meta
│ │ │ │ │ │ │ ├── TestTreeViewBuilder.cs
│ │ │ │ │ │ │ └── TestTreeViewBuilder.cs.meta
│ │ │ │ │ │ ├── TestListBuilder.meta
│ │ │ │ │ │ ├── TestListGuiHelper.cs
│ │ │ │ │ │ ├── TestListGuiHelper.cs.meta
│ │ │ │ │ │ ├── TestListTreeView/
│ │ │ │ │ │ │ ├── Icons.cs
│ │ │ │ │ │ │ ├── Icons.cs.meta
│ │ │ │ │ │ │ ├── TestListTreeViewDataSource.cs
│ │ │ │ │ │ │ ├── TestListTreeViewDataSource.cs.meta
│ │ │ │ │ │ │ ├── TestListTreeViewGUI.cs
│ │ │ │ │ │ │ ├── TestListTreeViewGUI.cs.meta
│ │ │ │ │ │ │ ├── TestTreeViewItem.cs
│ │ │ │ │ │ │ └── TestTreeViewItem.cs.meta
│ │ │ │ │ │ ├── TestListTreeView.meta
│ │ │ │ │ │ ├── TestRunnerResult.cs
│ │ │ │ │ │ ├── TestRunnerResult.cs.meta
│ │ │ │ │ │ ├── TestRunnerUIFilter.cs
│ │ │ │ │ │ ├── TestRunnerUIFilter.cs.meta
│ │ │ │ │ │ ├── Views/
│ │ │ │ │ │ │ ├── EditModeTestListGUI.cs
│ │ │ │ │ │ │ ├── EditModeTestListGUI.cs.meta
│ │ │ │ │ │ │ ├── PlayModeTestListGUI.cs
│ │ │ │ │ │ │ ├── PlayModeTestListGUI.cs.meta
│ │ │ │ │ │ │ ├── TestListGUIBase.cs
│ │ │ │ │ │ │ └── TestListGUIBase.cs.meta
│ │ │ │ │ │ └── Views.meta
│ │ │ │ │ ├── GUI.meta
│ │ │ │ │ ├── NUnitExtension/
│ │ │ │ │ │ ├── Attributes/
│ │ │ │ │ │ │ ├── AssetPipelineIgnore.cs
│ │ │ │ │ │ │ └── AssetPipelineIgnore.cs.meta
│ │ │ │ │ │ ├── Attributes.meta
│ │ │ │ │ │ ├── TestRunnerStateSerializer.cs
│ │ │ │ │ │ └── TestRunnerStateSerializer.cs.meta
│ │ │ │ │ ├── NUnitExtension.meta
│ │ │ │ │ ├── RequireApiProfileAttribute.cs
│ │ │ │ │ ├── RequireApiProfileAttribute.cs.meta
│ │ │ │ │ ├── RequirePlatformSupportAttribute.cs
│ │ │ │ │ ├── RequirePlatformSupportAttribute.cs.meta
│ │ │ │ │ ├── TestBuildAssemblyFilter.cs
│ │ │ │ │ ├── TestBuildAssemblyFilter.cs.meta
│ │ │ │ │ ├── TestLaunchers/
│ │ │ │ │ │ ├── AttributeFinderBase.cs
│ │ │ │ │ │ ├── AttributeFinderBase.cs.meta
│ │ │ │ │ │ ├── EditModeLauncher.cs
│ │ │ │ │ │ ├── EditModeLauncher.cs.meta
│ │ │ │ │ │ ├── EditModeLauncherContextSettings.cs
│ │ │ │ │ │ ├── EditModeLauncherContextSettings.cs.meta
│ │ │ │ │ │ ├── PlatformSetup/
│ │ │ │ │ │ │ ├── AndroidPlatformSetup.cs
│ │ │ │ │ │ │ ├── AndroidPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── ApplePlatformSetup.cs
│ │ │ │ │ │ │ ├── ApplePlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── IPlatformSetup.cs
│ │ │ │ │ │ │ ├── IPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── LuminPlatformSetup.cs
│ │ │ │ │ │ │ ├── LuminPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── PlatformSpecificSetup.cs
│ │ │ │ │ │ │ ├── PlatformSpecificSetup.cs.meta
│ │ │ │ │ │ │ ├── SwitchPlatformSetup.cs
│ │ │ │ │ │ │ ├── SwitchPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── UwpPlatformSetup.cs
│ │ │ │ │ │ │ ├── UwpPlatformSetup.cs.meta
│ │ │ │ │ │ │ ├── XboxOnePlatformSetup.cs
│ │ │ │ │ │ │ └── XboxOnePlatformSetup.cs.meta
│ │ │ │ │ │ ├── PlatformSetup.meta
│ │ │ │ │ │ ├── PlayerLauncher.cs
│ │ │ │ │ │ ├── PlayerLauncher.cs.meta
│ │ │ │ │ │ ├── PlayerLauncherBuildOptions.cs
│ │ │ │ │ │ ├── PlayerLauncherBuildOptions.cs.meta
│ │ │ │ │ │ ├── PlayerLauncherContextSettings.cs
│ │ │ │ │ │ ├── PlayerLauncherContextSettings.cs.meta
│ │ │ │ │ │ ├── PlaymodeLauncher.cs
│ │ │ │ │ │ ├── PlaymodeLauncher.cs.meta
│ │ │ │ │ │ ├── PostbuildCleanupAttributeFinder.cs
│ │ │ │ │ │ ├── PostbuildCleanupAttributeFinder.cs.meta
│ │ │ │ │ │ ├── PrebuildSetupAttributeFinder.cs
│ │ │ │ │ │ ├── PrebuildSetupAttributeFinder.cs.meta
│ │ │ │ │ │ ├── RemotePlayerLogController.cs
│ │ │ │ │ │ ├── RemotePlayerLogController.cs.meta
│ │ │ │ │ │ ├── RemotePlayerTestController.cs
│ │ │ │ │ │ ├── RemotePlayerTestController.cs.meta
│ │ │ │ │ │ ├── RemoteTestResultReciever.cs
│ │ │ │ │ │ ├── RemoteTestResultReciever.cs.meta
│ │ │ │ │ │ ├── RuntimeTestLauncherBase.cs
│ │ │ │ │ │ ├── RuntimeTestLauncherBase.cs.meta
│ │ │ │ │ │ ├── TestLauncherBase.cs
│ │ │ │ │ │ └── TestLauncherBase.cs.meta
│ │ │ │ │ ├── TestLaunchers.meta
│ │ │ │ │ ├── TestResultSerializer.cs
│ │ │ │ │ ├── TestResultSerializer.cs.meta
│ │ │ │ │ ├── TestRunner/
│ │ │ │ │ │ ├── Callbacks/
│ │ │ │ │ │ │ ├── EditModeRunnerCallback.cs
│ │ │ │ │ │ │ ├── EditModeRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── RerunCallback.cs
│ │ │ │ │ │ │ ├── RerunCallback.cs.meta
│ │ │ │ │ │ │ ├── RerunCallbackData.cs
│ │ │ │ │ │ │ ├── RerunCallbackData.cs.meta
│ │ │ │ │ │ │ ├── RerunCallbackInitializer.cs
│ │ │ │ │ │ │ ├── RerunCallbackInitializer.cs.meta
│ │ │ │ │ │ │ ├── TestRunnerCallback.cs
│ │ │ │ │ │ │ ├── TestRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── WindowResultUpdater.cs
│ │ │ │ │ │ │ └── WindowResultUpdater.cs.meta
│ │ │ │ │ │ ├── Callbacks.meta
│ │ │ │ │ │ ├── EditModePCHelper.cs
│ │ │ │ │ │ ├── EditModePCHelper.cs.meta
│ │ │ │ │ │ ├── EditModeRunner.cs
│ │ │ │ │ │ ├── EditModeRunner.cs.meta
│ │ │ │ │ │ ├── EditmodeWorkItemFactory.cs
│ │ │ │ │ │ ├── EditmodeWorkItemFactory.cs.meta
│ │ │ │ │ │ ├── EditorEnumeratorTestWorkItem.cs
│ │ │ │ │ │ ├── EditorEnumeratorTestWorkItem.cs.meta
│ │ │ │ │ │ ├── EnumeratorStepHelper.cs
│ │ │ │ │ │ ├── EnumeratorStepHelper.cs.meta
│ │ │ │ │ │ ├── Messages/
│ │ │ │ │ │ │ ├── EnterPlayMode.cs
│ │ │ │ │ │ │ ├── EnterPlayMode.cs.meta
│ │ │ │ │ │ │ ├── ExitPlayMode.cs
│ │ │ │ │ │ │ ├── ExitPlayMode.cs.meta
│ │ │ │ │ │ │ ├── RecompileScripts.cs
│ │ │ │ │ │ │ ├── RecompileScripts.cs.meta
│ │ │ │ │ │ │ ├── WaitForDomainReload.cs
│ │ │ │ │ │ │ └── WaitForDomainReload.cs.meta
│ │ │ │ │ │ ├── Messages.meta
│ │ │ │ │ │ ├── TestFileCleanupVerifier.cs
│ │ │ │ │ │ ├── TestFileCleanupVerifier.cs.meta
│ │ │ │ │ │ ├── Utils/
│ │ │ │ │ │ │ ├── CachingTestListProvider.cs
│ │ │ │ │ │ │ ├── CachingTestListProvider.cs.meta
│ │ │ │ │ │ │ ├── EditorAssembliesProxy.cs
│ │ │ │ │ │ │ ├── EditorAssembliesProxy.cs.meta
│ │ │ │ │ │ │ ├── EditorAssemblyWrapper.cs
│ │ │ │ │ │ │ ├── EditorAssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── EditorCompilationInterfaceProxy.cs
│ │ │ │ │ │ │ ├── EditorCompilationInterfaceProxy.cs.meta
│ │ │ │ │ │ │ ├── EditorLoadedTestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── EditorLoadedTestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── IEditorAssembliesProxy.cs
│ │ │ │ │ │ │ ├── IEditorAssembliesProxy.cs.meta
│ │ │ │ │ │ │ ├── IEditorCompilationInterfaceProxy.cs
│ │ │ │ │ │ │ ├── IEditorCompilationInterfaceProxy.cs.meta
│ │ │ │ │ │ │ ├── ITestListCache.cs
│ │ │ │ │ │ │ ├── ITestListCache.cs.meta
│ │ │ │ │ │ │ ├── ITestListCacheData.cs
│ │ │ │ │ │ │ ├── ITestListCacheData.cs.meta
│ │ │ │ │ │ │ ├── ITestListProvider.cs
│ │ │ │ │ │ │ ├── ITestListProvider.cs.meta
│ │ │ │ │ │ │ ├── TestListCache.cs
│ │ │ │ │ │ │ ├── TestListCache.cs.meta
│ │ │ │ │ │ │ ├── TestListCacheData.cs
│ │ │ │ │ │ │ ├── TestListCacheData.cs.meta
│ │ │ │ │ │ │ ├── TestListJob.cs
│ │ │ │ │ │ │ ├── TestListJob.cs.meta
│ │ │ │ │ │ │ ├── TestListProvider.cs
│ │ │ │ │ │ │ └── TestListProvider.cs.meta
│ │ │ │ │ │ └── Utils.meta
│ │ │ │ │ ├── TestRunner.meta
│ │ │ │ │ ├── TestRunnerWindow.cs
│ │ │ │ │ ├── TestRunnerWindow.cs.meta
│ │ │ │ │ ├── TestRunnerWindowSettings.cs
│ │ │ │ │ ├── TestRunnerWindowSettings.cs.meta
│ │ │ │ │ ├── TestSettings/
│ │ │ │ │ │ ├── ITestSettings.cs
│ │ │ │ │ │ ├── ITestSettings.cs.meta
│ │ │ │ │ │ ├── ITestSettingsDeserializer.cs
│ │ │ │ │ │ ├── ITestSettingsDeserializer.cs.meta
│ │ │ │ │ │ ├── TestSettings.cs
│ │ │ │ │ │ ├── TestSettings.cs.meta
│ │ │ │ │ │ ├── TestSettingsDeserializer.cs
│ │ │ │ │ │ └── TestSettingsDeserializer.cs.meta
│ │ │ │ │ ├── TestSettings.meta
│ │ │ │ │ ├── UnityEditor.TestRunner.asmdef
│ │ │ │ │ ├── UnityEditor.TestRunner.asmdef.meta
│ │ │ │ │ ├── UnityTestProtocol/
│ │ │ │ │ │ ├── AssemblyCompilationErrorsMessage.cs
│ │ │ │ │ │ ├── AssemblyCompilationErrorsMessage.cs.meta
│ │ │ │ │ │ ├── ITestRunnerApiMapper.cs
│ │ │ │ │ │ ├── ITestRunnerApiMapper.cs.meta
│ │ │ │ │ │ ├── IUtpLogger.cs
│ │ │ │ │ │ ├── IUtpLogger.cs.meta
│ │ │ │ │ │ ├── IUtpMessageReporter.cs
│ │ │ │ │ │ ├── IUtpMessageReporter.cs.meta
│ │ │ │ │ │ ├── Message.cs
│ │ │ │ │ │ ├── Message.cs.meta
│ │ │ │ │ │ ├── TestFinishedMessage.cs
│ │ │ │ │ │ ├── TestFinishedMessage.cs.meta
│ │ │ │ │ │ ├── TestPlanMessage.cs
│ │ │ │ │ │ ├── TestPlanMessage.cs.meta
│ │ │ │ │ │ ├── TestRunnerApiMapper.cs
│ │ │ │ │ │ ├── TestRunnerApiMapper.cs.meta
│ │ │ │ │ │ ├── TestStartedMessage.cs
│ │ │ │ │ │ ├── TestStartedMessage.cs.meta
│ │ │ │ │ │ ├── TestState.cs
│ │ │ │ │ │ ├── TestState.cs.meta
│ │ │ │ │ │ ├── UnityTestProtocolListener.cs
│ │ │ │ │ │ ├── UnityTestProtocolListener.cs.meta
│ │ │ │ │ │ ├── UnityTestProtocolStarter.cs
│ │ │ │ │ │ ├── UnityTestProtocolStarter.cs.meta
│ │ │ │ │ │ ├── UtpDebuglogger.cs
│ │ │ │ │ │ ├── UtpDebuglogger.cs.meta
│ │ │ │ │ │ ├── UtpMessageReporter.cs
│ │ │ │ │ │ └── UtpMessageReporter.cs.meta
│ │ │ │ │ └── UnityTestProtocol.meta
│ │ │ │ ├── UnityEditor.TestRunner.meta
│ │ │ │ ├── UnityEngine.TestRunner/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── AssemblyInfo.cs.meta
│ │ │ │ │ ├── Assertions/
│ │ │ │ │ │ ├── AllocatingGCMemoryConstraint.cs
│ │ │ │ │ │ ├── AllocatingGCMemoryConstraint.cs.meta
│ │ │ │ │ │ ├── ConstraintsExtensions.cs
│ │ │ │ │ │ ├── ConstraintsExtensions.cs.meta
│ │ │ │ │ │ ├── InvalidSignatureException.cs
│ │ │ │ │ │ ├── InvalidSignatureException.cs.meta
│ │ │ │ │ │ ├── Is.cs
│ │ │ │ │ │ ├── Is.cs.meta
│ │ │ │ │ │ ├── LogAssert.cs
│ │ │ │ │ │ ├── LogAssert.cs.meta
│ │ │ │ │ │ ├── LogScope/
│ │ │ │ │ │ │ ├── ILogScope.cs
│ │ │ │ │ │ │ ├── ILogScope.cs.meta
│ │ │ │ │ │ │ ├── LogEvent.cs
│ │ │ │ │ │ │ ├── LogEvent.cs.meta
│ │ │ │ │ │ │ ├── LogMatch.cs
│ │ │ │ │ │ │ ├── LogMatch.cs.meta
│ │ │ │ │ │ │ ├── LogScope.cs
│ │ │ │ │ │ │ └── LogScope.cs.meta
│ │ │ │ │ │ ├── LogScope.meta
│ │ │ │ │ │ ├── UnexpectedLogMessageException.cs
│ │ │ │ │ │ ├── UnexpectedLogMessageException.cs.meta
│ │ │ │ │ │ ├── UnhandledLogMessageException.cs
│ │ │ │ │ │ ├── UnhandledLogMessageException.cs.meta
│ │ │ │ │ │ ├── UnityTestTimeoutException.cs
│ │ │ │ │ │ └── UnityTestTimeoutException.cs.meta
│ │ │ │ │ ├── Assertions.meta
│ │ │ │ │ ├── NUnitExtensions/
│ │ │ │ │ │ ├── ActionDelegator.cs
│ │ │ │ │ │ ├── ActionDelegator.cs.meta
│ │ │ │ │ │ ├── Attributes/
│ │ │ │ │ │ │ ├── TestEnumerator.cs
│ │ │ │ │ │ │ ├── TestEnumerator.cs.meta
│ │ │ │ │ │ │ ├── UnityCombinatorialStrategy.cs
│ │ │ │ │ │ │ ├── UnityCombinatorialStrategy.cs.meta
│ │ │ │ │ │ │ ├── UnityPlatformAttribute.cs
│ │ │ │ │ │ │ ├── UnityPlatformAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnitySetUpAttribute.cs
│ │ │ │ │ │ │ ├── UnitySetUpAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnityTearDownAttribute.cs
│ │ │ │ │ │ │ ├── UnityTearDownAttribute.cs.meta
│ │ │ │ │ │ │ ├── UnityTestAttribute.cs
│ │ │ │ │ │ │ └── UnityTestAttribute.cs.meta
│ │ │ │ │ │ ├── Attributes.meta
│ │ │ │ │ │ ├── BaseDelegator.cs
│ │ │ │ │ │ ├── BaseDelegator.cs.meta
│ │ │ │ │ │ ├── Commands/
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandBase.cs
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandBase.cs.meta
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandState.cs
│ │ │ │ │ │ │ ├── BeforeAfterTestCommandState.cs.meta
│ │ │ │ │ │ │ ├── EnumerableApplyChangesToContextCommand.cs
│ │ │ │ │ │ │ ├── EnumerableApplyChangesToContextCommand.cs.meta
│ │ │ │ │ │ │ ├── EnumerableSetUpTearDownCommand.cs
│ │ │ │ │ │ │ ├── EnumerableSetUpTearDownCommand.cs.meta
│ │ │ │ │ │ │ ├── EnumerableTestMethodCommand.cs
│ │ │ │ │ │ │ ├── EnumerableTestMethodCommand.cs.meta
│ │ │ │ │ │ │ ├── ImmediateEnumerableCommand.cs
│ │ │ │ │ │ │ ├── ImmediateEnumerableCommand.cs.meta
│ │ │ │ │ │ │ ├── OuterUnityTestActionCommand.cs
│ │ │ │ │ │ │ ├── OuterUnityTestActionCommand.cs.meta
│ │ │ │ │ │ │ ├── SetUpTearDownCommand.cs
│ │ │ │ │ │ │ ├── SetUpTearDownCommand.cs.meta
│ │ │ │ │ │ │ ├── TestActionCommand.cs
│ │ │ │ │ │ │ ├── TestActionCommand.cs.meta
│ │ │ │ │ │ │ ├── TestCommandPcHelper.cs
│ │ │ │ │ │ │ └── TestCommandPcHelper.cs.meta
│ │ │ │ │ │ ├── Commands.meta
│ │ │ │ │ │ ├── ConstructDelegator.cs
│ │ │ │ │ │ ├── ConstructDelegator.cs.meta
│ │ │ │ │ │ ├── Filters/
│ │ │ │ │ │ │ ├── AssemblyNameFilter.cs
│ │ │ │ │ │ │ ├── AssemblyNameFilter.cs.meta
│ │ │ │ │ │ │ ├── CategoryFilterExtended.cs
│ │ │ │ │ │ │ └── CategoryFilterExtended.cs.meta
│ │ │ │ │ │ ├── Filters.meta
│ │ │ │ │ │ ├── IStateSerializer.cs
│ │ │ │ │ │ ├── IStateSerializer.cs.meta
│ │ │ │ │ │ ├── Runner/
│ │ │ │ │ │ │ ├── CompositeWorkItem.cs
│ │ │ │ │ │ │ ├── CompositeWorkItem.cs.meta
│ │ │ │ │ │ │ ├── CoroutineTestWorkItem.cs
│ │ │ │ │ │ │ ├── CoroutineTestWorkItem.cs.meta
│ │ │ │ │ │ │ ├── DefaultTestWorkItem.cs
│ │ │ │ │ │ │ ├── DefaultTestWorkItem.cs.meta
│ │ │ │ │ │ │ ├── FailCommand.cs
│ │ │ │ │ │ │ ├── FailCommand.cs.meta
│ │ │ │ │ │ │ ├── IEnumerableTestMethodCommand.cs
│ │ │ │ │ │ │ ├── IEnumerableTestMethodCommand.cs.meta
│ │ │ │ │ │ │ ├── PlaymodeWorkItemFactory.cs
│ │ │ │ │ │ │ ├── PlaymodeWorkItemFactory.cs.meta
│ │ │ │ │ │ │ ├── RestoreTestContextAfterDomainReload.cs
│ │ │ │ │ │ │ ├── RestoreTestContextAfterDomainReload.cs.meta
│ │ │ │ │ │ │ ├── UnityLogCheckDelegatingCommand.cs
│ │ │ │ │ │ │ ├── UnityLogCheckDelegatingCommand.cs.meta
│ │ │ │ │ │ │ ├── UnityTestAssemblyRunner.cs
│ │ │ │ │ │ │ ├── UnityTestAssemblyRunner.cs.meta
│ │ │ │ │ │ │ ├── UnityTestExecutionContext.cs
│ │ │ │ │ │ │ ├── UnityTestExecutionContext.cs.meta
│ │ │ │ │ │ │ ├── UnityWorkItem.cs
│ │ │ │ │ │ │ ├── UnityWorkItem.cs.meta
│ │ │ │ │ │ │ ├── UnityWorkItemDataHolder.cs
│ │ │ │ │ │ │ ├── UnityWorkItemDataHolder.cs.meta
│ │ │ │ │ │ │ ├── WorkItemFactory.cs
│ │ │ │ │ │ │ └── WorkItemFactory.cs.meta
│ │ │ │ │ │ ├── Runner.meta
│ │ │ │ │ │ ├── TestExtensions.cs
│ │ │ │ │ │ ├── TestExtensions.cs.meta
│ │ │ │ │ │ ├── TestResultExtensions.cs
│ │ │ │ │ │ ├── TestResultExtensions.cs.meta
│ │ │ │ │ │ ├── UnityTestAssemblyBuilder.cs
│ │ │ │ │ │ └── UnityTestAssemblyBuilder.cs.meta
│ │ │ │ │ ├── NUnitExtensions.meta
│ │ │ │ │ ├── TestRunner/
│ │ │ │ │ │ ├── Callbacks/
│ │ │ │ │ │ │ ├── PlayModeRunnerCallback.cs
│ │ │ │ │ │ │ ├── PlayModeRunnerCallback.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultSender.cs
│ │ │ │ │ │ │ ├── RemoteTestResultSender.cs.meta
│ │ │ │ │ │ │ ├── TestResultRenderer.cs
│ │ │ │ │ │ │ ├── TestResultRenderer.cs.meta
│ │ │ │ │ │ │ ├── TestResultRendererCallback.cs
│ │ │ │ │ │ │ └── TestResultRendererCallback.cs.meta
│ │ │ │ │ │ ├── Callbacks.meta
│ │ │ │ │ │ ├── ITestRunnerListener.cs
│ │ │ │ │ │ ├── ITestRunnerListener.cs.meta
│ │ │ │ │ │ ├── Messages/
│ │ │ │ │ │ │ ├── IEditModeTestYieldInstruction.cs
│ │ │ │ │ │ │ └── IEditModeTestYieldInstruction.cs.meta
│ │ │ │ │ │ ├── Messages.meta
│ │ │ │ │ │ ├── PlaymodeTestsController.cs
│ │ │ │ │ │ ├── PlaymodeTestsController.cs.meta
│ │ │ │ │ │ ├── PlaymodeTestsControllerSettings.cs
│ │ │ │ │ │ ├── PlaymodeTestsControllerSettings.cs.meta
│ │ │ │ │ │ ├── RemoteHelpers/
│ │ │ │ │ │ │ ├── IRemoteTestResultDataFactory.cs
│ │ │ │ │ │ │ ├── IRemoteTestResultDataFactory.cs.meta
│ │ │ │ │ │ │ ├── PlayerConnectionMessageIds.cs
│ │ │ │ │ │ │ ├── PlayerConnectionMessageIds.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestData.cs
│ │ │ │ │ │ │ ├── RemoteTestData.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultData.cs
│ │ │ │ │ │ │ ├── RemoteTestResultData.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultDataFactory.cs
│ │ │ │ │ │ │ ├── RemoteTestResultDataFactory.cs.meta
│ │ │ │ │ │ │ ├── RemoteTestResultDataWithTestData.cs
│ │ │ │ │ │ │ └── RemoteTestResultDataWithTestData.cs.meta
│ │ │ │ │ │ ├── RemoteHelpers.meta
│ │ │ │ │ │ ├── TestEnumeratorWrapper.cs
│ │ │ │ │ │ ├── TestEnumeratorWrapper.cs.meta
│ │ │ │ │ │ ├── TestListenerWrapper.cs
│ │ │ │ │ │ ├── TestListenerWrapper.cs.meta
│ │ │ │ │ │ ├── TestPlatform.cs
│ │ │ │ │ │ ├── TestPlatform.cs.meta
│ │ │ │ │ │ ├── TestRunnerFilter.cs
│ │ │ │ │ │ └── TestRunnerFilter.cs.meta
│ │ │ │ │ ├── TestRunner.meta
│ │ │ │ │ ├── UnityEngine.TestRunner.asmdef
│ │ │ │ │ ├── UnityEngine.TestRunner.asmdef.meta
│ │ │ │ │ ├── Utils/
│ │ │ │ │ │ ├── AssemblyProvider/
│ │ │ │ │ │ │ ├── AssemblyLoadProxy.cs
│ │ │ │ │ │ │ ├── AssemblyLoadProxy.cs.meta
│ │ │ │ │ │ │ ├── AssemblyWrapper.cs
│ │ │ │ │ │ │ ├── AssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── IAssemblyLoadProxy.cs
│ │ │ │ │ │ │ ├── IAssemblyLoadProxy.cs.meta
│ │ │ │ │ │ │ ├── IAssemblyWrapper.cs
│ │ │ │ │ │ │ ├── IAssemblyWrapper.cs.meta
│ │ │ │ │ │ │ ├── IScriptingRuntimeProxy.cs
│ │ │ │ │ │ │ ├── IScriptingRuntimeProxy.cs.meta
│ │ │ │ │ │ │ ├── ITestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── ITestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── PlayerTestAssemblyProvider.cs
│ │ │ │ │ │ │ ├── PlayerTestAssemblyProvider.cs.meta
│ │ │ │ │ │ │ ├── ScriptingRuntimeProxy.cs
│ │ │ │ │ │ │ └── ScriptingRuntimeProxy.cs.meta
│ │ │ │ │ │ ├── AssemblyProvider.meta
│ │ │ │ │ │ ├── AttributeHelper.cs
│ │ │ │ │ │ ├── AttributeHelper.cs.meta
│ │ │ │ │ │ ├── ColorEqualityComparer.cs
│ │ │ │ │ │ ├── ColorEqualityComparer.cs.meta
│ │ │ │ │ │ ├── CoroutineRunner.cs
│ │ │ │ │ │ ├── CoroutineRunner.cs.meta
│ │ │ │ │ │ ├── FloatEqualityComparer.cs
│ │ │ │ │ │ ├── FloatEqualityComparer.cs.meta
│ │ │ │ │ │ ├── IOuterUnityTestAction.cs
│ │ │ │ │ │ ├── IOuterUnityTestAction.cs.meta
│ │ │ │ │ │ ├── IPostBuildCleanup.cs
│ │ │ │ │ │ ├── IPostBuildCleanup.cs.meta
│ │ │ │ │ │ ├── IPrebuildSceneSetup.cs
│ │ │ │ │ │ ├── IPrebuildSceneSetup.cs.meta
│ │ │ │ │ │ ├── MonoBehaviourTest/
│ │ │ │ │ │ │ ├── IMonoBehaviourTest.cs
│ │ │ │ │ │ │ ├── IMonoBehaviourTest.cs.meta
│ │ │ │ │ │ │ ├── MonoBehaviourTest.cs
│ │ │ │ │ │ │ └── MonoBehaviourTest.cs.meta
│ │ │ │ │ │ ├── MonoBehaviourTest.meta
│ │ │ │ │ │ ├── PostBuildCleanupAttribute.cs
│ │ │ │ │ │ ├── PostBuildCleanupAttribute.cs.meta
│ │ │ │ │ │ ├── PrebuildSceneSetupAttribute.cs
│ │ │ │ │ │ ├── PrebuildSceneSetupAttribute.cs.meta
│ │ │ │ │ │ ├── QuaternionEqualityComparer.cs
│ │ │ │ │ │ ├── QuaternionEqualityComparer.cs.meta
│ │ │ │ │ │ ├── StacktraceFilter.cs
│ │ │ │ │ │ ├── StacktraceFilter.cs.meta
│ │ │ │ │ │ ├── Utils.cs
│ │ │ │ │ │ ├── Utils.cs.meta
│ │ │ │ │ │ ├── Vector2ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector2ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector2EqualityComparer.cs
│ │ │ │ │ │ ├── Vector2EqualityComparer.cs.meta
│ │ │ │ │ │ ├── Vector3ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector3ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector3EqualityComparer.cs
│ │ │ │ │ │ ├── Vector3EqualityComparer.cs.meta
│ │ │ │ │ │ ├── Vector4ComparerWithEqualsOperator.cs
│ │ │ │ │ │ ├── Vector4ComparerWithEqualsOperator.cs.meta
│ │ │ │ │ │ ├── Vector4EqualityComparer.cs
│ │ │ │ │ │ └── Vector4EqualityComparer.cs.meta
│ │ │ │ │ └── Utils.meta
│ │ │ │ ├── UnityEngine.TestRunner.meta
│ │ │ │ ├── package.json
│ │ │ │ └── package.json.meta
│ │ │ └── com.unity.textmeshpro@2.0.1/
│ │ │ ├── .gitlab-ci.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CHANGELOG.md.meta
│ │ │ ├── Documentation~/
│ │ │ │ ├── TextMeshPro.md
│ │ │ │ └── TextMeshPro.md.meta
│ │ │ ├── Editor Resources/
│ │ │ │ ├── Gizmos/
│ │ │ │ │ ├── TMP - Dropdown Icon.psd
│ │ │ │ │ ├── TMP - Dropdown Icon.psd.meta
│ │ │ │ │ ├── TMP - Font Asset Icon.psd
│ │ │ │ │ ├── TMP - Font Asset Icon.psd.meta
│ │ │ │ │ ├── TMP - Input Field Icon.psd
│ │ │ │ │ ├── TMP - Input Field Icon.psd.meta
│ │ │ │ │ ├── TMP - Sprite Asset Icon.psd
│ │ │ │ │ ├── TMP - Sprite Asset Icon.psd.meta
│ │ │ │ │ ├── TMP - Text Component Icon.psd
│ │ │ │ │ └── TMP - Text Component Icon.psd.meta
│ │ │ │ ├── Gizmos.meta
│ │ │ │ ├── Shaders/
│ │ │ │ │ ├── TMP_Properties.cginc
│ │ │ │ │ ├── TMP_Properties.cginc.meta
│ │ │ │ │ ├── TMP_SDF Internal SSD.shader
│ │ │ │ │ └── TMP_SDF Internal SSD.shader.meta
│ │ │ │ ├── Shaders.meta
│ │ │ │ ├── Textures/
│ │ │ │ │ ├── SectionHeader_Dark.psd
│ │ │ │ │ ├── SectionHeader_Dark.psd.meta
│ │ │ │ │ ├── SectionHeader_Light.psd
│ │ │ │ │ ├── SectionHeader_Light.psd.meta
│ │ │ │ │ ├── btn_AlignBaseLine.psd
│ │ │ │ │ ├── btn_AlignBaseLine.psd.meta
│ │ │ │ │ ├── btn_AlignBaseLine_Light.psd
│ │ │ │ │ ├── btn_AlignBaseLine_Light.psd.meta
│ │ │ │ │ ├── btn_AlignBottom.psd
│ │ │ │ │ ├── btn_AlignBottom.psd.meta
│ │ │ │ │ ├── btn_AlignBottom_Light.psd
│ │ │ │ │ ├── btn_AlignBottom_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCapLine.psd
│ │ │ │ │ ├── btn_AlignCapLine.psd.meta
│ │ │ │ │ ├── btn_AlignCapLine_Light.psd
│ │ │ │ │ ├── btn_AlignCapLine_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCenter.psd
│ │ │ │ │ ├── btn_AlignCenter.psd.meta
│ │ │ │ │ ├── btn_AlignCenterGeo.psd
│ │ │ │ │ ├── btn_AlignCenterGeo.psd.meta
│ │ │ │ │ ├── btn_AlignCenterGeo_Light.psd
│ │ │ │ │ ├── btn_AlignCenterGeo_Light.psd.meta
│ │ │ │ │ ├── btn_AlignCenter_Light.psd
│ │ │ │ │ ├── btn_AlignCenter_Light.psd.meta
│ │ │ │ │ ├── btn_AlignFlush.psd
│ │ │ │ │ ├── btn_AlignFlush.psd.meta
│ │ │ │ │ ├── btn_AlignFlush_Light.psd
│ │ │ │ │ ├── btn_AlignFlush_Light.psd.meta
│ │ │ │ │ ├── btn_AlignJustified.psd
│ │ │ │ │ ├── btn_AlignJustified.psd.meta
│ │ │ │ │ ├── btn_AlignJustified_Light.psd
│ │ │ │ │ ├── btn_AlignJustified_Light.psd.meta
│ │ │ │ │ ├── btn_AlignLeft.psd
│ │ │ │ │ ├── btn_AlignLeft.psd.meta
│ │ │ │ │ ├── btn_AlignLeft_Light.psd
│ │ │ │ │ ├── btn_AlignLeft_Light.psd.meta
│ │ │ │ │ ├── btn_AlignMidLine.psd
│ │ │ │ │ ├── btn_AlignMidLine.psd.meta
│ │ │ │ │ ├── btn_AlignMiddle.psd
│ │ │ │ │ ├── btn_AlignMiddle.psd.meta
│ │ │ │ │ ├── btn_AlignMiddle_Light.psd
│ │ │ │ │ ├── btn_AlignMiddle_Light.psd.meta
│ │ │ │ │ ├── btn_AlignMidline_Light.psd
│ │ │ │ │ ├── btn_AlignMidline_Light.psd.meta
│ │ │ │ │ ├── btn_AlignRight.psd
│ │ │ │ │ ├── btn_AlignRight.psd.meta
│ │ │ │ │ ├── btn_AlignRight_Light.psd
│ │ │ │ │ ├── btn_AlignRight_Light.psd.meta
│ │ │ │ │ ├── btn_AlignTop.psd
│ │ │ │ │ ├── btn_AlignTop.psd.meta
│ │ │ │ │ ├── btn_AlignTop_Light.psd
│ │ │ │ │ └── btn_AlignTop_Light.psd.meta
│ │ │ │ └── Textures.meta
│ │ │ ├── Editor Resources.meta
│ │ │ ├── LICENSE.md
│ │ │ ├── LICENSE.md.meta
│ │ │ ├── Package Resources/
│ │ │ │ ├── TMP Essential Resources.unitypackage
│ │ │ │ ├── TMP Essential Resources.unitypackage.meta
│ │ │ │ ├── TMP Examples & Extras.unitypackage
│ │ │ │ └── TMP Examples & Extras.unitypackage.meta
│ │ │ ├── Package Resources.meta
│ │ │ ├── PackageConversionData.json
│ │ │ ├── PackageConversionData.json.meta
│ │ │ ├── PackageConversionData_Assets.json
│ │ │ ├── PackageConversionData_Assets.json.meta
│ │ │ ├── Scripts/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── DropdownOptionListDrawer.cs
│ │ │ │ │ ├── DropdownOptionListDrawer.cs.meta
│ │ │ │ │ ├── GlyphInfoDrawer.cs
│ │ │ │ │ ├── GlyphInfoDrawer.cs.meta
│ │ │ │ │ ├── GlyphMetricsPropertyDrawer.cs
│ │ │ │ │ ├── GlyphMetricsPropertyDrawer.cs.meta
│ │ │ │ │ ├── GlyphRectPropertyDrawer.cs
│ │ │ │ │ ├── GlyphRectPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_BaseEditorPanel.cs
│ │ │ │ │ ├── TMP_BaseEditorPanel.cs.meta
│ │ │ │ │ ├── TMP_BaseShaderGUI.cs
│ │ │ │ │ ├── TMP_BaseShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_BitmapShaderGUI.cs
│ │ │ │ │ ├── TMP_BitmapShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_CharacterPropertyDrawer.cs
│ │ │ │ │ ├── TMP_CharacterPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_ColorGradientAssetMenu.cs
│ │ │ │ │ ├── TMP_ColorGradientAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_ColorGradientEditor.cs
│ │ │ │ │ ├── TMP_ColorGradientEditor.cs.meta
│ │ │ │ │ ├── TMP_DropdownEditor.cs
│ │ │ │ │ ├── TMP_DropdownEditor.cs.meta
│ │ │ │ │ ├── TMP_EditorCoroutine.cs
│ │ │ │ │ ├── TMP_EditorCoroutine.cs.meta
│ │ │ │ │ ├── TMP_EditorPanel.cs
│ │ │ │ │ ├── TMP_EditorPanel.cs.meta
│ │ │ │ │ ├── TMP_EditorUtility.cs
│ │ │ │ │ ├── TMP_EditorUtility.cs.meta
│ │ │ │ │ ├── TMP_FontAssetEditor.cs
│ │ │ │ │ ├── TMP_FontAssetEditor.cs.meta
│ │ │ │ │ ├── TMP_FontAsset_CreationMenu.cs
│ │ │ │ │ ├── TMP_FontAsset_CreationMenu.cs.meta
│ │ │ │ │ ├── TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs
│ │ │ │ │ ├── TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_GlyphPropertyDrawer.cs
│ │ │ │ │ ├── TMP_GlyphPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_InputFieldEditor.cs
│ │ │ │ │ ├── TMP_InputFieldEditor.cs.meta
│ │ │ │ │ ├── TMP_MeshRendererEditor.cs
│ │ │ │ │ ├── TMP_MeshRendererEditor.cs.meta
│ │ │ │ │ ├── TMP_PackageUtilities.cs
│ │ │ │ │ ├── TMP_PackageUtilities.cs.meta
│ │ │ │ │ ├── TMP_PostBuildProcessHandler.cs
│ │ │ │ │ ├── TMP_PostBuildProcessHandler.cs.meta
│ │ │ │ │ ├── TMP_ProjectTextSettings.cs
│ │ │ │ │ ├── TMP_ProjectTextSettings.cs.meta
│ │ │ │ │ ├── TMP_ResourcesLoader.cs
│ │ │ │ │ ├── TMP_ResourcesLoader.cs.meta
│ │ │ │ │ ├── TMP_SDFShaderGUI.cs
│ │ │ │ │ ├── TMP_SDFShaderGUI.cs.meta
│ │ │ │ │ ├── TMP_SerializedPropertyHolder.cs
│ │ │ │ │ ├── TMP_SerializedPropertyHolder.cs.meta
│ │ │ │ │ ├── TMP_SettingsEditor.cs
│ │ │ │ │ ├── TMP_SettingsEditor.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetEditor.cs
│ │ │ │ │ ├── TMP_SpriteAssetEditor.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetImporter.cs
│ │ │ │ │ ├── TMP_SpriteAssetImporter.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetMenu.cs
│ │ │ │ │ ├── TMP_SpriteAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_SpriteCharacterPropertyDrawer.cs
│ │ │ │ │ ├── TMP_SpriteCharacterPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_SpriteGlyphPropertyDrawer.cs
│ │ │ │ │ ├── TMP_SpriteGlyphPropertyDrawer.cs.meta
│ │ │ │ │ ├── TMP_StyleAssetMenu.cs
│ │ │ │ │ ├── TMP_StyleAssetMenu.cs.meta
│ │ │ │ │ ├── TMP_StyleSheetEditor.cs
│ │ │ │ │ ├── TMP_StyleSheetEditor.cs.meta
│ │ │ │ │ ├── TMP_SubMeshUI_Editor.cs
│ │ │ │ │ ├── TMP_SubMeshUI_Editor.cs.meta
│ │ │ │ │ ├── TMP_SubMesh_Editor.cs
│ │ │ │ │ ├── TMP_SubMesh_Editor.cs.meta
│ │ │ │ │ ├── TMP_TextAlignmentDrawer.cs
│ │ │ │ │ ├── TMP_TextAlignmentDrawer.cs.meta
│ │ │ │ │ ├── TMP_UIStyleManager.cs
│ │ │ │ │ ├── TMP_UIStyleManager.cs.meta
│ │ │ │ │ ├── TMP_UiEditorPanel.cs
│ │ │ │ │ ├── TMP_UiEditorPanel.cs.meta
│ │ │ │ │ ├── TMPro_ContextMenus.cs
│ │ │ │ │ ├── TMPro_ContextMenus.cs.meta
│ │ │ │ │ ├── TMPro_CreateObjectMenu.cs
│ │ │ │ │ ├── TMPro_CreateObjectMenu.cs.meta
│ │ │ │ │ ├── TMPro_EditorShaderUtilities.cs
│ │ │ │ │ ├── TMPro_EditorShaderUtilities.cs.meta
│ │ │ │ │ ├── TMPro_FontAssetCreatorWindow.cs
│ │ │ │ │ ├── TMPro_FontAssetCreatorWindow.cs.meta
│ │ │ │ │ ├── TMPro_FontPlugin.cs
│ │ │ │ │ ├── TMPro_FontPlugin.cs.meta
│ │ │ │ │ ├── TMPro_SortingLayerHelper.cs
│ │ │ │ │ ├── TMPro_SortingLayerHelper.cs.meta
│ │ │ │ │ ├── TMPro_TextContainerEditor.cs
│ │ │ │ │ ├── TMPro_TextContainerEditor.cs.meta
│ │ │ │ │ ├── TMPro_TexturePostProcessor.cs
│ │ │ │ │ ├── TMPro_TexturePostProcessor.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Editor.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Editor.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Runtime/
│ │ │ │ │ ├── AssemblyInfo.cs.cs
│ │ │ │ │ ├── AssemblyInfo.cs.cs.meta
│ │ │ │ │ ├── FastAction.cs
│ │ │ │ │ ├── FastAction.cs.meta
│ │ │ │ │ ├── MaterialReferenceManager.cs
│ │ │ │ │ ├── MaterialReferenceManager.cs.meta
│ │ │ │ │ ├── TMP_Asset.cs
│ │ │ │ │ ├── TMP_Asset.cs.meta
│ │ │ │ │ ├── TMP_Character.cs
│ │ │ │ │ ├── TMP_Character.cs.meta
│ │ │ │ │ ├── TMP_CharacterInfo.cs
│ │ │ │ │ ├── TMP_CharacterInfo.cs.meta
│ │ │ │ │ ├── TMP_ColorGradient.cs
│ │ │ │ │ ├── TMP_ColorGradient.cs.meta
│ │ │ │ │ ├── TMP_CoroutineTween.cs
│ │ │ │ │ ├── TMP_CoroutineTween.cs.meta
│ │ │ │ │ ├── TMP_DefaultControls.cs
│ │ │ │ │ ├── TMP_DefaultControls.cs.meta
│ │ │ │ │ ├── TMP_Dropdown.cs
│ │ │ │ │ ├── TMP_Dropdown.cs.meta
│ │ │ │ │ ├── TMP_EditorResourceManager.cs
│ │ │ │ │ ├── TMP_EditorResourceManager.cs.meta
│ │ │ │ │ ├── TMP_FontAsset.cs
│ │ │ │ │ ├── TMP_FontAsset.cs.meta
│ │ │ │ │ ├── TMP_FontAssetCommon.cs
│ │ │ │ │ ├── TMP_FontAssetCommon.cs.meta
│ │ │ │ │ ├── TMP_FontAssetUtilities.cs
│ │ │ │ │ ├── TMP_FontAssetUtilities.cs.meta
│ │ │ │ │ ├── TMP_FontFeatureTable.cs
│ │ │ │ │ ├── TMP_FontFeatureTable.cs.meta
│ │ │ │ │ ├── TMP_FontFeaturesCommon.cs
│ │ │ │ │ ├── TMP_FontFeaturesCommon.cs.meta
│ │ │ │ │ ├── TMP_InputField.cs
│ │ │ │ │ ├── TMP_InputField.cs.meta
│ │ │ │ │ ├── TMP_InputValidator.cs
│ │ │ │ │ ├── TMP_InputValidator.cs.meta
│ │ │ │ │ ├── TMP_LineInfo.cs
│ │ │ │ │ ├── TMP_LineInfo.cs.meta
│ │ │ │ │ ├── TMP_ListPool.cs
│ │ │ │ │ ├── TMP_ListPool.cs.meta
│ │ │ │ │ ├── TMP_MaterialManager.cs
│ │ │ │ │ ├── TMP_MaterialManager.cs.meta
│ │ │ │ │ ├── TMP_MeshInfo.cs
│ │ │ │ │ ├── TMP_MeshInfo.cs.meta
│ │ │ │ │ ├── TMP_ObjectPool.cs
│ │ │ │ │ ├── TMP_ObjectPool.cs.meta
│ │ │ │ │ ├── TMP_PackageResourceImporter.cs
│ │ │ │ │ ├── TMP_PackageResourceImporter.cs.meta
│ │ │ │ │ ├── TMP_RichTextTagStack.cs
│ │ │ │ │ ├── TMP_RichTextTagStack.cs.meta
│ │ │ │ │ ├── TMP_RichTextTagsCommon.cs
│ │ │ │ │ ├── TMP_RichTextTagsCommon.cs.meta
│ │ │ │ │ ├── TMP_ScrollbarEventHandler.cs
│ │ │ │ │ ├── TMP_ScrollbarEventHandler.cs.meta
│ │ │ │ │ ├── TMP_SelectionCaret.cs
│ │ │ │ │ ├── TMP_SelectionCaret.cs.meta
│ │ │ │ │ ├── TMP_Settings.cs
│ │ │ │ │ ├── TMP_Settings.cs.meta
│ │ │ │ │ ├── TMP_ShaderUtilities.cs
│ │ │ │ │ ├── TMP_ShaderUtilities.cs.meta
│ │ │ │ │ ├── TMP_Sprite.cs
│ │ │ │ │ ├── TMP_Sprite.cs.meta
│ │ │ │ │ ├── TMP_SpriteAnimator.cs
│ │ │ │ │ ├── TMP_SpriteAnimator.cs.meta
│ │ │ │ │ ├── TMP_SpriteAsset.cs
│ │ │ │ │ ├── TMP_SpriteAsset.cs.meta
│ │ │ │ │ ├── TMP_SpriteAssetImportFormats.cs
│ │ │ │ │ ├── TMP_SpriteAssetImportFormats.cs.meta
│ │ │ │ │ ├── TMP_SpriteCharacter.cs
│ │ │ │ │ ├── TMP_SpriteCharacter.cs.meta
│ │ │ │ │ ├── TMP_SpriteGlyph.cs
│ │ │ │ │ ├── TMP_SpriteGlyph.cs.meta
│ │ │ │ │ ├── TMP_Style.cs
│ │ │ │ │ ├── TMP_Style.cs.meta
│ │ │ │ │ ├── TMP_StyleSheet.cs
│ │ │ │ │ ├── TMP_StyleSheet.cs.meta
│ │ │ │ │ ├── TMP_SubMesh.cs
│ │ │ │ │ ├── TMP_SubMesh.cs.meta
│ │ │ │ │ ├── TMP_SubMeshUI.cs
│ │ │ │ │ ├── TMP_SubMeshUI.cs.meta
│ │ │ │ │ ├── TMP_Text.cs
│ │ │ │ │ ├── TMP_Text.cs.meta
│ │ │ │ │ ├── TMP_TextElement.cs
│ │ │ │ │ ├── TMP_TextElement.cs.meta
│ │ │ │ │ ├── TMP_TextElement_Legacy.cs
│ │ │ │ │ ├── TMP_TextElement_Legacy.cs.meta
│ │ │ │ │ ├── TMP_TextInfo.cs
│ │ │ │ │ ├── TMP_TextInfo.cs.meta
│ │ │ │ │ ├── TMP_TextParsingUtilities.cs
│ │ │ │ │ ├── TMP_TextParsingUtilities.cs.meta
│ │ │ │ │ ├── TMP_TextUtilities.cs
│ │ │ │ │ ├── TMP_TextUtilities.cs.meta
│ │ │ │ │ ├── TMP_UpdateManager.cs
│ │ │ │ │ ├── TMP_UpdateManager.cs.meta
│ │ │ │ │ ├── TMP_UpdateRegistery.cs
│ │ │ │ │ ├── TMP_UpdateRegistery.cs.meta
│ │ │ │ │ ├── TMPro_EventManager.cs
│ │ │ │ │ ├── TMPro_EventManager.cs.meta
│ │ │ │ │ ├── TMPro_ExtensionMethods.cs
│ │ │ │ │ ├── TMPro_ExtensionMethods.cs.meta
│ │ │ │ │ ├── TMPro_MeshUtilities.cs
│ │ │ │ │ ├── TMPro_MeshUtilities.cs.meta
│ │ │ │ │ ├── TMPro_Private.cs
│ │ │ │ │ ├── TMPro_Private.cs.meta
│ │ │ │ │ ├── TMPro_UGUI_Private.cs
│ │ │ │ │ ├── TMPro_UGUI_Private.cs.meta
│ │ │ │ │ ├── TextContainer.cs
│ │ │ │ │ ├── TextContainer.cs.meta
│ │ │ │ │ ├── TextMeshPro.cs
│ │ │ │ │ ├── TextMeshPro.cs.meta
│ │ │ │ │ ├── TextMeshProUGUI.cs
│ │ │ │ │ ├── TextMeshProUGUI.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.asmdef.meta
│ │ │ │ └── Runtime.meta
│ │ │ ├── Scripts.meta
│ │ │ ├── Tests/
│ │ │ │ ├── Editor/
│ │ │ │ │ ├── TMP_EditorTests.cs
│ │ │ │ │ ├── TMP_EditorTests.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Editor.Tests.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Editor.Tests.asmdef.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── Runtime/
│ │ │ │ │ ├── TMP_RuntimeTests.cs
│ │ │ │ │ ├── TMP_RuntimeTests.cs.meta
│ │ │ │ │ ├── Unity.TextMeshPro.Tests.asmdef
│ │ │ │ │ └── Unity.TextMeshPro.Tests.asmdef.meta
│ │ │ │ └── Runtime.meta
│ │ │ ├── Tests.meta
│ │ │ ├── package.json
│ │ │ └── package.json.meta
│ │ ├── ProjectSettings.asset
│ │ ├── SceneVisibilityState.asset
│ │ ├── ScriptAssemblies/
│ │ │ ├── Assembly-CSharp-Editor.pdb
│ │ │ ├── Assembly-CSharp.pdb
│ │ │ ├── BuiltinAssemblies.stamp
│ │ │ ├── Unity.CollabProxy.Editor.pdb
│ │ │ ├── Unity.Rider.Editor.pdb
│ │ │ ├── Unity.TextMeshPro.Editor.pdb
│ │ │ ├── Unity.TextMeshPro.pdb
│ │ │ ├── Unity.Timeline.Editor.pdb
│ │ │ ├── Unity.Timeline.pdb
│ │ │ ├── Unity.VSCode.Editor.pdb
│ │ │ ├── UnityEditor.TestRunner.pdb
│ │ │ ├── UnityEditor.UI.pdb
│ │ │ ├── UnityEngine.TestRunner.pdb
│ │ │ └── UnityEngine.UI.pdb
│ │ ├── ScriptMapper
│ │ ├── SpriteAtlasDatabase.asset
│ │ ├── StateCache/
│ │ │ ├── Hierarchy/
│ │ │ │ └── d2da7c-mainStage.json
│ │ │ ├── LayerSettings/
│ │ │ │ └── LayerSettings.json
│ │ │ └── SceneView/
│ │ │ └── e16c04-mainStage.json
│ │ ├── Style.catalog
│ │ ├── assetDatabase3
│ │ ├── expandedItems
│ │ ├── metadata/
│ │ │ ├── 00/
│ │ │ │ ├── 00000000000000001000000000000000
│ │ │ │ ├── 00000000000000001000000000000000.info
│ │ │ │ ├── 00000000000000002000000000000000
│ │ │ │ ├── 00000000000000002000000000000000.info
│ │ │ │ ├── 00000000000000003000000000000000
│ │ │ │ ├── 00000000000000003000000000000000.info
│ │ │ │ ├── 00000000000000004000000000000000
│ │ │ │ ├── 00000000000000004000000000000000.info
│ │ │ │ ├── 00000000000000004100000000000000
│ │ │ │ ├── 00000000000000004100000000000000.info
│ │ │ │ ├── 00000000000000005000000000000000
│ │ │ │ ├── 00000000000000005000000000000000.info
│ │ │ │ ├── 00000000000000005100000000000000
│ │ │ │ ├── 00000000000000005100000000000000.info
│ │ │ │ ├── 00000000000000006000000000000000
│ │ │ │ ├── 00000000000000006000000000000000.info
│ │ │ │ ├── 00000000000000006100000000000000
│ │ │ │ ├── 00000000000000006100000000000000.info
│ │ │ │ ├── 00000000000000007000000000000000
│ │ │ │ ├── 00000000000000007000000000000000.info
│ │ │ │ ├── 00000000000000007100000000000000
│ │ │ │ ├── 00000000000000007100000000000000.info
│ │ │ │ ├── 00000000000000008000000000000000
│ │ │ │ ├── 00000000000000008000000000000000.info
│ │ │ │ ├── 00000000000000009000000000000000
│ │ │ │ ├── 00000000000000009000000000000000.info
│ │ │ │ ├── 0000000000000000a100000000000000
│ │ │ │ ├── 0000000000000000a100000000000000.info
│ │ │ │ ├── 0000000000000000b000000000000000
│ │ │ │ ├── 0000000000000000b000000000000000.info
│ │ │ │ ├── 0000000000000000b100000000000000
│ │ │ │ ├── 0000000000000000b100000000000000.info
│ │ │ │ ├── 0000000000000000c000000000000000
│ │ │ │ ├── 0000000000000000c000000000000000.info
│ │ │ │ ├── 0000000000000000c100000000000000
│ │ │ │ ├── 0000000000000000c100000000000000.info
│ │ │ │ ├── 00187582b67e7654b914b5a0d37daafb
│ │ │ │ ├── 00187582b67e7654b914b5a0d37daafb.info
│ │ │ │ ├── 006633c8a6f4ae94aa9babf72234e1a2
│ │ │ │ ├── 006633c8a6f4ae94aa9babf72234e1a2.info
│ │ │ │ ├── 00f9a68859b850648902e0c98c25b590
│ │ │ │ └── 00f9a68859b850648902e0c98c25b590.info
│ │ │ ├── 01/
│ │ │ │ ├── 01ada73c4792aba4c937ff5d92cce866
│ │ │ │ ├── 01ada73c4792aba4c937ff5d92cce866.info
│ │ │ │ ├── 01cd96d8687272f4898cfd1562079dd7
│ │ │ │ ├── 01cd96d8687272f4898cfd1562079dd7.info
│ │ │ │ ├── 01df650e1b86e9f4a8e2b5dc9782506f
│ │ │ │ └── 01df650e1b86e9f4a8e2b5dc9782506f.info
│ │ │ ├── 02/
│ │ │ │ ├── 020ee4c1798a3d243a4b8cbfee6cac2d
│ │ │ │ ├── 020ee4c1798a3d243a4b8cbfee6cac2d.info
│ │ │ │ ├── 0217a80286f79419daa202f69409f19b
│ │ │ │ ├── 0217a80286f79419daa202f69409f19b.info
│ │ │ │ ├── 0232a25926bfdf945abd3ccb4519aac3
│ │ │ │ ├── 0232a25926bfdf945abd3ccb4519aac3.info
│ │ │ │ ├── 02893ffb522b490a9fa28eedd2584309
│ │ │ │ ├── 02893ffb522b490a9fa28eedd2584309.info
│ │ │ │ ├── 02e1fe0a338b35545a5fed1345848332
│ │ │ │ ├── 02e1fe0a338b35545a5fed1345848332.info
│ │ │ │ ├── 02e622e7baa59ac449d2c5f5bc992795
│ │ │ │ ├── 02e622e7baa59ac449d2c5f5bc992795.info
│ │ │ │ ├── 02f771204943f4a40949438e873e3eff
│ │ │ │ └── 02f771204943f4a40949438e873e3eff.info
│ │ │ ├── 03/
│ │ │ │ ├── 030f85c3f73729f4f976f66ffb23b875
│ │ │ │ ├── 030f85c3f73729f4f976f66ffb23b875.info
│ │ │ │ ├── 0336a32a79bfaed43a3fd2d88b91e974
│ │ │ │ ├── 0336a32a79bfaed43a3fd2d88b91e974.info
│ │ │ │ ├── 033c884ba52437d49bc55935939ef1c6
│ │ │ │ ├── 033c884ba52437d49bc55935939ef1c6.info
│ │ │ │ ├── 0386b6eb838c47138cd51d1c1b879a35
│ │ │ │ ├── 0386b6eb838c47138cd51d1c1b879a35.info
│ │ │ │ ├── 03e4d63665d06f04c8a6cf68133c1592
│ │ │ │ └── 03e4d63665d06f04c8a6cf68133c1592.info
│ │ │ ├── 04/
│ │ │ │ ├── 046c3854296c5ec48bac50da6ca248ec
│ │ │ │ ├── 046c3854296c5ec48bac50da6ca248ec.info
│ │ │ │ ├── 04cc958f40f350044a432c012f320305
│ │ │ │ └── 04cc958f40f350044a432c012f320305.info
│ │ │ ├── 05/
│ │ │ │ ├── 056819c66570ca54cadb72330a354050
│ │ │ │ ├── 056819c66570ca54cadb72330a354050.info
│ │ │ │ ├── 05778dd1de4433d418793b6f3d3c18cf
│ │ │ │ ├── 05778dd1de4433d418793b6f3d3c18cf.info
│ │ │ │ ├── 058cba836c1846c3aa1c5fd2e28aea77
│ │ │ │ ├── 058cba836c1846c3aa1c5fd2e28aea77.info
│ │ │ │ ├── 05f582d4fbc8e0c40afccb76bbbe0935
│ │ │ │ ├── 05f582d4fbc8e0c40afccb76bbbe0935.info
│ │ │ │ ├── 05f5bfd584002f948982a1498890f9a9
│ │ │ │ ├── 05f5bfd584002f948982a1498890f9a9.info
│ │ │ │ ├── 05f7f519769978b79b31d063a7fc6fa1
│ │ │ │ ├── 05f7f519769978b79b31d063a7fc6fa1.info
│ │ │ │ ├── 05f92e4a2414cb144a92157752dfa324
│ │ │ │ └── 05f92e4a2414cb144a92157752dfa324.info
│ │ │ ├── 06/
│ │ │ │ ├── 066619c9c9c84f89acb1b48c11a7efe2
│ │ │ │ ├── 066619c9c9c84f89acb1b48c11a7efe2.info
│ │ │ │ ├── 06ae1baf5524b314fa65b173b9eca869
│ │ │ │ ├── 06ae1baf5524b314fa65b173b9eca869.info
│ │ │ │ ├── 06bfdc59aae5325499d5beef3aa3d013
│ │ │ │ └── 06bfdc59aae5325499d5beef3aa3d013.info
│ │ │ ├── 07/
│ │ │ │ ├── 071c17858dc6c47ada7b2a1f1ded5402
│ │ │ │ ├── 071c17858dc6c47ada7b2a1f1ded5402.info
│ │ │ │ ├── 077690d334440b044bdd51b26b3e9413
│ │ │ │ ├── 077690d334440b044bdd51b26b3e9413.info
│ │ │ │ ├── 07994bfe8b0e4adb97d706de5dea48d5
│ │ │ │ ├── 07994bfe8b0e4adb97d706de5dea48d5.info
│ │ │ │ ├── 07a967d2fca95324f8922df8394a5655
│ │ │ │ ├── 07a967d2fca95324f8922df8394a5655.info
│ │ │ │ ├── 07ea0326ed848fb4489187cb58f96113
│ │ │ │ └── 07ea0326ed848fb4489187cb58f96113.info
│ │ │ ├── 08/
│ │ │ │ ├── 083c6a3a5426382449369ddc12b691d8
│ │ │ │ ├── 083c6a3a5426382449369ddc12b691d8.info
│ │ │ │ ├── 087cba9fa6ac867479a0b0fdc0a5864b
│ │ │ │ ├── 087cba9fa6ac867479a0b0fdc0a5864b.info
│ │ │ │ ├── 08d23c0b73905c148b525c3c93fff580
│ │ │ │ ├── 08d23c0b73905c148b525c3c93fff580.info
│ │ │ │ ├── 08e9894bdf0834710b22d3c0aa245ac0
│ │ │ │ └── 08e9894bdf0834710b22d3c0aa245ac0.info
│ │ │ ├── 09/
│ │ │ │ ├── 09e28640d754a611467eebfb261ed749
│ │ │ │ ├── 09e28640d754a611467eebfb261ed749.info
│ │ │ │ ├── 09e68d8a529a36340b752b99a1b70f83
│ │ │ │ ├── 09e68d8a529a36340b752b99a1b70f83.info
│ │ │ │ ├── 09f4db536a377bc40a9ac110af702bfa
│ │ │ │ └── 09f4db536a377bc40a9ac110af702bfa.info
│ │ │ ├── 0a/
│ │ │ │ ├── 0a017569bfe174e4890797b4d64cbabc
│ │ │ │ ├── 0a017569bfe174e4890797b4d64cbabc.info
│ │ │ │ ├── 0aaa057ce5566e940b18a0ccd0344693
│ │ │ │ ├── 0aaa057ce5566e940b18a0ccd0344693.info
│ │ │ │ ├── 0acc523941302664db1f4e527237feb3
│ │ │ │ └── 0acc523941302664db1f4e527237feb3.info
│ │ │ ├── 0b/
│ │ │ │ ├── 0b2706df6fdff50448f84a3f6629b40f
│ │ │ │ ├── 0b2706df6fdff50448f84a3f6629b40f.info
│ │ │ │ ├── 0bb74b1c097396c49b1691e6a938f814
│ │ │ │ └── 0bb74b1c097396c49b1691e6a938f814.info
│ │ │ ├── 0c/
│ │ │ │ ├── 0c04c8cb23b78e04492e0f310cdee93e
│ │ │ │ ├── 0c04c8cb23b78e04492e0f310cdee93e.info
│ │ │ │ ├── 0c56471f08a0f6846afc792f0b4205b9
│ │ │ │ ├── 0c56471f08a0f6846afc792f0b4205b9.info
│ │ │ │ ├── 0ca2545d76d1fb34fa45a9f1e432d259
│ │ │ │ ├── 0ca2545d76d1fb34fa45a9f1e432d259.info
│ │ │ │ ├── 0ca81982e37e893498abf804c12a22c7
│ │ │ │ ├── 0ca81982e37e893498abf804c12a22c7.info
│ │ │ │ ├── 0cb14878543cf3d4f8472b15f7ecf0e3
│ │ │ │ ├── 0cb14878543cf3d4f8472b15f7ecf0e3.info
│ │ │ │ ├── 0cd44c1031e13a943bb63640046fad76
│ │ │ │ └── 0cd44c1031e13a943bb63640046fad76.info
│ │ │ ├── 0d/
│ │ │ │ ├── 0d0b652f32a2cc243917e4028fa0f046
│ │ │ │ ├── 0d0b652f32a2cc243917e4028fa0f046.info
│ │ │ │ ├── 0d2d0f36e67d4518a07df76235e91f9a
│ │ │ │ ├── 0d2d0f36e67d4518a07df76235e91f9a.info
│ │ │ │ ├── 0d4fc309a0784294c8ab658b53b12320
│ │ │ │ ├── 0d4fc309a0784294c8ab658b53b12320.info
│ │ │ │ ├── 0d60a406ab64c434e9d731914e11a51e
│ │ │ │ ├── 0d60a406ab64c434e9d731914e11a51e.info
│ │ │ │ ├── 0d9a36012a224080966c7b55896aa0f9
│ │ │ │ ├── 0d9a36012a224080966c7b55896aa0f9.info
│ │ │ │ ├── 0dc62a5955cf04ec298a2c3ca4b2edf2
│ │ │ │ ├── 0dc62a5955cf04ec298a2c3ca4b2edf2.info
│ │ │ │ ├── 0de03ebd74e2b474fa23d05ab42d0cd8
│ │ │ │ └── 0de03ebd74e2b474fa23d05ab42d0cd8.info
│ │ │ ├── 0e/
│ │ │ │ ├── 0e0afa652c0031c48896a97b424d027b
│ │ │ │ ├── 0e0afa652c0031c48896a97b424d027b.info
│ │ │ │ ├── 0e751e877ed14d71a6b8e63ac54949cf
│ │ │ │ ├── 0e751e877ed14d71a6b8e63ac54949cf.info
│ │ │ │ ├── 0efb23ecb373b6d4bbe5217485785138
│ │ │ │ └── 0efb23ecb373b6d4bbe5217485785138.info
│ │ │ ├── 0f/
│ │ │ │ ├── 0f71aeefaa877ae4787e8356f25ad1e5
│ │ │ │ └── 0f71aeefaa877ae4787e8356f25ad1e5.info
│ │ │ ├── 10/
│ │ │ │ ├── 102e512f651ee834f951a2516c1ea3b8
│ │ │ │ ├── 102e512f651ee834f951a2516c1ea3b8.info
│ │ │ │ ├── 1048a87135154606808bf2030da32d18
│ │ │ │ ├── 1048a87135154606808bf2030da32d18.info
│ │ │ │ ├── 105515c1653548242b4fe973c0f375f7
│ │ │ │ ├── 105515c1653548242b4fe973c0f375f7.info
│ │ │ │ ├── 1091bc2ad06e3234aac2b2fa2841c09d
│ │ │ │ ├── 1091bc2ad06e3234aac2b2fa2841c09d.info
│ │ │ │ ├── 10ba9bc9317e315439b0223674162c52
│ │ │ │ └── 10ba9bc9317e315439b0223674162c52.info
│ │ │ ├── 11/
│ │ │ │ ├── 110d5035a36a6a34580fb65bb40cd78f
│ │ │ │ ├── 110d5035a36a6a34580fb65bb40cd78f.info
│ │ │ │ ├── 1158e311a3101950348dcecb1bebc42d
│ │ │ │ ├── 1158e311a3101950348dcecb1bebc42d.info
│ │ │ │ ├── 11a6a034ab84493cbed6af5ae7aae78b
│ │ │ │ └── 11a6a034ab84493cbed6af5ae7aae78b.info
│ │ │ ├── 12/
│ │ │ │ ├── 124533853216377448d786fd7c725701
│ │ │ │ ├── 124533853216377448d786fd7c725701.info
│ │ │ │ ├── 127023922adddf744b59fa7b0b0c3030
│ │ │ │ ├── 127023922adddf744b59fa7b0b0c3030.info
│ │ │ │ ├── 12736c98af174f91827a26b66d2b01b9
│ │ │ │ ├── 12736c98af174f91827a26b66d2b01b9.info
│ │ │ │ ├── 12c42068351bb084abde965d725b9887
│ │ │ │ ├── 12c42068351bb084abde965d725b9887.info
│ │ │ │ ├── 12dfd4bdbb5c8e6419432fbc54ef25d9
│ │ │ │ └── 12dfd4bdbb5c8e6419432fbc54ef25d9.info
│ │ │ ├── 13/
│ │ │ │ ├── 1336690ece4db2740b4ba38873e00dfb
│ │ │ │ ├── 1336690ece4db2740b4ba38873e00dfb.info
│ │ │ │ ├── 1344c3c82d62a2a41a3576d8abb8e3ea
│ │ │ │ ├── 1344c3c82d62a2a41a3576d8abb8e3ea.info
│ │ │ │ ├── 1369382d2c5e64dc5b2ec0b6b0a94531
│ │ │ │ ├── 1369382d2c5e64dc5b2ec0b6b0a94531.info
│ │ │ │ ├── 1385bc74f3945c943be16ecbb1381063
│ │ │ │ ├── 1385bc74f3945c943be16ecbb1381063.info
│ │ │ │ ├── 1389c6be1c6e80b4eb8604aabdda8255
│ │ │ │ ├── 1389c6be1c6e80b4eb8604aabdda8255.info
│ │ │ │ ├── 138dbec4f8742654fbceb0a19d68b9c5
│ │ │ │ ├── 138dbec4f8742654fbceb0a19d68b9c5.info
│ │ │ │ ├── 139c5eac101a4dc4fb3098e30c29f15e
│ │ │ │ ├── 139c5eac101a4dc4fb3098e30c29f15e.info
│ │ │ │ ├── 13a9c1b4df2e489e8eb9cacca7429596
│ │ │ │ ├── 13a9c1b4df2e489e8eb9cacca7429596.info
│ │ │ │ ├── 13cd966480ec3354bb318ee1aeccff6f
│ │ │ │ ├── 13cd966480ec3354bb318ee1aeccff6f.info
│ │ │ │ ├── 13d161b14bb3ab74e8a9634e26fb7a5e
│ │ │ │ ├── 13d161b14bb3ab74e8a9634e26fb7a5e.info
│ │ │ │ ├── 13eb80ce50ac9c43cdbaf2109c0ec7db
│ │ │ │ └── 13eb80ce50ac9c43cdbaf2109c0ec7db.info
│ │ │ ├── 14/
│ │ │ │ ├── 14427eecd0bccea468addc3492aaef57
│ │ │ │ ├── 14427eecd0bccea468addc3492aaef57.info
│ │ │ │ ├── 1489c7cdbe26c444b86705280ebdff02
│ │ │ │ ├── 1489c7cdbe26c444b86705280ebdff02.info
│ │ │ │ ├── 14d748c963c7b3549bed45457cc92c4f
│ │ │ │ └── 14d748c963c7b3549bed45457cc92c4f.info
│ │ │ ├── 15/
│ │ │ │ ├── 1511ccae7919cfc46b603b9b337fdc94
│ │ │ │ ├── 1511ccae7919cfc46b603b9b337fdc94.info
│ │ │ │ ├── 15225778e2107e44bb700adf9df97a60
│ │ │ │ ├── 15225778e2107e44bb700adf9df97a60.info
│ │ │ │ ├── 15c38f6fa1940124db1ab7f6fe7268d1
│ │ │ │ ├── 15c38f6fa1940124db1ab7f6fe7268d1.info
│ │ │ │ ├── 15e0374501f39d54eb30235764636e0e
│ │ │ │ ├── 15e0374501f39d54eb30235764636e0e.info
│ │ │ │ ├── 15f870c6975ad6449b5b52514b90dc2b
│ │ │ │ └── 15f870c6975ad6449b5b52514b90dc2b.info
│ │ │ ├── 16/
│ │ │ │ ├── 16388ae022a89264b84107f0c1b44680
│ │ │ │ ├── 16388ae022a89264b84107f0c1b44680.info
│ │ │ │ ├── 164c9b1458eaab743a4b45c37a4d720d
│ │ │ │ ├── 164c9b1458eaab743a4b45c37a4d720d.info
│ │ │ │ ├── 16548db454f7a3344b41ca2e5cdb52b2
│ │ │ │ ├── 16548db454f7a3344b41ca2e5cdb52b2.info
│ │ │ │ ├── 167329c8289a3a14a9e342df49fc4104
│ │ │ │ ├── 167329c8289a3a14a9e342df49fc4104.info
│ │ │ │ ├── 16950289b516d6747868e0f7bf7b37a0
│ │ │ │ ├── 16950289b516d6747868e0f7bf7b37a0.info
│ │ │ │ ├── 16c6414b77a90ff4098767dce485c495
│ │ │ │ └── 16c6414b77a90ff4098767dce485c495.info
│ │ │ ├── 17/
│ │ │ │ ├── 178008567c08e6d84014fa87825d10bb
│ │ │ │ └── 178008567c08e6d84014fa87825d10bb.info
│ │ │ ├── 18/
│ │ │ │ ├── 1852920dca83b454c8e49493d9ead74c
│ │ │ │ ├── 1852920dca83b454c8e49493d9ead74c.info
│ │ │ │ ├── 18775b51e3bd42299fd30bd036ea982f
│ │ │ │ ├── 18775b51e3bd42299fd30bd036ea982f.info
│ │ │ │ ├── 18a4fadfef534684d5af39ca8dc48fe9
│ │ │ │ └── 18a4fadfef534684d5af39ca8dc48fe9.info
│ │ │ ├── 19/
│ │ │ │ ├── 197c1114eb793d24c8ef31120a134e88
│ │ │ │ ├── 197c1114eb793d24c8ef31120a134e88.info
│ │ │ │ ├── 1999349e7f492c947bb6eb70f624382e
│ │ │ │ ├── 1999349e7f492c947bb6eb70f624382e.info
│ │ │ │ ├── 19a6f000f81e24c4a826c1abd43e77c7
│ │ │ │ ├── 19a6f000f81e24c4a826c1abd43e77c7.info
│ │ │ │ ├── 19c6f364c1e81cb4f829a057824639ad
│ │ │ │ └── 19c6f364c1e81cb4f829a057824639ad.info
│ │ │ ├── 1a/
│ │ │ │ ├── 1a26e19d51cbfac42a02631ad1f9e39e
│ │ │ │ ├── 1a26e19d51cbfac42a02631ad1f9e39e.info
│ │ │ │ ├── 1a34c77a67cf21c4b8523a435293645b
│ │ │ │ ├── 1a34c77a67cf21c4b8523a435293645b.info
│ │ │ │ ├── 1a4266815e998967becf686f9c71f0a6
│ │ │ │ ├── 1a4266815e998967becf686f9c71f0a6.info
│ │ │ │ ├── 1a70a790a43cd0d4a96f75746841f764
│ │ │ │ ├── 1a70a790a43cd0d4a96f75746841f764.info
│ │ │ │ ├── 1a7a541ac0259ac4e8570ac8c3510dfe
│ │ │ │ ├── 1a7a541ac0259ac4e8570ac8c3510dfe.info
│ │ │ │ ├── 1aa08ab6e0800fa44ae55d278d1423e3
│ │ │ │ ├── 1aa08ab6e0800fa44ae55d278d1423e3.info
│ │ │ │ ├── 1ac58cb55fc8daf4abd3945a2bbbb0c5
│ │ │ │ ├── 1ac58cb55fc8daf4abd3945a2bbbb0c5.info
│ │ │ │ ├── 1ac677c5ece15b443b2aaf7fae5842f7
│ │ │ │ ├── 1ac677c5ece15b443b2aaf7fae5842f7.info
│ │ │ │ ├── 1ad55f5ad04d1d045a1f287409c650dd
│ │ │ │ ├── 1ad55f5ad04d1d045a1f287409c650dd.info
│ │ │ │ ├── 1adaa8dcc4fda3d4cb4d3c8e0cb65d12
│ │ │ │ ├── 1adaa8dcc4fda3d4cb4d3c8e0cb65d12.info
│ │ │ │ ├── 1adad61bfb44214ee3e887b5febc4396
│ │ │ │ └── 1adad61bfb44214ee3e887b5febc4396.info
│ │ │ ├── 1b/
│ │ │ │ ├── 1b0a41d64d4e9534481f804049080fbb
│ │ │ │ ├── 1b0a41d64d4e9534481f804049080fbb.info
│ │ │ │ ├── 1b199a26663a15b4db765ffb1df401f2
│ │ │ │ ├── 1b199a26663a15b4db765ffb1df401f2.info
│ │ │ │ ├── 1b393f6b29a9ee84c803af1ab4944b71
│ │ │ │ ├── 1b393f6b29a9ee84c803af1ab4944b71.info
│ │ │ │ ├── 1bbfba4363c8e1e4b8214b4004316ce5
│ │ │ │ ├── 1bbfba4363c8e1e4b8214b4004316ce5.info
│ │ │ │ ├── 1bfe12aa306c0c74db4f4f1a1a0ae5ce
│ │ │ │ └── 1bfe12aa306c0c74db4f4f1a1a0ae5ce.info
│ │ │ ├── 1c/
│ │ │ │ ├── 1c147d10db452eb4b854a35f84472017
│ │ │ │ ├── 1c147d10db452eb4b854a35f84472017.info
│ │ │ │ ├── 1c5afe945b715e149a70113a4be7b32a
│ │ │ │ ├── 1c5afe945b715e149a70113a4be7b32a.info
│ │ │ │ ├── 1c61a04a5b7737c4d16673d64be4194e
│ │ │ │ ├── 1c61a04a5b7737c4d16673d64be4194e.info
│ │ │ │ ├── 1cd98b0d17936ed43bed805e1a150a88
│ │ │ │ ├── 1cd98b0d17936ed43bed805e1a150a88.info
│ │ │ │ ├── 1cddf785b0d07434d8e0607c97b09135
│ │ │ │ ├── 1cddf785b0d07434d8e0607c97b09135.info
│ │ │ │ ├── 1cf2469083ffa484da4d78dd70d708e8
│ │ │ │ └── 1cf2469083ffa484da4d78dd70d708e8.info
│ │ │ ├── 1d/
│ │ │ │ ├── 1d446e57147ca9b4183edfbbfa9bf206
│ │ │ │ ├── 1d446e57147ca9b4183edfbbfa9bf206.info
│ │ │ │ ├── 1d93ffb668978f7488211a331977b73b
│ │ │ │ ├── 1d93ffb668978f7488211a331977b73b.info
│ │ │ │ ├── 1db879070d9a45f4c86cdf5e59616df5
│ │ │ │ ├── 1db879070d9a45f4c86cdf5e59616df5.info
│ │ │ │ ├── 1ddb9e1c877ea80479d1eab4ddaa5d0d
│ │ │ │ └── 1ddb9e1c877ea80479d1eab4ddaa5d0d.info
│ │ │ ├── 1e/
│ │ │ │ ├── 1e5ee557da46d59498c484308be5067e
│ │ │ │ ├── 1e5ee557da46d59498c484308be5067e.info
│ │ │ │ ├── 1ea10891dd782154ca0fb67bce9e6f72
│ │ │ │ ├── 1ea10891dd782154ca0fb67bce9e6f72.info
│ │ │ │ ├── 1ebc1994f9a3d5649a1201d3a84b38df
│ │ │ │ ├── 1ebc1994f9a3d5649a1201d3a84b38df.info
│ │ │ │ ├── 1ec4b8ec4b34f4344bac53c19288eaa2
│ │ │ │ ├── 1ec4b8ec4b34f4344bac53c19288eaa2.info
│ │ │ │ ├── 1ef2923b9c5521948a04299da53ae750
│ │ │ │ └── 1ef2923b9c5521948a04299da53ae750.info
│ │ │ ├── 1f/
│ │ │ │ ├── 1f2a7e0d1b6bbba408a41e206945c23c
│ │ │ │ ├── 1f2a7e0d1b6bbba408a41e206945c23c.info
│ │ │ │ ├── 1f3a562675833b4448299e4f627b0cec
│ │ │ │ ├── 1f3a562675833b4448299e4f627b0cec.info
│ │ │ │ ├── 1f5bbb88ca730434483440cbc0278ef6
│ │ │ │ ├── 1f5bbb88ca730434483440cbc0278ef6.info
│ │ │ │ ├── 1fe0f539450e54dbc85bfb2fa6b466fb
│ │ │ │ └── 1fe0f539450e54dbc85bfb2fa6b466fb.info
│ │ │ ├── 20/
│ │ │ │ ├── 200617708f5b36a4da2e2a3f1ceacedd
│ │ │ │ ├── 200617708f5b36a4da2e2a3f1ceacedd.info
│ │ │ │ ├── 2011a59d3f76b3d4a85cb53f945fceee
│ │ │ │ ├── 2011a59d3f76b3d4a85cb53f945fceee.info
│ │ │ │ ├── 202d758d102b6854a9710c8b93db742c
│ │ │ │ ├── 202d758d102b6854a9710c8b93db742c.info
│ │ │ │ ├── 20793418366caf14293b29c55df5e9ec
│ │ │ │ ├── 20793418366caf14293b29c55df5e9ec.info
│ │ │ │ ├── 208e46d59ff6e304db0318377d20f5a1
│ │ │ │ ├── 208e46d59ff6e304db0318377d20f5a1.info
│ │ │ │ ├── 20a9b557a46149dfbfa04a3a7080f5aa
│ │ │ │ ├── 20a9b557a46149dfbfa04a3a7080f5aa.info
│ │ │ │ ├── 20c8bb6b47a526c4c96ca73314fe2856
│ │ │ │ ├── 20c8bb6b47a526c4c96ca73314fe2856.info
│ │ │ │ ├── 20cdb37e6fea6d946bbb84d2c923db85
│ │ │ │ ├── 20cdb37e6fea6d946bbb84d2c923db85.info
│ │ │ │ ├── 20ff4283f687e044087714f82c4d6d3f
│ │ │ │ └── 20ff4283f687e044087714f82c4d6d3f.info
│ │ │ ├── 21/
│ │ │ │ ├── 212a65848ed53294788b2731538c9d66
│ │ │ │ ├── 212a65848ed53294788b2731538c9d66.info
│ │ │ │ ├── 218eacd3a7686dd4d875c191fdaa058c
│ │ │ │ ├── 218eacd3a7686dd4d875c191fdaa058c.info
│ │ │ │ ├── 21bf7f712d84d26478ebe6a299f21738
│ │ │ │ ├── 21bf7f712d84d26478ebe6a299f21738.info
│ │ │ │ ├── 21c0044a7f964773be90d197a78e4703
│ │ │ │ ├── 21c0044a7f964773be90d197a78e4703.info
│ │ │ │ ├── 21d2d5d6901f2ca43a8015c60ada4e2c
│ │ │ │ └── 21d2d5d6901f2ca43a8015c60ada4e2c.info
│ │ │ ├── 22/
│ │ │ │ ├── 220e9325710f4235a43492dd1ee4980d
│ │ │ │ ├── 220e9325710f4235a43492dd1ee4980d.info
│ │ │ │ ├── 22464cf7ab0243a6bf9c79851183b002
│ │ │ │ ├── 22464cf7ab0243a6bf9c79851183b002.info
│ │ │ │ ├── 22899211c24eeb248b22704499dd108f
│ │ │ │ └── 22899211c24eeb248b22704499dd108f.info
│ │ │ ├── 23/
│ │ │ │ ├── 2300e75732d74890b38a8ff257a3ae15
│ │ │ │ ├── 2300e75732d74890b38a8ff257a3ae15.info
│ │ │ │ ├── 230f3ac09b9ef234cba81ade9bd0e32a
│ │ │ │ ├── 230f3ac09b9ef234cba81ade9bd0e32a.info
│ │ │ │ ├── 2347243c7aa3e224f9282dc94e6fc3b2
│ │ │ │ ├── 2347243c7aa3e224f9282dc94e6fc3b2.info
│ │ │ │ ├── 2359c66dee10c454c97f6aea84e3fe22
│ │ │ │ ├── 2359c66dee10c454c97f6aea84e3fe22.info
│ │ │ │ ├── 23884ce4c1de32846adafea2d53a4cee
│ │ │ │ ├── 23884ce4c1de32846adafea2d53a4cee.info
│ │ │ │ ├── 239dd6edc8e5cd14585c03e09e86a747
│ │ │ │ ├── 239dd6edc8e5cd14585c03e09e86a747.info
│ │ │ │ ├── 23a562f2cac6401f9f91251c68a1a794
│ │ │ │ ├── 23a562f2cac6401f9f91251c68a1a794.info
│ │ │ │ ├── 23a56a19774ed42b6b65646af08a003c
│ │ │ │ └── 23a56a19774ed42b6b65646af08a003c.info
│ │ │ ├── 24/
│ │ │ │ ├── 24a158219395ebf44a60547b97784ddc
│ │ │ │ ├── 24a158219395ebf44a60547b97784ddc.info
│ │ │ │ ├── 24a7ce8b48db53747a4e8abbda77eac4
│ │ │ │ ├── 24a7ce8b48db53747a4e8abbda77eac4.info
│ │ │ │ ├── 24f430bcb0b5b8046adfc8065bffc5c9
│ │ │ │ └── 24f430bcb0b5b8046adfc8065bffc5c9.info
│ │ │ ├── 25/
│ │ │ │ ├── 2537ddddebaa455409dec422eb08fd7e
│ │ │ │ ├── 2537ddddebaa455409dec422eb08fd7e.info
│ │ │ │ ├── 255b0c6d400fd964dab3029c8abc53f4
│ │ │ │ ├── 255b0c6d400fd964dab3029c8abc53f4.info
│ │ │ │ ├── 256a0ca37fa972840bce7fca446e75e7
│ │ │ │ ├── 256a0ca37fa972840bce7fca446e75e7.info
│ │ │ │ ├── 25a477c2f24db8778a4179421a32cc21
│ │ │ │ ├── 25a477c2f24db8778a4179421a32cc21.info
│ │ │ │ ├── 25b01819c6e1649428db2a9b274cf364
│ │ │ │ └── 25b01819c6e1649428db2a9b274cf364.info
│ │ │ ├── 26/
│ │ │ │ ├── 260b531edc40677429c0198d6961e448
│ │ │ │ ├── 260b531edc40677429c0198d6961e448.info
│ │ │ │ ├── 26570be2af04195458e6f1ac1f5c48e0
│ │ │ │ ├── 26570be2af04195458e6f1ac1f5c48e0.info
│ │ │ │ ├── 26721f9940339264fb14bdbfe1290e21
│ │ │ │ ├── 26721f9940339264fb14bdbfe1290e21.info
│ │ │ │ ├── 26a4f29db434fd79025c91f6126382cc
│ │ │ │ ├── 26a4f29db434fd79025c91f6126382cc.info
│ │ │ │ ├── 26f3e7301af463c4ca72fa98d59b429e
│ │ │ │ └── 26f3e7301af463c4ca72fa98d59b429e.info
│ │ │ ├── 27/
│ │ │ │ ├── 2705215ac5b84b70bacc50632be6e391
│ │ │ │ ├── 2705215ac5b84b70bacc50632be6e391.info
│ │ │ │ ├── 27619889b8ba8c24980f49ee34dbb44a
│ │ │ │ ├── 27619889b8ba8c24980f49ee34dbb44a.info
│ │ │ │ ├── 27769e9b00b038d47aefe306a4d20bec
│ │ │ │ ├── 27769e9b00b038d47aefe306a4d20bec.info
│ │ │ │ ├── 2799eb4c84e72e54092a292cf626936b
│ │ │ │ ├── 2799eb4c84e72e54092a292cf626936b.info
│ │ │ │ ├── 27a0335dab59ec542aadd6636a5b4ebd
│ │ │ │ ├── 27a0335dab59ec542aadd6636a5b4ebd.info
│ │ │ │ ├── 27df3b12f30d0b74a9b10a3968c402ff
│ │ │ │ ├── 27df3b12f30d0b74a9b10a3968c402ff.info
│ │ │ │ ├── 27ed3e221887b3544bd9d6505d4a789f
│ │ │ │ └── 27ed3e221887b3544bd9d6505d4a789f.info
│ │ │ ├── 28/
│ │ │ │ ├── 2808ba6bccb2478ec9c7209d8bf1f3cc
│ │ │ │ ├── 2808ba6bccb2478ec9c7209d8bf1f3cc.info
│ │ │ │ ├── 281f7e519f1ddd14b96c09995386ec82
│ │ │ │ ├── 281f7e519f1ddd14b96c09995386ec82.info
│ │ │ │ ├── 28375447bcea455c9b51a6650b10c9d7
│ │ │ │ ├── 28375447bcea455c9b51a6650b10c9d7.info
│ │ │ │ ├── 28542eca5f1b4c64813acfbd512524b6
│ │ │ │ ├── 28542eca5f1b4c64813acfbd512524b6.info
│ │ │ │ ├── 28c8fcb831e6e734a9f564bc4f495eba
│ │ │ │ ├── 28c8fcb831e6e734a9f564bc4f495eba.info
│ │ │ │ ├── 28e8b16370ff78c4faca58757271619f
│ │ │ │ ├── 28e8b16370ff78c4faca58757271619f.info
│ │ │ │ ├── 28f79a0d7e64c2345bc46f8c4cf788f8
│ │ │ │ └── 28f79a0d7e64c2345bc46f8c4cf788f8.info
│ │ │ ├── 29/
│ │ │ │ ├── 29b7e99efaf64b949afd3d5b830c72aa
│ │ │ │ ├── 29b7e99efaf64b949afd3d5b830c72aa.info
│ │ │ │ ├── 29bf1d4ec1012bc45967ce95b729b8b3
│ │ │ │ ├── 29bf1d4ec1012bc45967ce95b729b8b3.info
│ │ │ │ ├── 29d603e0a726a9043b3503112271844a
│ │ │ │ └── 29d603e0a726a9043b3503112271844a.info
│ │ │ ├── 2a/
│ │ │ │ ├── 2a0bd678385f98e4d8eabdfc07d62b4f
│ │ │ │ ├── 2a0bd678385f98e4d8eabdfc07d62b4f.info
│ │ │ │ ├── 2a16748d9461eae46a725db9776d5390
│ │ │ │ ├── 2a16748d9461eae46a725db9776d5390.info
│ │ │ │ ├── 2a28c2fab6b1bb745a844ef6b908e7ee
│ │ │ │ ├── 2a28c2fab6b1bb745a844ef6b908e7ee.info
│ │ │ │ ├── 2a4db7a114972834c8e4117be1d82ba3
│ │ │ │ ├── 2a4db7a114972834c8e4117be1d82ba3.info
│ │ │ │ ├── 2ac6db96cd5bff048a79be0215503e16
│ │ │ │ ├── 2ac6db96cd5bff048a79be0215503e16.info
│ │ │ │ ├── 2ae2ce6274819484fa8747a28cebdf3a
│ │ │ │ ├── 2ae2ce6274819484fa8747a28cebdf3a.info
│ │ │ │ ├── 2aff4fada0516c64a8537a20bfe1b699
│ │ │ │ └── 2aff4fada0516c64a8537a20bfe1b699.info
│ │ │ ├── 2b/
│ │ │ │ ├── 2b301b727225f1941974d69e61a55620
│ │ │ │ ├── 2b301b727225f1941974d69e61a55620.info
│ │ │ │ ├── 2bafac87e7f4b9b418d9448d219b01ab
│ │ │ │ ├── 2bafac87e7f4b9b418d9448d219b01ab.info
│ │ │ │ ├── 2bc8a181dfd9de24388de89bb8db7713
│ │ │ │ ├── 2bc8a181dfd9de24388de89bb8db7713.info
│ │ │ │ ├── 2bd3ca1fde4b154448ef972b0f9d292e
│ │ │ │ ├── 2bd3ca1fde4b154448ef972b0f9d292e.info
│ │ │ │ ├── 2bf68308f6cdff141ab98cd34174e4f1
│ │ │ │ └── 2bf68308f6cdff141ab98cd34174e4f1.info
│ │ │ ├── 2c/
│ │ │ │ ├── 2c03ae9aa36a4fd44a983831f44654be
│ │ │ │ ├── 2c03ae9aa36a4fd44a983831f44654be.info
│ │ │ │ ├── 2c2dfcbbb77359547bcaa7cdabd47ebb
│ │ │ │ ├── 2c2dfcbbb77359547bcaa7cdabd47ebb.info
│ │ │ │ ├── 2c80ef0306e06ac4d8a4b0fe7e4536ac
│ │ │ │ ├── 2c80ef0306e06ac4d8a4b0fe7e4536ac.info
│ │ │ │ ├── 2c814623cb42764d304be0c5ddd03ceb
│ │ │ │ ├── 2c814623cb42764d304be0c5ddd03ceb.info
│ │ │ │ ├── 2c87ec8c97244cd47945ec90a99abe35
│ │ │ │ ├── 2c87ec8c97244cd47945ec90a99abe35.info
│ │ │ │ ├── 2cb24b5a5793c654e899a06bf08ec3ae
│ │ │ │ ├── 2cb24b5a5793c654e899a06bf08ec3ae.info
│ │ │ │ ├── 2ce4bbcc4722440890a03312706037fe
│ │ │ │ └── 2ce4bbcc4722440890a03312706037fe.info
│ │ │ ├── 2d/
│ │ │ │ ├── 2d142b475fbfb8cf12ba3a795194300a
│ │ │ │ ├── 2d142b475fbfb8cf12ba3a795194300a.info
│ │ │ │ ├── 2d49b7c1bcd2e07499844da127be038d
│ │ │ │ ├── 2d49b7c1bcd2e07499844da127be038d.info
│ │ │ │ ├── 2d6ba5cbe47e6ad3c87474c56174d4e0
│ │ │ │ ├── 2d6ba5cbe47e6ad3c87474c56174d4e0.info
│ │ │ │ ├── 2d8485e4e3a2bcb429fc32900ca26d9e
│ │ │ │ ├── 2d8485e4e3a2bcb429fc32900ca26d9e.info
│ │ │ │ ├── 2d9b6ff056b6f484ba6500aa8e06bcf3
│ │ │ │ ├── 2d9b6ff056b6f484ba6500aa8e06bcf3.info
│ │ │ │ ├── 2da0c512f12947e489f739169773d7ca
│ │ │ │ ├── 2da0c512f12947e489f739169773d7ca.info
│ │ │ │ ├── 2da27f5fe80a3a549ac7331d9f52f5f0
│ │ │ │ ├── 2da27f5fe80a3a549ac7331d9f52f5f0.info
│ │ │ │ ├── 2de8ba3b840049641897e0da7ce1d5cd
│ │ │ │ └── 2de8ba3b840049641897e0da7ce1d5cd.info
│ │ │ ├── 2e/
│ │ │ │ ├── 2e0de782b8e9e4e45baeb7bb5ef4907f
│ │ │ │ ├── 2e0de782b8e9e4e45baeb7bb5ef4907f.info
│ │ │ │ ├── 2e3b9bbf2c1a3cd4f88883ca32882ec6
│ │ │ │ └── 2e3b9bbf2c1a3cd4f88883ca32882ec6.info
│ │ │ ├── 2f/
│ │ │ │ ├── 2fa2cf7de51b0d34d9dce3747b72e49d
│ │ │ │ ├── 2fa2cf7de51b0d34d9dce3747b72e49d.info
│ │ │ │ ├── 2fafe2cfe61f6974895a912c3755e8f1
│ │ │ │ ├── 2fafe2cfe61f6974895a912c3755e8f1.info
│ │ │ │ ├── 2fd6421f253b4ef1a19526541f9ffc0c
│ │ │ │ └── 2fd6421f253b4ef1a19526541f9ffc0c.info
│ │ │ ├── 30/
│ │ │ │ ├── 305ca32be1aa5504aa182f583895dfe4
│ │ │ │ ├── 305ca32be1aa5504aa182f583895dfe4.info
│ │ │ │ ├── 30649d3a9faa99c48a7b1166b86bf2a0
│ │ │ │ ├── 30649d3a9faa99c48a7b1166b86bf2a0.info
│ │ │ │ ├── 3069a00b8c364df395994d7d379e0a99
│ │ │ │ ├── 3069a00b8c364df395994d7d379e0a99.info
│ │ │ │ ├── 306cc8c2b49d7114eaa3623786fc2126
│ │ │ │ ├── 306cc8c2b49d7114eaa3623786fc2126.info
│ │ │ │ ├── 309b0604924786544a3786ec4073c5a1
│ │ │ │ ├── 309b0604924786544a3786ec4073c5a1.info
│ │ │ │ ├── 30a939dce2fd4073955f2f20e659d506
│ │ │ │ ├── 30a939dce2fd4073955f2f20e659d506.info
│ │ │ │ ├── 30bed781e402439ab8ce4e3357708115
│ │ │ │ └── 30bed781e402439ab8ce4e3357708115.info
│ │ │ ├── 31/
│ │ │ │ ├── 3168bf9e060ff4b46be4bf08e308ce97
│ │ │ │ ├── 3168bf9e060ff4b46be4bf08e308ce97.info
│ │ │ │ ├── 3174898fbcdf12448963cdb5f5b60a33
│ │ │ │ ├── 3174898fbcdf12448963cdb5f5b60a33.info
│ │ │ │ ├── 319b8889f363f5947acf209c17a94149
│ │ │ │ ├── 319b8889f363f5947acf209c17a94149.info
│ │ │ │ ├── 31a19414c41e5ae4aae2af33fee712f6
│ │ │ │ └── 31a19414c41e5ae4aae2af33fee712f6.info
│ │ │ ├── 32/
│ │ │ │ ├── 321dc2c0720f8dd4f9396ecdc12b8746
│ │ │ │ ├── 321dc2c0720f8dd4f9396ecdc12b8746.info
│ │ │ │ ├── 322392995be44d23a3c86cfd972f838f
│ │ │ │ ├── 322392995be44d23a3c86cfd972f838f.info
│ │ │ │ ├── 3245ec927659c4140ac4f8d17403cc18
│ │ │ │ ├── 3245ec927659c4140ac4f8d17403cc18.info
│ │ │ │ ├── 32535dd294c621e4297fba34b15b1c52
│ │ │ │ ├── 32535dd294c621e4297fba34b15b1c52.info
│ │ │ │ ├── 32a4a0ea998dd6149937d2774781c436
│ │ │ │ ├── 32a4a0ea998dd6149937d2774781c436.info
│ │ │ │ ├── 32d40088a6124c578ad6b428df586e2e
│ │ │ │ ├── 32d40088a6124c578ad6b428df586e2e.info
│ │ │ │ ├── 32da81683c22faf458026716a2b821aa
│ │ │ │ ├── 32da81683c22faf458026716a2b821aa.info
│ │ │ │ ├── 32e2186f4598cff489784aae586f2215
│ │ │ │ └── 32e2186f4598cff489784aae586f2215.info
│ │ │ ├── 33/
│ │ │ │ ├── 3312d7739989d2b4e91e6319e9a96d76
│ │ │ │ ├── 3312d7739989d2b4e91e6319e9a96d76.info
│ │ │ │ ├── 335020228a0fe124897f51f25f6350ee
│ │ │ │ ├── 335020228a0fe124897f51f25f6350ee.info
│ │ │ │ ├── 3371106faf8d06f47a73979a3c8d82a1
│ │ │ │ ├── 3371106faf8d06f47a73979a3c8d82a1.info
│ │ │ │ ├── 3387717991705ce4e8ef033a0e543a06
│ │ │ │ ├── 3387717991705ce4e8ef033a0e543a06.info
│ │ │ │ ├── 33e6b78c96bb0694e96383e3c56b7b54
│ │ │ │ └── 33e6b78c96bb0694e96383e3c56b7b54.info
│ │ │ ├── 34/
│ │ │ │ ├── 3411e19edd44cfd46b548b058c3bc36c
│ │ │ │ ├── 3411e19edd44cfd46b548b058c3bc36c.info
│ │ │ │ ├── 342a0f8aca7f4f0691338912faec0494
│ │ │ │ ├── 342a0f8aca7f4f0691338912faec0494.info
│ │ │ │ ├── 343deaaf83e0cee4ca978e7df0b80d21
│ │ │ │ ├── 343deaaf83e0cee4ca978e7df0b80d21.info
│ │ │ │ ├── 3477d28057cb3e4469c7ea6b8dc23046
│ │ │ │ ├── 3477d28057cb3e4469c7ea6b8dc23046.info
│ │ │ │ ├── 34d6f60b171c1004e8335d52c65928a3
│ │ │ │ ├── 34d6f60b171c1004e8335d52c65928a3.info
│ │ │ │ ├── 34e150112c1c42ac83170b52d898e322
│ │ │ │ ├── 34e150112c1c42ac83170b52d898e322.info
│ │ │ │ ├── 34e2c9b9d9e44953933afe37461f44e6
│ │ │ │ ├── 34e2c9b9d9e44953933afe37461f44e6.info
│ │ │ │ ├── 34f6695d37a94370a3697f6b068f5d5e
│ │ │ │ ├── 34f6695d37a94370a3697f6b068f5d5e.info
│ │ │ │ ├── 34f9419ac53fdb44fa9676a451481931
│ │ │ │ ├── 34f9419ac53fdb44fa9676a451481931.info
│ │ │ │ ├── 34fc60e2fe0cbfa4a87375cdfff9dc86
│ │ │ │ └── 34fc60e2fe0cbfa4a87375cdfff9dc86.info
│ │ │ ├── 35/
│ │ │ │ ├── 3504aa04cda851b44a65973f9aead6f7
│ │ │ │ ├── 3504aa04cda851b44a65973f9aead6f7.info
│ │ │ │ ├── 3550d8ec6f29ab34d895ae9a43d560c2
│ │ │ │ ├── 3550d8ec6f29ab34d895ae9a43d560c2.info
│ │ │ │ ├── 357e9aeae0d19c148b2437b05c8b3361
│ │ │ │ ├── 357e9aeae0d19c148b2437b05c8b3361.info
│ │ │ │ ├── 358a618bc6bd9354d81cc206fd2ed80e
│ │ │ │ ├── 358a618bc6bd9354d81cc206fd2ed80e.info
│ │ │ │ ├── 35a0d10199de49f4db0128003bfd3bda
│ │ │ │ ├── 35a0d10199de49f4db0128003bfd3bda.info
│ │ │ │ ├── 35cb34351b19cf44ba78afbd58746610
│ │ │ │ ├── 35cb34351b19cf44ba78afbd58746610.info
│ │ │ │ ├── 35d143b352678294ab0f5feb97b67f88
│ │ │ │ ├── 35d143b352678294ab0f5feb97b67f88.info
│ │ │ │ ├── 35ff0937876540d3bd4b6a941df62a92
│ │ │ │ └── 35ff0937876540d3bd4b6a941df62a92.info
│ │ │ ├── 36/
│ │ │ │ ├── 3664a2ade19bb7848a4d2c96ac9148e3
│ │ │ │ ├── 3664a2ade19bb7848a4d2c96ac9148e3.info
│ │ │ │ ├── 368d3a0498e78014da578aa5f45e2797
│ │ │ │ └── 368d3a0498e78014da578aa5f45e2797.info
│ │ │ ├── 37/
│ │ │ │ ├── 371b6b9c8adc50745ace66a6fdf67481
│ │ │ │ ├── 371b6b9c8adc50745ace66a6fdf67481.info
│ │ │ │ ├── 373b4c78c0396334288fa5ff8e7b7350
│ │ │ │ ├── 373b4c78c0396334288fa5ff8e7b7350.info
│ │ │ │ ├── 37472f5179ca2004489ac901814cdbc3
│ │ │ │ ├── 37472f5179ca2004489ac901814cdbc3.info
│ │ │ │ ├── 376c84ea405e0f2b80562c23bb977216
│ │ │ │ ├── 376c84ea405e0f2b80562c23bb977216.info
│ │ │ │ ├── 37888acc09d9ee848bf9559f06645c45
│ │ │ │ ├── 37888acc09d9ee848bf9559f06645c45.info
│ │ │ │ ├── 37b164a494cd92a498526852ecceedef
│ │ │ │ ├── 37b164a494cd92a498526852ecceedef.info
│ │ │ │ ├── 37cea569bfefafe49a1513c4d7f0e9eb
│ │ │ │ ├── 37cea569bfefafe49a1513c4d7f0e9eb.info
│ │ │ │ ├── 37cff9f5a86ae494c8cb04423580480d
│ │ │ │ └── 37cff9f5a86ae494c8cb04423580480d.info
│ │ │ ├── 38/
│ │ │ │ ├── 380f7372e785c7d408552e2c760d269d
│ │ │ │ ├── 380f7372e785c7d408552e2c760d269d.info
│ │ │ │ ├── 383966e89d344865a36addd5d378ffd3
│ │ │ │ ├── 383966e89d344865a36addd5d378ffd3.info
│ │ │ │ ├── 38a6d0a81fcac8e4e851c921333f9803
│ │ │ │ ├── 38a6d0a81fcac8e4e851c921333f9803.info
│ │ │ │ ├── 38e3a8976f0b9c586b6dfbcef4e4066c
│ │ │ │ └── 38e3a8976f0b9c586b6dfbcef4e4066c.info
│ │ │ ├── 39/
│ │ │ │ ├── 393b15da08c88194dbbcacd6ee15a89c
│ │ │ │ ├── 393b15da08c88194dbbcacd6ee15a89c.info
│ │ │ │ ├── 39728903e57c60021f80449a8bbc0096
│ │ │ │ ├── 39728903e57c60021f80449a8bbc0096.info
│ │ │ │ ├── 39ab466162988eb4f83443f911bbf5c8
│ │ │ │ ├── 39ab466162988eb4f83443f911bbf5c8.info
│ │ │ │ ├── 39dcddcb5895328489c92214aa73e3bb
│ │ │ │ └── 39dcddcb5895328489c92214aa73e3bb.info
│ │ │ ├── 3a/
│ │ │ │ ├── 3a2d94c8977984b67984caeff9fa666e
│ │ │ │ ├── 3a2d94c8977984b67984caeff9fa666e.info
│ │ │ │ ├── 3a5038547af7c7f46bd90a015862e0b3
│ │ │ │ ├── 3a5038547af7c7f46bd90a015862e0b3.info
│ │ │ │ ├── 3a784fb721704576b3b4c3a7f3324264
│ │ │ │ ├── 3a784fb721704576b3b4c3a7f3324264.info
│ │ │ │ ├── 3ad53269c7421084ab67f804591994e0
│ │ │ │ └── 3ad53269c7421084ab67f804591994e0.info
│ │ │ ├── 3b/
│ │ │ │ ├── 3b0c53b13a1539949b3b212e049151d1
│ │ │ │ ├── 3b0c53b13a1539949b3b212e049151d1.info
│ │ │ │ ├── 3b28913f21577de429da928d6d05219f
│ │ │ │ ├── 3b28913f21577de429da928d6d05219f.info
│ │ │ │ ├── 3b4429eff9fcffb48b006e8edcc90338
│ │ │ │ ├── 3b4429eff9fcffb48b006e8edcc90338.info
│ │ │ │ ├── 3bce033ee26244e419b3bb3bba95a37d
│ │ │ │ ├── 3bce033ee26244e419b3bb3bba95a37d.info
│ │ │ │ ├── 3bda1886f58f4e0ab1139400b160c3ee
│ │ │ │ └── 3bda1886f58f4e0ab1139400b160c3ee.info
│ │ │ ├── 3c/
│ │ │ │ ├── 3c01b61b3a6887c49a15276fd38be918
│ │ │ │ ├── 3c01b61b3a6887c49a15276fd38be918.info
│ │ │ │ ├── 3c09dc5cd0a70cf40856b7d406106ee1
│ │ │ │ ├── 3c09dc5cd0a70cf40856b7d406106ee1.info
│ │ │ │ ├── 3c4ccfb0896bcf44da13e152b267aa49
│ │ │ │ ├── 3c4ccfb0896bcf44da13e152b267aa49.info
│ │ │ │ ├── 3c6c403084eacec478a1129ce20061ea
│ │ │ │ ├── 3c6c403084eacec478a1129ce20061ea.info
│ │ │ │ ├── 3c731404613599947b4b4559797a5168
│ │ │ │ ├── 3c731404613599947b4b4559797a5168.info
│ │ │ │ ├── 3c737f7a9d78541d1ab25f28f045dd32
│ │ │ │ ├── 3c737f7a9d78541d1ab25f28f045dd32.info
│ │ │ │ ├── 3cf5cb9e1ef590c48b1f919f2a7bd895
│ │ │ │ └── 3cf5cb9e1ef590c48b1f919f2a7bd895.info
│ │ │ ├── 3d/
│ │ │ │ ├── 3d42c4854f9093e409cd90c00ef26de0
│ │ │ │ ├── 3d42c4854f9093e409cd90c00ef26de0.info
│ │ │ │ ├── 3d67ccdf81bed8247ad0db2d5f47a7d1
│ │ │ │ ├── 3d67ccdf81bed8247ad0db2d5f47a7d1.info
│ │ │ │ ├── 3dde15f260b0dd1469e60d16eaa795dc
│ │ │ │ └── 3dde15f260b0dd1469e60d16eaa795dc.info
│ │ │ ├── 3e/
│ │ │ │ ├── 3e29cdd1646803545b8fb18908666ec4
│ │ │ │ ├── 3e29cdd1646803545b8fb18908666ec4.info
│ │ │ │ ├── 3e8d6af343b383544ba5743d119f4062
│ │ │ │ ├── 3e8d6af343b383544ba5743d119f4062.info
│ │ │ │ ├── 3e99141cd5dbef844a4338bb87930b89
│ │ │ │ ├── 3e99141cd5dbef844a4338bb87930b89.info
│ │ │ │ ├── 3ec7596410385054a9e0bc90377fbe63
│ │ │ │ ├── 3ec7596410385054a9e0bc90377fbe63.info
│ │ │ │ ├── 3ec9edad2de6c4df3a146b543a0fbc4c
│ │ │ │ ├── 3ec9edad2de6c4df3a146b543a0fbc4c.info
│ │ │ │ ├── 3edf75dd062cabf449c243d3c0da9464
│ │ │ │ ├── 3edf75dd062cabf449c243d3c0da9464.info
│ │ │ │ ├── 3ee40aa79cd242a5b53b0b0ca4f13f0f
│ │ │ │ └── 3ee40aa79cd242a5b53b0b0ca4f13f0f.info
│ │ │ ├── 3f/
│ │ │ │ ├── 3f8643c1f8dd449e85b548a14edbea2e
│ │ │ │ ├── 3f8643c1f8dd449e85b548a14edbea2e.info
│ │ │ │ ├── 3f8c1075884df0249b80e23a0598f9c1
│ │ │ │ ├── 3f8c1075884df0249b80e23a0598f9c1.info
│ │ │ │ ├── 3f9202a39620f51418046c7754f215f0
│ │ │ │ ├── 3f9202a39620f51418046c7754f215f0.info
│ │ │ │ ├── 3fa274f26b1574c40b949e114327022e
│ │ │ │ ├── 3fa274f26b1574c40b949e114327022e.info
│ │ │ │ ├── 3fdd83b151eb8d25c5e2f82fc39dcb04
│ │ │ │ ├── 3fdd83b151eb8d25c5e2f82fc39dcb04.info
│ │ │ │ ├── 3ff3d24ea34f9f74cb138e435f5f491e
│ │ │ │ └── 3ff3d24ea34f9f74cb138e435f5f491e.info
│ │ │ ├── 40/
│ │ │ │ ├── 4068e97704a16794ea218ba560cdc1e9
│ │ │ │ ├── 4068e97704a16794ea218ba560cdc1e9.info
│ │ │ │ ├── 408674d91d506a54aac9a7f07951c018
│ │ │ │ ├── 408674d91d506a54aac9a7f07951c018.info
│ │ │ │ ├── 40bf3cec17fa0b49fe04443c8332d638
│ │ │ │ ├── 40bf3cec17fa0b49fe04443c8332d638.info
│ │ │ │ ├── 40c83ba6a1a64cb4baac27028dd1acc1
│ │ │ │ ├── 40c83ba6a1a64cb4baac27028dd1acc1.info
│ │ │ │ ├── 40cb137d0e9816e48a4141ed13afedad
│ │ │ │ └── 40cb137d0e9816e48a4141ed13afedad.info
│ │ │ ├── 41/
│ │ │ │ ├── 411b7c7ffc0960249b35a2a247b66ff7
│ │ │ │ ├── 411b7c7ffc0960249b35a2a247b66ff7.info
│ │ │ │ ├── 41b96614b2e6494ba995ddcd252d11ae
│ │ │ │ ├── 41b96614b2e6494ba995ddcd252d11ae.info
│ │ │ │ ├── 41d60936b62cc6d4ca7fe628b22b0e40
│ │ │ │ ├── 41d60936b62cc6d4ca7fe628b22b0e40.info
│ │ │ │ ├── 41dcdc094b311464c8d6cb614548d89b
│ │ │ │ ├── 41dcdc094b311464c8d6cb614548d89b.info
│ │ │ │ ├── 41e14f40b915ca743a3dffd18ffc65ab
│ │ │ │ └── 41e14f40b915ca743a3dffd18ffc65ab.info
│ │ │ ├── 42/
│ │ │ │ ├── 423cd382a7804414d9bfdb2e7fb7bb62
│ │ │ │ ├── 423cd382a7804414d9bfdb2e7fb7bb62.info
│ │ │ │ ├── 423fe2ef878fa1140a7e1f7f9e365815
│ │ │ │ ├── 423fe2ef878fa1140a7e1f7f9e365815.info
│ │ │ │ ├── 426106349a0ff964fa4e7178c1d3a4f5
│ │ │ │ ├── 426106349a0ff964fa4e7178c1d3a4f5.info
│ │ │ │ ├── 42fe78c8fe682715a2cb531422e6ccb3
│ │ │ │ └── 42fe78c8fe682715a2cb531422e6ccb3.info
│ │ │ ├── 43/
│ │ │ │ ├── 4335a164bb763104c8805212c23d795f
│ │ │ │ ├── 4335a164bb763104c8805212c23d795f.info
│ │ │ │ ├── 438efd46088d408d8a53f707fa68d976
│ │ │ │ ├── 438efd46088d408d8a53f707fa68d976.info
│ │ │ │ ├── 439c018cf4619e94d9a92110ce0aa188
│ │ │ │ ├── 439c018cf4619e94d9a92110ce0aa188.info
│ │ │ │ ├── 43a3aec217baa9644a7cf34b5f93fed9
│ │ │ │ ├── 43a3aec217baa9644a7cf34b5f93fed9.info
│ │ │ │ ├── 43ad7f10b8cb01a4ca1b57eff53b024c
│ │ │ │ ├── 43ad7f10b8cb01a4ca1b57eff53b024c.info
│ │ │ │ ├── 43b1467da3d29ae4597a733828cdd84a
│ │ │ │ └── 43b1467da3d29ae4597a733828cdd84a.info
│ │ │ ├── 44/
│ │ │ │ ├── 4402dcee6e9969549bf5b33f11533208
│ │ │ │ ├── 4402dcee6e9969549bf5b33f11533208.info
│ │ │ │ ├── 44100f5f60f351348b9719b46d46cebe
│ │ │ │ ├── 44100f5f60f351348b9719b46d46cebe.info
│ │ │ │ ├── 44507a833d0ca8a42aaec1c3d752eb5f
│ │ │ │ ├── 44507a833d0ca8a42aaec1c3d752eb5f.info
│ │ │ │ ├── 445cdcfc747eba94288b97f5869aa2fb
│ │ │ │ ├── 445cdcfc747eba94288b97f5869aa2fb.info
│ │ │ │ ├── 44df73535c7a760458518e95391dbfdc
│ │ │ │ ├── 44df73535c7a760458518e95391dbfdc.info
│ │ │ │ ├── 44e1d646473a40178712cb2150f54cec
│ │ │ │ └── 44e1d646473a40178712cb2150f54cec.info
│ │ │ ├── 45/
│ │ │ │ ├── 4506ac79f5b274cb1b249ed7f4abfb9a
│ │ │ │ ├── 4506ac79f5b274cb1b249ed7f4abfb9a.info
│ │ │ │ ├── 452534715106564439d2240d82999d88
│ │ │ │ ├── 452534715106564439d2240d82999d88.info
│ │ │ │ ├── 45322b284be6baf43a273a61abba527d
│ │ │ │ ├── 45322b284be6baf43a273a61abba527d.info
│ │ │ │ ├── 4545bb65ccebf8040ac212d5792979b5
│ │ │ │ ├── 4545bb65ccebf8040ac212d5792979b5.info
│ │ │ │ ├── 4584db2acba045742a16942983e7fb96
│ │ │ │ ├── 4584db2acba045742a16942983e7fb96.info
│ │ │ │ ├── 4585b5feb801bdb44b0e5eafdd95a3be
│ │ │ │ ├── 4585b5feb801bdb44b0e5eafdd95a3be.info
│ │ │ │ ├── 459f6a07ee4a58b42ba2568b097c3ec4
│ │ │ │ └── 459f6a07ee4a58b42ba2568b097c3ec4.info
│ │ │ ├── 46/
│ │ │ │ ├── 46646a5562f14984690c85ee7b946bc9
│ │ │ │ ├── 46646a5562f14984690c85ee7b946bc9.info
│ │ │ │ ├── 468e1bfc887161e4196f33e942fc3199
│ │ │ │ └── 468e1bfc887161e4196f33e942fc3199.info
│ │ │ ├── 47/
│ │ │ │ ├── 470530e667ad4475786b28fa3187ce95
│ │ │ │ ├── 470530e667ad4475786b28fa3187ce95.info
│ │ │ │ ├── 470fdf3cd8176d94e8aadd242240fe3c
│ │ │ │ ├── 470fdf3cd8176d94e8aadd242240fe3c.info
│ │ │ │ ├── 4722a1362908a1843ab03a055c5c3fa0
│ │ │ │ ├── 4722a1362908a1843ab03a055c5c3fa0.info
│ │ │ │ ├── 472a6f18dd2f97c41af72271d22db869
│ │ │ │ ├── 472a6f18dd2f97c41af72271d22db869.info
│ │ │ │ ├── 475e3699f219c854f8581a9838135002
│ │ │ │ ├── 475e3699f219c854f8581a9838135002.info
│ │ │ │ ├── 47d9eecc3df4a854eaabab84609abb27
│ │ │ │ └── 47d9eecc3df4a854eaabab84609abb27.info
│ │ │ ├── 48/
│ │ │ │ ├── 48230e4e90fb4d14a9d56bddea898413
│ │ │ │ ├── 48230e4e90fb4d14a9d56bddea898413.info
│ │ │ │ ├── 4884ccc3528cb2e40a0e6f0a19a2b35b
│ │ │ │ ├── 4884ccc3528cb2e40a0e6f0a19a2b35b.info
│ │ │ │ ├── 48853ae485fa386428341ac1ea122570
│ │ │ │ ├── 48853ae485fa386428341ac1ea122570.info
│ │ │ │ ├── 48967a2d5427ac2489cc0ea61da5f1a0
│ │ │ │ ├── 48967a2d5427ac2489cc0ea61da5f1a0.info
│ │ │ │ ├── 48b10b41f58d5b49717f376cda59eeb8
│ │ │ │ ├── 48b10b41f58d5b49717f376cda59eeb8.info
│ │ │ │ ├── 48d034c499ee4697af9dd6e327110249
│ │ │ │ └── 48d034c499ee4697af9dd6e327110249.info
│ │ │ ├── 49/
│ │ │ │ ├── 495e2738ac7d88a41a158cd2e237d70b
│ │ │ │ ├── 495e2738ac7d88a41a158cd2e237d70b.info
│ │ │ │ ├── 49679f302ac6408697f6b9314a38985c
│ │ │ │ ├── 49679f302ac6408697f6b9314a38985c.info
│ │ │ │ ├── 49d4c2ab7ff0f4442af256bad7c9d57c
│ │ │ │ ├── 49d4c2ab7ff0f4442af256bad7c9d57c.info
│ │ │ │ ├── 49f1d2c7420db4444b011955726d0046
│ │ │ │ └── 49f1d2c7420db4444b011955726d0046.info
│ │ │ ├── 4a/
│ │ │ │ ├── 4a0757ee0236f39489520769ae710288
│ │ │ │ ├── 4a0757ee0236f39489520769ae710288.info
│ │ │ │ ├── 4ac5b6a65aaeb59478e3b78660e9f134
│ │ │ │ ├── 4ac5b6a65aaeb59478e3b78660e9f134.info
│ │ │ │ ├── 4acbfc0398bab674f922f693e58f4afc
│ │ │ │ ├── 4acbfc0398bab674f922f693e58f4afc.info
│ │ │ │ ├── 4ad09461bf994e54da846f726a23118e
│ │ │ │ ├── 4ad09461bf994e54da846f726a23118e.info
│ │ │ │ ├── 4ae64f3f72004807a9f919f9c27af0db
│ │ │ │ └── 4ae64f3f72004807a9f919f9c27af0db.info
│ │ │ ├── 4b/
│ │ │ │ ├── 4b518b37798c97b0f860962cbf615533
│ │ │ │ ├── 4b518b37798c97b0f860962cbf615533.info
│ │ │ │ ├── 4b57f909f22642d469a39e9628535312
│ │ │ │ ├── 4b57f909f22642d469a39e9628535312.info
│ │ │ │ ├── 4b721099b5d509d4093e516f59ad9ad6
│ │ │ │ ├── 4b721099b5d509d4093e516f59ad9ad6.info
│ │ │ │ ├── 4b8be68229770db4ea3c78ab0d854325
│ │ │ │ ├── 4b8be68229770db4ea3c78ab0d854325.info
│ │ │ │ ├── 4ba2329b63d54f0187bcaa12486b1b0f
│ │ │ │ ├── 4ba2329b63d54f0187bcaa12486b1b0f.info
│ │ │ │ ├── 4bbc17b35884fdf468e4b52ae4222882
│ │ │ │ ├── 4bbc17b35884fdf468e4b52ae4222882.info
│ │ │ │ ├── 4bd2bc28ff24d5c488844851cb785db0
│ │ │ │ └── 4bd2bc28ff24d5c488844851cb785db0.info
│ │ │ ├── 4c/
│ │ │ │ ├── 4c1821c1816c6fa44967b8ecb79ea7e4
│ │ │ │ ├── 4c1821c1816c6fa44967b8ecb79ea7e4.info
│ │ │ │ ├── 4c5eb52d37bb6714a98af73df7d9cf2c
│ │ │ │ ├── 4c5eb52d37bb6714a98af73df7d9cf2c.info
│ │ │ │ ├── 4c6f60d349ea37048af03504fc872f33
│ │ │ │ ├── 4c6f60d349ea37048af03504fc872f33.info
│ │ │ │ ├── 4cb169caa67eddf4d83b39fd0917a945
│ │ │ │ ├── 4cb169caa67eddf4d83b39fd0917a945.info
│ │ │ │ ├── 4cfe5ade9a1375e40aed87618b92bd12
│ │ │ │ └── 4cfe5ade9a1375e40aed87618b92bd12.info
│ │ │ ├── 4d/
│ │ │ │ ├── 4d2250412b81fe34abf39f246e274479
│ │ │ │ ├── 4d2250412b81fe34abf39f246e274479.info
│ │ │ │ ├── 4d31e19fd539ac54c8d9151da43683e9
│ │ │ │ ├── 4d31e19fd539ac54c8d9151da43683e9.info
│ │ │ │ ├── 4d3d51749e989f747b2674e0b4d9b3d7
│ │ │ │ ├── 4d3d51749e989f747b2674e0b4d9b3d7.info
│ │ │ │ ├── 4d616d1a494edd144b262cf6cd5e5fda
│ │ │ │ ├── 4d616d1a494edd144b262cf6cd5e5fda.info
│ │ │ │ ├── 4db13e1060deaae48b30246ed63b7c9b
│ │ │ │ ├── 4db13e1060deaae48b30246ed63b7c9b.info
│ │ │ │ ├── 4dc5887d05b52fd4fb5f52909d09ffe9
│ │ │ │ ├── 4dc5887d05b52fd4fb5f52909d09ffe9.info
│ │ │ │ ├── 4ddcdc3816429494a8bea67e973875f7
│ │ │ │ ├── 4ddcdc3816429494a8bea67e973875f7.info
│ │ │ │ ├── 4dfcd3a631f61d248b7cc0b845d40345
│ │ │ │ └── 4dfcd3a631f61d248b7cc0b845d40345.info
│ │ │ ├── 4e/
│ │ │ │ ├── 4e29b1a8efbd4b44bb3f3716e73f07ff
│ │ │ │ ├── 4e29b1a8efbd4b44bb3f3716e73f07ff.info
│ │ │ │ ├── 4e82512e02403f342aefc6129f4d04a4
│ │ │ │ └── 4e82512e02403f342aefc6129f4d04a4.info
│ │ │ ├── 4f/
│ │ │ │ ├── 4f07c137155b291429c0b3670c4defba
│ │ │ │ ├── 4f07c137155b291429c0b3670c4defba.info
│ │ │ │ ├── 4f0ca6874aa74540bb3d4fe5a0f86bcc
│ │ │ │ ├── 4f0ca6874aa74540bb3d4fe5a0f86bcc.info
│ │ │ │ ├── 4f0f9b9f3ed97ad2b9ba8f1a8e4666c2
│ │ │ │ ├── 4f0f9b9f3ed97ad2b9ba8f1a8e4666c2.info
│ │ │ │ ├── 4f10dd60657c6004587f237a7e90f8e4
│ │ │ │ ├── 4f10dd60657c6004587f237a7e90f8e4.info
│ │ │ │ ├── 4f231c4fb786f3946a6b90b886c48677
│ │ │ │ ├── 4f231c4fb786f3946a6b90b886c48677.info
│ │ │ │ ├── 4f5ed95515938d14189b094f8654d0bd
│ │ │ │ ├── 4f5ed95515938d14189b094f8654d0bd.info
│ │ │ │ ├── 4f809c227a3cfde4bbb9482dc1814105
│ │ │ │ ├── 4f809c227a3cfde4bbb9482dc1814105.info
│ │ │ │ ├── 4f90cfe4bf5cfb44f84a5b11387f2a42
│ │ │ │ ├── 4f90cfe4bf5cfb44f84a5b11387f2a42.info
│ │ │ │ ├── 4f939b9e23a0946439b812551e07ac81
│ │ │ │ ├── 4f939b9e23a0946439b812551e07ac81.info
│ │ │ │ ├── 4f9ac6e545d53f94b9f09c85b9576f36
│ │ │ │ ├── 4f9ac6e545d53f94b9f09c85b9576f36.info
│ │ │ │ ├── 4fbcc9b1f6ace8c4f8724a88dccca5f8
│ │ │ │ └── 4fbcc9b1f6ace8c4f8724a88dccca5f8.info
│ │ │ ├── 50/
│ │ │ │ ├── 505965fb9ab352b4d88882d7c8d822bf
│ │ │ │ ├── 505965fb9ab352b4d88882d7c8d822bf.info
│ │ │ │ ├── 5082cb99a8f99b84d84dd8b4c5233a9e
│ │ │ │ ├── 5082cb99a8f99b84d84dd8b4c5233a9e.info
│ │ │ │ ├── 50de529b6a28f4a7093045e08810a5df
│ │ │ │ └── 50de529b6a28f4a7093045e08810a5df.info
│ │ │ ├── 51/
│ │ │ │ ├── 511aa760b8728a940a41c29837945292
│ │ │ │ ├── 511aa760b8728a940a41c29837945292.info
│ │ │ │ ├── 5143f58107604835ab1a5efa2d8818fd
│ │ │ │ ├── 5143f58107604835ab1a5efa2d8818fd.info
│ │ │ │ ├── 5151708d47edd4344ba8e7bd469d966e
│ │ │ │ ├── 5151708d47edd4344ba8e7bd469d966e.info
│ │ │ │ ├── 51557afa652635743b264a309f0a5c60
│ │ │ │ ├── 51557afa652635743b264a309f0a5c60.info
│ │ │ │ ├── 515638b803bef8599dbd6d5c8bdaa53e
│ │ │ │ ├── 515638b803bef8599dbd6d5c8bdaa53e.info
│ │ │ │ ├── 51a7878f6c989394782db73339e90e46
│ │ │ │ └── 51a7878f6c989394782db73339e90e46.info
│ │ │ ├── 52/
│ │ │ │ ├── 526f285e8d4fb8140b4cdfeb9102d8cb
│ │ │ │ ├── 526f285e8d4fb8140b4cdfeb9102d8cb.info
│ │ │ │ ├── 529fde071171dfd4e99d45ca81a3ac7b
│ │ │ │ ├── 529fde071171dfd4e99d45ca81a3ac7b.info
│ │ │ │ ├── 52c907c81459f324497af504b84fd557
│ │ │ │ └── 52c907c81459f324497af504b84fd557.info
│ │ │ ├── 54/
│ │ │ │ ├── 5415c904c4fbc3e498253bc2866b37cd
│ │ │ │ ├── 5415c904c4fbc3e498253bc2866b37cd.info
│ │ │ │ ├── 543674eec776b1442a192c932e6cd9b3
│ │ │ │ ├── 543674eec776b1442a192c932e6cd9b3.info
│ │ │ │ ├── 5440c1153b397e14c9c7b1d6eb83b9f9
│ │ │ │ ├── 5440c1153b397e14c9c7b1d6eb83b9f9.info
│ │ │ │ ├── 5469ef0820152a4ae45d400fdc4626e4
│ │ │ │ ├── 5469ef0820152a4ae45d400fdc4626e4.info
│ │ │ │ ├── 5472815444de2ce45bf2053a4af04b9d
│ │ │ │ ├── 5472815444de2ce45bf2053a4af04b9d.info
│ │ │ │ ├── 54d21f6ece3b46479f0c328f8c6007e0
│ │ │ │ └── 54d21f6ece3b46479f0c328f8c6007e0.info
│ │ │ ├── 55/
│ │ │ │ ├── 5503f95d174761548a68a901beab13c2
│ │ │ │ ├── 5503f95d174761548a68a901beab13c2.info
│ │ │ │ ├── 559482fe33c79e44882d3a6cedc55fb5
│ │ │ │ ├── 559482fe33c79e44882d3a6cedc55fb5.info
│ │ │ │ ├── 5598b14661b5f4c43bed757f34b6d172
│ │ │ │ ├── 5598b14661b5f4c43bed757f34b6d172.info
│ │ │ │ ├── 55a8539917657b14baf6c6a051a7df22
│ │ │ │ └── 55a8539917657b14baf6c6a051a7df22.info
│ │ │ ├── 56/
│ │ │ │ ├── 5653477a5039f674da8f856adcf47172
│ │ │ │ ├── 5653477a5039f674da8f856adcf47172.info
│ │ │ │ ├── 56666c5a40171f54783dd416a44f42bf
│ │ │ │ ├── 56666c5a40171f54783dd416a44f42bf.info
│ │ │ │ ├── 5673d7b11cb9ad04eb2368068b720c17
│ │ │ │ ├── 5673d7b11cb9ad04eb2368068b720c17.info
│ │ │ │ ├── 56ba6cb160ebfc042b48224bd1a35614
│ │ │ │ └── 56ba6cb160ebfc042b48224bd1a35614.info
│ │ │ ├── 57/
│ │ │ │ ├── 57a39be2178cca94ab21e15c082e3ab6
│ │ │ │ ├── 57a39be2178cca94ab21e15c082e3ab6.info
│ │ │ │ ├── 57acdaad593b8d143b8fb5052a09d7d0
│ │ │ │ ├── 57acdaad593b8d143b8fb5052a09d7d0.info
│ │ │ │ ├── 57b0c806ba25b48aa8a6ecb3345a4a9b
│ │ │ │ ├── 57b0c806ba25b48aa8a6ecb3345a4a9b.info
│ │ │ │ ├── 57d2ac5c7d5786e499d4794973fe0d4e
│ │ │ │ ├── 57d2ac5c7d5786e499d4794973fe0d4e.info
│ │ │ │ ├── 57ff740bce4ab0c498ada374a8ca1dc0
│ │ │ │ └── 57ff740bce4ab0c498ada374a8ca1dc0.info
│ │ │ ├── 58/
│ │ │ │ ├── 58004290eb3aab44e9823d1f25c4ed73
│ │ │ │ ├── 58004290eb3aab44e9823d1f25c4ed73.info
│ │ │ │ ├── 585b70cb75dd43efbfead809c30a1731
│ │ │ │ ├── 585b70cb75dd43efbfead809c30a1731.info
│ │ │ │ ├── 58628227479c34542ac8c5193ccced84
│ │ │ │ ├── 58628227479c34542ac8c5193ccced84.info
│ │ │ │ ├── 5882d0e4313310143acb11d1a66c597f
│ │ │ │ ├── 5882d0e4313310143acb11d1a66c597f.info
│ │ │ │ ├── 589533fb2413e3e4fba7df13a6a75bf2
│ │ │ │ ├── 589533fb2413e3e4fba7df13a6a75bf2.info
│ │ │ │ ├── 58ad09607a0d62d458a78d7174665566
│ │ │ │ ├── 58ad09607a0d62d458a78d7174665566.info
│ │ │ │ ├── 58e7d991249847640b1534192721c5ea
│ │ │ │ └── 58e7d991249847640b1534192721c5ea.info
│ │ │ ├── 59/
│ │ │ │ ├── 592f7288ed0df2c4b884e2cd9baac023
│ │ │ │ ├── 592f7288ed0df2c4b884e2cd9baac023.info
│ │ │ │ ├── 59d3f5586b341a74c84c8f72144a4568
│ │ │ │ ├── 59d3f5586b341a74c84c8f72144a4568.info
│ │ │ │ ├── 59f8146938fff824cb5fd77236b75775
│ │ │ │ ├── 59f8146938fff824cb5fd77236b75775.info
│ │ │ │ ├── 59ff995fabb3bac45afa0f96f333e5dc
│ │ │ │ └── 59ff995fabb3bac45afa0f96f333e5dc.info
│ │ │ ├── 5a/
│ │ │ │ ├── 5a2e98b03511c6f43bc645238cd40857
│ │ │ │ ├── 5a2e98b03511c6f43bc645238cd40857.info
│ │ │ │ ├── 5a31542ccf4e8584ca4f60843e9d02d0
│ │ │ │ ├── 5a31542ccf4e8584ca4f60843e9d02d0.info
│ │ │ │ ├── 5a7f0d89a47f18c41b6ddf60dfae1bde
│ │ │ │ ├── 5a7f0d89a47f18c41b6ddf60dfae1bde.info
│ │ │ │ ├── 5a8c170a1ec28a148ab78df2460a3135
│ │ │ │ ├── 5a8c170a1ec28a148ab78df2460a3135.info
│ │ │ │ ├── 5aa8f57287fc17149bcd798be813180b
│ │ │ │ ├── 5aa8f57287fc17149bcd798be813180b.info
│ │ │ │ ├── 5af3322745e78aa488fca5a2090f8755
│ │ │ │ └── 5af3322745e78aa488fca5a2090f8755.info
│ │ │ ├── 5b/
│ │ │ │ ├── 5b00473355622524394628f7ec51808d
│ │ │ │ ├── 5b00473355622524394628f7ec51808d.info
│ │ │ │ ├── 5b24618beecc3bf41acadfcf2246d772
│ │ │ │ ├── 5b24618beecc3bf41acadfcf2246d772.info
│ │ │ │ ├── 5b2eeca598284bd4abb4a15c30df1576
│ │ │ │ ├── 5b2eeca598284bd4abb4a15c30df1576.info
│ │ │ │ ├── 5b3bd7a976306c9449ba84e0591e8a0f
│ │ │ │ ├── 5b3bd7a976306c9449ba84e0591e8a0f.info
│ │ │ │ ├── 5b3e90046c38f1d4dad2e0d5a79e871c
│ │ │ │ ├── 5b3e90046c38f1d4dad2e0d5a79e871c.info
│ │ │ │ ├── 5b5c6a576605b3c4aab7d27193785f27
│ │ │ │ ├── 5b5c6a576605b3c4aab7d27193785f27.info
│ │ │ │ ├── 5b60206b4b7ac1043ba19efe7ecfd5be
│ │ │ │ ├── 5b60206b4b7ac1043ba19efe7ecfd5be.info
│ │ │ │ ├── 5b6cac4a98010394791c66942a33caf4
│ │ │ │ ├── 5b6cac4a98010394791c66942a33caf4.info
│ │ │ │ ├── 5b994928117e3db418da69c821da7e19
│ │ │ │ ├── 5b994928117e3db418da69c821da7e19.info
│ │ │ │ ├── 5ba130fc1db953547a50bcf5c162a3e8
│ │ │ │ ├── 5ba130fc1db953547a50bcf5c162a3e8.info
│ │ │ │ ├── 5bcb408b7b5e4d346aeb4860ab1d9d9b
│ │ │ │ └── 5bcb408b7b5e4d346aeb4860ab1d9d9b.info
│ │ │ ├── 5c/
│ │ │ │ ├── 5c004b1354944164fb076276c289afc1
│ │ │ │ ├── 5c004b1354944164fb076276c289afc1.info
│ │ │ │ ├── 5c15bf0966eb95847a4260d830a30d30
│ │ │ │ ├── 5c15bf0966eb95847a4260d830a30d30.info
│ │ │ │ ├── 5c9c9f62af2efb948a1974650039e2db
│ │ │ │ └── 5c9c9f62af2efb948a1974650039e2db.info
│ │ │ ├── 5d/
│ │ │ │ ├── 5d4d7b45df12a6845beb7d6a034a41a2
│ │ │ │ ├── 5d4d7b45df12a6845beb7d6a034a41a2.info
│ │ │ │ ├── 5d4de3d4682a8d641907cc75e4fb950e
│ │ │ │ ├── 5d4de3d4682a8d641907cc75e4fb950e.info
│ │ │ │ ├── 5d7f0d6acfced954682a89e7002c04d9
│ │ │ │ ├── 5d7f0d6acfced954682a89e7002c04d9.info
│ │ │ │ ├── 5da62a0c1c5218c4aa16b74546a7822d
│ │ │ │ ├── 5da62a0c1c5218c4aa16b74546a7822d.info
│ │ │ │ ├── 5da77d4d078922b4c8466e9e35fb3f5e
│ │ │ │ ├── 5da77d4d078922b4c8466e9e35fb3f5e.info
│ │ │ │ ├── 5da88f348abcbd94585671a69c672781
│ │ │ │ ├── 5da88f348abcbd94585671a69c672781.info
│ │ │ │ ├── 5ddd9f7d3cce6724696a33752ab2f5a4
│ │ │ │ ├── 5ddd9f7d3cce6724696a33752ab2f5a4.info
│ │ │ │ ├── 5df3c21c5237c994db89660fbdfee07d
│ │ │ │ └── 5df3c21c5237c994db89660fbdfee07d.info
│ │ │ ├── 5e/
│ │ │ │ ├── 5e726086cd652f82087d59d67d2c24cd
│ │ │ │ ├── 5e726086cd652f82087d59d67d2c24cd.info
│ │ │ │ ├── 5e83f8baac96eaa47bdd9ca781cd2002
│ │ │ │ ├── 5e83f8baac96eaa47bdd9ca781cd2002.info
│ │ │ │ ├── 5ea6a8a826704f743b3b0ce3e9d3c9a9
│ │ │ │ ├── 5ea6a8a826704f743b3b0ce3e9d3c9a9.info
│ │ │ │ ├── 5ea9f573d4b800a49b9d83a1f61c0a88
│ │ │ │ ├── 5ea9f573d4b800a49b9d83a1f61c0a88.info
│ │ │ │ ├── 5ebb87899ca30b743bb4274bc00c02b4
│ │ │ │ ├── 5ebb87899ca30b743bb4274bc00c02b4.info
│ │ │ │ ├── 5ebeb75bd91642048bb3f6c1939fde66
│ │ │ │ ├── 5ebeb75bd91642048bb3f6c1939fde66.info
│ │ │ │ ├── 5ec95f4d5b2d1f14e9ff8682562553f9
│ │ │ │ ├── 5ec95f4d5b2d1f14e9ff8682562553f9.info
│ │ │ │ ├── 5ecec8cdc3ff99e4a9c65635d7e6b043
│ │ │ │ └── 5ecec8cdc3ff99e4a9c65635d7e6b043.info
│ │ │ ├── 5f/
│ │ │ │ ├── 5f31f28cc64c91042976555c016ffd5f
│ │ │ │ ├── 5f31f28cc64c91042976555c016ffd5f.info
│ │ │ │ ├── 5f603f10b9ec26841b2ecb6003dc1d0e
│ │ │ │ ├── 5f603f10b9ec26841b2ecb6003dc1d0e.info
│ │ │ │ ├── 5f7201a12d95ffc409449d95f23cf332
│ │ │ │ ├── 5f7201a12d95ffc409449d95f23cf332.info
│ │ │ │ ├── 5f875a14565308a40a5262d2504da705
│ │ │ │ ├── 5f875a14565308a40a5262d2504da705.info
│ │ │ │ ├── 5fc988a1d5b04aee9a5222502b201a45
│ │ │ │ └── 5fc988a1d5b04aee9a5222502b201a45.info
│ │ │ ├── 60/
│ │ │ │ ├── 600f4b74746dbf944901257f81a8af6d
│ │ │ │ ├── 600f4b74746dbf944901257f81a8af6d.info
│ │ │ │ ├── 6023f2b823fc19b4e4a90875281ff117
│ │ │ │ ├── 6023f2b823fc19b4e4a90875281ff117.info
│ │ │ │ ├── 6055be8ebefd69e48b49212b09b47b2f
│ │ │ │ └── 6055be8ebefd69e48b49212b09b47b2f.info
│ │ │ ├── 61/
│ │ │ │ ├── 6124ad3c57404c3429a93ca37df030e9
│ │ │ │ ├── 6124ad3c57404c3429a93ca37df030e9.info
│ │ │ │ ├── 61a20120cddc53849bbc10fc805ffe3e
│ │ │ │ ├── 61a20120cddc53849bbc10fc805ffe3e.info
│ │ │ │ ├── 61d491d99e9292c4a81d7d01a74781ea
│ │ │ │ ├── 61d491d99e9292c4a81d7d01a74781ea.info
│ │ │ │ ├── 61e236e8570a95e4eb754fb291e102e0
│ │ │ │ └── 61e236e8570a95e4eb754fb291e102e0.info
│ │ │ ├── 62/
│ │ │ │ ├── 621a76c0c3927aa45aba7d2ad0c8e1c8
│ │ │ │ ├── 621a76c0c3927aa45aba7d2ad0c8e1c8.info
│ │ │ │ ├── 621fd19bcb071b64aa1d68f0271aa780
│ │ │ │ ├── 621fd19bcb071b64aa1d68f0271aa780.info
│ │ │ │ ├── 623c79a1e113b4941afdbfc88d19e8fd
│ │ │ │ └── 623c79a1e113b4941afdbfc88d19e8fd.info
│ │ │ ├── 63/
│ │ │ │ ├── 63118a0c9ee42ac46b7f30e793177a76
│ │ │ │ ├── 63118a0c9ee42ac46b7f30e793177a76.info
│ │ │ │ ├── 63572993f2104574099a48392460b211
│ │ │ │ ├── 63572993f2104574099a48392460b211.info
│ │ │ │ ├── 6366ee97f6b541449155028b9487355a
│ │ │ │ ├── 6366ee97f6b541449155028b9487355a.info
│ │ │ │ ├── 63cd91d36b6b0e4479ef6e61ad4f6f9a
│ │ │ │ ├── 63cd91d36b6b0e4479ef6e61ad4f6f9a.info
│ │ │ │ ├── 63f2caa33e79582448112b2e286d576d
│ │ │ │ └── 63f2caa33e79582448112b2e286d576d.info
│ │ │ ├── 64/
│ │ │ │ ├── 640125adae259fe47a36be84e510a46e
│ │ │ │ ├── 640125adae259fe47a36be84e510a46e.info
│ │ │ │ ├── 645165c8169474bfbbeb8fb0bcfd26f5
│ │ │ │ ├── 645165c8169474bfbbeb8fb0bcfd26f5.info
│ │ │ │ ├── 64689f8b25eadac4da519e96f514b653
│ │ │ │ ├── 64689f8b25eadac4da519e96f514b653.info
│ │ │ │ ├── 647e1bbd3809b30459d946b4a1ddf22b
│ │ │ │ ├── 647e1bbd3809b30459d946b4a1ddf22b.info
│ │ │ │ ├── 64b9fad609434c489c32b1cdf2004a1c
│ │ │ │ └── 64b9fad609434c489c32b1cdf2004a1c.info
│ │ │ ├── 65/
│ │ │ │ ├── 6546d7765b4165b40850b3667f981c26
│ │ │ │ ├── 6546d7765b4165b40850b3667f981c26.info
│ │ │ │ ├── 656e461844099ae43a609ff6109b0877
│ │ │ │ ├── 656e461844099ae43a609ff6109b0877.info
│ │ │ │ ├── 65701ebe8bada6b4785e9c7afe7f5bee
│ │ │ │ ├── 65701ebe8bada6b4785e9c7afe7f5bee.info
│ │ │ │ ├── 658c1fb149e7498aa072b0c0f3bf13f0
│ │ │ │ ├── 658c1fb149e7498aa072b0c0f3bf13f0.info
│ │ │ │ ├── 65b045927b3948f43afb31234936c6aa
│ │ │ │ ├── 65b045927b3948f43afb31234936c6aa.info
│ │ │ │ ├── 65f3a4c67e4927a478b7036bae1da0e3
│ │ │ │ ├── 65f3a4c67e4927a478b7036bae1da0e3.info
│ │ │ │ ├── 65fb6da362a78334ab360a125cfafdaf
│ │ │ │ └── 65fb6da362a78334ab360a125cfafdaf.info
│ │ │ ├── 66/
│ │ │ │ ├── 661266b8a30572e4fb9365bba3866896
│ │ │ │ ├── 661266b8a30572e4fb9365bba3866896.info
│ │ │ │ ├── 667a99762bdf5484fbaa02573fd396e2
│ │ │ │ ├── 667a99762bdf5484fbaa02573fd396e2.info
│ │ │ │ ├── 667c6ad86a0b7a548aaa5c287f2c2861
│ │ │ │ ├── 667c6ad86a0b7a548aaa5c287f2c2861.info
│ │ │ │ ├── 66b2b8fd1d9b4bc4c96b07335ad822f3
│ │ │ │ ├── 66b2b8fd1d9b4bc4c96b07335ad822f3.info
│ │ │ │ ├── 66c95bb3c74257f41bae2622511dc02d
│ │ │ │ └── 66c95bb3c74257f41bae2622511dc02d.info
│ │ │ ├── 67/
│ │ │ │ ├── 6773203120b27984d9a8572fa3564f03
│ │ │ │ ├── 6773203120b27984d9a8572fa3564f03.info
│ │ │ │ ├── 67db9e8f0e2ae9c40bc1e2b64352a6b4
│ │ │ │ ├── 67db9e8f0e2ae9c40bc1e2b64352a6b4.info
│ │ │ │ ├── 67e3583b91179094094c6a188b232262
│ │ │ │ ├── 67e3583b91179094094c6a188b232262.info
│ │ │ │ ├── 67e9c6cf60c57a54f9f4db1bc33fd2e3
│ │ │ │ ├── 67e9c6cf60c57a54f9f4db1bc33fd2e3.info
│ │ │ │ ├── 67ee43b2f6148de40861b289b0e00591
│ │ │ │ └── 67ee43b2f6148de40861b289b0e00591.info
│ │ │ ├── 68/
│ │ │ │ ├── 685f63932bebd0c4db02ee14845191e2
│ │ │ │ ├── 685f63932bebd0c4db02ee14845191e2.info
│ │ │ │ ├── 68993ba529ae04440916cb7c23bf3279
│ │ │ │ ├── 68993ba529ae04440916cb7c23bf3279.info
│ │ │ │ ├── 68a48d1900320ed458e118415857faf6
│ │ │ │ ├── 68a48d1900320ed458e118415857faf6.info
│ │ │ │ ├── 68cb547af0187634aad591a09c01cd5b
│ │ │ │ ├── 68cb547af0187634aad591a09c01cd5b.info
│ │ │ │ ├── 68e5dc8bfd5d72647a93b7f2e1da831a
│ │ │ │ ├── 68e5dc8bfd5d72647a93b7f2e1da831a.info
│ │ │ │ ├── 68eedd4e5b33b37429c02c4add0036fe
│ │ │ │ └── 68eedd4e5b33b37429c02c4add0036fe.info
│ │ │ ├── 69/
│ │ │ │ ├── 6901fab4d5157ac48b9f263730387c03
│ │ │ │ ├── 6901fab4d5157ac48b9f263730387c03.info
│ │ │ │ ├── 691475c57a824010be0c6f474caeb7e1
│ │ │ │ ├── 691475c57a824010be0c6f474caeb7e1.info
│ │ │ │ ├── 691db8cb70c4426a8ae718465c21345f
│ │ │ │ ├── 691db8cb70c4426a8ae718465c21345f.info
│ │ │ │ ├── 6965880f76f40194593cb53a88f74005
│ │ │ │ ├── 6965880f76f40194593cb53a88f74005.info
│ │ │ │ ├── 698b660e9477f4f16abad03ec00ce38c
│ │ │ │ ├── 698b660e9477f4f16abad03ec00ce38c.info
│ │ │ │ ├── 69ae55f76840b2849ba56cfb53a17df0
│ │ │ │ ├── 69ae55f76840b2849ba56cfb53a17df0.info
│ │ │ │ ├── 69e3979b7029e8a4da2d96b714ba5c3a
│ │ │ │ └── 69e3979b7029e8a4da2d96b714ba5c3a.info
│ │ │ ├── 6a/
│ │ │ │ ├── 6a022d21eb285c143ae29fc2aca21e11
│ │ │ │ ├── 6a022d21eb285c143ae29fc2aca21e11.info
│ │ │ │ ├── 6a44d0f20e3f6cd45881a44134574169
│ │ │ │ ├── 6a44d0f20e3f6cd45881a44134574169.info
│ │ │ │ ├── 6a4f0c91a28ece04198b200dd55145d0
│ │ │ │ ├── 6a4f0c91a28ece04198b200dd55145d0.info
│ │ │ │ ├── 6a981cd1456bec84b86e1c66773f57f5
│ │ │ │ ├── 6a981cd1456bec84b86e1c66773f57f5.info
│ │ │ │ ├── 6ace62d30f494c948b71d5594afce11d
│ │ │ │ ├── 6ace62d30f494c948b71d5594afce11d.info
│ │ │ │ ├── 6ad632cbcc87f634d9b86006cdffdaf5
│ │ │ │ ├── 6ad632cbcc87f634d9b86006cdffdaf5.info
│ │ │ │ ├── 6afb166a156df2d20433d981f4bb2832
│ │ │ │ └── 6afb166a156df2d20433d981f4bb2832.info
│ │ │ ├── 6b/
│ │ │ │ ├── 6b01141ed8f74d198965c86f25eb7040
│ │ │ │ ├── 6b01141ed8f74d198965c86f25eb7040.info
│ │ │ │ ├── 6b152d671c864bf41bbcc096f5a7567c
│ │ │ │ ├── 6b152d671c864bf41bbcc096f5a7567c.info
│ │ │ │ ├── 6b1ae1e78552c459d9ce27048ff51c7f
│ │ │ │ ├── 6b1ae1e78552c459d9ce27048ff51c7f.info
│ │ │ │ ├── 6b259c4003a802847b9ada90744e34c5
│ │ │ │ ├── 6b259c4003a802847b9ada90744e34c5.info
│ │ │ │ ├── 6b32b6725087a0d4bb1670818d26996e
│ │ │ │ ├── 6b32b6725087a0d4bb1670818d26996e.info
│ │ │ │ ├── 6b72875690e0f7343911e06af3145bd5
│ │ │ │ ├── 6b72875690e0f7343911e06af3145bd5.info
│ │ │ │ ├── 6ba7805325c426c43b8e85b5be4eae36
│ │ │ │ ├── 6ba7805325c426c43b8e85b5be4eae36.info
│ │ │ │ ├── 6bfec54ce89b0b642a65d44def023b99
│ │ │ │ └── 6bfec54ce89b0b642a65d44def023b99.info
│ │ │ ├── 6c/
│ │ │ │ ├── 6c3d52cc5c46d7946a920e21901ff38e
│ │ │ │ ├── 6c3d52cc5c46d7946a920e21901ff38e.info
│ │ │ │ ├── 6c61ba0c209bcc74f83e3650039ebdf9
│ │ │ │ ├── 6c61ba0c209bcc74f83e3650039ebdf9.info
│ │ │ │ ├── 6ca745fb561cbf640b6e603f95662fa0
│ │ │ │ ├── 6ca745fb561cbf640b6e603f95662fa0.info
│ │ │ │ ├── 6cccd50ebf7384242bda4d7bcb282ebf
│ │ │ │ └── 6cccd50ebf7384242bda4d7bcb282ebf.info
│ │ │ ├── 6d/
│ │ │ │ ├── 6d16f2e78a356d34c9a32108929de932
│ │ │ │ ├── 6d16f2e78a356d34c9a32108929de932.info
│ │ │ │ ├── 6d437b997e074079b4b2f6e395394f4b
│ │ │ │ ├── 6d437b997e074079b4b2f6e395394f4b.info
│ │ │ │ ├── 6d468ee3657be7a43a2ef2178ec14239
│ │ │ │ ├── 6d468ee3657be7a43a2ef2178ec14239.info
│ │ │ │ ├── 6d56244f8c39a851975d3c0bd432c66f
│ │ │ │ ├── 6d56244f8c39a851975d3c0bd432c66f.info
│ │ │ │ ├── 6d5833966abeadb429de247e4316eef4
│ │ │ │ ├── 6d5833966abeadb429de247e4316eef4.info
│ │ │ │ ├── 6d6f82a762acb4417b895d3babc790f9
│ │ │ │ ├── 6d6f82a762acb4417b895d3babc790f9.info
│ │ │ │ ├── 6d768b1bb52e2c64ba818933dbdd8452
│ │ │ │ ├── 6d768b1bb52e2c64ba818933dbdd8452.info
│ │ │ │ ├── 6d9df2bc198c417db00037803568139c
│ │ │ │ ├── 6d9df2bc198c417db00037803568139c.info
│ │ │ │ ├── 6dbcf248c987476181a37f01a1814975
│ │ │ │ ├── 6dbcf248c987476181a37f01a1814975.info
│ │ │ │ ├── 6de79ae237e51554da96fd28f68b66a6
│ │ │ │ └── 6de79ae237e51554da96fd28f68b66a6.info
│ │ │ ├── 6e/
│ │ │ │ ├── 6e0e62db88935c74288c97c907243bd0
│ │ │ │ ├── 6e0e62db88935c74288c97c907243bd0.info
│ │ │ │ ├── 6e1c8b97ec8aa0464e92506ffe099558
│ │ │ │ ├── 6e1c8b97ec8aa0464e92506ffe099558.info
│ │ │ │ ├── 6e7c80eefe2def5459e0b486b3ab96e2
│ │ │ │ ├── 6e7c80eefe2def5459e0b486b3ab96e2.info
│ │ │ │ ├── 6ecb9e17e44feb84cb80451fa27b09fe
│ │ │ │ └── 6ecb9e17e44feb84cb80451fa27b09fe.info
│ │ │ ├── 6f/
│ │ │ │ ├── 6f1c7ebc8ac78cb951be24c238cbd3ba
│ │ │ │ ├── 6f1c7ebc8ac78cb951be24c238cbd3ba.info
│ │ │ │ ├── 6f25fb081e85cb743b272c2f7fbc2f6b
│ │ │ │ ├── 6f25fb081e85cb743b272c2f7fbc2f6b.info
│ │ │ │ ├── 6f515f8ecd3b6a546b90abaae2553f99
│ │ │ │ ├── 6f515f8ecd3b6a546b90abaae2553f99.info
│ │ │ │ ├── 6f516f1ec21a54a59a92bf99db2d9535
│ │ │ │ ├── 6f516f1ec21a54a59a92bf99db2d9535.info
│ │ │ │ ├── 6f72aa6eab9392548b9e9d92eb6b2ef8
│ │ │ │ ├── 6f72aa6eab9392548b9e9d92eb6b2ef8.info
│ │ │ │ ├── 6f768c3714a34a549960ea903fbadcc2
│ │ │ │ ├── 6f768c3714a34a549960ea903fbadcc2.info
│ │ │ │ ├── 6fdea2af3daa40fe8f88e5e9cfc17abb
│ │ │ │ └── 6fdea2af3daa40fe8f88e5e9cfc17abb.info
│ │ │ ├── 70/
│ │ │ │ ├── 7004c8cc6d477784e8d85fbad56de5f8
│ │ │ │ ├── 7004c8cc6d477784e8d85fbad56de5f8.info
│ │ │ │ ├── 7043e9a330ac2d84a80a965ada4589ad
│ │ │ │ ├── 7043e9a330ac2d84a80a965ada4589ad.info
│ │ │ │ ├── 7065397ff8184621aa3ca4f854491259
│ │ │ │ ├── 7065397ff8184621aa3ca4f854491259.info
│ │ │ │ ├── 7071adaea60f6124d9ab426b002d5afa
│ │ │ │ ├── 7071adaea60f6124d9ab426b002d5afa.info
│ │ │ │ ├── 70a190a1b304d1e43995af35d09231d6
│ │ │ │ ├── 70a190a1b304d1e43995af35d09231d6.info
│ │ │ │ ├── 70b265ed18dc14041bedc0263d4578ef
│ │ │ │ ├── 70b265ed18dc14041bedc0263d4578ef.info
│ │ │ │ ├── 70d4d75a2877243758b0750cbc75b6eb
│ │ │ │ ├── 70d4d75a2877243758b0750cbc75b6eb.info
│ │ │ │ ├── 70eae1897c9d308448eb3bb0b5be9f58
│ │ │ │ ├── 70eae1897c9d308448eb3bb0b5be9f58.info
│ │ │ │ ├── 70f955bbb437a494888ef54d97abb474
│ │ │ │ └── 70f955bbb437a494888ef54d97abb474.info
│ │ │ ├── 71/
│ │ │ │ ├── 7116e04a377b195458798657c617e324
│ │ │ │ ├── 7116e04a377b195458798657c617e324.info
│ │ │ │ ├── 718966f960cb50643986195e5fe953ca
│ │ │ │ ├── 718966f960cb50643986195e5fe953ca.info
│ │ │ │ ├── 71bb46b59a9a7a346bbab1e185c723df
│ │ │ │ ├── 71bb46b59a9a7a346bbab1e185c723df.info
│ │ │ │ ├── 71c1514a6bd24e1e882cebbe1904ce04
│ │ │ │ └── 71c1514a6bd24e1e882cebbe1904ce04.info
│ │ │ ├── 72/
│ │ │ │ ├── 7241c7dc25374fc1a6ab3ef9da79c363
│ │ │ │ ├── 7241c7dc25374fc1a6ab3ef9da79c363.info
│ │ │ │ ├── 725600e98a048ad46aacb96a8bb155cd
│ │ │ │ ├── 725600e98a048ad46aacb96a8bb155cd.info
│ │ │ │ ├── 728d2c19676ea3743aaa087aa28c4a16
│ │ │ │ └── 728d2c19676ea3743aaa087aa28c4a16.info
│ │ │ ├── 73/
│ │ │ │ ├── 7341c0cd0aad4994e8fa461cb443aa7d
│ │ │ │ ├── 7341c0cd0aad4994e8fa461cb443aa7d.info
│ │ │ │ ├── 735d54f21944f834f931716514c87a84
│ │ │ │ ├── 735d54f21944f834f931716514c87a84.info
│ │ │ │ ├── 73deb9b8722aa284eab27c4dc90956c6
│ │ │ │ └── 73deb9b8722aa284eab27c4dc90956c6.info
│ │ │ ├── 74/
│ │ │ │ ├── 740b3785866edda4b8d1e1a05570a5f8
│ │ │ │ ├── 740b3785866edda4b8d1e1a05570a5f8.info
│ │ │ │ ├── 742654cad2425334696ba6ed4495cfef
│ │ │ │ ├── 742654cad2425334696ba6ed4495cfef.info
│ │ │ │ ├── 74374298effb78d47b85450f7f724cef
│ │ │ │ ├── 74374298effb78d47b85450f7f724cef.info
│ │ │ │ ├── 743879b4db4bc1a4b829aae4386f4acf
│ │ │ │ ├── 743879b4db4bc1a4b829aae4386f4acf.info
│ │ │ │ ├── 7496af95dfe67cf429ac65edaaf99106
│ │ │ │ └── 7496af95dfe67cf429ac65edaaf99106.info
│ │ │ ├── 75/
│ │ │ │ ├── 750aad009559b814dbc27001341fc1c3
│ │ │ │ ├── 750aad009559b814dbc27001341fc1c3.info
│ │ │ │ ├── 75df57ccb1e44c64085399277405e1ca
│ │ │ │ ├── 75df57ccb1e44c64085399277405e1ca.info
│ │ │ │ ├── 75e7d7a9a57458841a85fe42d9c9141f
│ │ │ │ └── 75e7d7a9a57458841a85fe42d9c9141f.info
│ │ │ ├── 76/
│ │ │ │ ├── 7602252bdb82b8d45ae3483c3a00d3e1
│ │ │ │ ├── 7602252bdb82b8d45ae3483c3a00d3e1.info
│ │ │ │ ├── 7693972390a4ed841a986c0c452c1058
│ │ │ │ ├── 7693972390a4ed841a986c0c452c1058.info
│ │ │ │ ├── 769f6f5dd7c8f2d4c9ab1caba0bd2628
│ │ │ │ ├── 769f6f5dd7c8f2d4c9ab1caba0bd2628.info
│ │ │ │ ├── 76b6bf32a6fcf934aab8c529bddccc81
│ │ │ │ ├── 76b6bf32a6fcf934aab8c529bddccc81.info
│ │ │ │ ├── 76c392e42b5098c458856cdf6ecaaaa1
│ │ │ │ ├── 76c392e42b5098c458856cdf6ecaaaa1.info
│ │ │ │ ├── 76c82729ad712f14bae1a8a279c52ac3
│ │ │ │ └── 76c82729ad712f14bae1a8a279c52ac3.info
│ │ │ ├── 77/
│ │ │ │ ├── 77476292f9fa4905a787e6417853846b
│ │ │ │ ├── 77476292f9fa4905a787e6417853846b.info
│ │ │ │ ├── 7748a1d3701ac824ea7f366ba0388f5d
│ │ │ │ ├── 7748a1d3701ac824ea7f366ba0388f5d.info
│ │ │ │ ├── 77f432980bb30084299a138e15c6f571
│ │ │ │ └── 77f432980bb30084299a138e15c6f571.info
│ │ │ ├── 78/
│ │ │ │ ├── 78213b1ce4da5e6438195d405c9da0f5
│ │ │ │ ├── 78213b1ce4da5e6438195d405c9da0f5.info
│ │ │ │ ├── 782c49e6e68074dc7ba12c95537825ce
│ │ │ │ ├── 782c49e6e68074dc7ba12c95537825ce.info
│ │ │ │ ├── 782de34c17796430ba8d0ceddb60944e
│ │ │ │ ├── 782de34c17796430ba8d0ceddb60944e.info
│ │ │ │ ├── 7883cd788d83a71478342eef943e8150
│ │ │ │ ├── 7883cd788d83a71478342eef943e8150.info
│ │ │ │ ├── 7895e41fc42ee304cbd33be552917a5a
│ │ │ │ └── 7895e41fc42ee304cbd33be552917a5a.info
│ │ │ ├── 79/
│ │ │ │ ├── 794f3951c48395848920fdb593a2ae38
│ │ │ │ ├── 794f3951c48395848920fdb593a2ae38.info
│ │ │ │ ├── 798968d841703b54bb9d08b1da6bc52f
│ │ │ │ ├── 798968d841703b54bb9d08b1da6bc52f.info
│ │ │ │ ├── 79ced2556f0af814a840b86232613ff1
│ │ │ │ ├── 79ced2556f0af814a840b86232613ff1.info
│ │ │ │ ├── 79ff392d1bde4ad78a3836a4a480392d
│ │ │ │ └── 79ff392d1bde4ad78a3836a4a480392d.info
│ │ │ ├── 7a/
│ │ │ │ ├── 7a24ec4b5c3e08e47bf50c8298c1fe0d
│ │ │ │ ├── 7a24ec4b5c3e08e47bf50c8298c1fe0d.info
│ │ │ │ ├── 7a892c920c8ad2848b469ec9579c5219
│ │ │ │ ├── 7a892c920c8ad2848b469ec9579c5219.info
│ │ │ │ ├── 7a98125502f715b4b83cfb77b434e436
│ │ │ │ ├── 7a98125502f715b4b83cfb77b434e436.info
│ │ │ │ ├── 7af6ac3e6b51b8d4aab04adc85b8de2f
│ │ │ │ └── 7af6ac3e6b51b8d4aab04adc85b8de2f.info
│ │ │ ├── 7b/
│ │ │ │ ├── 7b743370ac3e4ec2a1668f5455a8ef8a
│ │ │ │ ├── 7b743370ac3e4ec2a1668f5455a8ef8a.info
│ │ │ │ ├── 7bd96d76711152648a736c4d28d865f2
│ │ │ │ ├── 7bd96d76711152648a736c4d28d865f2.info
│ │ │ │ ├── 7be84a49bb2cd7e4a9ed097ba22794d0
│ │ │ │ └── 7be84a49bb2cd7e4a9ed097ba22794d0.info
│ │ │ ├── 7c/
│ │ │ │ ├── 7c04f0dfa9243c04681a55d90d3ff3fc
│ │ │ │ ├── 7c04f0dfa9243c04681a55d90d3ff3fc.info
│ │ │ │ ├── 7c6295db74da28645bf49db58b7c9c65
│ │ │ │ ├── 7c6295db74da28645bf49db58b7c9c65.info
│ │ │ │ ├── 7cfaad4e53832d94c9421d2dd1ad82f7
│ │ │ │ └── 7cfaad4e53832d94c9421d2dd1ad82f7.info
│ │ │ ├── 7d/
│ │ │ │ ├── 7d36034e63ad8254b9b2f55280fcc040
│ │ │ │ ├── 7d36034e63ad8254b9b2f55280fcc040.info
│ │ │ │ ├── 7d3aa106cfe752241997b3759bf80163
│ │ │ │ ├── 7d3aa106cfe752241997b3759bf80163.info
│ │ │ │ ├── 7d7bd4bcc815cfb44b9990c29dabdb9f
│ │ │ │ ├── 7d7bd4bcc815cfb44b9990c29dabdb9f.info
│ │ │ │ ├── 7db44d889e0cbbf4281132a752f96ce1
│ │ │ │ └── 7db44d889e0cbbf4281132a752f96ce1.info
│ │ │ ├── 7e/
│ │ │ │ ├── 7e609b27ad2caa14c83dd9951b6c13c6
│ │ │ │ ├── 7e609b27ad2caa14c83dd9951b6c13c6.info
│ │ │ │ ├── 7ef6801a8b664544aa9f2ab1bc1f8b60
│ │ │ │ ├── 7ef6801a8b664544aa9f2ab1bc1f8b60.info
│ │ │ │ ├── 7ef8348b8ea834d7e1bc214b07f7fb87
│ │ │ │ └── 7ef8348b8ea834d7e1bc214b07f7fb87.info
│ │ │ ├── 7f/
│ │ │ │ ├── 7f27709c942d91541be1fd6aa5cb3d78
│ │ │ │ ├── 7f27709c942d91541be1fd6aa5cb3d78.info
│ │ │ │ ├── 7f65567c9026afb4db5de3355accc636
│ │ │ │ ├── 7f65567c9026afb4db5de3355accc636.info
│ │ │ │ ├── 7fc2147e42d71644aad0eaf9a3526249
│ │ │ │ └── 7fc2147e42d71644aad0eaf9a3526249.info
│ │ │ ├── 80/
│ │ │ │ ├── 803abab0f7e17044db56f8760186dbd1
│ │ │ │ ├── 803abab0f7e17044db56f8760186dbd1.info
│ │ │ │ ├── 806de5a9211448c8b65c8435ebb48dd4
│ │ │ │ ├── 806de5a9211448c8b65c8435ebb48dd4.info
│ │ │ │ ├── 80ae83fdf1fb2c649bccb8c293b94556
│ │ │ │ ├── 80ae83fdf1fb2c649bccb8c293b94556.info
│ │ │ │ ├── 80b10e1c58509a449a3c5aecc07d4455
│ │ │ │ ├── 80b10e1c58509a449a3c5aecc07d4455.info
│ │ │ │ ├── 80beef77cb19e713c7c2d481b65ed485
│ │ │ │ └── 80beef77cb19e713c7c2d481b65ed485.info
│ │ │ ├── 81/
│ │ │ │ ├── 811d999912a5f3f459a637aad029fbc8
│ │ │ │ ├── 811d999912a5f3f459a637aad029fbc8.info
│ │ │ │ ├── 812aaaefaab404448a3e4db49dfa5206
│ │ │ │ ├── 812aaaefaab404448a3e4db49dfa5206.info
│ │ │ │ ├── 8143d3a8390f2c64685e3bc272bd9e90
│ │ │ │ ├── 8143d3a8390f2c64685e3bc272bd9e90.info
│ │ │ │ ├── 81a142c61a4e14d46bb21b02548ad24d
│ │ │ │ ├── 81a142c61a4e14d46bb21b02548ad24d.info
│ │ │ │ ├── 81ed8c76d2bc4a4c95d092c98af4e58f
│ │ │ │ └── 81ed8c76d2bc4a4c95d092c98af4e58f.info
│ │ │ ├── 82/
│ │ │ │ ├── 821f5482c5a3f4389885f4432433f56f
│ │ │ │ ├── 821f5482c5a3f4389885f4432433f56f.info
│ │ │ │ ├── 826b6becaef90fb458eedebe4c2f3664
│ │ │ │ ├── 826b6becaef90fb458eedebe4c2f3664.info
│ │ │ │ ├── 828075bc53f2de84982a943870529b7b
│ │ │ │ ├── 828075bc53f2de84982a943870529b7b.info
│ │ │ │ ├── 82a8ce43816925d4b971951094cb755c
│ │ │ │ ├── 82a8ce43816925d4b971951094cb755c.info
│ │ │ │ ├── 82bf3f737dec0be43a60891958a8da87
│ │ │ │ ├── 82bf3f737dec0be43a60891958a8da87.info
│ │ │ │ ├── 82cd92ffc29383742932b27ca414c80f
│ │ │ │ └── 82cd92ffc29383742932b27ca414c80f.info
│ │ │ ├── 83/
│ │ │ │ ├── 83088ba2132cbc940b7ca0c679a02b0d
│ │ │ │ ├── 83088ba2132cbc940b7ca0c679a02b0d.info
│ │ │ │ ├── 8313ea704470a264295ec9e09aec6ebc
│ │ │ │ ├── 8313ea704470a264295ec9e09aec6ebc.info
│ │ │ │ ├── 83154bbefa9fb00469e42ff5014345a2
│ │ │ │ ├── 83154bbefa9fb00469e42ff5014345a2.info
│ │ │ │ ├── 833143c443f979e44ae0b8ed899e3b59
│ │ │ │ ├── 833143c443f979e44ae0b8ed899e3b59.info
│ │ │ │ ├── 8349e42a2b30c7a4abd8678c203428ba
│ │ │ │ ├── 8349e42a2b30c7a4abd8678c203428ba.info
│ │ │ │ ├── 83eda34b7da01e04aa894f268158b0c0
│ │ │ │ └── 83eda34b7da01e04aa894f268158b0c0.info
│ │ │ ├── 84/
│ │ │ │ ├── 8413ca0e506d42a1a4bd9769f204ad16
│ │ │ │ ├── 8413ca0e506d42a1a4bd9769f204ad16.info
│ │ │ │ ├── 844873d1afe1c3142ab922324950e1dd
│ │ │ │ ├── 844873d1afe1c3142ab922324950e1dd.info
│ │ │ │ ├── 84a92b25f83d49b9bc132d206b370281
│ │ │ │ ├── 84a92b25f83d49b9bc132d206b370281.info
│ │ │ │ ├── 84b5362754a9d934ba259398b757d0be
│ │ │ │ ├── 84b5362754a9d934ba259398b757d0be.info
│ │ │ │ ├── 84d86c98104d94063ad70bc591530f65
│ │ │ │ └── 84d86c98104d94063ad70bc591530f65.info
│ │ │ ├── 85/
│ │ │ │ ├── 850af9f3bf6d14143baf2ecfbf25db52
│ │ │ │ ├── 850af9f3bf6d14143baf2ecfbf25db52.info
│ │ │ │ ├── 850c54ee0b9e1aa740b1c67792eb1f26
│ │ │ │ ├── 850c54ee0b9e1aa740b1c67792eb1f26.info
│ │ │ │ ├── 853edc343b78a7c4c81cbb3851d48c0a
│ │ │ │ ├── 853edc343b78a7c4c81cbb3851d48c0a.info
│ │ │ │ ├── 8573c56c34e616248a3881b2c56280ef
│ │ │ │ ├── 8573c56c34e616248a3881b2c56280ef.info
│ │ │ │ ├── 85dd7af03f02aea4aae13a3945e3b313
│ │ │ │ ├── 85dd7af03f02aea4aae13a3945e3b313.info
│ │ │ │ ├── 85f3c3a3c2623cd4da1661b0479e2ef2
│ │ │ │ └── 85f3c3a3c2623cd4da1661b0479e2ef2.info
│ │ │ ├── 86/
│ │ │ │ ├── 8620e97e7e9859049934889a52248435
│ │ │ │ ├── 8620e97e7e9859049934889a52248435.info
│ │ │ │ ├── 8645aa9c3c74fb34ba9499e14fb332b5
│ │ │ │ ├── 8645aa9c3c74fb34ba9499e14fb332b5.info
│ │ │ │ ├── 86710e43de46f6f4bac7c8e50813a599
│ │ │ │ ├── 86710e43de46f6f4bac7c8e50813a599.info
│ │ │ │ ├── 86cacab070a0a46e99aedb596a32c4fe
│ │ │ │ └── 86cacab070a0a46e99aedb596a32c4fe.info
│ │ │ ├── 87/
│ │ │ │ ├── 871f8edd56e84b8fb295b10cc3c78f36
│ │ │ │ ├── 871f8edd56e84b8fb295b10cc3c78f36.info
│ │ │ │ ├── 872e4b92d663b05489fe34966680c29d
│ │ │ │ ├── 872e4b92d663b05489fe34966680c29d.info
│ │ │ │ ├── 87357ff0dec4ef348a295235835c6ee4
│ │ │ │ ├── 87357ff0dec4ef348a295235835c6ee4.info
│ │ │ │ ├── 874c0713cdc44f549b0161750b48d2c2
│ │ │ │ ├── 874c0713cdc44f549b0161750b48d2c2.info
│ │ │ │ ├── 874e40a588dbb1e48bc128d686337d4e
│ │ │ │ ├── 874e40a588dbb1e48bc128d686337d4e.info
│ │ │ │ ├── 8795e0dd0041d2f44b1fe1959fc9fb53
│ │ │ │ ├── 8795e0dd0041d2f44b1fe1959fc9fb53.info
│ │ │ │ ├── 87a1ae9719ec25d44a4dbec20ec0f892
│ │ │ │ ├── 87a1ae9719ec25d44a4dbec20ec0f892.info
│ │ │ │ ├── 87ab1bebe13f41f89d5427e7d2c34d58
│ │ │ │ ├── 87ab1bebe13f41f89d5427e7d2c34d58.info
│ │ │ │ ├── 87d720faa37005c08600090e04d8c739
│ │ │ │ └── 87d720faa37005c08600090e04d8c739.info
│ │ │ ├── 88/
│ │ │ │ ├── 882f1a4147a284f028899b9c018e63eb
│ │ │ │ ├── 882f1a4147a284f028899b9c018e63eb.info
│ │ │ │ ├── 88338eb35defad644a48718188e8f219
│ │ │ │ ├── 88338eb35defad644a48718188e8f219.info
│ │ │ │ ├── 88ed537c17c34f339121fe9a7d6d7a0e
│ │ │ │ └── 88ed537c17c34f339121fe9a7d6d7a0e.info
│ │ │ ├── 89/
│ │ │ │ ├── 8938e753b3f47374889d5cf3265b563c
│ │ │ │ ├── 8938e753b3f47374889d5cf3265b563c.info
│ │ │ │ ├── 898bc38486fc899428fbe5bd6adfe473
│ │ │ │ ├── 898bc38486fc899428fbe5bd6adfe473.info
│ │ │ │ ├── 89b31ff5ca0a5eb4797ac65d43949807
│ │ │ │ ├── 89b31ff5ca0a5eb4797ac65d43949807.info
│ │ │ │ ├── 89b48a03f6f43e94e87cc8d2104d3d4d
│ │ │ │ ├── 89b48a03f6f43e94e87cc8d2104d3d4d.info
│ │ │ │ ├── 89df79cf5061c394d82abd40383976e5
│ │ │ │ ├── 89df79cf5061c394d82abd40383976e5.info
│ │ │ │ ├── 89e0061781af2da4d938cac6c7381fdc
│ │ │ │ └── 89e0061781af2da4d938cac6c7381fdc.info
│ │ │ ├── 8a/
│ │ │ │ ├── 8a13cbeb2099aca47bb456f49845f86c
│ │ │ │ ├── 8a13cbeb2099aca47bb456f49845f86c.info
│ │ │ │ ├── 8a4b6301a5afaec4cb87d21383ceb0b3
│ │ │ │ ├── 8a4b6301a5afaec4cb87d21383ceb0b3.info
│ │ │ │ ├── 8a8695521f0d02e499659fee002a26c2
│ │ │ │ ├── 8a8695521f0d02e499659fee002a26c2.info
│ │ │ │ ├── 8aa8171e088f94069bbd1978a053f7dd
│ │ │ │ └── 8aa8171e088f94069bbd1978a053f7dd.info
│ │ │ ├── 8b/
│ │ │ │ ├── 8b22792c3b570444eb18cb78c2af3a74
│ │ │ │ ├── 8b22792c3b570444eb18cb78c2af3a74.info
│ │ │ │ ├── 8b7d06780fca6fc4384580d3ebed9219
│ │ │ │ ├── 8b7d06780fca6fc4384580d3ebed9219.info
│ │ │ │ ├── 8b845b123ab418448a8be2935fa804e0
│ │ │ │ ├── 8b845b123ab418448a8be2935fa804e0.info
│ │ │ │ ├── 8bb59cb2f66d156418ca1bd1e2703233
│ │ │ │ ├── 8bb59cb2f66d156418ca1bd1e2703233.info
│ │ │ │ ├── 8bc2b083b068f3546a9509c805e0541c
│ │ │ │ ├── 8bc2b083b068f3546a9509c805e0541c.info
│ │ │ │ ├── 8bc445bb79654bf496c92d0407840a92
│ │ │ │ ├── 8bc445bb79654bf496c92d0407840a92.info
│ │ │ │ ├── 8bc74398aa3944646ade4ee78cd57484
│ │ │ │ ├── 8bc74398aa3944646ade4ee78cd57484.info
│ │ │ │ ├── 8beed9aab74505d488e6befe54c3f6ef
│ │ │ │ └── 8beed9aab74505d488e6befe54c3f6ef.info
│ │ │ ├── 8c/
│ │ │ │ ├── 8cc83bff6b39f3d44af0de8320999144
│ │ │ │ └── 8cc83bff6b39f3d44af0de8320999144.info
│ │ │ ├── 8d/
│ │ │ │ ├── 8d20eedbe40f0ce41a4c4f633f225de8
│ │ │ │ ├── 8d20eedbe40f0ce41a4c4f633f225de8.info
│ │ │ │ ├── 8d34348f8b97a334291f5cf31adc5d67
│ │ │ │ ├── 8d34348f8b97a334291f5cf31adc5d67.info
│ │ │ │ ├── 8db4dc37ed52fc24ba715aaa8e0fd20f
│ │ │ │ ├── 8db4dc37ed52fc24ba715aaa8e0fd20f.info
│ │ │ │ ├── 8df45492ff0815a488744d61efcecba7
│ │ │ │ └── 8df45492ff0815a488744d61efcecba7.info
│ │ │ ├── 8e/
│ │ │ │ ├── 8e6115ff67c8ba44ba8780322ca78ef8
│ │ │ │ ├── 8e6115ff67c8ba44ba8780322ca78ef8.info
│ │ │ │ ├── 8e78f8a8575e4a04f8337a54e241cdc5
│ │ │ │ └── 8e78f8a8575e4a04f8337a54e241cdc5.info
│ │ │ ├── 8f/
│ │ │ │ ├── 8f74c99a65464bb4b86ccb314ee95a7f
│ │ │ │ ├── 8f74c99a65464bb4b86ccb314ee95a7f.info
│ │ │ │ ├── 8f7652e09069a1943278893d4264401e
│ │ │ │ ├── 8f7652e09069a1943278893d4264401e.info
│ │ │ │ ├── 8f8b248abe6b4dcebd6cdd0d754717f4
│ │ │ │ └── 8f8b248abe6b4dcebd6cdd0d754717f4.info
│ │ │ ├── 90/
│ │ │ │ ├── 900aac3710bc14542a8d164e3f0ff820
│ │ │ │ ├── 900aac3710bc14542a8d164e3f0ff820.info
│ │ │ │ ├── 900f1a451c764dc3bdcc0de815a15935
│ │ │ │ ├── 900f1a451c764dc3bdcc0de815a15935.info
│ │ │ │ ├── 9014630255533ed42915965b4065cde8
│ │ │ │ ├── 9014630255533ed42915965b4065cde8.info
│ │ │ │ ├── 901b761c5c1e22d4e8a3ba7d95bc1f5d
│ │ │ │ ├── 901b761c5c1e22d4e8a3ba7d95bc1f5d.info
│ │ │ │ ├── 906c12bc9cd95d3963c6d58f62522c78
│ │ │ │ ├── 906c12bc9cd95d3963c6d58f62522c78.info
│ │ │ │ ├── 907dff89ca8c76745b031725757e5f8b
│ │ │ │ ├── 907dff89ca8c76745b031725757e5f8b.info
│ │ │ │ ├── 9085046f02f69544eb97fd06b6048fe2
│ │ │ │ ├── 9085046f02f69544eb97fd06b6048fe2.info
│ │ │ │ ├── 90fe1c65e6bb3bc4e90862df7297719e
│ │ │ │ └── 90fe1c65e6bb3bc4e90862df7297719e.info
│ │ │ ├── 91/
│ │ │ │ ├── 9129183a42052cd43b9c284d6dbd541e
│ │ │ │ ├── 9129183a42052cd43b9c284d6dbd541e.info
│ │ │ │ ├── 91319408591cec1478efd3c62f9f418a
│ │ │ │ ├── 91319408591cec1478efd3c62f9f418a.info
│ │ │ │ ├── 91950f78729ab144aa36e94690b28fad
│ │ │ │ ├── 91950f78729ab144aa36e94690b28fad.info
│ │ │ │ ├── 919d97c1a707113409177d498d31cf51
│ │ │ │ ├── 919d97c1a707113409177d498d31cf51.info
│ │ │ │ ├── 91c20d2c22b8b3a4cb6c816bd225591a
│ │ │ │ ├── 91c20d2c22b8b3a4cb6c816bd225591a.info
│ │ │ │ ├── 91f495459b6e34f419ac123740d798b1
│ │ │ │ └── 91f495459b6e34f419ac123740d798b1.info
│ │ │ ├── 92/
│ │ │ │ ├── 92027f7f8cfc4feaa477da0dc38d3d46
│ │ │ │ ├── 92027f7f8cfc4feaa477da0dc38d3d46.info
│ │ │ │ ├── 9202fbba95ea8294cb5e718f028f21b0
│ │ │ │ ├── 9202fbba95ea8294cb5e718f028f21b0.info
│ │ │ │ ├── 926a61ff0dec44a5aab649acb411e9ad
│ │ │ │ ├── 926a61ff0dec44a5aab649acb411e9ad.info
│ │ │ │ ├── 9288066c33474b94b6ee5465f4df1cc0
│ │ │ │ ├── 9288066c33474b94b6ee5465f4df1cc0.info
│ │ │ │ ├── 928dc55e2c8c3ee4dad33b6d561cb6ea
│ │ │ │ ├── 928dc55e2c8c3ee4dad33b6d561cb6ea.info
│ │ │ │ ├── 92a378669877c05c6071d0fed687bb95
│ │ │ │ └── 92a378669877c05c6071d0fed687bb95.info
│ │ │ ├── 93/
│ │ │ │ ├── 93665e8b67658804d99c4487228cc050
│ │ │ │ ├── 93665e8b67658804d99c4487228cc050.info
│ │ │ │ ├── 936bea4b2545c4a4fad2e623b0f6371f
│ │ │ │ ├── 936bea4b2545c4a4fad2e623b0f6371f.info
│ │ │ │ ├── 936c6340f3468444ebb1785b4c311126
│ │ │ │ ├── 936c6340f3468444ebb1785b4c311126.info
│ │ │ │ ├── 9390296e78291b543b2f4a9761ef8139
│ │ │ │ ├── 9390296e78291b543b2f4a9761ef8139.info
│ │ │ │ ├── 93eea84e53d0226479c9a584f19427b5
│ │ │ │ ├── 93eea84e53d0226479c9a584f19427b5.info
│ │ │ │ ├── 93effba7cf7f3824ab0bd048a27a9c02
│ │ │ │ └── 93effba7cf7f3824ab0bd048a27a9c02.info
│ │ │ ├── 94/
│ │ │ │ ├── 94412382cf909c843b9a46a8f6b364f4
│ │ │ │ ├── 94412382cf909c843b9a46a8f6b364f4.info
│ │ │ │ ├── 945f4ecec6df62244b9ebcc363833642
│ │ │ │ ├── 945f4ecec6df62244b9ebcc363833642.info
│ │ │ │ ├── 949b7e126b3f27940885a6808a15458e
│ │ │ │ ├── 949b7e126b3f27940885a6808a15458e.info
│ │ │ │ ├── 94a7f67cf7303d94fa3f076bd9f33095
│ │ │ │ └── 94a7f67cf7303d94fa3f076bd9f33095.info
│ │ │ ├── 95/
│ │ │ │ ├── 9502550ba4785e3499d6c9251fa2114b
│ │ │ │ ├── 9502550ba4785e3499d6c9251fa2114b.info
│ │ │ │ ├── 950890083f4907541a6ed06d70959e49
│ │ │ │ ├── 950890083f4907541a6ed06d70959e49.info
│ │ │ │ ├── 952b3dc7b47846947b37c8d3ae46579a
│ │ │ │ ├── 952b3dc7b47846947b37c8d3ae46579a.info
│ │ │ │ ├── 953fab16d15d5885b3600fcd6388b2ad
│ │ │ │ ├── 953fab16d15d5885b3600fcd6388b2ad.info
│ │ │ │ ├── 9541d86e2fd84c1d9990edf0852d74ab
│ │ │ │ ├── 9541d86e2fd84c1d9990edf0852d74ab.info
│ │ │ │ ├── 9545c9eb3bf94265810463794fec8334
│ │ │ │ ├── 9545c9eb3bf94265810463794fec8334.info
│ │ │ │ ├── 95a2914724952ef40bb590d0607fc878
│ │ │ │ ├── 95a2914724952ef40bb590d0607fc878.info
│ │ │ │ ├── 95b719082a664ea45bb56759eed1f271
│ │ │ │ ├── 95b719082a664ea45bb56759eed1f271.info
│ │ │ │ ├── 95c91abdcc1ea03458c2ea4e9626a5d8
│ │ │ │ ├── 95c91abdcc1ea03458c2ea4e9626a5d8.info
│ │ │ │ ├── 95cdf27b47eb82747ba9e51f41e72a35
│ │ │ │ ├── 95cdf27b47eb82747ba9e51f41e72a35.info
│ │ │ │ ├── 95f85adeda79e994f011eb2152cf4fc9
│ │ │ │ └── 95f85adeda79e994f011eb2152cf4fc9.info
│ │ │ ├── 96/
│ │ │ │ ├── 961642509dec50b44a293d26240140ec
│ │ │ │ ├── 961642509dec50b44a293d26240140ec.info
│ │ │ │ ├── 9650d910fcaefb34cb45f121c1993892
│ │ │ │ ├── 9650d910fcaefb34cb45f121c1993892.info
│ │ │ │ ├── 9685354eb873b8d4699078b307b0f260
│ │ │ │ ├── 9685354eb873b8d4699078b307b0f260.info
│ │ │ │ ├── 968a09f153574430a6e15ae975145768
│ │ │ │ ├── 968a09f153574430a6e15ae975145768.info
│ │ │ │ ├── 96b44f7d98314b139324a8a87eb66067
│ │ │ │ ├── 96b44f7d98314b139324a8a87eb66067.info
│ │ │ │ ├── 96c503bf059df984c86eecf572370347
│ │ │ │ ├── 96c503bf059df984c86eecf572370347.info
│ │ │ │ ├── 96d14b71b907bb52333b2886e665aba6
│ │ │ │ ├── 96d14b71b907bb52333b2886e665aba6.info
│ │ │ │ ├── 96e9072453a441618754c478755b3028
│ │ │ │ └── 96e9072453a441618754c478755b3028.info
│ │ │ ├── 97/
│ │ │ │ ├── 970e7735a0864fd40842a36d053d08fe
│ │ │ │ ├── 970e7735a0864fd40842a36d053d08fe.info
│ │ │ │ ├── 9713795381722eb43b623dffba25d115
│ │ │ │ ├── 9713795381722eb43b623dffba25d115.info
│ │ │ │ ├── 973b024861c5ae84f869aad614234b04
│ │ │ │ ├── 973b024861c5ae84f869aad614234b04.info
│ │ │ │ ├── 976acc75bfafe594cb01142ba21947be
│ │ │ │ ├── 976acc75bfafe594cb01142ba21947be.info
│ │ │ │ ├── 977190a4db46de442aed27279d247df4
│ │ │ │ ├── 977190a4db46de442aed27279d247df4.info
│ │ │ │ ├── 97a05971510726f438153cd4987526fb
│ │ │ │ ├── 97a05971510726f438153cd4987526fb.info
│ │ │ │ ├── 97d6c87381e3e51488b49f5891490b70
│ │ │ │ ├── 97d6c87381e3e51488b49f5891490b70.info
│ │ │ │ ├── 97f2c862ef7ea1d4fa3423506b5cf0ff
│ │ │ │ └── 97f2c862ef7ea1d4fa3423506b5cf0ff.info
│ │ │ ├── 98/
│ │ │ │ ├── 9805855c8e379ed4cad77f639aaddb73
│ │ │ │ ├── 9805855c8e379ed4cad77f639aaddb73.info
│ │ │ │ ├── 980daac0955b74442b91df43f0f1b776
│ │ │ │ ├── 980daac0955b74442b91df43f0f1b776.info
│ │ │ │ ├── 983c76d87fb6f4f4597a526a4b2b5fd7
│ │ │ │ ├── 983c76d87fb6f4f4597a526a4b2b5fd7.info
│ │ │ │ ├── 985eed4bc2fbee941b761b8816d9055d
│ │ │ │ ├── 985eed4bc2fbee941b761b8816d9055d.info
│ │ │ │ ├── 98808b11e78f6c84a841a6b4bc5a29d2
│ │ │ │ ├── 98808b11e78f6c84a841a6b4bc5a29d2.info
│ │ │ │ ├── 98ba0396e4b4ee8498a8f097affcfddf
│ │ │ │ ├── 98ba0396e4b4ee8498a8f097affcfddf.info
│ │ │ │ ├── 98bf0690f0c9686468d3866e3c0e5e45
│ │ │ │ ├── 98bf0690f0c9686468d3866e3c0e5e45.info
│ │ │ │ ├── 98d14ab1acf42df4f88a0561822ac807
│ │ │ │ └── 98d14ab1acf42df4f88a0561822ac807.info
│ │ │ ├── 99/
│ │ │ │ ├── 9945ffed4692c6044b6d3acf81efd694
│ │ │ │ ├── 9945ffed4692c6044b6d3acf81efd694.info
│ │ │ │ ├── 995c08a3305ff9f0dab5e86f340bd9a7
│ │ │ │ ├── 995c08a3305ff9f0dab5e86f340bd9a7.info
│ │ │ │ ├── 99744ed686e28004180091658ee4f5ae
│ │ │ │ ├── 99744ed686e28004180091658ee4f5ae.info
│ │ │ │ ├── 99c5970046bb263469514e56eb6aa519
│ │ │ │ └── 99c5970046bb263469514e56eb6aa519.info
│ │ │ ├── 9a/
│ │ │ │ ├── 9a0f991b6c2f45b44b92e163f9969e8e
│ │ │ │ ├── 9a0f991b6c2f45b44b92e163f9969e8e.info
│ │ │ │ ├── 9a3557da07c729b4eb774b8e30e157a4
│ │ │ │ ├── 9a3557da07c729b4eb774b8e30e157a4.info
│ │ │ │ ├── 9a371bcbba2084dd0a8ebc6826aa8794
│ │ │ │ ├── 9a371bcbba2084dd0a8ebc6826aa8794.info
│ │ │ │ ├── 9a6069768ff3d8043a79348813f86cba
│ │ │ │ ├── 9a6069768ff3d8043a79348813f86cba.info
│ │ │ │ ├── 9ace5095cc37ed849b52109d2ee305d4
│ │ │ │ ├── 9ace5095cc37ed849b52109d2ee305d4.info
│ │ │ │ ├── 9ad0b0c865b01af4ca1b414689e71259
│ │ │ │ └── 9ad0b0c865b01af4ca1b414689e71259.info
│ │ │ ├── 9b/
│ │ │ │ ├── 9b1a3034a9e81704abdd08677a2d035f
│ │ │ │ ├── 9b1a3034a9e81704abdd08677a2d035f.info
│ │ │ │ ├── 9b4f21acd14fdd445b37b76f6587539e
│ │ │ │ ├── 9b4f21acd14fdd445b37b76f6587539e.info
│ │ │ │ ├── 9b5abcb38bac0c54794ad732a3fa0de3
│ │ │ │ ├── 9b5abcb38bac0c54794ad732a3fa0de3.info
│ │ │ │ ├── 9bc2b69915879416f8df18971dc98e2e
│ │ │ │ ├── 9bc2b69915879416f8df18971dc98e2e.info
│ │ │ │ ├── 9bd5a110ed89025499ddee8c7e73778e
│ │ │ │ ├── 9bd5a110ed89025499ddee8c7e73778e.info
│ │ │ │ ├── 9be6112c2b1c3ae44927680ba7b36e10
│ │ │ │ ├── 9be6112c2b1c3ae44927680ba7b36e10.info
│ │ │ │ ├── 9bedab6f9886aee42b33e424bffdb640
│ │ │ │ └── 9bedab6f9886aee42b33e424bffdb640.info
│ │ │ ├── 9c/
│ │ │ │ ├── 9c2177aaf0fde92439246adc2dc0bfa2
│ │ │ │ ├── 9c2177aaf0fde92439246adc2dc0bfa2.info
│ │ │ │ ├── 9c21cfda3336137438c3001d40564be0
│ │ │ │ ├── 9c21cfda3336137438c3001d40564be0.info
│ │ │ │ ├── 9c4a050f089abb04ebd4125e419f4548
│ │ │ │ ├── 9c4a050f089abb04ebd4125e419f4548.info
│ │ │ │ ├── 9c7ad350fb20c854a9112cf4156d1b6e
│ │ │ │ ├── 9c7ad350fb20c854a9112cf4156d1b6e.info
│ │ │ │ ├── 9c7c268fa6492449654839df69f2a2f4
│ │ │ │ ├── 9c7c268fa6492449654839df69f2a2f4.info
│ │ │ │ ├── 9c8ceb9efacb4974bb3b7e2a87137b07
│ │ │ │ ├── 9c8ceb9efacb4974bb3b7e2a87137b07.info
│ │ │ │ ├── 9c9e5198af35eb74d8c5d84a5194b184
│ │ │ │ ├── 9c9e5198af35eb74d8c5d84a5194b184.info
│ │ │ │ ├── 9ce3cf11b8f74594bb7b1e1dba03122d
│ │ │ │ └── 9ce3cf11b8f74594bb7b1e1dba03122d.info
│ │ │ ├── 9d/
│ │ │ │ ├── 9d614808f9add8a4f8e4860db2c7af0d
│ │ │ │ ├── 9d614808f9add8a4f8e4860db2c7af0d.info
│ │ │ │ ├── 9d816a6ab06c6834480f5f45f440e287
│ │ │ │ ├── 9d816a6ab06c6834480f5f45f440e287.info
│ │ │ │ ├── 9db19a04003fca7439552acd4de9baa1
│ │ │ │ ├── 9db19a04003fca7439552acd4de9baa1.info
│ │ │ │ ├── 9de24983a2c6cbe4f925c3e98a79b804
│ │ │ │ └── 9de24983a2c6cbe4f925c3e98a79b804.info
│ │ │ ├── 9e/
│ │ │ │ ├── 9e2b7a65f0a52974193ed497d145b0bc
│ │ │ │ ├── 9e2b7a65f0a52974193ed497d145b0bc.info
│ │ │ │ ├── 9ec94545c5b00344c9bd8e691f15d799
│ │ │ │ ├── 9ec94545c5b00344c9bd8e691f15d799.info
│ │ │ │ ├── 9edc9283e7d6409fab242fe8fb6a822c
│ │ │ │ └── 9edc9283e7d6409fab242fe8fb6a822c.info
│ │ │ ├── 9f/
│ │ │ │ ├── 9f1026265f8e3d54fb6e9f082c43debf
│ │ │ │ ├── 9f1026265f8e3d54fb6e9f082c43debf.info
│ │ │ │ ├── 9f2f480fb2536e54ab8493a4e7421720
│ │ │ │ └── 9f2f480fb2536e54ab8493a4e7421720.info
│ │ │ ├── a0/
│ │ │ │ ├── a002d3737b873954395b7cf862873ab8
│ │ │ │ ├── a002d3737b873954395b7cf862873ab8.info
│ │ │ │ ├── a021b6d2ca2e9404b8a4d94343ecd068
│ │ │ │ ├── a021b6d2ca2e9404b8a4d94343ecd068.info
│ │ │ │ ├── a025ba7ee40d0104db8d08b1d9eabb0d
│ │ │ │ ├── a025ba7ee40d0104db8d08b1d9eabb0d.info
│ │ │ │ ├── a04a45bbed9e1714f9902fc9443669b9
│ │ │ │ ├── a04a45bbed9e1714f9902fc9443669b9.info
│ │ │ │ ├── a0a02e768c802b641b6793fa864f1c2c
│ │ │ │ ├── a0a02e768c802b641b6793fa864f1c2c.info
│ │ │ │ ├── a0b56195e00682b4594dfaeef9d5fa78
│ │ │ │ ├── a0b56195e00682b4594dfaeef9d5fa78.info
│ │ │ │ ├── a0bae4ff8f5baf64aad3b92b8aea0603
│ │ │ │ ├── a0bae4ff8f5baf64aad3b92b8aea0603.info
│ │ │ │ ├── a0fba9bd62d2b5c4bb89c81f58569c58
│ │ │ │ └── a0fba9bd62d2b5c4bb89c81f58569c58.info
│ │ │ ├── a1/
│ │ │ │ ├── a132bd53f9677ee489dac2f1da2b05ea
│ │ │ │ ├── a132bd53f9677ee489dac2f1da2b05ea.info
│ │ │ │ ├── a14a59f2a5c757e469c3e4e17b798c2e
│ │ │ │ └── a14a59f2a5c757e469c3e4e17b798c2e.info
│ │ │ ├── a2/
│ │ │ │ ├── a2a8aecb05814e644abbb070fbd91156
│ │ │ │ ├── a2a8aecb05814e644abbb070fbd91156.info
│ │ │ │ ├── a2cb43d6b0c226443be7e176590837a5
│ │ │ │ ├── a2cb43d6b0c226443be7e176590837a5.info
│ │ │ │ ├── a2cc3e5914c2bb345a87c15d0b894ee8
│ │ │ │ └── a2cc3e5914c2bb345a87c15d0b894ee8.info
│ │ │ ├── a3/
│ │ │ │ ├── a331c23f613bfba4294059442ab01d4e
│ │ │ │ ├── a331c23f613bfba4294059442ab01d4e.info
│ │ │ │ ├── a3529368f4cd0424a89aa51080a16b06
│ │ │ │ ├── a3529368f4cd0424a89aa51080a16b06.info
│ │ │ │ ├── a36d8b72880a8004f96ac54ce4598ff9
│ │ │ │ ├── a36d8b72880a8004f96ac54ce4598ff9.info
│ │ │ │ ├── a3949cc8bd731bb47bedf6589367d0c9
│ │ │ │ ├── a3949cc8bd731bb47bedf6589367d0c9.info
│ │ │ │ ├── a3c7ce509d225e740aed9d6579e2a1e9
│ │ │ │ └── a3c7ce509d225e740aed9d6579e2a1e9.info
│ │ │ ├── a4/
│ │ │ │ ├── a429b38ee9d48c7408c8870baf406034
│ │ │ │ ├── a429b38ee9d48c7408c8870baf406034.info
│ │ │ │ ├── a4610cf559d77b9f256416d9ccaeac55
│ │ │ │ ├── a4610cf559d77b9f256416d9ccaeac55.info
│ │ │ │ ├── a483595b0257945278dc75c5ff7d82ee
│ │ │ │ ├── a483595b0257945278dc75c5ff7d82ee.info
│ │ │ │ ├── a4cac3a64ff3a4540bbabd58e2d7c8b2
│ │ │ │ └── a4cac3a64ff3a4540bbabd58e2d7c8b2.info
│ │ │ ├── a5/
│ │ │ │ ├── a55fb7b4961a425381d1282fc424f966
│ │ │ │ ├── a55fb7b4961a425381d1282fc424f966.info
│ │ │ │ ├── a582090813554df479fb9ca03e9857d3
│ │ │ │ ├── a582090813554df479fb9ca03e9857d3.info
│ │ │ │ ├── a598580d0cfc7224ebed8d2b627d9e00
│ │ │ │ ├── a598580d0cfc7224ebed8d2b627d9e00.info
│ │ │ │ ├── a59c2e62fbd97f84f92c3b546e3903cb
│ │ │ │ ├── a59c2e62fbd97f84f92c3b546e3903cb.info
│ │ │ │ ├── a5c214e5846a99242b348c37e49b2f59
│ │ │ │ └── a5c214e5846a99242b348c37e49b2f59.info
│ │ │ ├── a6/
│ │ │ │ ├── a6238e9452bfc704f82ff36791fe1a45
│ │ │ │ ├── a6238e9452bfc704f82ff36791fe1a45.info
│ │ │ │ ├── a62706dc421fc9b4fa368a8050a930f7
│ │ │ │ ├── a62706dc421fc9b4fa368a8050a930f7.info
│ │ │ │ ├── a667f6654ad7a9548b8c8e68b51c8895
│ │ │ │ ├── a667f6654ad7a9548b8c8e68b51c8895.info
│ │ │ │ ├── a6ab6fd2b91214e8a9c8ec2224a528de
│ │ │ │ └── a6ab6fd2b91214e8a9c8ec2224a528de.info
│ │ │ ├── a7/
│ │ │ │ ├── a704c010bcdb1ec4a9f3417b3c393164
│ │ │ │ ├── a704c010bcdb1ec4a9f3417b3c393164.info
│ │ │ │ ├── a73ebdb6c1006364f8c7b37dc53d8ab7
│ │ │ │ ├── a73ebdb6c1006364f8c7b37dc53d8ab7.info
│ │ │ │ ├── a7842a837a4b13e41ae16193db753418
│ │ │ │ ├── a7842a837a4b13e41ae16193db753418.info
│ │ │ │ ├── a7c91a123806d41a0873fcdcb629b1c4
│ │ │ │ ├── a7c91a123806d41a0873fcdcb629b1c4.info
│ │ │ │ ├── a7ebd1239373d5f41af65ef32d67f445
│ │ │ │ ├── a7ebd1239373d5f41af65ef32d67f445.info
│ │ │ │ ├── a7ec9e7ad8b847b7ae4510af83c5d868
│ │ │ │ └── a7ec9e7ad8b847b7ae4510af83c5d868.info
│ │ │ ├── a8/
│ │ │ │ ├── a809a4b50addbf44b9023b5e7f9fd4d2
│ │ │ │ ├── a809a4b50addbf44b9023b5e7f9fd4d2.info
│ │ │ │ ├── a8604e8f13b3be84b8bc0c1507d8f3f6
│ │ │ │ ├── a8604e8f13b3be84b8bc0c1507d8f3f6.info
│ │ │ │ ├── a8ed4063f2beecd41a234a582202f3c4
│ │ │ │ └── a8ed4063f2beecd41a234a582202f3c4.info
│ │ │ ├── a9/
│ │ │ │ ├── a9126848c43c4dd499da39a90664dd73
│ │ │ │ ├── a9126848c43c4dd499da39a90664dd73.info
│ │ │ │ ├── a956e5803e95df349bd35832492d4014
│ │ │ │ └── a956e5803e95df349bd35832492d4014.info
│ │ │ ├── aa/
│ │ │ │ ├── aa14b70e6a58c5b4fa6663623e3dca91
│ │ │ │ ├── aa14b70e6a58c5b4fa6663623e3dca91.info
│ │ │ │ ├── aa160f27c3fe4052a5850e21108811b6
│ │ │ │ ├── aa160f27c3fe4052a5850e21108811b6.info
│ │ │ │ ├── aa76955fe5bb44f7915d91db8c7043c4
│ │ │ │ └── aa76955fe5bb44f7915d91db8c7043c4.info
│ │ │ ├── ab/
│ │ │ │ ├── ab2114bdc8544297b417dfefe9f1e410
│ │ │ │ ├── ab2114bdc8544297b417dfefe9f1e410.info
│ │ │ │ ├── ab93e1a81defc3243a6e9cd0df3cb443
│ │ │ │ └── ab93e1a81defc3243a6e9cd0df3cb443.info
│ │ │ ├── ac/
│ │ │ │ ├── ac071ac86a8f1af43827e11a522640e4
│ │ │ │ ├── ac071ac86a8f1af43827e11a522640e4.info
│ │ │ │ ├── ac281230df7b14becb40b3c479f1b429
│ │ │ │ ├── ac281230df7b14becb40b3c479f1b429.info
│ │ │ │ ├── ac3f13489022aa34d861a0320a6917b9
│ │ │ │ ├── ac3f13489022aa34d861a0320a6917b9.info
│ │ │ │ ├── ac68f5ae37c8957468562b8da42f9984
│ │ │ │ ├── ac68f5ae37c8957468562b8da42f9984.info
│ │ │ │ ├── ac742e1acf5f82f45b9d8ec53fe15b21
│ │ │ │ ├── ac742e1acf5f82f45b9d8ec53fe15b21.info
│ │ │ │ ├── acc16f0c684508f44813662a300c574b
│ │ │ │ ├── acc16f0c684508f44813662a300c574b.info
│ │ │ │ ├── acfa3573efc38c844be021fdaa8cf8a6
│ │ │ │ └── acfa3573efc38c844be021fdaa8cf8a6.info
│ │ │ ├── ad/
│ │ │ │ ├── ad09d3e70e7b09244b56b51e495a319c
│ │ │ │ ├── ad09d3e70e7b09244b56b51e495a319c.info
│ │ │ │ ├── ad70ff8d98b257540b683737743828cb
│ │ │ │ ├── ad70ff8d98b257540b683737743828cb.info
│ │ │ │ ├── adf7bea9401c1834380d55601add6cfb
│ │ │ │ └── adf7bea9401c1834380d55601add6cfb.info
│ │ │ ├── ae/
│ │ │ │ ├── ae05f0dd1cf145e4e8e905c7971ee433
│ │ │ │ ├── ae05f0dd1cf145e4e8e905c7971ee433.info
│ │ │ │ ├── ae242449e9279d44789513b922d3178a
│ │ │ │ ├── ae242449e9279d44789513b922d3178a.info
│ │ │ │ ├── ae8ce3ffe04ac2c42945fd27e0291fc3
│ │ │ │ ├── ae8ce3ffe04ac2c42945fd27e0291fc3.info
│ │ │ │ ├── aed7ab02155e43341a2dbcb7bc17c160
│ │ │ │ └── aed7ab02155e43341a2dbcb7bc17c160.info
│ │ │ ├── af/
│ │ │ │ ├── af30a361ab68260438b6ec3fb7e64500
│ │ │ │ ├── af30a361ab68260438b6ec3fb7e64500.info
│ │ │ │ ├── af5042802f06c804c8abddd544b77a4a
│ │ │ │ ├── af5042802f06c804c8abddd544b77a4a.info
│ │ │ │ ├── af84cf39b8fa0654badd9278cbd00d77
│ │ │ │ ├── af84cf39b8fa0654badd9278cbd00d77.info
│ │ │ │ ├── afeb55855d7a63b45ba6f8bd97599202
│ │ │ │ └── afeb55855d7a63b45ba6f8bd97599202.info
│ │ │ ├── b0/
│ │ │ │ ├── b09be1f217d34247af54863a2f5587e1
│ │ │ │ ├── b09be1f217d34247af54863a2f5587e1.info
│ │ │ │ ├── b0c73ea1c5ff95e43806e9002c155070
│ │ │ │ ├── b0c73ea1c5ff95e43806e9002c155070.info
│ │ │ │ ├── b0eeee3cdfa56734abca5c1a4e7989ba
│ │ │ │ └── b0eeee3cdfa56734abca5c1a4e7989ba.info
│ │ │ ├── b1/
│ │ │ │ ├── b10cb8fee5b39014d8a417bf413f5e5c
│ │ │ │ ├── b10cb8fee5b39014d8a417bf413f5e5c.info
│ │ │ │ ├── b124f0b8ca43e6e46bdc0322fad15ea3
│ │ │ │ ├── b124f0b8ca43e6e46bdc0322fad15ea3.info
│ │ │ │ ├── b135ec222fdcd11468014c90d11d6821
│ │ │ │ ├── b135ec222fdcd11468014c90d11d6821.info
│ │ │ │ ├── b14b67faac4aff04fac7127cf1ab4f97
│ │ │ │ ├── b14b67faac4aff04fac7127cf1ab4f97.info
│ │ │ │ ├── b180fd8310805e44dbbef545d0231418
│ │ │ │ ├── b180fd8310805e44dbbef545d0231418.info
│ │ │ │ ├── b1c789407b55e3a4c9cc86135a714e33
│ │ │ │ ├── b1c789407b55e3a4c9cc86135a714e33.info
│ │ │ │ ├── b1d8465ba1376b148bdab58965101f47
│ │ │ │ └── b1d8465ba1376b148bdab58965101f47.info
│ │ │ ├── b2/
│ │ │ │ ├── b219c86ce508e478367c0a46e1aa9fe4
│ │ │ │ ├── b219c86ce508e478367c0a46e1aa9fe4.info
│ │ │ │ ├── b222f61a1f7253e4d8e8cc82bfde9e42
│ │ │ │ ├── b222f61a1f7253e4d8e8cc82bfde9e42.info
│ │ │ │ ├── b250be9db55288b48ac121c074d795e6
│ │ │ │ └── b250be9db55288b48ac121c074d795e6.info
│ │ │ ├── b3/
│ │ │ │ ├── b33687803b08daf418e5315de17658b8
│ │ │ │ ├── b33687803b08daf418e5315de17658b8.info
│ │ │ │ ├── b3cdab
Showing preview only (394K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3827 symbols across 475 files)
FILE: scatterer/CelestialBodySortableByDistance.cs
class celestialBodySortableByDistance (line 5) | public class celestialBodySortableByDistance : IEquatable<celestialBodyS...
method ToString (line 15) | public override string ToString()
method Equals (line 20) | public override bool Equals(object obj)
method SortByNameAscending (line 28) | public int SortByNameAscending(string name1, string name2)
method CompareTo (line 35) | public int CompareTo(celestialBodySortableByDistance comparecelestialB...
method GetHashCode (line 45) | public override int GetHashCode()
method Equals (line 50) | public bool Equals(celestialBodySortableByDistance other)
FILE: scatterer/DataSerialization/ConfigPoint.cs
class ConfigPoint (line 5) | public class ConfigPoint
method ConfigPoint (line 20) | public ConfigPoint(float inAltitude,float inSkyAlpha,float inSkyExposu...
method getValuesFrom (line 36) | public void getValuesFrom(ConfigPoint inConfigPoint)
method interpolateValuesFrom (line 48) | public void interpolateValuesFrom(ConfigPoint inConfigPoint1, ConfigPo...
method ConfigPoint (line 60) | public ConfigPoint()
FILE: scatterer/DataSerialization/ConfigReader.cs
class ConfigReader (line 9) | public class ConfigReader
method loadConfigs (line 20) | public void loadConfigs ()
FILE: scatterer/DataSerialization/MainSettingsReadWrite.cs
class MainSettingsReadWrite (line 9) | public class MainSettingsReadWrite
method loadMainSettings (line 197) | public void loadMainSettings ()
method saveMainSettingsIfChanged (line 214) | public void saveMainSettingsIfChanged()
FILE: scatterer/DataSerialization/PlanetshineSource.cs
class AtmoPlanetShineSource (line 7) | public class AtmoPlanetShineSource
class PlanetShineLightSource (line 16) | public class PlanetShineLightSource
FILE: scatterer/DataSerialization/PluginDataReadWrite.cs
class PluginDataReadWrite (line 11) | public class PluginDataReadWrite
method loadPluginData (line 33) | public void loadPluginData ()
method savePluginData (line 52) | public void savePluginData ()
FILE: scatterer/DataSerialization/QualityPresetsLoader.cs
class QualityPresetsLoader (line 16) | public class QualityPresetsLoader
method GetPresetsList (line 18) | public static String[] GetPresetsList()
method LoadPresetIntoMainSettings (line 40) | public static void LoadPresetIntoMainSettings(MainSettingsReadWrite se...
method LoadConfigNodeIntoMainSettings (line 61) | private static void LoadConfigNodeIntoMainSettings(MainSettingsReadWri...
method FindPresetOfCurrentSettings (line 77) | public static string FindPresetOfCurrentSettings(MainSettingsReadWrite...
method PresetMatchesCurrentSettings (line 101) | private static bool PresetMatchesCurrentSettings(MainSettingsReadWrite...
method CompareFields (line 124) | private static bool CompareFields(FieldInfo fi, MainSettingsReadWrite ...
FILE: scatterer/DataSerialization/ScattererCelestialBody.cs
class ScattererCelestialBody (line 8) | public class ScattererCelestialBody
method ScattererCelestialBody (line 34) | public ScattererCelestialBody ()
class SecondarySunConfig (line 40) | public class SecondarySunConfig
class SecondarySun (line 47) | public class SecondarySun
method SecondarySun (line 55) | public SecondarySun (SecondarySunConfig inConfig, CelestialBody body)
method FindSecondarySun (line 61) | public static SecondarySun FindSecondarySun (SecondarySunConfig inConfig)
FILE: scatterer/Effects/AntiAliasing/GenericAntiAliasing.cs
class GenericAntiAliasing (line 5) | public abstract class GenericAntiAliasing : MonoBehaviour
method GenericAntiAliasing (line 7) | public GenericAntiAliasing ()
FILE: scatterer/Effects/AntiAliasing/SubpixelMorphologicalAntialiasing.cs
class SubpixelMorphologicalAntialiasing (line 7) | public class SubpixelMorphologicalAntialiasing : GenericAntiAliasing
type Pass (line 13) | enum Pass { EdgeDetection = 0, BlendWeights = 3, NeighborhoodBlending ...
type Quality (line 14) | public enum Quality { DepthMode = 0, Medium = 1, High = 2 }
method forceDepthBuffermode (line 20) | public void forceDepthBuffermode()
method Awake (line 34) | public void Awake()
method OnPreCull (line 66) | public void OnPreCull()
method OnDestroy (line 109) | public void OnDestroy()
FILE: scatterer/Effects/AntiAliasing/TemporalAntiAliasing.cs
class TemporalAntiAliasing (line 10) | public class TemporalAntiAliasing : GenericAntiAliasing
type Pass (line 20) | enum Pass {SolverDilate, SolverNoDilate}
method Awake (line 50) | public void Awake()
method GetCameraFlags (line 73) | internal DepthTextureMode GetCameraFlags()
method ResetHistory (line 78) | internal void ResetHistory()
method GenerateRandomOffset (line 83) | Vector2 GenerateRandomOffset()
class RuntimeUtilities (line 98) | private static class RuntimeUtilities
method GetJitteredPerspectiveProjectionMatrix (line 101) | public static Matrix4x4 GetJitteredPerspectiveProjectionMatrix(Camer...
method GetJitteredOrthographicProjectionMatrix (line 120) | public static Matrix4x4 GetJitteredOrthographicProjectionMatrix(Came...
method GenerateJitteredProjectionMatrixFromOriginal (line 136) | public static Matrix4x4 GenerateJitteredProjectionMatrixFromOriginal...
method GetJitteredProjectionMatrix (line 158) | public Matrix4x4 GetJitteredProjectionMatrix(Camera camera)
method ConfigureJitteredProjectionMatrix (line 174) | public void ConfigureJitteredProjectionMatrix(Camera camera)
method ConfigureStereoJitteredProjectionMatrices (line 181) | public void ConfigureStereoJitteredProjectionMatrices(Camera camera)
method CheckHistory (line 217) | RenderTexture CheckHistory(int id, CommandBuffer cmd, int activeEye)
method OnPreCull (line 259) | public void OnPreCull()
method OnPostRender (line 320) | public void OnPostRender()
method ResetProjection (line 327) | public void ResetProjection()
method OnDestroy (line 333) | public void OnDestroy()
FILE: scatterer/Effects/AntiAliasing/Utils/HaltonSeq.cs
class HaltonSeq (line 4) | public static class HaltonSeq
method Get (line 12) | public static float Get(int index, int radix)
FILE: scatterer/Effects/PlanetShine/PlanetShineLight.cs
class PlanetShineLight (line 5) | public class PlanetShineLight : MonoBehaviour
method updateLight (line 11) | public void updateLight()
method OnDestroy (line 23) | public void OnDestroy()
FILE: scatterer/Effects/PlanetShine/PlanetshineManager.cs
class PlanetshineManager (line 8) | public class PlanetshineManager
method PlanetshineManager (line 13) | public PlanetshineManager ()
method UpdatePlanetshine (line 77) | public void UpdatePlanetshine ()
method Cleanup (line 86) | public void Cleanup()
FILE: scatterer/Effects/Proland/Atmosphere/Godrays/LegacyGodraysRenderer.cs
class LegacyGodraysRenderer (line 8) | public class LegacyGodraysRenderer : MonoBehaviour
method LegacyGodraysRenderer (line 31) | public LegacyGodraysRenderer ()
method Init (line 36) | public bool Init(Light inputLight, SkyNode inputParentSkyNode)
method EnableRenderingForFrame (line 205) | public void EnableRenderingForFrame()
method RenderingDone (line 225) | public void RenderingDone()
method OnPreCull (line 247) | void OnPreCull()
method OnPostRender (line 325) | public void OnPostRender()
method OnDestroy (line 333) | public void OnDestroy()
FILE: scatterer/Effects/Proland/Atmosphere/Preprocessing/AtmoPreprocessor.cs
class AtmoPreprocessor (line 38) | [KSPAddon(KSPAddon.Startup.Instantly, true)]
method Awake (line 43) | public void Awake()
method Start (line 65) | public void Start()
method InitMaterials (line 123) | private void InitMaterials()
method CalculateRt (line 138) | public static float CalculateRt(float inRg, float inHR, float inHM, Ve...
method DeleteCache (line 150) | public static void DeleteCache()
type AtmoHashData (line 156) | [StructLayout(LayoutKind.Sequential)]
method AtmoHashData (line 176) | public AtmoHashData(float rg, float rt, float averageGroundReflectan...
method GetAtmoHash (line 195) | public static string GetAtmoHash(float inRG, float inRT, Vector4 inBET...
method Generate (line 221) | public static void Generate(float inRG, float inRT, Vector4 inBETA_R, ...
method GenerateAndSaveAtmoCoroutine (line 230) | IEnumerator GenerateAndSaveAtmoCoroutine(float inRG, float inRT, Vecto...
method SetParameters (line 336) | void SetParameters(Material mat)
method Preprocess (line 360) | IEnumerator Preprocess(string assetPath)
method PackTextures (line 395) | private RenderTexture PackTextures(RenderTexture[] textures)
method GetPackedTexturesScaleAndOffsets (line 429) | public static List<Vector4> GetPackedTexturesScaleAndOffsets(List<Vect...
method CopyInscatterN (line 447) | IEnumerator CopyInscatterN(Stopwatch stopwatch)
method CopyIrradianceK1 (line 463) | private void CopyIrradianceK1()
method ComputeInscatterN (line 475) | IEnumerator ComputeInscatterN(Stopwatch stopwatch)
method ComputeInscatterS (line 490) | IEnumerator ComputeInscatterS(int scatteringOrder, Stopwatch stopwatch)
method ComputeIrradianceN (line 509) | private void ComputeIrradianceN(int scatteringOrder)
method CopyInscatter1 (line 522) | IEnumerator CopyInscatter1(Stopwatch stopwatch)
method CopyIrradiance (line 538) | private void CopyIrradiance()
method ComputeInscatter1 (line 548) | IEnumerator ComputeInscatter1(Stopwatch stopwatch)
method ComputeIrradiance (line 562) | private void ComputeIrradiance()
method ComputeTransmittance (line 569) | private void ComputeTransmittance()
method ProcessInTiles (line 575) | IEnumerator ProcessInTiles(Stopwatch stopwatch, Action<int, int> process)
method OnDestroy (line 587) | public void OnDestroy()
method ReleaseTextures (line 592) | void ReleaseTextures()
method SaveAsHalf (line 605) | void SaveAsHalf(RenderTexture rtex, string fileName)
FILE: scatterer/Effects/Proland/Atmosphere/SkyNode.cs
class SkyNode (line 13) | public class SkyNode: MonoBehaviour
method Init (line 124) | public void Init ()
method InitSkySphere (line 202) | void InitSkySphere ()
method InitScaledScattering (line 223) | public void InitScaledScattering ()
method OnPreRender (line 243) | public void OnPreRender()
method UpdateGraphicsUniforms (line 253) | public void UpdateGraphicsUniforms()
method UpdateNode (line 299) | public void UpdateNode ()
method SwitchEffectsScaled (line 363) | public void SwitchEffectsScaled()
method SwitchEffectsLocal (line 375) | public void SwitchEffectsLocal()
method SetUniforms (line 387) | public void SetUniforms (Material mat)
method UpdateEclipseAndRingUniforms (line 421) | private void UpdateEclipseAndRingUniforms(Material mat)
method SetOceanUniforms (line 437) | public void SetOceanUniforms (Material mat)
method InitPostprocessMaterialUniforms (line 457) | public void InitPostprocessMaterialUniforms (Material mat)
method UpdatePostProcessMaterialUniforms (line 523) | public void UpdatePostProcessMaterialUniforms (Material mat)
method InitUniforms (line 562) | public void InitUniforms (Material mat)
method InitGodraysUniforms (line 606) | private void InitGodraysUniforms(Material mat)
method InitEclipseAndRingUniforms (line 625) | private void InitEclipseAndRingUniforms(Material mat)
method TogglePostProcessing (line 646) | public void TogglePostProcessing()
method InitOrRequestPrecomputedAtmo (line 651) | void InitOrRequestPrecomputedAtmo ()
method LoadPrecomputedAtmo (line 678) | private void LoadPrecomputedAtmo(string atlasPath)
method ApplyAtmoFromUI (line 700) | public void ApplyAtmoFromUI(Vector4 inBETA_R, Vector4 inBETA_MSca, flo...
method ReinitAllMaterials (line 724) | void ReinitAllMaterials()
method InitOceanMaterialUniforms (line 762) | public void InitOceanMaterialUniforms()
method OnDestroy (line 779) | public void OnDestroy()
method LoadFromConfigNode (line 854) | public bool LoadFromConfigNode ()
method SaveToConfigNode (line 916) | public void SaveToConfigNode ()
method DisableStockSky (line 944) | void DisableStockSky ()
method DelayedTweakStockPlanet (line 958) | IEnumerator DelayedTweakStockPlanet()
method CheckOnDemandUnload (line 988) | IEnumerator CheckOnDemandUnload()
method TweakStockAtmosphere (line 1001) | public void TweakStockAtmosphere () //move to utils/scaledUtils etc
method TweakStockScaledTexture (line 1074) | public void TweakStockScaledTexture () //move to utils/scaledUtils etc
method RestoreStockScaledTexture (line 1122) | public void RestoreStockScaledTexture () //move to utils/scaledUtils etc
method TweakScaledMesh (line 1143) | public void TweakScaledMesh() //move to utils/scaledUtils etc
method InterpolateVariables (line 1172) | public void InterpolateVariables ()
method UpdateLightExtinctions (line 1211) | void UpdateLightExtinctions ()
method UpdateSunflareExtinctions (line 1237) | void UpdateSunflareExtinctions ()
method UpdateEclipseCasters (line 1261) | void UpdateEclipseCasters ()
method InitKopernicusRings (line 1288) | void InitKopernicusRings ()
method InitEVEClouds (line 1332) | public void InitEVEClouds()
method UpdateEVECloudMaterials (line 1376) | void UpdateEVECloudMaterials ()
method TogglePreserveCloudColors (line 1403) | public void TogglePreserveCloudColors()
method SetCelestialBodyName (line 1408) | public void SetCelestialBodyName(string name) {
method SetParentScaledTransform (line 1412) | public void SetParentScaledTransform(Transform parentTransform) {
method SetParentLocalTransform (line 1416) | public void SetParentLocalTransform(Transform parentTransform) {
method ReInitMaterialUniformsOnRenderTexturesLoss (line 1421) | public void ReInitMaterialUniformsOnRenderTexturesLoss()
method SetUnderwater (line 1429) | public void SetUnderwater(bool value)
FILE: scatterer/Effects/Proland/Atmosphere/Utils/AtmospherePQS.cs
class AtmospherePQS (line 13) | public class AtmospherePQS : PQSMod
method OnSphereActive (line 17) | public override void OnSphereActive()
method OnQuadCreate (line 21) | public override void OnQuadCreate(PQ quad)
method OnQuadDestroy (line 28) | public override void OnQuadDestroy(PQ quad)
method Apply (line 35) | public void Apply(PQS pqs)
method Cleanup (line 55) | public void Cleanup()
FILE: scatterer/Effects/Proland/Atmosphere/Utils/AtmosphereProjectorContainer.cs
class AtmosphereProjectorContainer (line 6) | public class AtmosphereProjectorContainer : GenericLocalAtmosphereContainer
method AtmosphereProjectorContainer (line 10) | public AtmosphereProjectorContainer (Material atmosphereMaterial, Tran...
method UpdateContainer (line 33) | public override void UpdateContainer ()
method Cleanup (line 40) | public override void Cleanup ()
FILE: scatterer/Effects/Proland/Atmosphere/Utils/AtmosphereUtils.cs
class AtmosphereUtils (line 15) | public static class AtmosphereUtils
method Limit (line 17) | private static float Limit(float r, float mu, float Rg, float Rt)
method OpticalDepth (line 37) | private static float OpticalDepth(float H, float r, float mu, float d,...
method OpticalDepthToBoundaries (line 48) | private static float OpticalDepthToBoundaries(float H, float r, float ...
method AnalyticTransmittance (line 58) | private static Color AnalyticTransmittance(float r, float mu, float Rt...
method GetTransmittanceUV (line 67) | private static Vector2 GetTransmittanceUV(float r, float mu, float Rt,...
method getOzoneExtinction (line 77) | public static Color getOzoneExtinction(float r, float mu, float Rt, fl...
method remapUVToAtlas (line 93) | private static Vector2 remapUVToAtlas(Vector2 uv, Vector2 oldTexDimens...
method getExtinction (line 110) | public static Color getExtinction(Vector3 camera, Vector3 viewdir, flo...
method Hdr (line 135) | public static Color Hdr(Color L, float exposure) {
method SimpleSkyirradiance (line 143) | public static Color SimpleSkyirradiance(Vector3 worldP, Vector3 worldS...
method SkyIrradiance (line 165) | private static Color SkyIrradiance(float r, float muS, float Rt, float...
method Irradiance (line 170) | private static Color Irradiance(float r, float muS, float Rt, float Rg...
method GetIrradianceUV (line 176) | private static Vector2 GetIrradianceUV(float r, float muS, float Rt, f...
method getEclipseShadow (line 183) | public static float getEclipseShadow(Vector3 worldPos, Vector3 worldLi...
method smoothstep (line 204) | public static float smoothstep(float a, float b, float x)
FILE: scatterer/Effects/Proland/Atmosphere/Utils/GenericLocalAtmosphereContainer.cs
class GenericLocalAtmosphereContainer (line 13) | public abstract class GenericLocalAtmosphereContainer
method GenericLocalAtmosphereContainer (line 22) | public GenericLocalAtmosphereContainer (Material atmosphereMaterial, T...
method SetActivated (line 28) | public void SetActivated (bool pEnabled)
method SetInScaledSpace (line 33) | public void SetInScaledSpace (bool pInScaledSpace)
method SetUnderwater (line 38) | public void SetUnderwater (bool pUnderwater)
method UpdateContainer (line 43) | public abstract void UpdateContainer ();
method Cleanup (line 45) | public abstract void Cleanup ();
FILE: scatterer/Effects/Proland/Atmosphere/Utils/ScaledScatteringContainer.cs
class ScaledScatteringContainer (line 9) | public class ScaledScatteringContainer
method ScaledScatteringContainer (line 19) | public ScaledScatteringContainer(Mesh planetMesh, Material material, T...
method ApplyNewMesh (line 58) | public void ApplyNewMesh(Mesh planetMesh)
method SwitchLocalMode (line 65) | public void SwitchLocalMode()
method SwitchScaledMode (line 77) | public void SwitchScaledMode()
method Cleanup (line 90) | public void Cleanup()
class ScaledScatteringScreenCopy (line 106) | public class ScaledScatteringScreenCopy : MonoBehaviour
method OnWillRenderObject (line 108) | void OnWillRenderObject()
FILE: scatterer/Effects/Proland/Atmosphere/Utils/ScreenSpaceScatteringContainer.cs
class ScreenSpaceScattering (line 17) | public class ScreenSpaceScattering : MonoBehaviour
method Init (line 28) | public void Init(bool inQuarterRes)
method SetActive (line 45) | public void SetActive(bool active)
method OnWillRenderObject (line 50) | void OnWillRenderObject()
method OnDestroy (line 90) | public void OnDestroy()
class ScatteringCommandBuffer (line 102) | public class ScatteringCommandBuffer : MonoBehaviour
method Initialize (line 121) | public void Initialize(bool inHasOcean, bool quarterRes)
method SetupQuarterResCommandBuffer (line 154) | void SetupQuarterResCommandBuffer(int width, int height)
method GetRenderDimensions (line 184) | void GetRenderDimensions(out int width, out int height)
method CreateRenderTextures (line 198) | void CreateRenderTextures (int width, int height)
method EnableForThisFrame (line 239) | public void EnableForThisFrame()
method OnPreRender (line 264) | void OnPreRender()
method OnPostRender (line 269) | void OnPostRender()
method OnDestroy (line 280) | public void OnDestroy ()
class ScreenSpaceScatteringContainer (line 307) | public class ScreenSpaceScatteringContainer : GenericLocalAtmosphereCont...
method ScreenSpaceScatteringContainer (line 311) | public ScreenSpaceScatteringContainer (Material atmosphereMaterial, Tr...
method UpdateContainer (line 339) | public override void UpdateContainer ()
method Cleanup (line 346) | public override void Cleanup ()
FILE: scatterer/Effects/Proland/Atmosphere/Utils/SkySphereContainer.cs
class SkySphereContainer (line 9) | public class SkySphereContainer
method SkySphereContainer (line 21) | public SkySphereContainer(float size, Material material, Transform inP...
method SwitchLocalMode (line 59) | public void SwitchLocalMode()
method SwitchScaledMode (line 74) | public void SwitchScaledMode()
method Resize (line 93) | public void Resize(float size)
method Cleanup (line 105) | public void Cleanup()
class SkySphereScreenCopy (line 120) | public class SkySphereScreenCopy : MonoBehaviour
method Init (line 123) | public void Init(Material material)
method OnWillRenderObject (line 128) | void OnWillRenderObject()
FILE: scatterer/Effects/Proland/Ocean/Caustics/CausticsLightRaysRenderer.cs
class CausticsLightRaysRenderer (line 10) | public class CausticsLightRaysRenderer : MonoBehaviour
method CausticsLightRaysRenderer (line 21) | public CausticsLightRaysRenderer ()
method Init (line 26) | public bool Init(string causticsTexturePath,Vector2 causticsLayer1Scal...
method OnWillRenderObject (line 69) | public void OnWillRenderObject()
method OnDestroy (line 101) | public void OnDestroy ()
class CausticsLightRaysCameraScript (line 114) | public class CausticsLightRaysCameraScript : MonoBehaviour
method CausticsLightRaysCameraScript (line 128) | public CausticsLightRaysCameraScript ()
method Init (line 133) | public void Init(OceanNode oceanNodeIn)
method EnableForThisFrame (line 206) | public void EnableForThisFrame()
method OnPostRender (line 226) | public void OnPostRender()
method CleanUp (line 235) | public void CleanUp()
FILE: scatterer/Effects/Proland/Ocean/Caustics/CausticsShadowMaskModulate.cs
class CausticsShadowMaskModulate (line 14) | public class CausticsShadowMaskModulate : MonoBehaviour
method CausticsShadowMaskModulate (line 23) | public CausticsShadowMaskModulate ()
method Init (line 27) | public bool Init(string causticsTexturePath,Vector2 causticsLayer1Scal...
method AddCommandBuffer (line 73) | public void AddCommandBuffer()
method UpdateCaustics (line 79) | public void UpdateCaustics()
method RemoveCommandBuffer (line 97) | public void RemoveCommandBuffer ()
method OnDestroy (line 104) | public void OnDestroy ()
FILE: scatterer/Effects/Proland/Ocean/FourierCPU.cs
class FourierCPU (line 7) | public class FourierCPU
method FourierCPU (line 14) | public FourierCPU(int size)
method FFT (line 28) | Vector4 FFT(Vector2 w, Vector4 input1, Vector4 input2)
method FFT (line 39) | Vector2 FFT(Vector2 w, Vector2 input1, Vector2 input2)
method PeformFFT (line 47) | public int PeformFFT(int startIdx, Vector4[,] data0, Vector4[,] data1,...
method PeformFFT (line 110) | public int PeformFFT(int startIdx, Vector4[,] data0, Vector4[,] data1)
method PeformFFT (line 173) | public int PeformFFT(int startIdx, Vector4[,] data0)
FILE: scatterer/Effects/Proland/Ocean/FourierGPU.cs
class FourierGPU (line 7) | public class FourierGPU
method FourierGPU (line 19) | public FourierGPU(int size)
method BitReverse (line 50) | int BitReverse(int i)
method Make1DTex (line 66) | Texture2D Make1DTex(int i)
method ComputeButterflyLookupTable (line 74) | void ComputeButterflyLookupTable()
method PeformFFT (line 115) | public int PeformFFT(RenderTexture[] data0, RenderTexture[] data1)
method PeformFFT (line 159) | public int PeformFFT(RenderTexture[] data0, RenderTexture[] data1, Ren...
FILE: scatterer/Effects/Proland/Ocean/GPUWaveInteractionHandler.cs
class GPUWaveInteractionHandler (line 8) | public class GPUWaveInteractionHandler
method GPUWaveInteractionHandler (line 27) | public GPUWaveInteractionHandler(float inMaxWaveInteractionShipAltitud...
method SetMaterialProperties (line 72) | public void SetMaterialProperties(Vector4 choppyness, Vector4 gridSize...
method UpdateInteractions (line 82) | public float UpdateInteractions(double cameraHeight, float waterHeight...
method UpdateHeights (line 88) | private float UpdateHeights(double cameraHeight, float waterHeightAtCa...
method UpdateRecoveryButton (line 107) | private void UpdateRecoveryButton()
method BuildPartsPositionsList (line 133) | void BuildPartsPositionsList(List<Vector2> positionsList, List<PartBuo...
method AddCameraPosition (line 154) | void AddCameraPosition(List<Vector2> positionsList, double cameraHeigh...
method ApplyWaterLevelHeights (line 163) | float ApplyWaterLevelHeights(float waterHeightAtCameraPosition)
method RequestAsyncWaterLevelHeights (line 195) | void RequestAsyncWaterLevelHeights(List<Vector2> positionsList)
method OnCompletePartHeightsReadback (line 214) | void OnCompletePartHeightsReadback(AsyncGPUReadbackRequest request)
method ForcePauseMenuSaving (line 229) | public void ForcePauseMenuSaving()
method UnPause (line 243) | public void UnPause()
method Cleanup (line 248) | public void Cleanup()
FILE: scatterer/Effects/Proland/Ocean/OceanCameraUpdateHook.cs
class OceanCameraUpdateHook (line 6) | public class OceanCameraUpdateHook : MonoBehaviour
method OnWillRenderObject (line 14) | public void OnWillRenderObject()
method updateCameraSpecificUniforms (line 44) | public void updateCameraSpecificUniforms (Material oceanMaterial, Came...
method OnDestroy (line 260) | public void OnDestroy()
FILE: scatterer/Effects/Proland/Ocean/OceanFFTcpu.cs
class OceanFFTcpu (line 43) | public class OceanFFTcpu: OceanNode {
method GetMaxSlopeVariance (line 99) | public override float GetMaxSlopeVariance() {
method Init (line 126) | public override void Init(ProlandManager manager)
method GetSlopeVariances (line 206) | Vector2 GetSlopeVariances(Vector2 k, float A, float B, float C, float ...
method ComputeVariance (line 217) | Vector2 ComputeVariance(float slopeVarianceDelta, float[] inSpectrum01...
method InitWaveSpectrum (line 251) | protected virtual void InitWaveSpectrum(float t) {
method InitWaveSpectrumCPU (line 271) | void InitWaveSpectrumCPU(float time)
method UpdateNode (line 368) | public override void UpdateNode() {
method FixedUpdate (line 459) | public void FixedUpdate()
method OnDestroy (line 485) | public override void OnDestroy()
method CreateRenderTextures (line 509) | protected virtual void CreateRenderTextures() {
method CreateBuffer (line 556) | protected void CreateBuffer(ref RenderTexture[] tex, RenderTextureForm...
method CreateMap (line 567) | protected void CreateMap(ref RenderTexture map, RenderTextureFormat fo...
method sqr (line 577) | float sqr(float x) {
method omega (line 581) | float omega(float k) {
method Spectrum (line 585) | float Spectrum(float kx, float ky, bool omnispectrum) {
method GetSpectrumSample (line 638) | Vector2 GetSpectrumSample(float i, float j, float lengthScale, float k...
method GetSlopeVariance (line 658) | float GetSlopeVariance(float kx, float ky, Vector2 spectrumSample) {
method GenerateWavesSpectrum (line 666) | void GenerateWavesSpectrum() {
method CreateWTable (line 800) | void CreateWTable() {
method CreateWTableForCPU (line 840) | void CreateWTableForCPU()
method GetSpectrum (line 873) | Vector2 GetSpectrum(float t, float w, float s0x, float s0y, float s0cx...
method COMPLEX (line 880) | Vector2 COMPLEX(Vector2 z)
method onThreadsDone (line 885) | public virtual void onThreadsDone()
method CommitResults (line 890) | void CommitResults(ref Vector4[,] data, ref Vector4[,] output)
method RunThreaded (line 906) | void RunThreaded(object o)
method RunThreaded1 (line 922) | void RunThreaded1(object o)
method RunThreaded2 (line 931) | void RunThreaded2(object o)
method RunThreaded3 (line 942) | void RunThreaded3(object o)
method RunThreaded4 (line 953) | void RunThreaded4(object o)
method RunThreaded5 (line 965) | void RunThreaded5(object o)
method ComputeButterflyLookupTable (line 977) | void ComputeButterflyLookupTable()
method BitReverse (line 1026) | int BitReverse(int i)
method OnGUI (line 1042) | void OnGUI(){
method Index (line 1052) | public void Index(double x, int sx, out int ix0, out int ix1)
method GetUsingBilinearFiltering (line 1078) | public void GetUsingBilinearFiltering(float x, float y, float[] v, Vec...
method SampleHeight (line 1128) | public float SampleHeight(Vector3 worldPos)
method SampleDisplacement (line 1163) | public Vector2 SampleDisplacement(Vector3 worldPos)
method findHeight (line 1201) | public float findHeight(Vector3 worldPos, float precision)
FILE: scatterer/Effects/Proland/Ocean/OceanFFTgpu.cs
class OceanFFTgpu (line 36) | public class OceanFFTgpu: OceanNode {
method GetMaxSlopeVariance (line 87) | public override float GetMaxSlopeVariance()
method Awake (line 102) | public void Awake()
method Init (line 107) | public override void Init(ProlandManager manager)
method GetSlopeVariances (line 170) | Vector2 GetSlopeVariances(Vector2 k, float A, float B, float C, float ...
method ComputeVariance (line 180) | Vector2 ComputeVariance(float slopeVarianceDelta, float[] inSpectrum01...
method InitWaveSpectrum (line 214) | protected virtual void InitWaveSpectrum(float t)
method UpdateNode (line 236) | public override void UpdateNode()
method OnDestroy (line 288) | public override void OnDestroy()
method CreateRenderTextures (line 317) | protected virtual void CreateRenderTextures()
method CreateBuffer (line 376) | protected void CreateBuffer(ref RenderTexture[] tex, RenderTextureForm...
method CreateMap (line 389) | protected void CreateMap(ref RenderTexture map, RenderTextureFormat fo...
method sqr (line 399) | float sqr(float x) {
method omega (line 403) | float omega(float k)
method Spectrum (line 408) | float Spectrum(float kx, float ky, bool omnispectrum)
method GetSpectrumSample (line 465) | Vector2 GetSpectrumSample(float i, float j, float lengthScale, float k...
method GetSlopeVariance (line 486) | float GetSlopeVariance(float kx, float ky, Vector2 spectrumSample)
method GenerateWavesSpectrum (line 495) | void GenerateWavesSpectrum()
method CreateWTable (line 638) | void CreateWTable()
method GetSpectrum (line 674) | Vector2 GetSpectrum(float t, float w, float s0x, float s0y, float s0cx...
method COMPLEX (line 681) | Vector2 COMPLEX(Vector2 z)
method BitReverse (line 686) | int BitReverse(int i)
method FixedUpdate (line 703) | public void FixedUpdate()
FILE: scatterer/Effects/Proland/Ocean/OceanNode.cs
class OceanNode (line 43) | public abstract class OceanNode: MonoBehaviour
method GetMaxSlopeVariance (line 112) | public abstract float GetMaxSlopeVariance ();
method Init (line 141) | public virtual void Init (ProlandManager manager)
method UpdateNode (line 217) | public virtual void UpdateNode ()
method updateNonCameraSpecificUniforms (line 242) | public void updateNonCameraSpecificUniforms (Material oceanMaterial)
method OnPreCull (line 257) | public void OnPreCull()
method CreateProjectedGridMeshes (line 265) | void CreateProjectedGridMeshes (bool use32BitIndexMesh)
method InitOceanMaterial (line 324) | void InitOceanMaterial ()
method InitUnderwaterMaterial (line 379) | void InitUnderwaterMaterial ()
method toggleUnderwaterMode (line 392) | void toggleUnderwaterMode()
method OnDestroy (line 414) | public virtual void OnDestroy ()
method applyUnderwaterDimming (line 459) | public void applyUnderwaterDimming () //called OnPostRender of scaledS...
method saveToConfigNode (line 478) | public void saveToConfigNode ()
method loadFromConfigNode (line 507) | public void loadFromConfigNode ()
method setWaterMeshrenderersEnabled (line 546) | public void setWaterMeshrenderersEnabled (bool enabled)
FILE: scatterer/Effects/Proland/Ocean/OceanRenderingHook.cs
class OceanRenderingHook (line 7) | public class OceanRenderingHook : MonoBehaviour
method OceanRenderingHook (line 11) | public OceanRenderingHook ()
method OnWillRenderObject (line 22) | void OnWillRenderObject()
method OnDestroy (line 64) | public void OnDestroy ()
class OceanCommandBuffer (line 74) | public class OceanCommandBuffer : MonoBehaviour
method Initialize (line 90) | public void Initialize()
method RecreateCommandBuffer (line 105) | private void RecreateCommandBuffer()
method EnableForThisFrame (line 165) | public void EnableForThisFrame()
method OnPostRender (line 179) | void OnPostRender()
method OnDestroy (line 188) | public void OnDestroy ()
FILE: scatterer/Effects/Proland/Ocean/OceanWhiteCaps.cs
class OceanWhiteCaps (line 8) | public class OceanWhiteCaps: OceanFFTgpu {
method Init (line 20) | public override void Init(ProlandManager manager)
method CreateRenderTextures (line 43) | protected override void CreateRenderTextures()
method OnDestroy (line 61) | public override void OnDestroy()
method InitWaveSpectrum (line 76) | protected override void InitWaveSpectrum(float t)
method UpdateNode (line 86) | public override void UpdateNode() {
FILE: scatterer/Effects/Proland/Ocean/UnderwaterDimmingHook.cs
class UnderwaterDimmingHook (line 5) | public class UnderwaterDimmingHook : MonoBehaviour
method OnPostRender (line 9) | public void OnPostRender()
FILE: scatterer/Effects/Proland/Ocean/Utils/CBUtility.cs
class CBUtility (line 8) | static public class CBUtility
method CreateArgBuffer (line 11) | public static ComputeBuffer CreateArgBuffer(int vertexCountPerInstance...
method GetVertexCountPerInstance (line 20) | public static int GetVertexCountPerInstance(ComputeBuffer buffer)
method ReadFromRenderTexture (line 43) | public static void ReadFromRenderTexture(RenderTexture tex, int channe...
method ReadSingleFromRenderTexture (line 97) | public static void ReadSingleFromRenderTexture(RenderTexture tex, floa...
method WriteIntoRenderTexture (line 153) | public static void WriteIntoRenderTexture(RenderTexture tex, int chann...
method WriteIntoRenderTexture (line 207) | public static void WriteIntoRenderTexture(RenderTexture tex, int chann...
method LoadRawFile (line 267) | private static void LoadRawFile(string path, float[] map, int size)
FILE: scatterer/Effects/Proland/Ocean/Utils/FakeOceanPQS.cs
class FakeOceanPQS (line 10) | public class FakeOceanPQS : PQSMod
method StopSphereCoroutine (line 15) | IEnumerator StopSphereCoroutine()
method OnSphereStarted (line 27) | public override void OnSphereStarted()
method Apply (line 36) | public void Apply(PQS pqs)
method Remove (line 58) | public void Remove()
FILE: scatterer/Effects/Proland/Ocean/Utils/OceanUtils.cs
class OceanUtils (line 15) | public static class OceanUtils
method removeStockOceansIfNotDone (line 19) | public static void removeStockOceansIfNotDone()
method removeStockOceans (line 28) | private static void removeStockOceans()
method restoreOceansIfNeeded (line 68) | public static void restoreOceansIfNeeded()
FILE: scatterer/Effects/Proland/Ocean/Utils/RTUtility.cs
class RTUtility (line 6) | static public class RTUtility
method MultiTargetBlit (line 8) | static public void MultiTargetBlit(RenderTexture[] des, Material mat, ...
method MultiTargetBlit (line 32) | static public void MultiTargetBlit(RenderBuffer[] des_rb, RenderBuffer...
method Swap (line 51) | static public void Swap(RenderTexture[] texs)
method ClearColor (line 58) | static public void ClearColor(RenderTexture[] texs)
FILE: scatterer/Effects/Proland/Ocean/Utils/WriteFloat.cs
class WriteFloat (line 33) | public class WriteFloat
method WriteFloat (line 62) | public WriteFloat(int w, int h)
method Resize (line 98) | public void Resize(int w, int h)
method WriteIntoRenderTexture (line 117) | public void WriteIntoRenderTexture(RenderTexture tex, int channels, fl...
method WriteIntoRenderTexture (line 155) | public void WriteIntoRenderTexture(RenderTexture tex, int channels, st...
method WriteIntoRenderTexture16bit (line 199) | public void WriteIntoRenderTexture16bit(RenderTexture tex, int channel...
method Write (line 236) | void Write(int w, int h, int c, float min, float max, RenderTexture te...
method EncodeFloatRGBA (line 283) | float[] EncodeFloatRGBA(float val)
method LoadData (line 308) | void LoadData(float[] data, Color[] map, int size, ref float min, ref ...
method LoadRawFile (line 327) | bool LoadRawFile(string path, Color[] map, int size, ref float min, re...
method LoadRawFile16 (line 374) | bool LoadRawFile16(string path, Color[] map, int size, ref float min, ...
method PackData (line 420) | void PackData(Color[] map, int size, float min, float max, float[] data)
method OnDestroy (line 436) | public void OnDestroy ()
FILE: scatterer/Effects/Proland/ProlandManager.cs
class ProlandManager (line 21) | public class ProlandManager: MonoBehaviour
method Init (line 53) | public void Init(ScattererCelestialBody scattererBody)
method findLight (line 121) | Light findLight (string sunCelestialBody)
method findScaledLight (line 131) | Light findScaledLight (string sunCelestialBody)
method FindEclipseCasters (line 141) | void FindEclipseCasters (ScattererCelestialBody scattererBody)
method FindPlanetShineSources (line 156) | void FindPlanetShineSources (ScattererCelestialBody scattererBody)
method InitSkyAndOceanNodes (line 175) | void InitSkyAndOceanNodes ()
method Update (line 200) | public void Update()
method FindSecondarySuns (line 215) | void FindSecondarySuns (ScattererCelestialBody scattererBody)
method InitSecondarySuns (line 229) | void InitSecondarySuns ()
method UpdateSecondarySuns (line 245) | void UpdateSecondarySuns ()
method OnDestroy (line 269) | public void OnDestroy()
method reBuildOcean (line 286) | public void reBuildOcean()
method getDirectionToMainSun (line 306) | public Vector3 getDirectionToMainSun()
method getDirectionToCelestialBody (line 316) | public Vector3 getDirectionToCelestialBody(CelestialBody target)
method GetRadius (line 321) | public double GetRadius() {
method GetOceanNode (line 325) | public OceanFFTgpu GetOceanNode() {
method GetSkyNode (line 329) | public SkyNode GetSkyNode() {
method getIntensityModulatedSunColor (line 333) | public Color getIntensityModulatedSunColor()
FILE: scatterer/Effects/ScattererCelestialBodiesManager.cs
class ScattererCelestialBodiesManager (line 9) | public class ScattererCelestialBodiesManager
method ScattererCelestialBodiesManager (line 19) | public ScattererCelestialBodiesManager ()
method Init (line 23) | public void Init()
method Update (line 28) | public void Update()
method UpdateProlandManagers (line 33) | void UpdateProlandManagers ()
method findCelestialBodies (line 71) | void findCelestialBodies()
method loadEffectsForBody (line 111) | void loadEffectsForBody (ScattererCelestialBody scattererCelestialBody)
method updateBody (line 156) | ScattererCelestialBody updateBody (ScattererCelestialBody scattererCel...
method unloadEffectsForBody (line 167) | void unloadEffectsForBody(ScattererCelestialBody scattererCelestialBody)
method Cleanup (line 176) | public void Cleanup()
FILE: scatterer/Effects/SunFlare/SunFlare.cs
class SunFlare (line 20) | public class SunFlare : MonoBehaviour
method start (line 59) | public void start()
method updateProperties (line 132) | public void updateProperties()
method Update (line 235) | public void Update()
method ClearExtinction (line 265) | public void ClearExtinction()
method OnDestroy (line 276) | public void OnDestroy()
method Configure (line 297) | public void Configure(CelestialBody source, string sourceName, Transfo...
method LoadSettings (line 305) | public void LoadSettings ()
method LoadSettingsFromConfigNode (line 310) | void LoadSettingsFromConfigNode (ConfigNode node)
method ApplyFromUI (line 343) | public void ApplyFromUI(ConfigNode node)
method ApplySunflareConfig (line 350) | void ApplySunflareConfig ()
method ApplySyntaxV1FlareConfig (line 368) | void ApplySyntaxV1FlareConfig ()
method ApplySyntaxV2FlareConfig (line 423) | void ApplySyntaxV2FlareConfig ()
method SetGhostParameters (line 478) | void SetGhostParameters (string shaderParam1, string shaderParam2, Gho...
method LoadAndSetTexture (line 494) | void LoadAndSetTexture (string textureName, string path)
FILE: scatterer/Effects/SunFlare/SunflareCameraHook.cs
class SunflareCameraHook (line 16) | public class SunflareCameraHook : MonoBehaviour
method SunflareCameraHook (line 21) | public SunflareCameraHook ()
method OnPreRender (line 25) | public void OnPreRender()
method OnPostRender (line 35) | public void OnPostRender()
FILE: scatterer/Effects/SunFlare/SunflareManager.cs
class SunflareManager (line 9) | public class SunflareManager : MonoBehaviour
method SunflareManager (line 13) | public SunflareManager ()
method Init (line 17) | public void Init()
method InitCoroutine (line 23) | IEnumerator InitCoroutine()
method UpdateFlares (line 54) | public void UpdateFlares()
method OnDestroy (line 62) | public void OnDestroy()
method DisableStockSunflares (line 75) | void DisableStockSunflares ()
method ReenableStockSunflares (line 90) | void ReenableStockSunflares ()
FILE: scatterer/Effects/SunFlare/SunflareSettingsV1.cs
class SunflareSettingsV1 (line 10) | public class SunflareSettingsV1
method SunflareSettingsV1 (line 46) | public SunflareSettingsV1 ()
FILE: scatterer/Effects/SunFlare/SunflareSettingsV2.cs
class SunflareSettingsV2 (line 10) | public class SunflareSettingsV2
method SunflareSettingsV2 (line 18) | public SunflareSettingsV2 ()
method Load (line 22) | public void Load(ConfigNode node)
class FlareSettings (line 40) | public class FlareSettings
method Load (line 47) | public void Load(ConfigNode node)
class GhostSettings (line 57) | public class GhostSettings
method Load (line 63) | public void Load(ConfigNode node)
class GhostInstanceSettings (line 71) | public class GhostInstanceSettings
FILE: scatterer/Effects/SunlightModulator/SunlightModulator.cs
class SunlightModulatorsManager (line 6) | public class SunlightModulatorsManager
method ModulateByAttenuation (line 8) | public void ModulateByAttenuation(Light light, float inAttenuation)
method ModulateByColor (line 13) | public void ModulateByColor(Light light, Color inColor)
method GetLastModulateColor (line 18) | public Color GetLastModulateColor(Light light)
method GetOriginalLightColor (line 23) | public Color GetOriginalLightColor(Light light)
method FindOrCreateModulator (line 28) | private SunlightModulator FindOrCreateModulator(Light light)
method Cleanup (line 44) | public void Cleanup()
class SunlightModulator (line 53) | public class SunlightModulator : MonoBehaviour
method Init (line 64) | public void Init(Light light)
method OnPreCull (line 73) | public void OnPreCull() //added to scaledSpaceCamera, called before an...
method storeOriginalColor (line 78) | private void storeOriginalColor() //may not be necessary every frame?
method getOriginalColor (line 87) | public Color getOriginalColor()
method ModulateByAttenuation (line 92) | public void ModulateByAttenuation(float inAttenuation) //called by sky...
method ModulateByColor (line 98) | public void ModulateByColor(Color inColor)
method applyColorModulation (line 104) | public void applyColorModulation() //called by hook on farCamera onPr...
method restoreOriginalColor (line 114) | public void restoreOriginalColor() //called by hook on nearCamera/IVA...
method OnDestroy (line 123) | public void OnDestroy()
FILE: scatterer/Effects/SunlightModulator/SunlightModulatorPostRenderHook.cs
class SunlightModulatorPostRenderHook (line 15) | public class SunlightModulatorPostRenderHook : MonoBehaviour
method SunlightModulatorPostRenderHook (line 19) | public SunlightModulatorPostRenderHook ()
method Init (line 23) | public void Init(SunlightModulator target)
method OnPostRender (line 28) | public void OnPostRender()
method OnDestroy (line 33) | public void OnDestroy()
FILE: scatterer/Effects/SunlightModulator/SunlightModulatorPreRenderHook.cs
class SunlightModulatorPreRenderHook (line 15) | public class SunlightModulatorPreRenderHook : MonoBehaviour
method SunlightModulatorPreRenderHook (line 19) | public SunlightModulatorPreRenderHook ()
method Init (line 23) | public void Init(SunlightModulator target)
method OnPreCull (line 28) | public void OnPreCull() //needs to be onPreCull, onPreRender is too late
method OnDestroy (line 33) | public void OnDestroy()
FILE: scatterer/Effects/Tonemapping/HableCurve.cs
class HableCurve (line 15) | public class HableCurve
class Segment (line 17) | class Segment
method Eval (line 26) | public float Eval(float x)
type DirectParams (line 40) | struct DirectParams
method HableCurve (line 76) | public HableCurve()
method Eval (line 89) | public float Eval(float x)
method Exp2 (line 104) | public static float Exp2(float x)
method Init (line 124) | public void Init(float toeStrength, float toeLength, float shoulderStr...
method SetMaterialParams (line 177) | public void SetMaterialParams(Material mat)
method InitSegments (line 200) | void InitSegments(DirectParams srcParams)
method SolveAB (line 316) | void SolveAB(out float lnA, out float B, float x0, float y0, float m)
method AsSlopeIntercept (line 323) | void AsSlopeIntercept(out float m, out float b, float x0, float x1, fl...
method EvalDerivativeLinearGamma (line 338) | float EvalDerivativeLinearGamma(float m, float b, float g, float x)
class Uniforms (line 347) | public class Uniforms
method Uniforms (line 351) | internal Uniforms(HableCurve parent)
FILE: scatterer/GUI/AtmoGUI.cs
class AtmoGUI (line 15) | public class AtmoGUI
method AtmoGUI (line 41) | public AtmoGUI ()
method drawAtmoGUI (line 45) | public void drawAtmoGUI(int selectedPlanet)
method generate (line 209) | void generate()
method loadSettingsForPlanet (line 230) | public void loadSettingsForPlanet(int selectedPlanet)
method GUIvector3NoButton (line 259) | public void GUIvector3NoButton (string label, ref Vector3 target)
FILE: scatterer/GUI/ConfigPointGUI.cs
class ConfigPointGUI (line 6) | public class ConfigPointGUI
method ConfigPointGUI (line 44) | public ConfigPointGUI ()
method DrawConfigPointGUI (line 48) | public void DrawConfigPointGUI (int selectedPlanet)
method loadSettingsForPlanet (line 273) | public void loadSettingsForPlanet(int selectedPlanet)
method getSettingsFromSkynode (line 283) | public void getSettingsFromSkynode (int selectedPlanet)
method loadConfigPoint (line 324) | public void loadConfigPoint (int point, int selectedPlanet)
method GUIfloat (line 342) | public void GUIfloat (string label, ref float local, ref float target)
method GUIColorNoButton (line 354) | public void GUIColorNoButton (string label, ref Color target)
FILE: scatterer/GUI/GUIhandler.cs
class GUIhandler (line 6) | public class GUIhandler: MonoBehaviour
type PlanetSettingsTabs (line 18) | enum PlanetSettingsTabs
method GUIhandler (line 32) | public GUIhandler ()
method Init (line 36) | public void Init()
method UpdateGUIvisible (line 48) | public void UpdateGUIvisible()
method DrawGui (line 63) | public void DrawGui()
method DrawScattererWindow (line 73) | public void DrawScattererWindow (int windowId)
method DrawPlanetSelectionHeader (line 160) | void DrawPlanetSelectionHeader ()
method DrawSharedFooterGUI (line 201) | void DrawSharedFooterGUI ()
method LoadPlanet (line 252) | public void LoadPlanet(int planetIndex)
FILE: scatterer/GUI/MainOptionsGUI.cs
class MainOptionsGUI (line 7) | public class MainOptionsGUI
type MainMenuTabs (line 9) | enum MainMenuTabs
type IndividualSettingsTabs (line 15) | enum IndividualSettingsTabs
method MainOptionsGUI (line 33) | public MainOptionsGUI ()
method DrawOptionsMenu (line 37) | public void DrawOptionsMenu ()
method DrawQualityPresets (line 77) | void DrawQualityPresets ()
method InitPresets (line 105) | private void InitPresets()
method DrawIndividualSettings (line 119) | void DrawIndividualSettings ()
method GUIvector3NoButton (line 406) | public void GUIvector3NoButton (string label, ref Vector3 target)
FILE: scatterer/GUI/ModularGUI/AbstractGUIModule.cs
class AbstractGUIModule (line 15) | public abstract class AbstractGUIModule
method AbstractGUIModule (line 19) | public AbstractGUIModule ()
method RenderGUI (line 23) | public abstract void RenderGUI ();
FILE: scatterer/GUI/ModularGUI/GUIModuleBool.cs
class GUIModuleBool (line 13) | public class GUIModuleBool : AbstractGUIModule
method GUIModuleBool (line 21) | public GUIModuleBool (string label, object targetObject, string fieldN...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleFloat.cs
class GUIModuleFloat (line 13) | public class GUIModuleFloat : AbstractGUIModule
method GUIModuleFloat (line 21) | public GUIModuleFloat (string label, object targetObject, string field...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleInt.cs
class GUIModuleInt (line 13) | public class GUIModuleInt : AbstractGUIModule
method GUIModuleInt (line 21) | public GUIModuleInt (string label, object targetObject, string fieldName)
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleLabel.cs
class GUIModuleLabel (line 13) | public class GUIModuleLabel : AbstractGUIModule
method GUIModuleLabel (line 17) | public GUIModuleLabel (string label)
method RenderGUI (line 22) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleString.cs
class GUIModuleString (line 13) | public class GUIModuleString : AbstractGUIModule
method GUIModuleString (line 21) | public GUIModuleString (string label, object targetObject, string fiel...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleVector2.cs
class GUIModuleVector2 (line 13) | public class GUIModuleVector2 : AbstractGUIModule
method GUIModuleVector2 (line 21) | public GUIModuleVector2 (string label, object targetObject, string fie...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleVector3.cs
class GUIModuleVector3 (line 13) | public class GUIModuleVector3 : AbstractGUIModule
method GUIModuleVector3 (line 21) | public GUIModuleVector3 (string label, object targetObject, string fie...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/GUIModuleVector4.cs
class GUIModuleVector4 (line 13) | public class GUIModuleVector4 : AbstractGUIModule
method GUIModuleVector4 (line 21) | public GUIModuleVector4 (string label, object targetObject, string fie...
method RenderGUI (line 32) | public override void RenderGUI()
FILE: scatterer/GUI/ModularGUI/ModularGUI.cs
class ModularGUI (line 17) | public class ModularGUI
method ModularGUI (line 22) | public ModularGUI ()
method RenderGUI (line 27) | public void RenderGUI()
method AddModule (line 35) | public void AddModule(AbstractGUIModule module)
method ClearModules (line 40) | public void ClearModules()
FILE: scatterer/GUI/OceanGUI.cs
class OceanGUI (line 15) | public class OceanGUI
method OceanGUI (line 20) | public OceanGUI ()
method buildOceanGUI (line 24) | public void buildOceanGUI(int selectedPlanet)
method drawOceanGUI (line 79) | public void drawOceanGUI (int selectedPlanet)
FILE: scatterer/GUI/SunflareGUI.cs
class SunflareGUI (line 15) | public class SunflareGUI
method SunflareGUI (line 25) | public SunflareGUI ()
method InitSunflareGUI (line 29) | public void InitSunflareGUI()
method DrawSunflareGUI (line 39) | public void DrawSunflareGUI()
FILE: scatterer/GUI/ToolbarButton.cs
class ToolbarButton (line 8) | [KSPAddon(KSPAddon.Startup.EveryScene, false)]
method Awake (line 23) | private void Awake()
method Start (line 43) | void Start()
method AddToolbarButton (line 52) | void AddToolbarButton()
method ShowToolbarGUI (line 64) | public void ShowToolbarGUI()
method HideToolbarGUI (line 69) | public void HideToolbarGUI()
method OnDestroy (line 74) | void OnDestroy ()
method Dummy (line 80) | void Dummy()
method MouseIsInRect (line 83) | public static bool MouseIsInRect(Rect rect)
method MouseGUIPos (line 88) | public static Vector2 MouseGUIPos()
FILE: scatterer/OldShaders/scattererShaders/Assets/Editor/ExportAssetBundle.cs
class CreateAssetBundles (line 11) | public class CreateAssetBundles
method BuildAllAssetBundles (line 13) | [MenuItem ("Assets/Build AssetBundles for release")]
method BuildOpenGL (line 22) | [MenuItem ("Assets/Build AssetBundles for local openGL")]
method BuildDx11 (line 31) | [MenuItem ("Assets/Build AssetBundles for local dx11")]
method BuildBundles (line 41) | static void BuildBundles (BuildTarget[] platforms, string[] platformExts)
FILE: scatterer/OldShaders/scattererShaders/Assets/Editor/KSPCurveEditor.cs
class KSPCurveEditor (line 12) | public class KSPCurveEditor : EditorWindow
method Init (line 14) | [MenuItem("KSP/Curve Editor")]
method OnGUI (line 27) | void OnGUI()
method HashAnimationCurve (line 136) | static float HashAnimationCurve(AnimationCurve c)
method Update (line 148) | void Update()
method CurveToString (line 181) | string CurveToString()
method StringToCurve (line 198) | void StringToCurve(string data)
method UpdateCurve (line 232) | void UpdateCurve()
class FloatString4 (line 270) | public class FloatString4 : IComparable<FloatString4>
method CompareTo (line 276) | public int CompareTo(FloatString4 other)
method FloatString4 (line 282) | public FloatString4()
method FloatString4 (line 289) | public FloatString4(float x, float y, float z = 0, float w = 0, bool t...
method UpdateFloats (line 296) | public void UpdateFloats()
method UpdateStrings (line 306) | public void UpdateStrings()
FILE: scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/ModulateShadowMask.cs
class ModulateShadowMask (line 6) | public class ModulateShadowMask : MonoBehaviour
method ModulateShadowMask (line 16) | public ModulateShadowMask ()
method Awake (line 21) | public void Awake()
method Update (line 36) | public void Update()
method OnDestroy (line 42) | public void OnDestroy ()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Bootstrap.cs
class Bootstrap (line 7) | [InitializeOnLoad]
method Bootstrap (line 12) | static Bootstrap()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabAnalytics.cs
class CollabAnalytics (line 5) | internal static class CollabAnalytics
type CollabUserActionAnalyticsEvent (line 7) | [Serializable]
method SendUserAction (line 14) | public static void SendUserAction(string category, string action)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabHistoryWindow.cs
class CollabHistoryWindow (line 20) | internal class CollabHistoryWindow : EditorWindow, ICollabHistoryWindow
method ShowHistoryWindow (line 32) | [MenuItem("Window/Asset Management/Collab History", false, 1)]
method ValidateShowHistoryWindow (line 38) | [MenuItem("Window/Asset Management/Collab History", true)]
method CollabHistoryWindow (line 55) | public CollabHistoryWindow()
method OnEnable (line 60) | public void OnEnable()
method OnDisable (line 72) | public void OnDisable()
method AddStyleSheetPath (line 93) | private void AddStyleSheetPath(VisualElement root, string path)
method SetupGUI (line 103) | public void SetupGUI()
method UpdateState (line 182) | public void UpdateState(HistoryState state, bool force)
method UpdateRevisions (line 202) | public void UpdateRevisions(IEnumerable<RevisionData> datas, string ti...
method UpdateHistoryView (line 304) | void UpdateHistoryView(VisualElement history)
method NoSeatClick (line 308) | void NoSeatClick()
method SignInClick (line 325) | void SignInClick()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarButton.cs
class CollabToolbarButton (line 11) | internal class CollabToolbarButton : SubToolbar, IDisposable
type CollabToolbarState (line 14) | enum CollabToolbarState
class CollabToolbarContent (line 27) | private class CollabToolbarContent
method CollabToolbarContent (line 58) | public CollabToolbarContent(CollabToolbarState state, string iconNam...
method CollabToolbarButton (line 98) | public CollabToolbarButton()
method OnUnityConnectUserStateChanged (line 118) | void OnUnityConnectUserStateChanged(UserInfo state)
method OnUnityConnectStateChanged (line 123) | void OnUnityConnectStateChanged(ConnectInfo state)
method OnGUI (line 128) | public override void OnGUI(Rect rect)
method GUIToScreenRect (line 133) | Rect GUIToScreenRect(Rect guiRect)
method ShowPopup (line 141) | void ShowPopup(Rect rect)
method DoCollabDropDown (line 156) | void DoCollabDropDown(Rect rect)
method OnCollabStateChanged (line 186) | public void OnCollabStateChanged(CollabInfo info)
method UpdateCollabToolbarState (line 191) | public void UpdateCollabToolbarState()
method ReserveRight (line 264) | void ReserveRight(float width, ref Rect pos)
method ReserveBottom (line 269) | void ReserveBottom(float height, ref Rect pos)
method GetCollabButton (line 274) | ButtonWithAnimatedIconRotation GetCollabButton()
method Dispose (line 287) | public void Dispose()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarWindow.cs
class WebViewStatic (line 8) | [InitializeOnLoad]
method GetWebView (line 14) | static public WebView GetWebView()
method SetWebView (line 19) | static public void SetWebView(WebView webView)
class CollabToolbarWindow (line 25) | [InitializeOnLoad]
method CloseToolbar (line 44) | public static void CloseToolbar()
method ShowToolbarWindow (line 50) | [MenuItem("Window/Asset Management/Collab Toolbar", false /*IsValidate...
method ValidateShowToolbarWindow (line 62) | [MenuItem("Window/Asset Management/Collab Toolbar", true /*IsValidateF...
method IsVisible (line 68) | public static bool IsVisible()
method ShowCenteredAtPosition (line 73) | public static bool ShowCenteredAtPosition(Rect buttonRect)
method OnReceiveTitle (line 99) | public void OnReceiveTitle(string title)
method OnInitScripting (line 104) | public new void OnInitScripting()
method OnEnable (line 109) | public override void OnEnable()
method OnDisable (line 118) | internal new void OnDisable()
method OnDestroy (line 131) | public new void OnDestroy()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Presenters/CollabHistoryPresenter.cs
class CollabHistoryPresenter (line 7) | internal class CollabHistoryPresenter
method CollabHistoryPresenter (line 25) | public CollabHistoryPresenter(ICollabHistoryWindow window, ICollabHist...
method OnWindowEnabled (line 35) | public void OnWindowEnabled()
method OnWindowDisabled (line 67) | public void OnWindowDisabled()
method OnConnectStateChanged (line 76) | private void OnConnectStateChanged(ConnectInfo state)
method OnCollabStateChanged (line 83) | private void OnCollabStateChanged(CollabInfo state)
method OnCollabRevisionUpdated (line 104) | private void OnCollabRevisionUpdated(CollabInfo state)
method OnCollabJobsCompleted (line 109) | private void OnCollabJobsCompleted(CollabInfo state)
method OnCollabError (line 114) | private void OnCollabError()
method OnCollabErrorCleared (line 120) | private void OnCollabErrorCleared()
method OnPlayModeStateChanged (line 128) | private void OnPlayModeStateChanged(PlayModeStateChange stateChange)
method RecalculateState (line 144) | private HistoryState RecalculateState()
method UpdateBuildServiceStatus (line 165) | public void UpdateBuildServiceStatus()
method ShowBuildForCommit (line 176) | public void ShowBuildForCommit(string revisionID)
method ShowServicePage (line 181) | public void ShowServicePage()
method OnUpdatePage (line 186) | public void OnUpdatePage(int page)
method OnFetchRevisions (line 194) | private void OnFetchRevisions(RevisionsResult data)
method OnRestore (line 210) | private void OnRestore(string revisionId, bool updatetorevision)
method OnGoBack (line 216) | private void OnGoBack(string revisionId, bool updatetorevision)
method OnUpdate (line 222) | private void OnUpdate(string revisionId, bool updatetorevision)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/BuildStatusButton.cs
class BuildStatusButton (line 14) | internal class BuildStatusButton : Button
method BuildStatusButton (line 21) | public BuildStatusButton(Action clickEvent) : base(clickEvent)
method BuildStatusButton (line 29) | public BuildStatusButton(Action clickEvent, BuildState state, int fail...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDown.cs
class CollabHistoryDropDown (line 14) | internal class CollabHistoryDropDown : VisualElement
method CollabHistoryDropDown (line 21) | public CollabHistoryDropDown(ICollection<ChangeData> changes, int chan...
method ToggleDropdown (line 45) | private void ToggleDropdown()
method ToggleText (line 61) | private string ToggleText(bool open)
method ShowAllClick (line 68) | private void ShowAllClick()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDownItem.cs
class CollabHistoryDropDownItem (line 15) | internal class CollabHistoryDropDownItem : VisualElement
method CollabHistoryDropDownItem (line 17) | public CollabHistoryDropDownItem(string path, string action)
method GetIconElement (line 39) | private Image GetIconElement(string action, string fileName, bool isFo...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItem.cs
class CollabHistoryItem (line 17) | internal class CollabHistoryItem : VisualElement
method CollabHistoryItem (line 52) | public CollabHistoryItem(RevisionData data)
method SetUpCallbacks (line 121) | public static void SetUpCallbacks(RevisionAction Restore, RevisionActi...
method SetInProgressStatus (line 128) | public void SetInProgressStatus(string revisionIdInProgress)
method ShowBuildForCommit (line 145) | void ShowBuildForCommit()
method ShowServicePage (line 154) | void ShowServicePage()
method Restore (line 163) | void Restore()
method GoBackTo (line 172) | void GoBackTo()
method UpdateTo (line 181) | void UpdateTo()
method UpdateTimeAgo (line 190) | void UpdateTimeAgo()
method ShouldTruncateDescription (line 195) | bool ShouldTruncateDescription(string description)
method GetTruncatedDescription (line 200) | string GetTruncatedDescription(string description)
method ToggleDescription (line 211) | void ToggleDescription()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItemFactory.cs
class CollabHistoryItemFactory (line 17) | internal class CollabHistoryItemFactory : ICollabHistoryItemFactory
method GenerateElements (line 21) | public IEnumerable<RevisionData> GenerateElements(IEnumerable<Revision...
method TimeStampToDateTime (line 114) | private static DateTime TimeStampToDateTime(double timeStamp)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryRevisionLine.cs
class CollabHistoryRevisionLine (line 14) | internal class CollabHistoryRevisionLine : VisualElement
method CollabHistoryRevisionLine (line 16) | public CollabHistoryRevisionLine(int number)
method CollabHistoryRevisionLine (line 24) | public CollabHistoryRevisionLine(DateTime date, bool isFullDateObtained)
method AddHeader (line 31) | private void AddHeader(string content)
method AddIndicator (line 39) | private void AddIndicator()
method AddLine (line 47) | private void AddLine(string className = null)
method AddNumber (line 60) | private void AddNumber(int number)
method GetFormattedHeader (line 69) | private string GetFormattedHeader(DateTime date)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/HistoryProgressSpinner.cs
class HistoryProgressSpinner (line 11) | internal class HistoryProgressSpinner : Image
method HistoryProgressSpinner (line 49) | public HistoryProgressSpinner()
method AnimateProgress (line 62) | private void AnimateProgress(TimerState obj)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/ICollabHistoryItemFactory.cs
type ICollabHistoryItemFactory (line 13) | internal interface ICollabHistoryItemFactory
method GenerateElements (line 15) | IEnumerable<RevisionData> GenerateElements(IEnumerable<Revision> revsR...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/PagedListView.cs
type IPagerData (line 13) | internal interface IPagerData
class PagerElement (line 20) | internal class PagerElement : VisualElement
method PagerElement (line 27) | public PagerElement(IPagerData dataSource)
method OnPageDownClicked (line 47) | void OnPageDownClicked()
method OnPageUpClicked (line 53) | void OnPageUpClicked()
method Refresh (line 59) | public void Refresh()
method UpdateControls (line 64) | void UpdateControls()
type PagerLocation (line 75) | internal enum PagerLocation
class PagedListView (line 81) | internal class PagedListView : VisualElement, IPagerData
method PagedListView (line 120) | public PagedListView()
method LayoutItems (line 134) | void LayoutItems()
method UpdatePager (line 143) | void UpdatePager()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/StatusView.cs
class StatusView (line 14) | internal class StatusView : VisualElement
method StatusView (line 63) | public StatusView()
method UpdateButton (line 78) | private void UpdateButton()
method InternalCallaback (line 83) | private void InternalCallaback()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/HistoryTests.cs
class HistoryTests (line 12) | [TestFixture]
method SetUp (line 19) | [SetUp]
method TearDown (line 27) | [TearDown]
method CollabHistoryPresenter_OnUpdatePage__PropagatesRevisionResult (line 32) | [Test]
method CollabHistoryPresenter_OnUpdatePage__RevisionNumberingIsInOrder (line 51) | [Test]
method CollabHistoryPresenter_OnUpdatePage__RevisionNumberingChangesForMorePages (line 75) | [Test]
method CollabHistoryPresenter_OnUpdatePage__ObtainedIsCalculated (line 101) | [Test]
method CollabHistoryPresenter_OnUpdatePage__CurrentIsCalculated (line 120) | [Test]
method CollabHistoryPresenter_OnUpdatePage__InProgressIsCalculated (line 142) | [Test]
method CollabHistoryPresenter_OnUpdatePage__EnabledIsCalculated (line 164) | [Test]
method CollabHistoryPresenter_OnUpdatePage__DisabledIsCalculated (line 182) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenNotTip (line 200) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateTipHasNoneWhenEnabled (line 219) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenTip (line 238) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenZeroBuildStatus (line 257) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenZeroBuildStatuses (line 276) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasSuccessWhenCompleteAndSucceeded (line 295) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasInProgress (line 321) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailure (line 347) | [Test]
method CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailureWhenAnyBuildsFail (line 373) | [Test]
method CollabHistoryPresenter_OnUpdatePage__ChangesPropagateThrough (line 401) | [Test]
method CollabHistoryPresenter_OnUpdatePage__ChangesTotalIsCalculated (line 421) | [Test]
method CollabHistoryPresenter_OnUpdatePage__ChangesTruncatedIsCalculated (line 438) | [Test]
method CollabHistoryPresenter_OnUpdatePage__OnlyKeeps10ChangeActions (line 458) | [Test]
method CollabHistoryPresenter_OnUpdatePage__DeduplicatesMetaFiles (line 477) | [Test]
method CollabHistoryPresenter_OnUpdatePage__FolderMetaFilesAreCounted (line 506) | [Test]
method GenerateChangeActions (line 533) | private static ChangeAction[] GenerateChangeActions(int count)
class TestRevisionsService (line 542) | internal class TestRevisionsService : IRevisionsService
method GetRevisions (line 550) | public void GetRevisions(int offset, int count)
class TestHistoryWindow (line 559) | internal class TestHistoryWindow : ICollabHistoryWindow
method UpdateState (line 574) | public void UpdateState(HistoryState state, bool force)
method UpdateRevisions (line 578) | public void UpdateRevisions(IEnumerable<RevisionData> items, string ti...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/Discovery.cs
type IDiscovery (line 12) | public interface IDiscovery
method PathCallback (line 14) | CodeEditor.Installation[] PathCallback();
class Discovery (line 17) | public class Discovery : IDiscovery
method PathCallback (line 19) | public CodeEditor.Installation[] PathCallback()
class RiderPathLocator (line 36) | public static class RiderPathLocator
method GetAllRiderPaths (line 39) | [UsedImplicitly] // Used in com.unity.ide.rider
method GetAllFoundInfos (line 72) | internal static RiderInfo[] GetAllFoundInfos(OperatingSystemFamilyRide...
method GetAllFoundPaths (line 100) | internal static string[] GetAllFoundPaths(OperatingSystemFamilyRider o...
method CollectAllRiderPathsLinux (line 106) | private static RiderInfo[] CollectAllRiderPathsLinux()
method CollectRiderInfosMac (line 146) | private static RiderInfo[] CollectRiderInfosMac()
method GetBuildNumber (line 170) | internal static string GetBuildNumber(string path)
method CollectRiderInfosWindows (line 181) | private static RiderInfo[] CollectRiderInfosWindows()
method GetRelativePathToBuildTxt (line 202) | private static string GetRelativePathToBuildTxt()
method CollectPathsFromRegistry (line 215) | private static void CollectPathsFromRegistry(string registryKey, List<...
method CollectPathsFromToolbox (line 235) | private static string[] CollectPathsFromToolbox(string toolboxRiderRoo...
method GetExecutablePaths (line 292) | private static string[] GetExecutablePaths(string dirName, string sear...
class ToolboxHistory (line 308) | [Serializable]
method GetLatestBuildFromJson (line 313) | [CanBeNull]
class ItemNode (line 333) | [Serializable]
class BuildNode (line 339) | [Serializable]
class ToolboxInstallData (line 346) | [Serializable]
method GetLatestBuildFromJson (line 352) | [CanBeNull]
class ActiveApplication (line 375) | [Serializable]
type RiderInfo (line 384) | public struct RiderInfo
method RiderInfo (line 390) | public RiderInfo(string path, bool isToolbox)
class Logger (line 402) | private static class Logger
method Warn (line 404) | internal static void Warn(string message, Exception e = null)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/EditorPluginInterop.cs
class EditorPluginInterop (line 10) | public static class EditorPluginInterop
method DisableSyncSolutionOnceCallBack (line 14) | private static void DisableSyncSolutionOnceCallBack()
method OpenFileDllImplementation (line 55) | public static bool OpenFileDllImplementation(string path, int line, in...
method GetEditorPluginAssembly (line 86) | public static Assembly GetEditorPluginAssembly()
method EditorPluginIsLoadedFromAssets (line 93) | public static bool EditorPluginIsLoadedFromAssets()
method InitEntryPoint (line 104) | internal static void InitEntryPoint()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/LoggingLevel.cs
type LoggingLevel (line 3) | public enum LoggingLevel
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/PluginSettings.cs
class PluginSettings (line 8) | public class PluginSettings
method RiderPreferencesItem (line 53) | [SettingsProvider]
method LinkButton (line 138) | private static void LinkButton(string caption, string url)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/ProjectGeneration.cs
type IGenerator (line 18) | public interface IGenerator
method SyncIfNeeded (line 20) | bool SyncIfNeeded(IEnumerable<string> affectedFiles, IEnumerable<strin...
method Sync (line 21) | void Sync();
method HasSolutionBeenGenerated (line 22) | bool HasSolutionBeenGenerated();
method SolutionFile (line 23) | string SolutionFile();
method GenerateAll (line 25) | void GenerateAll(bool generateAll);
type IAssemblyNameProvider (line 28) | public interface IAssemblyNameProvider
method GetAssemblyNameFromScriptPath (line 30) | string GetAssemblyNameFromScriptPath(string path);
method GetAllAssemblies (line 31) | IEnumerable<Assembly> GetAllAssemblies(Func<string, bool> shouldFileBe...
method GetAllAssetPaths (line 32) | IEnumerable<string> GetAllAssetPaths();
method FindForAssetPath (line 33) | UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPa...
type TestSettings (line 36) | public struct TestSettings
class AssemblyNameProvider (line 42) | class AssemblyNameProvider : IAssemblyNameProvider
method GetAssemblyNameFromScriptPath (line 44) | public string GetAssemblyNameFromScriptPath(string path)
method GetAllAssemblies (line 49) | public IEnumerable<Assembly> GetAllAssemblies(Func<string, bool> shoul...
method GetAllAssetPaths (line 55) | public IEnumerable<string> GetAllAssetPaths()
method FindForAssetPath (line 60) | public UnityEditor.PackageManager.PackageInfo FindForAssetPath(string ...
class ProjectGeneration (line 67) | public class ProjectGeneration : IGenerator
type ScriptingLanguage (line 69) | enum ScriptingLanguage
method GenerateAll (line 124) | public void GenerateAll(bool generateAll)
method ProjectGeneration (line 139) | public ProjectGeneration() : this(Directory.GetParent(Application.data...
method ProjectGeneration (line 143) | public ProjectGeneration(string tempDirectory) : this(tempDirectory, n...
method ProjectGeneration (line 147) | public ProjectGeneration(string tempDirectory, IAssemblyNameProvider a...
method SyncIfNeeded (line 167) | public bool SyncIfNeeded(IEnumerable<string> affectedFiles, IEnumerabl...
method HasFilesBeenModified (line 180) | bool HasFilesBeenModified(IEnumerable<string> affectedFiles, IEnumerab...
method ShouldSyncOnReimportedAsset (line 185) | static bool ShouldSyncOnReimportedAsset(string asset)
method Sync (line 190) | public void Sync()
method HasSolutionBeenGenerated (line 204) | public bool HasSolutionBeenGenerated()
method SetupProjectSupportedExtensions (line 209) | void SetupProjectSupportedExtensions()
method ShouldFileBePartOfSolution (line 214) | bool ShouldFileBePartOfSolution(string file)
method IsSupportedExtension (line 234) | bool IsSupportedExtension(string extension)
method ScriptingLanguageFor (line 244) | static ScriptingLanguage ScriptingLanguageFor(Assembly island)
method GetExtensionOfSourceFiles (line 249) | static string GetExtensionOfSourceFiles(string[] files)
method GetExtensionOfSourceFile (line 254) | static string GetExtensionOfSourceFile(string file)
method ScriptingLanguageFor (line 261) | static ScriptingLanguage ScriptingLanguageFor(string extension)
method GenerateAndWriteSolutionAndProjects (line 268) | public void GenerateAndWriteSolutionAndProjects(Type[] types)
method ParseResponseFileData (line 287) | IEnumerable<ResponseFileData> ParseResponseFileData(Assembly assembly)
method GenerateAllAssetProjectParts (line 314) | Dictionary<string, string> GenerateAllAssetProjectParts()
method IsInternalizedPackagePath (line 358) | bool IsInternalizedPackagePath(string file)
method SyncProject (line 375) | void SyncProject(
method SyncProjectFileIfNotChanged (line 386) | void SyncProjectFileIfNotChanged(string path, string newContents, Type...
method SyncSolutionFileIfNotChanged (line 396) | void SyncSolutionFileIfNotChanged(string path, string newContents, Typ...
method SafeGetTypes (line 403) | static List<Type> SafeGetTypes(System.Reflection.Assembly a)
method OnGeneratedCSProjectFiles (line 423) | static void OnGeneratedCSProjectFiles(Type[] types)
method GetAssetPostprocessorTypes (line 440) | public static Type[] GetAssetPostprocessorTypes()
method OnPreGeneratingCSProjectFiles (line 445) | static bool OnPreGeneratingCSProjectFiles(Type[] types)
method OnGeneratedCSProject (line 469) | static string OnGeneratedCSProject(string path, string content, Type[]...
method OnGeneratedSlnSolution (line 492) | static string OnGeneratedSlnSolution(string path, string content, Type...
method SyncFileIfNotChanged (line 515) | void SyncFileIfNotChanged(string filename, string newContents)
method ProjectText (line 535) | string ProjectText(Assembly assembly,
method AppendReference (line 625) | static void AppendReference(string fullReference, StringBuilder projec...
method ProjectFile (line 636) | public string ProjectFile(Assembly assembly)
method SolutionFile (line 641) | public string SolutionFile()
method ProjectHeader (line 646) | string ProjectHeader(
method GetSolutionText (line 680) | static string GetSolutionText()
method GetProjectFooterTemplate (line 702) | static string GetProjectFooterTemplate()
method GetProjectHeaderTemplate (line 718) | static string GetProjectHeaderTemplate()
method SyncSolution (line 799) | void SyncSolution(IEnumerable<Assembly> islands, Type[] types)
method SolutionText (line 804) | string SolutionText(IEnumerable<Assembly> islands)
method RelevantIslandsForMode (line 816) | static IEnumerable<Assembly> RelevantIslandsForMode(IEnumerable<Assemb...
method GetProjectEntries (line 826) | string GetProjectEntries(IEnumerable<Assembly> islands)
method GetProjectActiveConfigurations (line 840) | string GetProjectActiveConfigurations(string projectGuid)
method EscapedRelativePathFor (line 847) | string EscapedRelativePathFor(string file)
method SkipPathPrefix (line 865) | static string SkipPathPrefix(string path, string prefix)
method NormalizePath (line 872) | static string NormalizePath(string path)
method ProjectGuid (line 880) | string ProjectGuid(string assembly)
method SolutionGuid (line 885) | string SolutionGuid(Assembly island)
method ProjectFooter (line 890) | static string ProjectFooter()
method GetProjectExtension (line 895) | static string GetProjectExtension()
class SolutionGuidGenerator (line 901) | public static class SolutionGuidGenerator
method GuidForProject (line 903) | public static string GuidForProject(string projectName)
method GuidForSolution (line 908) | public static string GuidForSolution(string projectName, string source...
method ComputeGuidHashFor (line 917) | static string ComputeGuidHashFor(string input)
method HashAsGuid (line 923) | static string HashAsGuid(string hash)
method HashToString (line 930) | static string HashToString(byte[] bs)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/RiderInitializer.cs
class RiderInitializer (line 9) | internal class RiderInitializer
method Initialize (line 11) | public void Initialize(string editorPath)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/RiderScriptEditor.cs
class RiderScriptEditor (line 13) | [InitializeOnLoad]
method RiderScriptEditor (line 20) | static RiderScriptEditor()
method InitProjectFilesWatcher (line 53) | private static void InitProjectFilesWatcher()
method OnChanged (line 72) | private static void OnChanged(object sender, FileSystemEventArgs e)
method GetEditorRealPath (line 79) | private static string GetEditorRealPath(string path)
method RiderScriptEditor (line 114) | public RiderScriptEditor(IDiscovery discovery, IGenerator projectGener...
method SupportsExtension (line 145) | private static bool SupportsExtension(string path)
method OnGUI (line 153) | public void OnGUI()
method SyncIfNeeded (line 170) | public void SyncIfNeeded(string[] addedFiles, string[] deletedFiles, s...
method SyncAll (line 177) | public void SyncAll()
method Initialize (line 187) | public void Initialize(string editorInstallationPath) // is called eac...
method OpenProject (line 192) | public bool OpenProject(string path, int line, int column)
method OpenOSXApp (line 234) | private bool OpenOSXApp(string path, int line, int column)
method GetSolutionFile (line 255) | private string GetSolutionFile(string path)
method IsUnityScript (line 271) | static bool IsUnityScript(string path)
method GetBaseUnityDeveloperFolder (line 288) | static string GetBaseUnityDeveloperFolder()
method TryGetInstallationForPath (line 293) | public bool TryGetInstallationForPath(string editorPath, out CodeEdito...
method IsRiderInstallation (line 310) | public static bool IsRiderInstallation(string path)
method ShouldLoadEditorPlugin (line 325) | public static bool ShouldLoadEditorPlugin(string path)
method CreateSolutionIfDoesntExist (line 336) | public void CreateSolutionIfDoesntExist()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/RiderScriptEditorData.cs
class RiderScriptEditorData (line 6) | public class RiderScriptEditorData:ScriptableSingleton<RiderScriptEditor...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/Util/FileSystemUtil.cs
class FileSystemUtil (line 10) | public static class FileSystemUtil
method GetFinalPathName (line 12) | [NotNull]
method FileNameWithoutExtension (line 29) | public static string FileNameWithoutExtension(string path)
method EditorPathExists (line 60) | public static bool EditorPathExists(string editorPath)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/Util/LibcNativeInterop.cs
class LibcNativeInterop (line 7) | internal static class LibcNativeInterop
method realpath (line 9) | [DllImport("libc", SetLastError = true)]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.rider@1.1.0/Rider/Editor/Util/UnityUtils.cs
class UnityUtils (line 7) | public static class UnityUtils
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/ProjectGeneration/AssemblyNameProvider.cs
type IAssemblyNameProvider (line 9) | public interface IAssemblyNameProvider
method GetAssemblyNameFromScriptPath (line 11) | string GetAssemblyNameFromScriptPath(string path);
method GetAssemblies (line 12) | IEnumerable<Assembly> GetAssemblies(Func<string, bool> shouldFileBePar...
method GetAllAssetPaths (line 13) | IEnumerable<string> GetAllAssetPaths();
method FindForAssetPath (line 14) | UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPa...
method ParseResponseFile (line 15) | ResponseFileData ParseResponseFile(string responseFilePath, string pro...
class AssemblyNameProvider (line 18) | internal class AssemblyNameProvider : IAssemblyNameProvider
method GetAssemblyNameFromScriptPath (line 20) | public string GetAssemblyNameFromScriptPath(string path)
method GetAssemblies (line 25) | public IEnumerable<Assembly> GetAssemblies(Func<string, bool> shouldFi...
method GetAllAssetPaths (line 31) | public IEnumerable<string> GetAllAssetPaths()
method FindForAssetPath (line 36) | public UnityEditor.PackageManager.PackageInfo FindForAssetPath(string ...
method ParseResponseFile (line 41) | public ResponseFileData ParseResponseFile(string responseFilePath, str...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/ProjectGeneration/FileIO.cs
type IFileIO (line 6) | public interface IFileIO
method Exists (line 8) | bool Exists(string fileName);
method ReadAllText (line 10) | string ReadAllText(string fileName);
method WriteAllText (line 11) | void WriteAllText(string fileName, string content);
method CreateDirectory (line 13) | void CreateDirectory(string pathName);
class FileIOProvider (line 16) | class FileIOProvider : IFileIO
method Exists (line 18) | public bool Exists(string fileName)
method ReadAllText (line 23) | public string ReadAllText(string fileName)
method WriteAllText (line 28) | public void WriteAllText(string fileName, string content)
method CreateDirectory (line 33) | public void CreateDirectory(string pathName)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/ProjectGeneration/GUIDGenerator.cs
type IGUIDGenerator (line 3) | public interface IGUIDGenerator
method ProjectGuid (line 5) | string ProjectGuid(string projectName, string assemblyName);
method SolutionGuid (line 6) | string SolutionGuid(string projectName, string extension);
class GUIDProvider (line 9) | class GUIDProvider : IGUIDGenerator
method ProjectGuid (line 11) | public string ProjectGuid(string projectName, string assemblyName)
method SolutionGuid (line 16) | public string SolutionGuid(string projectName, string extension)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/ProjectGeneration/ProjectGeneration.cs
type IGenerator (line 17) | public interface IGenerator
method SyncIfNeeded (line 19) | bool SyncIfNeeded(IEnumerable<string> affectedFiles, IEnumerable<strin...
method Sync (line 20) | void Sync();
method SolutionFile (line 21) | string SolutionFile();
method GenerateAll (line 23) | void GenerateAll(bool generateAll);
method SolutionExists (line 24) | bool SolutionExists();
class ProjectGeneration (line 27) | public class ProjectGeneration : IGenerator
type ScriptingLanguage (line 29) | enum ScriptingLanguage
method GenerateAll (line 135) | public void GenerateAll(bool generateAll)
method ProjectGeneration (line 151) | public ProjectGeneration(string tempDirectory)
method ProjectGeneration (line 154) | public ProjectGeneration(string tempDirectory, IAssemblyNameProvider a...
method SyncIfNeeded (line 175) | public bool SyncIfNeeded(IEnumerable<string> affectedFiles, IEnumerabl...
method HasFilesBeenModified (line 193) | bool HasFilesBeenModified(IEnumerable<string> affectedFiles, IEnumerab...
method ShouldSyncOnReimportedAsset (line 198) | static bool ShouldSyncOnReimportedAsset(string asset)
method Sync (line 203) | public void Sync()
method SolutionExists (line 209) | public bool SolutionExists()
method SetupProjectSupportedExtensions (line 214) | void SetupProjectSupportedExtensions()
method ShouldFileBePartOfSolution (line 219) | bool ShouldFileBePartOfSolution(string file)
method IsSupportedExtension (line 239) | bool IsSupportedExtension(string extension)
method ScriptingLanguageFor (line 249) | static ScriptingLanguage ScriptingLanguageFor(Assembly island)
method GetExtensionOfSourceFiles (line 254) | static string GetExtensionOfSourceFiles(string[] files)
method GetExtensionOfSourceFile (line 259) | static string GetExtensionOfSourceFile(string file)
method ScriptingLanguageFor (line 266) | static ScriptingLanguage ScriptingLanguageFor(string extension)
method GenerateAndWriteSolutionAndProjects (line 273) | public void GenerateAndWriteSolutionAndProjects()
method ParseResponseFileData (line 292) | IEnumerable<ResponseFileData> ParseResponseFileData(Assembly assembly)
method GenerateAllAssetProjectParts (line 317) | Dictionary<string, string> GenerateAllAssetProjectParts()
method IsInternalizedPackagePath (line 361) | bool IsInternalizedPackagePath(string file)
method SyncProject (line 378) | void SyncProject(
method SyncProjectFileIfNotChanged (line 387) | void SyncProjectFileIfNotChanged(string path, string newContents)
method SyncSolutionFileIfNotChanged (line 392) | void SyncSolutionFileIfNotChanged(string path, string newContents)
method SyncFileIfNotChanged (line 397) | void SyncFileIfNotChanged(string filename, string newContents)
method ProjectText (line 412) | string ProjectText(
method AppendReference (line 492) | static void AppendReference(string fullReference, StringBuilder projec...
method ProjectFile (line 503) | public string ProjectFile(Assembly assembly)
method SolutionFile (line 515) | public string SolutionFile()
method ProjectHeader (line 520) | string ProjectHeader(
method GetSolutionText (line 551) | static string GetSolutionText()
method GetProjectFooterTemplate (line 556) | static string GetProjectFooterTemplate()
method GetProjectHeaderTemplate (line 561) | static string GetProjectHeaderTemplate()
method SyncSolution (line 627) | void SyncSolution(IEnumerable<Assembly> islands)
method SolutionText (line 632) | string SolutionText(IEnumerable<Assembly> islands)
method RelevantIslandsForMode (line 643) | static IEnumerable<Assembly> RelevantIslandsForMode(IEnumerable<Assemb...
method GetProjectEntries (line 653) | string GetProjectEntries(IEnumerable<Assembly> islands)
method GetProjectActiveConfigurations (line 669) | string GetProjectActiveConfigurations(string projectGuid)
method EscapedRelativePathFor (line 676) | string EscapedRelativePathFor(string file)
method SkipPathPrefix (line 694) | static string SkipPathPrefix(string path, string prefix)
method NormalizePath (line 701) | static string NormalizePath(string path)
method ProjectGuid (line 708) | string ProjectGuid(string assembly)
method SolutionGuid (line 713) | string SolutionGuid(Assembly island)
method ProjectFooter (line 718) | static string ProjectFooter()
method GetProjectExtension (line 723) | static string GetProjectExtension()
method WriteVSCodeSettingsFiles (line 728) | void WriteVSCodeSettingsFiles()
class SolutionGuidGenerator (line 742) | public static class SolutionGuidGenerator
method GuidForProject (line 744) | public static string GuidForProject(string projectName)
method GuidForSolution (line 749) | public static string GuidForSolution(string projectName, string source...
method ComputeGuidHashFor (line 759) | static string ComputeGuidHashFor(string input)
method HashAsGuid (line 765) | static string HashAsGuid(string hash)
method HashToString (line 771) | static string HashToString(byte[] bs)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/Utility.cs
class Utility (line 3) | public static class Utility
method FileNameWithoutExtension (line 5) | public static string FileNameWithoutExtension(string path)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/VSCodeDiscovery.cs
type IDiscovery (line 9) | public interface IDiscovery
method PathCallback (line 11) | CodeEditor.Installation[] PathCallback();
class VSCodeDiscovery (line 14) | public class VSCodeDiscovery : IDiscovery
method PathCallback (line 18) | public CodeEditor.Installation[] PathCallback()
method FindInstallationPaths (line 29) | void FindInstallationPaths()
method GetProgramFiles (line 99) | static string GetProgramFiles()
method GetLocalAppData (line 104) | static string GetLocalAppData()
method GetLongestCommonPrefix (line 110) | static string GetLongestCommonPrefix(List<string> paths)
method VSCodeExists (line 128) | static bool VSCodeExists(string path)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.ide.vscode@1.1.3/Editor/VSCodeScriptEditor.cs
method TryGetInstallationForPath (line 70) | public bool TryGetInstallationForPath(string editorPath, out CodeEditor....
method OnGUI (line 108) | public void OnGUI()
method CreateIfDoesntExist (line 129) | public void CreateIfDoesntExist()
method SyncIfNeeded (line 137) | public void SyncIfNeeded(string[] addedFiles, string[] deletedFiles, str...
method SyncAll (line 142) | public void SyncAll()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/CallbacksDelegator.cs
class CallbacksDelegator (line 11) | internal class CallbacksDelegator
method CallbacksDelegator (line 29) | public CallbacksDelegator(Func<ICallbacks[]> callbacksProvider, ITestA...
method RunStarted (line 35) | public void RunStarted(ITest testsToRun)
method RunStartedRemotely (line 41) | public void RunStartedRemotely(byte[] testsToRunData)
method RunFinished (line 48) | public void RunFinished(ITestResult testResults)
method RunFinishedRemotely (line 54) | public void RunFinishedRemotely(byte[] testResultsData)
method RunFailed (line 61) | public void RunFailed(string failureMessage)
method TestStarted (line 69) | public void TestStarted(ITest test)
method TestStartedRemotely (line 75) | public void TestStartedRemotely(byte[] testStartedData)
method TestFinished (line 83) | public void TestFinished(ITestResult result)
method TestFinishedRemotely (line 89) | public void TestFinishedRemotely(byte[] testResultsData)
method TryInvokeAllCallbacks (line 96) | private void TryInvokeAllCallbacks(Action<ICallbacks> callbackAction)
method Deserialize (line 111) | private static T Deserialize<T>(byte[] data)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/CallbacksDelegatorListener.cs
class CallbacksDelegatorListener (line 6) | internal class CallbacksDelegatorListener : ScriptableObject, ITestRunne...
method RunStarted (line 8) | public void RunStarted(NUnit.Framework.Interfaces.ITest testsToRun)
method RunFinished (line 13) | public void RunFinished(NUnit.Framework.Interfaces.ITestResult testRes...
method TestStarted (line 18) | public void TestStarted(NUnit.Framework.Interfaces.ITest test)
method TestFinished (line 23) | public void TestFinished(NUnit.Framework.Interfaces.ITestResult result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/CallbacksHolder.cs
class CallbacksHolder (line 6) | internal class CallbacksHolder : ScriptableSingleton<CallbacksHolder>
method Add (line 9) | public void Add(ICallbacks callback, int priority)
method Remove (line 14) | public void Remove(ICallbacks callback)
method GetAll (line 19) | public ICallbacks[] GetAll()
method Clear (line 24) | public void Clear()
type CallbackWithPriority (line 29) | private struct CallbackWithPriority
method CallbackWithPriority (line 33) | public CallbackWithPriority(ICallbacks callback, int priority)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ExecutionSettings.cs
class ExecutionSettings (line 3) | internal class ExecutionSettings
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/Filter.cs
class Filter (line 7) | [Serializable]
method ToTestRunnerFilter (line 23) | internal TestRunnerFilter ToTestRunnerFilter()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ICallbacks.cs
type ICallbacks (line 3) | internal interface ICallbacks
method RunStarted (line 5) | void RunStarted(ITestAdaptor testsToRun);
method RunFinished (line 6) | void RunFinished(ITestResultAdaptor result);
method TestStarted (line 7) | void TestStarted(ITestAdaptor test);
method TestFinished (line 8) | void TestFinished(ITestResultAdaptor result);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ITestAdaptor.cs
type ITestAdaptor (line 6) | internal interface ITestAdaptor
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ITestAdaptorFactory.cs
type ITestAdaptorFactory (line 7) | internal interface ITestAdaptorFactory
method Create (line 9) | ITestAdaptor Create(ITest test);
method Create (line 10) | ITestAdaptor Create(RemoteTestData testData);
method Create (line 11) | ITestResultAdaptor Create(ITestResult testResult);
method Create (line 12) | ITestResultAdaptor Create(RemoteTestResultData testResult, RemoteTestR...
method BuildTree (line 13) | ITestAdaptor BuildTree(RemoteTestResultDataWithTestData data);
method BuildTreeAsync (line 14) | IEnumerator<ITestAdaptor> BuildTreeAsync(RemoteTestResultDataWithTestD...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ITestResultAdaptor.cs
type ITestResultAdaptor (line 7) | internal interface ITestResultAdaptor
method ToXml (line 84) | TNode ToXml();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ITestRunSettings.cs
type ITestRunSettings (line 5) | internal interface ITestRunSettings : IDisposable
method Apply (line 7) | void Apply();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/ITestRunnerApi.cs
type ITestRunnerApi (line 5) | interface ITestRunnerApi
method Execute (line 7) | void Execute(ExecutionSettings executionSettings);
method RegisterCallbacks (line 8) | void RegisterCallbacks<T>(T testCallbacks, int priority = 0) where T :...
method UnregisterCallbacks (line 9) | void UnregisterCallbacks<T>(T testCallbacks) where T : ICallbacks;
method RetrieveTestList (line 10) | void RetrieveTestList(ExecutionSettings executionSettings, Action<ITes...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/RunState.cs
type RunState (line 3) | internal enum RunState
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestAdaptor.cs
class TestAdaptor (line 13) | internal class TestAdaptor : ITestAdaptor
method TestAdaptor (line 15) | internal TestAdaptor(ITest test) : this(test, new ITest[0])
method TestAdaptor (line 19) | internal TestAdaptor(ITest test, ITest[] additionalChildren)
method TestAdaptor (line 55) | internal TestAdaptor(RemoteTestData test)
method ApplyChildren (line 75) | internal void ApplyChildren(IEnumerable<TestAdaptor> allTests)
method GetFullPath (line 101) | private static string GetFullPath(ITest test)
method GetIndexedTestCaseName (line 108) | private static string GetIndexedTestCaseName(string fullName, int index)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestAdaptorFactory.cs
class TestAdaptorFactory (line 8) | internal class TestAdaptorFactory : ITestAdaptorFactory
method Create (line 10) | public ITestAdaptor Create(ITest test)
method Create (line 15) | public ITestAdaptor Create(RemoteTestData testData)
method Create (line 20) | public ITestResultAdaptor Create(ITestResult testResult)
method Create (line 25) | public ITestResultAdaptor Create(RemoteTestResultData testResult, Remo...
method BuildTree (line 30) | public ITestAdaptor BuildTree(RemoteTestResultDataWithTestData data)
method BuildTreeAsync (line 42) | public IEnumerator<ITestAdaptor> BuildTreeAsync(RemoteTestResultDataWi...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestLauncherFactory.cs
class TestLauncherFactory (line 7) | internal class TestLauncherFactory
method GetLauncher (line 9) | internal TestLauncherBase GetLauncher(ExecutionSettings executionSetti...
method GetEditModeLauncher (line 22) | static TestLauncherBase GetEditModeLauncher(Filter filter)
method GetPlayModeLauncher (line 27) | static TestLauncherBase GetPlayModeLauncher(PlaymodeTestsControllerSet...
method GetEditModeLauncherForProvidedAssemblies (line 42) | static TestLauncherBase GetEditModeLauncherForProvidedAssemblies(Filte...
method GetPlayModeLauncher (line 47) | static TestLauncherBase GetPlayModeLauncher(PlaymodeTestsControllerSet...
method GetPlayerLauncher (line 52) | static TestLauncherBase GetPlayerLauncher(PlaymodeTestsControllerSetti...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestMode.cs
type TestMode (line 5) | [Flags]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestResultAdaptor.cs
class TestResultAdaptor (line 9) | internal class TestResultAdaptor : ITestResultAdaptor
method TestResultAdaptor (line 13) | internal TestResultAdaptor(ITestResult result)
method TestResultAdaptor (line 36) | internal TestResultAdaptor(RemoteTestResultData result, RemoteTestResu...
method ToXml (line 77) | public TNode ToXml()
method ParseTestStatus (line 82) | private static TestStatus ParseTestStatus(NUnit.Framework.Interfaces.T...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestRunData.cs
class TestRunData (line 6) | [Serializable]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestRunnerApi.cs
class TestRunnerApi (line 11) | internal class TestRunnerApi : ScriptableObject, ITestRunnerApi
method Execute (line 13) | public void Execute(ExecutionSettings executionSettings)
method RegisterCallbacks (line 28) | public void RegisterCallbacks<T>(T testCallbacks, int priority = 0) wh...
method UnregisterCallbacks (line 38) | public void UnregisterCallbacks<T>(T testCallbacks) where T : ICallbacks
method RetrieveTestList (line 48) | public void RetrieveTestList(ExecutionSettings executionSettings, Acti...
method ParseTestMode (line 71) | private static TestPlatform ParseTestMode(TestMode testmode)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/Api/TestStatus.cs
type TestStatus (line 3) | internal enum TestStatus
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineParser/CommandLineOption.cs
class CommandLineOption (line 6) | internal class CommandLineOption : ICommandLineOption
method CommandLineOption (line 10) | public CommandLineOption(string argName, Action action)
method CommandLineOption (line 16) | public CommandLineOption(string argName, Action<string> action)
method CommandLineOption (line 22) | public CommandLineOption(string argName, Action<string[]> action)
method ApplyValue (line 30) | public void ApplyValue(string value)
method SplitStringToArray (line 35) | static string[] SplitStringToArray(string value)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineParser/CommandLineOptionSet.cs
class CommandLineOptionSet (line 5) | internal class CommandLineOptionSet
method CommandLineOptionSet (line 9) | public CommandLineOptionSet(params ICommandLineOption[] options)
method Parse (line 14) | public void Parse(string[] args)
method ApplyValueToMatchingOptions (line 38) | private void ApplyValueToMatchingOptions(string argName, string value)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineParser/ICommandLineOption.cs
type ICommandLineOption (line 3) | interface ICommandLineOption
method ApplyValue (line 6) | void ApplyValue(string value);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/Executer.cs
class Executer (line 9) | internal class Executer
method Executer (line 18) | public Executer(ITestRunnerApi testRunnerApi, ISettingsBuilder setting...
method InitializeAndExecuteRun (line 28) | internal void InitializeAndExecuteRun(string[] commandLineArgs)
method BuildExecutionSettings (line 55) | internal ExecutionSettings BuildExecutionSettings(string[] commandLine...
type ReturnCodes (line 60) | internal enum ReturnCodes
method SetUpCallbacks (line 68) | internal void SetUpCallbacks(ExecutionSettings executionSettings)
method ExitOnCompileErrors (line 85) | internal void ExitOnCompileErrors()
method HandleSetupException (line 95) | void HandleSetupException(SetupException exception)
class ExceptionHandling (line 102) | private class ExceptionHandling
method ExceptionHandling (line 107) | public ExceptionHandling(SetupException.ExceptionType exceptionType,...
method ExecutionSettingsToString (line 122) | private static string ExecutionSettingsToString(Api.ExecutionSettings ...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/ExecutionSettings.cs
class ExecutionSettings (line 5) | [Serializable]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/ExitCallbacks.cs
class ExitCallbacks (line 7) | [Serializable]
method RunFinished (line 14) | public void RunFinished(ITestResultAdaptor testResults)
method TestStarted (line 28) | public void TestStarted(ITestAdaptor test)
method TestFinished (line 36) | public void TestFinished(ITestResultAdaptor result)
method RunStarted (line 44) | public void RunStarted(ITestAdaptor testsToRun)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/ISettingsBuilder.cs
type ISettingsBuilder (line 5) | interface ISettingsBuilder
method BuildApiExecutionSettings (line 7) | Api.ExecutionSettings BuildApiExecutionSettings(string[] commandLineAr...
method BuildExecutionSettings (line 8) | ExecutionSettings BuildExecutionSettings(string[] commandLineArgs);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/LogSavingCallbacks.cs
class LogSavingCallbacks (line 8) | [Serializable]
method RunStarted (line 11) | public void RunStarted(ITestAdaptor testsToRun)
method RunFinished (line 16) | public virtual void RunFinished(ITestResultAdaptor testResults)
method TestStarted (line 21) | public void TestStarted(ITestAdaptor test)
method TestFinished (line 25) | public void TestFinished(ITestResultAdaptor result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/LogWriter.cs
class LogWriter (line 10) | internal class LogWriter : IDisposable
method LogWriter (line 17) | internal LogWriter(string logsDirectory, string deviceID, DeploymentTa...
method WriteLogToFile (line 27) | private void WriteLogToFile(string id, string logLine)
method Stop (line 51) | public void Stop()
method Dispose (line 60) | public void Dispose()
method CreateLogFile (line 65) | private StreamWriter CreateLogFile(string path)
method GetLogFilePath (line 85) | private string GetLogFilePath(string lgosDirectory, string deviceID, s...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/ResultsSavingCallbacks.cs
class ResultsSavingCallbacks (line 9) | [Serializable]
method ResultsSavingCallbacks (line 15) | public ResultsSavingCallbacks()
method RunStarted (line 20) | public void RunStarted(ITestAdaptor testsToRun)
method RunFinished (line 24) | public virtual void RunFinished(ITestResultAdaptor testResults)
method TestStarted (line 35) | public void TestStarted(ITestAdaptor test)
method TestFinished (line 39) | public void TestFinished(ITestResultAdaptor result)
method GetDefaultResultFilePath (line 43) | private static string GetDefaultResultFilePath()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs
class ResultsWriter (line 10) | internal class ResultsWriter
method WriteResultToFile (line 32) | public void WriteResultToFile(ITestResultAdaptor result, string filePath)
method CreateDirectory (line 55) | void CreateDirectory(string filePath)
method WriteResultToStream (line 60) | public void WriteResultToStream(ITestResultAdaptor result, StreamWrite...
method WriteResultsToXml (line 72) | void WriteResultsToXml(ITestResultAdaptor result, XmlWriter xmlWriter)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/RunData.cs
class RunData (line 3) | internal class RunData : ScriptableSingleton<RunData>
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/RunSettings.cs
class RunSettings (line 5) | internal class RunSettings : ITestRunSettings
method RunSettings (line 8) | public RunSettings(ITestSettings testSettings)
method Apply (line 13) | public void Apply()
method Dispose (line 21) | public void Dispose()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/SettingsBuilder.cs
class SettingsBuilder (line 9) | internal class SettingsBuilder : ISettingsBuilder
method SettingsBuilder (line 16) | public SettingsBuilder(ITestSettingsDeserializer testSettingsDeseriali...
method BuildApiExecutionSettings (line 25) | public Api.ExecutionSettings BuildApiExecutionSettings(string[] comman...
method BuildExecutionSettings (line 79) | public ExecutionSettings BuildExecutionSettings(string[] commandLineArgs)
method DisplayQuitWarningIfQuitIsGiven (line 98) | void DisplayQuitWarningIfQuitIsGiven(bool quitIsGiven)
method CheckForScriptCompilationErrors (line 106) | void CheckForScriptCompilationErrors()
method LogParametersForRun (line 114) | void LogParametersForRun(string testPlatform, string[] testFilters, st...
method GetTestSettings (line 131) | ITestSettings GetTestSettings(string testSettingsFilePath)
method SetFilterAndGetBuildTarget (line 146) | static BuildTarget? SetFilterAndGetBuildTarget(string testPlatform, Fi...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/SetupException.cs
class SetupException (line 5) | internal class SetupException : Exception
method SetupException (line 10) | public SetupException(ExceptionType type, params object[] details)
type ExceptionType (line 16) | public enum ExceptionType
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/TestStarter.cs
class TestStarter (line 9) | [InitializeOnLoad]
method TestStarter (line 12) | static TestStarter()
method UpdateWatch (line 35) | static void UpdateWatch()
method ShouldRunTests (line 51) | static bool ShouldRunTests()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/CommandLineTest/TimeoutCallbacks.cs
class TimeoutCallbacks (line 8) | internal class TimeoutCallbacks : ScriptableObject, ICallbacks
method Init (line 19) | public void Init(Func<Action, double, IDelayedCallback> delayedCallbac...
method RunFinished (line 26) | public void RunFinished(ITestResultAdaptor result)
method RunStarted (line 34) | public void RunStarted(ITestAdaptor testsToRun)
method TestFinished (line 39) | public void TestFinished(ITestResultAdaptor result)
method TestStarted (line 44) | public void TestStarted(ITestAdaptor test)
method ResetToTimeout (line 49) | private void ResetToTimeout(double timeoutValue)
method TimeoutReached (line 67) | private void TimeoutReached()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/AssetsDatabaseHelper.cs
class AssetsDatabaseHelper (line 3) | internal class AssetsDatabaseHelper : IAssetsDatabaseHelper
method OpenAssetInItsDefaultExternalEditor (line 5) | public void OpenAssetInItsDefaultExternalEditor(string assetPath, int ...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/GuiHelper.cs
class GuiHelper (line 11) | internal class GuiHelper : IGuiHelper
method GuiHelper (line 13) | public GuiHelper(IMonoCecilHelper monoCecilHelper, IAssetsDatabaseHelp...
method OpenScriptInExternalEditor (line 22) | public void OpenScriptInExternalEditor(Type type, MethodInfo method)
method GetFileOpenInfo (line 41) | public IFileOpenInfo GetFileOpenInfo(Type type, MethodInfo method)
method FilePathToAssetsRelativeAndUnified (line 63) | public string FilePathToAssetsRelativeAndUnified(string filePath)
method OpenScriptInExternalEditor (line 74) | public bool OpenScriptInExternalEditor(string stacktrace)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/IAssetsDatabaseHelper.cs
type IAssetsDatabaseHelper (line 3) | internal interface IAssetsDatabaseHelper
method OpenAssetInItsDefaultExternalEditor (line 5) | void OpenAssetInItsDefaultExternalEditor(string assetPath, int line);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/IGuiHelper.cs
type IGuiHelper (line 6) | internal interface IGuiHelper
method OpenScriptInExternalEditor (line 8) | bool OpenScriptInExternalEditor(string stacktrace);
method OpenScriptInExternalEditor (line 9) | void OpenScriptInExternalEditor(Type type, MethodInfo method);
method GetFileOpenInfo (line 10) | IFileOpenInfo GetFileOpenInfo(Type type, MethodInfo method);
method FilePathToAssetsRelativeAndUnified (line 11) | string FilePathToAssetsRelativeAndUnified(string filePath);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListBuilder/RenderingOptions.cs
class RenderingOptions (line 3) | internal class RenderingOptions
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListBuilder/ResultSummarizer.cs
class ResultSummarizer (line 14) | internal class ResultSummarizer
method ResultSummarizer (line 28) | public ResultSummarizer(IEnumerable<TestRunnerResult> results)
method Summarize (line 124) | public void Summarize(TestRunnerResult result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListBuilder/TestFilterSettings.cs
class TestFilterSettings (line 8) | internal class TestFilterSettings
method TestFilterSettings (line 27) | public TestFilterSettings(string prefsKey)
method Load (line 35) | public void Load()
method Save (line 45) | public void Save()
method UpdateCounters (line 55) | public void UpdateCounters(IEnumerable<TestRunnerResult> results)
method GetSelectedCategories (line 65) | public string[] GetSelectedCategories()
method OnGUI (line 73) | public void OnGUI()
method BuildRenderingOptions (line 93) | public RenderingOptions BuildRenderingOptions()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListBuilder/TestTreeViewBuilder.cs
class TestTreeViewBuilder (line 11) | internal class TestTreeViewBuilder
method TestTreeViewBuilder (line 25) | public TestTreeViewBuilder(ITestAdaptor tests, List<TestRunnerResult> ...
method BuildTreeView (line 33) | public TreeViewItem BuildTreeView(TestFilterSettings settings, bool sc...
method IsFilteredOutByUIFilter (line 40) | private bool IsFilteredOutByUIFilter(ITestAdaptor test, TestRunnerResu...
method ParseTestTree (line 53) | private void ParseTestTree(int depth, TreeViewItem rootItem, ITestAdap...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListGuiHelper.cs
class TestListGUIHelper (line 10) | internal class TestListGUIHelper
method MenuItemAddFolderAndAsmDefForTesting (line 22) | [MenuItem("Assets/Create/Testing/Tests Assembly Folder", false, 83)]
method MenuItemAddFolderAndAsmDefForTestingWithValidation (line 28) | [MenuItem("Assets/Create/Testing/Tests Assembly Folder", true, 83)]
method AddFolderAndAsmDefForTesting (line 34) | public static void AddFolderAndAsmDefForTesting(bool isEditorOnly = fa...
method SelectedFolderContainsTestAssembly (line 40) | public static bool SelectedFolderContainsTestAssembly()
method AddTest (line 51) | [MenuItem("Assets/Create/Testing/C# Test Script", false, 83)]
method CanAddScriptAndItWillCompile (line 64) | [MenuItem("Assets/Create/Testing/C# Test Script", true, 83)]
method CanAddEditModeTestScriptAndItWillCompile (line 70) | public static bool CanAddEditModeTestScriptAndItWillCompile()
method CanAddPlayModeTestScriptAndItWillCompile (line 83) | public static bool CanAddPlayModeTestScriptAndItWillCompile()
method GetActiveFolderPath (line 103) | public static string GetActiveFolderPath()
method GetTheNearestCustomScriptAssembly (line 119) | private static CustomScriptAssembly GetTheNearestCustomScriptAssembly()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListTreeView/Icons.cs
class Icons (line 5) | internal static class Icons
method Icons (line 14) | static Icons()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewDataSource.cs
class TestListTreeViewDataSource (line 10) | internal class TestListTreeViewDataSource : TreeViewDataSource
method TestListTreeViewDataSource (line 16) | public TestListTreeViewDataSource(TreeViewController testListTree, Tes...
method FetchData (line 24) | public override void FetchData()
method IsRenamingItemAllowed (line 45) | public override bool IsRenamingItemAllowed(TreeViewItem item)
method ExpandTreeOnCreation (line 50) | public void ExpandTreeOnCreation()
method IsExpandable (line 55) | public override bool IsExpandable(TreeViewItem item)
method Search (line 62) | protected override List<TreeViewItem> Search(TreeViewItem rootItem, st...
method SearchTestTree (line 76) | protected void SearchTestTree(TreeViewItem item, string search, IList<...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewGUI.cs
class TestListTreeViewGUI (line 5) | internal class TestListTreeViewGUI : TreeViewGUI
method TestListTreeViewGUI (line 7) | public TestListTreeViewGUI(TreeViewController testListTree) : base(tes...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestListTreeView/TestTreeViewItem.cs
class TestTreeViewItem (line 10) | internal sealed class TestTreeViewItem : TreeViewItem
method TestTreeViewItem (line 24) | public TestTreeViewItem(ITestAdaptor test, int depth, TreeViewItem par...
method GetId (line 42) | private static int GetId(ITestAdaptor test)
method SetResult (line 47) | public void SetResult(TestRunnerResult testResult)
method GetResultText (line 54) | public string GetResultText()
method ResultUpdated (line 85) | private void ResultUpdated(TestRunnerResult testResult)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestRunnerResult.cs
class TestRunnerResult (line 9) | [Serializable]
method TestRunnerResult (line 37) | internal TestRunnerResult(ITestAdaptor test)
method TestRunnerResult (line 64) | internal TestRunnerResult(ITestResultAdaptor testResult) : this(testRe...
method Update (line 82) | public void Update(TestRunnerResult result)
method SetResultChangedCallback (line 99) | public void SetResultChangedCallback(Action<TestRunnerResult> resultUp...
type ResultStatus (line 104) | [Serializable]
method ParseNUnitResultStatus (line 114) | private static ResultStatus ParseNUnitResultStatus(TestStatus status)
method ToString (line 131) | public override string ToString()
method Clear (line 142) | public void Clear()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/TestRunnerUIFilter.cs
class TestRunnerUIFilter (line 9) | [Serializable]
method UpdateCounters (line 68) | public void UpdateCounters(List<TestRunnerResult> resultList)
method Draw (line 104) | public void Draw()
method GetMaxWidth (line 147) | private static int GetMaxWidth(int count)
method Clear (line 154) | public void Clear()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/Views/EditModeTestListGUI.cs
class EditModeTestListGUI (line 10) | [Serializable]
method RenderNoTestsInfo (line 18) | public override void RenderNoTestsInfo()
method PrintHeadPanel (line 50) | public override void PrintHeadPanel()
method RunTests (line 56) | protected override void RunTests(TestRunnerFilter filter)
method IsBusy (line 83) | protected override bool IsBusy()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/Views/PlayModeTestListGUI.cs
class PlayModeTestListGUI (line 13) | [Serializable]
method PrintHeadPanel (line 20) | public override void PrintHeadPanel()
method RenderNoTestsInfo (line 34) | public override void RenderNoTestsInfo()
method RunTests (line 67) | protected override void RunTests(TestRunnerFilter filter)
method RunTestsInPlayer (line 92) | protected void RunTestsInPlayer(TestRunnerFilter filter)
method IsBusy (line 101) | protected override bool IsBusy()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/GUI/Views/TestListGUIBase.cs
class TestListGUI (line 12) | internal abstract class TestListGUI
method TestListGUI (line 42) | protected TestListGUI()
method PrintHeadPanel (line 56) | public virtual void PrintHeadPanel()
method DrawFilters (line 97) | protected void DrawFilters()
method HasTreeData (line 104) | public bool HasTreeData()
method RenderTestList (line 109) | public virtual void RenderTestList()
method RenderNoTestsInfo (line 145) | public virtual void RenderNoTestsInfo()
method RenderDetails (line 150) | public void RenderDetails()
method Reload (line 162) | public void Reload()
method Repaint (line 171) | public void Repaint()
method Init (line 184) | public void Init(TestRunnerWindow window, ITestAdaptor rootTest)
method UpdateResult (line 224) | public void UpdateResult(TestRunnerResult result)
method UpdateQueuedResults (line 247) | private void UpdateQueuedResults()
method TestSelectionCallback (line 263) | internal void TestSelectionCallback(int[] selected)
method TestDoubleClickCallback (line 284) | protected virtual void TestDoubleClickCallback(int id)
method RunTests (line 293) | protected virtual void RunTests(TestRunnerFilter filter)
method TestContextClickCallback (line 298) | protected virtual void TestContextClickCallback(int id)
method GetSelectedTestsAsFilter (line 369) | private TestRunnerFilter GetSelectedTestsAsFilter(IEnumerable<int> sel...
method GetSelectedTest (line 411) | private TestTreeViewItem GetSelectedTest()
method RebuildUIFilter (line 426) | public void RebuildUIFilter()
method RepaintIfProjectPathChanged (line 435) | public void RepaintIfProjectPathChanged()
method IsBusy (line 447) | protected abstract bool IsBusy();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/NUnitExtension/Attributes/AssetPipelineIgnore.cs
class AssetPipelineIgnore (line 11) | internal static class AssetPipelineIgnore
type AssetPipelineBackend (line 13) | internal enum AssetPipelineBackend
class IgnoreInV1 (line 22) | internal class IgnoreInV1 : AssetPipelineIgnoreAttribute
method IgnoreInV1 (line 24) | public IgnoreInV1(string ignoreReason) : base(AssetPipelineBackend.V...
class IgnoreInV2 (line 30) | internal class IgnoreInV2 : AssetPipelineIgnoreAttribute
method IgnoreInV2 (line 32) | public IgnoreInV2(string ignoreReason) : base(AssetPipelineBackend.V...
class AssetPipelineIgnoreAttribute (line 35) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | A...
method AssetPipelineIgnoreAttribute (line 46) | public AssetPipelineIgnoreAttribute(AssetPipelineBackend backend, st...
method ApplyToTest (line 52) | public void ApplyToTest(Test test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/NUnitExtension/TestRunnerStateSerializer.cs
class TestRunnerStateSerializer (line 12) | [Serializable]
method ShouldRestore (line 44) | public bool ShouldRestore()
method SaveContext (line 49) | public void SaveContext()
method RestoreContext (line 81) | public void RestoreContext()
method CanRestoreFromScriptableObject (line 98) | public bool CanRestoreFromScriptableObject(Type requestedType)
method RestoreScriptableObjectInstance (line 107) | public ScriptableObject RestoreScriptableObjectInstance()
method CanRestoreFromJson (line 121) | public bool CanRestoreFromJson(Type requestedType)
method RestoreClassFromJson (line 130) | public void RestoreClassFromJson(ref object instance)
method OnPlayModeStateChanged (line 142) | private void OnPlayModeStateChanged(PlayModeStateChange state)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/RequireApiProfileAttribute.cs
class RequireApiProfileAttribute (line 9) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | Att...
method RequireApiProfileAttribute (line 14) | public RequireApiProfileAttribute(params ApiCompatibilityLevel[] apiPr...
method ApplyToTest (line 19) | void IApplyToTest.ApplyToTest(Test test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/RequirePlatformSupportAttribute.cs
class RequirePlatformSupportAttribute (line 9) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | Att...
method RequirePlatformSupportAttribute (line 12) | public RequirePlatformSupportAttribute(params BuildTarget[] platforms)
method ApplyToTest (line 19) | void IApplyToTest.ApplyToTest(Test test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestBuildAssemblyFilter.cs
class TestBuildAssemblyFilter (line 6) | internal class TestBuildAssemblyFilter : IFilterBuildAssemblies
method OnFilterAssemblies (line 12) | public string[] OnFilterAssemblies(BuildOptions buildOptions, string[]...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/AttributeFinderBase.cs
class AttributeFinderBase (line 10) | internal abstract class AttributeFinderBase
method Search (line 12) | public abstract IEnumerable<Type> Search(ITest tests, ITestFilter filt...
method AttributeFinderBase (line 18) | protected AttributeFinderBase(Func<T2, Type> typeSelector)
method Search (line 23) | public override IEnumerable<Type> Search(ITest tests, ITestFilter filt...
method GetMatchingTests (line 35) | private static void GetMatchingTests(ITest tests, ITestFilter filter, ...
method IsTestEnabledOnPlatform (line 54) | private static bool IsTestEnabledOnPlatform(ITest test, RuntimePlatfor...
method GetTypesFromPrebuildAttributes (line 77) | private IEnumerable<Type> GetTypesFromPrebuildAttributes(IEnumerable<I...
method GetTypesFromInterface (line 89) | private static IEnumerable<Type> GetTypesFromInterface(IEnumerable<ITe...
class AttributeFinderBase (line 15) | internal abstract class AttributeFinderBase<T1, T2> : AttributeFinderBas...
method Search (line 12) | public abstract IEnumerable<Type> Search(ITest tests, ITestFilter filt...
method AttributeFinderBase (line 18) | protected AttributeFinderBase(Func<T2, Type> typeSelector)
method Search (line 23) | public override IEnumerable<Type> Search(ITest tests, ITestFilter filt...
method GetMatchingTests (line 35) | private static void GetMatchingTests(ITest tests, ITestFilter filter, ...
method IsTestEnabledOnPlatform (line 54) | private static bool IsTestEnabledOnPlatform(ITest test, RuntimePlatfor...
method GetTypesFromPrebuildAttributes (line 77) | private IEnumerable<Type> GetTypesFromPrebuildAttributes(IEnumerable<I...
method GetTypesFromInterface (line 89) | private static IEnumerable<Type> GetTypesFromInterface(IEnumerable<ITe...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/EditModeLauncher.cs
class EditModeLauncher (line 13) | internal class EditModeLauncher : TestLauncherBase
method EditModeLauncher (line 18) | public EditModeLauncher(TestRunnerFilter filter, TestPlatform platform)
method Run (line 25) | public override void Run()
method OpenNewScene (line 55) | private static bool OpenNewScene(out SceneSetup[] previousSceneSetup)
method ReloadUnsavedDirtyScene (line 82) | private static void ReloadUnsavedDirtyScene()
method RemoveUntitledScenes (line 96) | private static void RemoveUntitledScenes()
class BackgroundListener (line 116) | public class BackgroundListener : ScriptableObject, ITestRunnerListener
method RunStarted (line 118) | public void RunStarted(ITest testsToRun)
method RunFinished (line 122) | public void RunFinished(ITestResult testResults)
method TestStarted (line 127) | public void TestStarted(ITest test)
method TestFinished (line 131) | public void TestFinished(ITestResult result)
method AddEventHandler (line 136) | public T AddEventHandler<T>() where T : ScriptableObject, ITestRunnerL...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/EditModeLauncherContextSettings.cs
class EditModeLauncherContextSettings (line 6) | internal class EditModeLauncherContextSettings : IDisposable
method EditModeLauncherContextSettings (line 10) | public EditModeLauncherContextSettings()
method Dispose (line 15) | public void Dispose()
method SetupProjectParameters (line 20) | private void SetupProjectParameters()
method CleanupProjectParameters (line 26) | private void CleanupProjectParameters()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/AndroidPlatformSetup.cs
class AndroidPlatformSetup (line 7) | internal class AndroidPlatformSetup : IPlatformSetup
method Setup (line 14) | public void Setup()
method PostBuildAction (line 30) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 35) | public void PostSuccessfulBuildAction()
method CleanUp (line 56) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/ApplePlatformSetup.cs
class ApplePlatformSetup (line 7) | [Serializable]
method ApplePlatformSetup (line 13) | public ApplePlatformSetup(BuildTarget buildTarget)
method Setup (line 17) | public void Setup()
method PostBuildAction (line 24) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 30) | public void PostSuccessfulBuildAction()
method CleanUp (line 34) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/IPlatformSetup.cs
type IPlatformSetup (line 3) | internal interface IPlatformSetup
method Setup (line 5) | void Setup();
method PostBuildAction (line 6) | void PostBuildAction();
method PostSuccessfulBuildAction (line 7) | void PostSuccessfulBuildAction();
method CleanUp (line 8) | void CleanUp();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/LuminPlatformSetup.cs
class LuminPlatformSetup (line 7) | internal class LuminPlatformSetup : IPlatformSetup
method Setup (line 12) | public void Setup()
method PostBuildAction (line 16) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 20) | public void PostSuccessfulBuildAction()
method CleanUp (line 42) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/PlatformSpecificSetup.cs
class PlatformSpecificSetup (line 7) | [Serializable]
method PlatformSpecificSetup (line 33) | public PlatformSpecificSetup()
method PlatformSpecificSetup (line 37) | public PlatformSpecificSetup(BuildTarget target)
method Setup (line 42) | public void Setup()
method PostBuildAction (line 54) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 66) | public void PostSuccessfulBuildAction()
method CleanUp (line 78) | public void CleanUp()
method GetSetup (line 90) | private IDictionary<BuildTarget, IPlatformSetup> GetSetup()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/SwitchPlatformSetup.cs
class SwitchPlatformSetup (line 3) | internal class SwitchPlatformSetup : IPlatformSetup
method Setup (line 5) | public void Setup()
method PostBuildAction (line 21) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 25) | public void PostSuccessfulBuildAction()
method CleanUp (line 29) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/UwpPlatformSetup.cs
class UwpPlatformSetup (line 5) | internal class UwpPlatformSetup : IPlatformSetup
method Setup (line 11) | public void Setup()
method PostBuildAction (line 34) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 38) | public void PostSuccessfulBuildAction()
method CleanUp (line 42) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/XboxOnePlatformSetup.cs
class XboxOnePlatformSetup (line 3) | internal class XboxOnePlatformSetup : IPlatformSetup
method Setup (line 9) | public void Setup()
method PostBuildAction (line 24) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 28) | public void PostSuccessfulBuildAction()
method CleanUp (line 32) | public void CleanUp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlayerLauncher.cs
class TestLaunchFailedException (line 15) | internal class TestLaunchFailedException : Exception
method TestLaunchFailedException (line 17) | public TestLaunchFailedException() {}
method TestLaunchFailedException (line 18) | public TestLaunchFailedException(string message) : base(message) {}
class PlayerLauncher (line 21) | [Serializable]
method PlayerLauncher (line 29) | public PlayerLauncher(PlaymodeTestsControllerSettings settings, BuildT...
method Run (line 41) | public override void Run()
method PrepareScene (line 86) | public Scene PrepareScene(string sceneName)
method BuildAndRunPlayer (line 97) | private static bool BuildAndRunPlayer(PlayerLauncherBuildOptions build...
method GetBuildOptions (line 121) | private PlayerLauncherBuildOptions GetBuildOptions(Scene scene)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherBuildOptions.cs
class PlayerLauncherBuildOptions (line 5) | internal class PlayerLauncherBuildOptions
method ToString (line 10) | public override string ToString()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherContextSettings.cs
class PlayerLauncherContextSettings (line 7) | internal class PlayerLauncherContextSettings : IDisposable
method PlayerLauncherContextSettings (line 26) | public PlayerLauncherContextSettings(ITestRunSettings overloadSettings)
method Dispose (line 37) | public void Dispose()
method SetupProjectParameters (line 51) | private void SetupProjectParameters()
method CleanupProjectParameters (line 87) | private void CleanupProjectParameters()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PlaymodeLauncher.cs
class PlaymodeLauncher (line 12) | internal class PlaymodeLauncher : RuntimeTestLauncherBase
method PlaymodeLauncher (line 23) | public PlaymodeLauncher(PlaymodeTestsControllerSettings settings)
method Run (line 28) | public override void Run()
method UpdateCallback (line 61) | public void UpdateCallback()
class BackgroundWatcher (line 90) | [InitializeOnLoad]
method BackgroundWatcher (line 93) | static BackgroundWatcher()
method OnPlayModeStateChanged (line 98) | private static void OnPlayModeStateChanged(PlayModeStateChange state)
method ReopenOriginalScene (line 119) | protected static void ReopenOriginalScene(PlaymodeTestsController runner)
method AddEventHandler (line 124) | public void AddEventHandler<T>() where T : ScriptableObject, ITestRunn...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PostbuildCleanupAttributeFinder.cs
class PostbuildCleanupAttributeFinder (line 5) | internal class PostbuildCleanupAttributeFinder : AttributeFinderBase<IPo...
method PostbuildCleanupAttributeFinder (line 7) | public PostbuildCleanupAttributeFinder() : base(attribute => attribute...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/PrebuildSetupAttributeFinder.cs
class PrebuildSetupAttributeFinder (line 5) | internal class PrebuildSetupAttributeFinder : AttributeFinderBase<IPrebu...
method PrebuildSetupAttributeFinder (line 7) | public PrebuildSetupAttributeFinder() : base((attribute) => attribute....
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/RemotePlayerLogController.cs
class RemotePlayerLogController (line 9) | [Serializable]
method SetBuildTarget (line 18) | public void SetBuildTarget(BuildTarget buildTarget)
method SetLogsDirectory (line 23) | public void SetLogsDirectory(string dir)
method StartLogWriters (line 28) | public void StartLogWriters()
method StopLogWriters (line 42) | public void StopLogWriters()
method GetDeploymentTargetLoggers (line 53) | private Dictionary<string, DeploymentTargetLogger> GetDeploymentTarget...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/RemotePlayerTestController.cs
class RemoteTestRunController (line 12) | [Serializable]
method Init (line 24) | public void Init(BuildTarget buildTarget)
method DelegateEditorConnectionEvents (line 37) | private void DelegateEditorConnectionEvents()
method RunStarted (line 47) | private void RunStarted(MessageEventArgs messageEventArgs)
method RunFinished (line 53) | private void RunFinished(MessageEventArgs messageEventArgs)
method TestStarted (line 61) | private void TestStarted(MessageEventArgs messageEventArgs)
method TestFinished (line 66) | private void TestFinished(MessageEventArgs messageEventArgs)
method PostBuildAction (line 71) | public void PostBuildAction()
method PostSuccessfulBuildAction (line 76) | public void PostSuccessfulBuildAction()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/RemoteTestResultReciever.cs
class RemoteTestResultReciever (line 9) | [Serializable]
method RunStarted (line 12) | public void RunStarted(MessageEventArgs messageEventArgs)
method RunFinished (line 16) | public void RunFinished(MessageEventArgs messageEventArgs)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/RuntimeTestLauncherBase.cs
class RuntimeTestLauncherBase (line 16) | internal abstract class RuntimeTestLauncherBase : TestLauncherBase
method CreateBootstrapScene (line 18) | protected Scene CreateBootstrapScene(string sceneName, Action<Playmode...
method CreateSceneName (line 37) | public string CreateSceneName()
method LoadTests (line 42) | protected UnityTestAssemblyRunner LoadTests(ITestFilter filter)
method ReopenOriginalScene (line 53) | protected static void ReopenOriginalScene(string originalSceneName)
class PlaymodeTestsControllerExtensions (line 63) | internal static class PlaymodeTestsControllerExtensions
method AddEventHandlerMonoBehaviour (line 65) | internal static T AddEventHandlerMonoBehaviour<T>(this PlaymodeTestsCo...
method AddEventHandlerScriptableObject (line 72) | internal static T AddEventHandlerScriptableObject<T>(this PlaymodeTest...
method AddEventHandlerScriptableObject (line 79) | internal static void AddEventHandlerScriptableObject(this PlaymodeTest...
method SetListeners (line 84) | private static void SetListeners(PlaymodeTestsController controller, I...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestLaunchers/TestLauncherBase.cs
class TestLauncherBase (line 8) | internal abstract class TestLauncherBase
method Run (line 10) | public abstract void Run();
method ExecutePreBuildSetupMethods (line 17) | protected bool ExecutePreBuildSetupMethods(ITest tests, ITestFilter te...
method ExecutePostBuildCleanupMethods (line 24) | public void ExecutePostBuildCleanupMethods(ITest tests, ITestFilter te...
method ExecutePostBuildCleanupMethods (line 29) | public static void ExecutePostBuildCleanupMethods(ITest tests, ITestFi...
method ExecuteMethods (line 36) | private static bool ExecuteMethods<T>(ITest tests, ITestFilter testRun...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestResultSerializer.cs
class TestResultSerializer (line 10) | [Serializable]
method MakeFromTestResult (line 36) | public static TestResultSerializer MakeFromTestResult(ITestResult result)
method RestoreTestResult (line 52) | public void RestoreTestResult(TestResult result)
method IsPassed (line 66) | public bool IsPassed()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/EditModeRunnerCallback.cs
class EditModeRunnerCallback (line 13) | internal class EditModeRunnerCallback : ScriptableObject, ITestRunnerLis...
method OnDestroy (line 31) | public void OnDestroy()
method RunStarted (line 36) | public void RunStarted(ITest testsToRun)
method OnEnable (line 46) | public void OnEnable()
method Setup (line 54) | private void Setup()
method BeforeAssemblyReload (line 63) | private void BeforeAssemblyReload()
method DisplayProgressBar (line 72) | private void DisplayProgressBar()
method LogReceived (line 85) | private static void LogReceived(string message, string stacktrace, Log...
method WaitForExitPlaymode (line 91) | private static void WaitForExitPlaymode(PlayModeStateChange state)
method RunFinished (line 104) | public void RunFinished(ITestResult result)
method CleanUp (line 125) | private void CleanUp()
method TestStarted (line 137) | public void TestStarted(ITest test)
method TestFinished (line 153) | public void TestFinished(ITestResult result)
method PerformUndo (line 161) | private static void PerformUndo(int undoGroup)
method GetTestsExpectedToRun (line 171) | private static List<string> GetTestsExpectedToRun(ITest test, ITestFil...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallback.cs
class RerunCallback (line 8) | internal class RerunCallback : ScriptableObject, ICallbacks
method RunFinished (line 13) | public void RunFinished(ITestResultAdaptor result)
method WaitForExitPlaymode (line 45) | private static void WaitForExitPlaymode(PlayModeStateChange state)
method ExecuteTestRunnerAPI (line 53) | private static void ExecuteTestRunnerAPI()
method TestStarted (line 71) | public void TestStarted(ITestAdaptor test)
method TestFinished (line 75) | public void TestFinished(ITestResultAdaptor result)
method RunStarted (line 79) | public void RunStarted(ITestAdaptor testsToRun)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackData.cs
class RerunCallbackData (line 7) | internal class RerunCallbackData : ScriptableSingleton<RerunCallbackData>
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackInitializer.cs
class RerunCallbackInitializer (line 6) | [InitializeOnLoad]
method RerunCallbackInitializer (line 9) | static RerunCallbackInitializer()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/TestRunnerCallback.cs
class TestRunnerCallback (line 7) | internal class TestRunnerCallback : ScriptableObject, ITestRunnerListener
method RunStarted (line 9) | public void RunStarted(ITest testsToRun)
method OnPlayModeStateChanged (line 14) | private void OnPlayModeStateChanged(PlayModeStateChange state)
method RunFinished (line 24) | public void RunFinished(ITestResult testResults)
method TestStarted (line 29) | public void TestStarted(ITest testName)
method TestFinished (line 33) | public void TestFinished(ITestResult test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdater.cs
class WindowResultUpdater (line 5) | internal class WindowResultUpdater : ICallbacks
method RunStarted (line 7) | public void RunStarted(ITestAdaptor testsToRun)
method RunFinished (line 11) | public void RunFinished(ITestResultAdaptor testResults)
method TestStarted (line 19) | public void TestStarted(ITestAdaptor testName)
method TestFinished (line 23) | public void TestFinished(ITestResultAdaptor test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs
class EditModePcHelper (line 7) | internal class EditModePcHelper : TestCommandPcHelper
method SetEnumeratorPC (line 9) | public override void SetEnumeratorPC(IEnumerator enumerator, int pc)
method GetEnumeratorPC (line 14) | public override int GetEnumeratorPC(IEnumerator enumerator)
method GetPCFieldInfo (line 23) | private FieldInfo GetPCFieldInfo(IEnumerator enumerator)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/EditModeRunner.cs
type IUnityTestAssemblyRunnerFactory (line 18) | internal interface IUnityTestAssemblyRunnerFactory
method Create (line 20) | IUnityTestAssemblyRunner Create(TestPlatform testPlatform, WorkItemFac...
class UnityTestAssemblyRunnerFactory (line 23) | internal class UnityTestAssemblyRunnerFactory : IUnityTestAssemblyRunner...
method Create (line 25) | public IUnityTestAssemblyRunner Create(TestPlatform testPlatform, Work...
class EditModeRunner (line 31) | [Serializable]
method Init (line 93) | public void Init(TestRunnerFilter filter, TestPlatform platform)
method InitRunner (line 102) | private void InitRunner()
method OnEnable (line 116) | public void OnEnable()
method TestStartedEvent (line 136) | public void TestStartedEvent(ITest test)
method TestFinishedEvent (line 141) | public void TestFinishedEvent(ITestResult testResult)
method Run (line 147) | public void Run()
method OnBeforeAssemblyReload (line 190) | private void OnBeforeAssemblyReload()
method MoveNextAndUpdateYieldObject (line 221) | private bool MoveNextAndUpdateYieldObject()
method TestConsumer (line 254) | private void TestConsumer()
method CompleteTestRun (line 275) | private void CompleteTestRun()
method OnRestoringTest (line 288) | private void OnRestoringTest()
method IsCancelled (line 297) | private static bool IsCancelled()
method InvokeDelegator (line 302) | private void InvokeDelegator()
method CompilationFailureWatch (line 345) | private void CompilationFailureWatch()
method PrepareForDomainReload (line 359) | private void PrepareForDomainReload()
method AddEventHandler (line 368) | public T AddEventHandler<T>() where T : ScriptableObject, ITestRunnerL...
method AddListeners (line 379) | private void AddListeners(ITestRunnerListener eventHandler)
method Dispose (line 387) | public void Dispose()
method OnRunCancel (line 406) | public void OnRunCancel()
method GetLoadedTests (line 413) | public ITest GetLoadedTests()
method GetFilter (line 418) | public ITestFilter GetFilter()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/EditmodeWorkItemFactory.cs
class EditmodeWorkItemFactory (line 7) | internal class EditmodeWorkItemFactory : WorkItemFactory
method Create (line 9) | protected override UnityWorkItem Create(TestMethod method, ITestFilter...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/EditorEnumeratorTestWorkItem.cs
class EditorEnumeratorTestWorkItem (line 13) | internal class EditorEnumeratorTestWorkItem : UnityWorkItem
method EditorEnumeratorTestWorkItem (line 17) | public EditorEnumeratorTestWorkItem(TestMethod test, ITestFilter filter)
method FindFirstIEnumerableTestMethodCommand (line 25) | private static IEnumerableTestMethodCommand FindFirstIEnumerableTestMe...
method PerformWork (line 45) | protected override IEnumerable PerformWork()
method IsCancelledRun (line 176) | private bool IsCancelledRun()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/EnumeratorStepHelper.cs
class EnumeratorStepHelper (line 6) | internal class EnumeratorStepHelper
method SetEnumeratorPC (line 10) | public static void SetEnumeratorPC(int pc)
method GetEnumeratorPC (line 22) | public static int GetEnumeratorPC(IEnumerator enumerator)
method UpdateEnumeratorPcIfNeeded (line 31) | public static bool UpdateEnumeratorPcIfNeeded(IEnumerator enumerator)
method GetPCFieldInfo (line 42) | private static FieldInfo GetPCFieldInfo(IEnumerator enumerator)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Messages/EnterPlayMode.cs
class EnterPlayMode (line 7) | public class EnterPlayMode : IEditModeTestYieldInstruction
method EnterPlayMode (line 12) | public EnterPlayMode(bool expectDomainReload = true)
method Perform (line 17) | public IEnumerator Perform()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Messages/ExitPlayMode.cs
class ExitPlayMode (line 7) | public class ExitPlayMode : IEditModeTestYieldInstruction
method ExitPlayMode (line 12) | public ExitPlayMode()
method Perform (line 18) | public IEnumerator Perform()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Messages/RecompileScripts.cs
class RecompileScripts (line 7) | internal class RecompileScripts : IEditModeTestYieldInstruction
method RecompileScripts (line 9) | public RecompileScripts() : this(true)
method RecompileScripts (line 13) | public RecompileScripts(bool expectScriptCompilation) : this(expectScr...
method RecompileScripts (line 17) | public RecompileScripts(bool expectScriptCompilation, bool expectScrip...
method Perform (line 30) | public IEnumerator Perform()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Messages/WaitForDomainReload.cs
class WaitForDomainReload (line 7) | internal class WaitForDomainReload : IEditModeTestYieldInstruction
method WaitForDomainReload (line 9) | public WaitForDomainReload()
method Perform (line 17) | public IEnumerator Perform()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/TestFileCleanupVerifier.cs
class TestFileCleanupVerifier (line 9) | [Serializable]
method RegisterExistingFiles (line 39) | public void RegisterExistingFiles()
method VerifyNoNewFilesAdded (line 50) | public void VerifyNoNewFilesAdded()
method LogWarningForFilesIfAny (line 62) | void LogWarningForFilesIfAny(IEnumerable<string> filePaths)
method LogAction (line 81) | private void LogAction(object obj)
method GetAllFilesInAssetsDirectory (line 93) | private IEnumerable<string> GetAllFilesInAssetsDirectory()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/CachingTestListProvider.cs
class CachingTestListProvider (line 9) | internal class CachingTestListProvider
method CachingTestListProvider (line 14) | public CachingTestListProvider(ITestListProvider innerTestListProvider...
method GetTestListAsync (line 21) | public IEnumerator<ITestAdaptor> GetTestListAsync(TestPlatform platform)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/EditorAssembliesProxy.cs
class EditorAssembliesProxy (line 6) | internal class EditorAssembliesProxy : IEditorAssembliesProxy
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/EditorAssemblyWrapper.cs
class EditorAssemblyWrapper (line 6) | internal class EditorAssemblyWrapper : AssemblyWrapper
method EditorAssemblyWrapper (line 8) | public EditorAssemblyWrapper(Assembly assembly)
method GetReferencedAssemblies (line 11) | public override AssemblyName[] GetReferencedAssemblies()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/EditorCompilationInterfaceProxy.cs
class EditorCompilationInterfaceProxy (line 5) | internal class EditorCompilationInterfaceProxy : IEditorCompilationInter...
method GetAllEditorScriptAssemblies (line 7) | public ScriptAssembly[] GetAllEditorScriptAssemblies()
method GetAllPrecompiledAssemblies (line 12) | public PrecompiledAssembly[] GetAllPrecompiledAssemblies()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/EditorLoadedTestAssemblyProvider.cs
class EditorLoadedTestAssemblyProvider (line 10) | internal class EditorLoadedTestAssemblyProvider
method EditorLoadedTestAssemblyProvider (line 20) | public EditorLoadedTestAssemblyProvider(IEditorCompilationInterfacePro...
method GetAssembliesGroupedByType (line 27) | public List<IAssemblyWrapper> GetAssembliesGroupedByType(TestPlatform ...
method GetAssembliesGroupedByTypeAsync (line 37) | public IEnumerator<List<IAssemblyWrapper>> GetAssembliesGroupedByTypeA...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/IEditorAssembliesProxy.cs
type IEditorAssembliesProxy (line 5) | internal interface IEditorAssembliesProxy
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/IEditorCompilationInterfaceProxy.cs
type IEditorCompilationInterfaceProxy (line 5) | internal interface IEditorCompilationInterfaceProxy
method GetAllEditorScriptAssemblies (line 7) | ScriptAssembly[] GetAllEditorScriptAssemblies();
method GetAllPrecompiledAssemblies (line 8) | PrecompiledAssembly[] GetAllPrecompiledAssemblies();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/ITestListCache.cs
type ITestListCache (line 8) | interface ITestListCache
method CacheTest (line 10) | void CacheTest(TestPlatform platform, ITest test);
method GetTestFromCacheAsync (line 11) | IEnumerator<ITestAdaptor> GetTestFromCacheAsync(TestPlatform platform);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/ITestListCacheData.cs
type ITestListCacheData (line 7) | interface ITestListCacheData
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/ITestListProvider.cs
type ITestListProvider (line 7) | interface ITestListProvider
method GetTestListAsync (line 9) | IEnumerator<ITest> GetTestListAsync(TestPlatform platform);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/TestListCache.cs
class TestListCache (line 9) | internal class TestListCache : ITestListCache
method TestListCache (line 15) | public TestListCache(ITestAdaptorFactory testAdaptorFactory, IRemoteTe...
method CacheTest (line 22) | public void CacheTest(TestPlatform platform, ITest test)
method GetTestFromCacheAsync (line 38) | public IEnumerator<ITestAdaptor> GetTestFromCacheAsync(TestPlatform pl...
method ScriptReloaded (line 57) | [Callbacks.DidReloadScripts]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/TestListCacheData.cs
class TestListCacheData (line 8) | internal class TestListCacheData : ScriptableSingleton<TestListCacheData...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/TestListJob.cs
class TestListJob (line 8) | internal class TestListJob
method TestListJob (line 14) | public TestListJob(CachingTestListProvider testListProvider, TestPlatf...
method Start (line 21) | public void Start()
method EditorUpdate (line 27) | private void EditorUpdate()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunner/Utils/TestListProvider.cs
class TestListProvider (line 10) | internal class TestListProvider : ITestListProvider
method TestListProvider (line 15) | public TestListProvider(EditorLoadedTestAssemblyProvider assemblyProvi...
method GetTestListAsync (line 21) | public IEnumerator<ITest> GetTestListAsync(TestPlatform platform)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunnerWindow.cs
class TestRunnerWindow (line 9) | [Serializable]
class Styles (line 12) | internal static class Styles
method Styles (line 17) | static Styles()
type TestRunnerMenuLabels (line 46) | private enum TestRunnerMenuLabels
method ShowPlaymodeTestsRunnerWindowCodeBased (line 64) | [MenuItem("Window/General/Test Runner", false, 201, false)]
method TestRunnerWindow (line 83) | static TestRunnerWindow()
method InitBackgroundRunners (line 88) | private static void InitBackgroundRunners()
method CompilationCallback (line 94) | [DidReloadScripts]
method OnPlayModeStateChanged (line 100) | private static void OnPlayModeStateChanged(PlayModeStateChange state)
method OnDestroy (line 110) | public void OnDestroy()
method OnEnable (line 119) | private void OnEnable()
method Enable (line 129) | private void Enable()
method SelectTestListGUI (line 144) | private void SelectTestListGUI(int testTypeToolbarIndex)
method StartRetrieveTestList (line 164) | private void StartRetrieveTestList()
method OnGUI (line 176) | public void OnGUI()
method AddItemsToMenu (line 232) | public void AddItemsToMenu(GenericMenu menu)
method RebuildUIFilter (line 257) | public void RebuildUIFilter()
method UpdateWindow (line 265) | public static void UpdateWindow()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestRunnerWindowSettings.cs
class TestRunnerWindowSettings (line 3) | internal class TestRunnerWindowSettings
method TestRunnerWindowSettings (line 9) | public TestRunnerWindowSettings(string prefsKey)
method ToggleVerticalSplit (line 15) | public void ToggleVerticalSplit()
method Save (line 21) | private void Save()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestSettings/ITestSettings.cs
type ITestSettings (line 5) | internal interface ITestSettings : IDisposable
method SetupProjectParameters (line 20) | void SetupProjectParameters();
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestSettings/ITestSettingsDeserializer.cs
type ITestSettingsDeserializer (line 3) | interface ITestSettingsDeserializer
method GetSettingsFromJsonFile (line 5) | ITestSettings GetSettingsFromJsonFile(string jsonFilePath);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestSettings/TestSettings.cs
class TestSettings (line 5) | internal class TestSettings : ITestSettings
method Dispose (line 103) | public void Dispose()
method SetupProjectParameters (line 116) | public void SetupProjectParameters()
class TestSetting (line 124) | private abstract class TestSetting
method Setup (line 126) | public abstract void Setup(TestSettings settings);
method Cleanup (line 127) | public abstract void Cleanup();
method TestSetting (line 137) | public TestSetting(Func<TestSettings, T> getFromSettings, Func<T> ge...
method Setup (line 144) | public override void Setup(TestSettings settings)
method Cleanup (line 154) | public override void Cleanup()
class TestSetting (line 130) | private class TestSetting<T> : TestSetting
method Setup (line 126) | public abstract void Setup(TestSettings settings);
method Cleanup (line 127) | public abstract void Cleanup();
method TestSetting (line 137) | public TestSetting(Func<TestSettings, T> getFromSettings, Func<T> ge...
method Setup (line 144) | public override void Setup(TestSettings settings)
method Cleanup (line 154) | public override void Cleanup()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/TestSettings/TestSettingsDeserializer.cs
class TestSettingsDeserializer (line 12) | internal class TestSettingsDeserializer : ITestSettingsDeserializer
method TestSettingsDeserializer (line 28) | public TestSettingsDeserializer(Func<ITestSettings> testSettingsFactory)
method GetSettingsFromJsonFile (line 33) | public ITestSettings GetSettingsFromJsonFile(string jsonFilePath)
class SettingsMap (line 64) | private abstract class SettingsMap
method SettingsMap (line 68) | protected SettingsMap(string key, Type type)
method ApplyToSettings (line 74) | public abstract void ApplyToSettings(ITestSettings settings, object ...
method SettingsMap (line 80) | public SettingsMap(string key, Action<ITestSettings, T> setter) : ba...
method ApplyToSettings (line 85) | public override void ApplyToSettings(ITestSettings settings, object ...
class SettingsMap (line 77) | private class SettingsMap<T> : SettingsMap
method SettingsMap (line 68) | protected SettingsMap(string key, Type type)
method ApplyToSettings (line 74) | public abstract void ApplyToSettings(ITestSettings settings, object ...
method SettingsMap (line 80) | public SettingsMap(string key, Action<ITestSettings, T> setter) : ba...
method ApplyToSettings (line 85) | public override void ApplyToSettings(ITestSettings settings, object ...
method SetEnumValue (line 91) | private static void SetEnumValue(string key, object value, Type type, ...
method TryGetEnum (line 105) | private static bool TryGetEnum(string value, Type type, out object enu...
method SetValue (line 119) | private static void SetValue(string key, object value, Type type, Acti...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/AssemblyCompilationErrorsMessage.cs
class AssemblyCompilationErrorsMessage (line 3) | internal class AssemblyCompilationErrorsMessage : Message
method AssemblyCompilationErrorsMessage (line 8) | public AssemblyCompilationErrorsMessage()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/ITestRunnerApiMapper.cs
type ITestRunnerApiMapper (line 6) | interface ITestRunnerApiMapper
method GetRunStateFromResultNunitXml (line 8) | string GetRunStateFromResultNunitXml(ITestResultAdaptor result);
method GetTestStateFromResult (line 9) | TestState GetTestStateFromResult(ITestResultAdaptor result);
method FlattenTestNames (line 10) | List<string> FlattenTestNames(ITestAdaptor testsToRun);
method MapTestToTestPlanMessage (line 11) | TestPlanMessage MapTestToTestPlanMessage(ITestAdaptor testsToRun);
method MapTestToTestStartedMessage (line 12) | TestStartedMessage MapTestToTestStartedMessage(ITestAdaptor test);
method TestResultToTestFinishedMessage (line 13) | TestFinishedMessage TestResultToTestFinishedMessage(ITestResultAdaptor...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/IUtpLogger.cs
type IUtpLogger (line 3) | interface IUtpLogger
method Log (line 5) | void Log(Message msg);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/IUtpMessageReporter.cs
type IUtpMessageReporter (line 7) | internal interface IUtpMessageReporter
method ReportAssemblyCompilationErrors (line 9) | void ReportAssemblyCompilationErrors(string assembly, IEnumerable<Comp...
method ReportTestFinished (line 10) | void ReportTestFinished(ITestResultAdaptor result);
method ReportTestRunStarted (line 11) | void ReportTestRunStarted(ITestAdaptor testsToRun);
method ReportTestStarted (line 12) | void ReportTestStarted(ITestAdaptor test);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/Message.cs
class Message (line 6) | [Serializable]
method Message (line 16) | protected Message()
method AddTimeStamp (line 24) | public void AddTimeStamp()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/TestFinishedMessage.cs
class TestFinishedMessage (line 3) | internal class TestFinishedMessage : Message
method TestFinishedMessage (line 11) | public TestFinishedMessage()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/TestPlanMessage.cs
class TestPlanMessage (line 5) | internal class TestPlanMessage : Message
method TestPlanMessage (line 9) | public TestPlanMessage()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/TestRunnerApiMapper.cs
class TestRunnerApiMapper (line 9) | internal class TestRunnerApiMapper : ITestRunnerApiMapper
method MapTestToTestPlanMessage (line 11) | public TestPlanMessage MapTestToTestPlanMessage(ITestAdaptor testsToRun)
method MapTestToTestStartedMessage (line 23) | public TestStartedMessage MapTestToTestStartedMessage(ITestAdaptor test)
method TestResultToTestFinishedMessage (line 31) | public TestFinishedMessage TestResultToTestFinishedMessage(ITestResult...
method GetRunStateFromResultNunitXml (line 43) | public string GetRunStateFromResultNunitXml(ITestResultAdaptor result)
method GetTestStateFromResult (line 50) | public TestState GetTestStateFromResult(ITestResultAdaptor result)
method FlattenTestNames (line 84) | public List<string> FlattenTestNames(ITestAdaptor test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/TestStartedMessage.cs
class TestStartedMessage (line 3) | internal class TestStartedMessage : Message
method TestStartedMessage (line 8) | public TestStartedMessage()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/TestState.cs
type TestState (line 4) | internal enum TestState
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolListener.cs
class UnityTestProtocolListener (line 6) | internal class UnityTestProtocolListener : ScriptableObject, ICallbacks
method UnityTestProtocolListener (line 10) | public UnityTestProtocolListener()
method RunStarted (line 15) | public void RunStarted(ITestAdaptor testsToRun)
method RunFinished (line 20) | public void RunFinished(ITestResultAdaptor testResults)
method TestStarted (line 25) | public void TestStarted(ITestAdaptor test)
method TestFinished (line 30) | public void TestFinished(ITestResultAdaptor result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs
class UnityTestProtocolStarter (line 10) | [InitializeOnLoad]
method UnityTestProtocolStarter (line 13) | static UnityTestProtocolStarter()
method OnAssemblyCompilationFinished (line 25) | public static void OnAssemblyCompilationFinished(string assembly, Comp...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/UtpDebuglogger.cs
class UtpDebugLogger (line 5) | class UtpDebugLogger : IUtpLogger
method Log (line 7) | public void Log(Message msg)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEditor.TestRunner/UnityTestProtocol/UtpMessageReporter.cs
class UtpMessageReporter (line 8) | internal class UtpMessageReporter : IUtpMessageReporter
method UtpMessageReporter (line 13) | public UtpMessageReporter(IUtpLogger utpLogger)
method ReportAssemblyCompilationErrors (line 19) | public void ReportAssemblyCompilationErrors(string assembly, IEnumerab...
method ReportTestRunStarted (line 30) | public void ReportTestRunStarted(ITestAdaptor testsToRun)
method ReportTestStarted (line 37) | public void ReportTestStarted(ITestAdaptor test)
method ReportTestFinished (line 47) | public void ReportTestFinished(ITestResultAdaptor result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/AllocatingGCMemoryConstraint.cs
class AllocatingGCMemoryConstraint (line 8) | public class AllocatingGCMemoryConstraint : Constraint
class AllocatingGCMemoryResult (line 10) | private class AllocatingGCMemoryResult : ConstraintResult
method AllocatingGCMemoryResult (line 13) | public AllocatingGCMemoryResult(IConstraint constraint, object actua...
method WriteMessageTo (line 18) | public override void WriteMessageTo(MessageWriter writer)
method ApplyTo (line 27) | private ConstraintResult ApplyTo(Action action, object original)
method ApplyTo (line 57) | public override ConstraintResult ApplyTo(object obj)
method ApplyTo (line 70) | public override ConstraintResult ApplyTo<TActual>(ActualValueDelegate<...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/ConstraintsExtensions.cs
class ConstraintExtensions (line 5) | public static class ConstraintExtensions
method AllocatingGCMemory (line 7) | public static AllocatingGCMemoryConstraint AllocatingGCMemory(this Con...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/InvalidSignatureException.cs
class InvalidSignatureException (line 6) | internal class InvalidSignatureException : ResultStateException
method InvalidSignatureException (line 8) | public InvalidSignatureException(string message)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/Is.cs
class Is (line 3) | public class Is : NUnit.Framework.Is
method AllocatingGCMemory (line 5) | public static AllocatingGCMemoryConstraint AllocatingGCMemory()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/LogAssert.cs
class LogAssert (line 7) | public static class LogAssert
method Expect (line 9) | public static void Expect(LogType type, string message)
method Expect (line 14) | public static void Expect(LogType type, Regex message)
method NoUnexpectedReceived (line 19) | public static void NoUnexpectedReceived()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/LogScope/ILogScope.cs
type ILogScope (line 6) | internal interface ILogScope : IDisposable
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/LogScope/LogEvent.cs
class LogEvent (line 3) | internal class LogEvent
method ToString (line 13) | public override string ToString()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/LogScope/LogMatch.cs
class LogMatch (line 6) | [Serializable]
method Matches (line 78) | public bool Matches(LogEvent log)
method ToString (line 95) | public override string ToString()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/LogScope/LogScope.cs
class LogScope (line 7) | internal class LogScope : IDisposable
method HasCurrentLogScope (line 35) | internal static bool HasCurrentLogScope()
method LogScope (line 40) | public LogScope()
method Activate (line 49) | private void Activate()
method Deactivate (line 57) | private void Deactivate()
method RegisterScope (line 64) | private static void RegisterScope(LogScope logScope)
method UnregisterScope (line 69) | private static void UnregisterScope(LogScope logScope)
method AddLog (line 74) | public void AddLog(string message, string stacktrace, LogType type)
method IsAllLogsHandled (line 129) | public bool IsAllLogsHandled()
method GetUnhandledLog (line 137) | public LogEvent GetUnhandledLog()
method IsNUnitResultStateException (line 145) | private static bool IsNUnitResultStateException(string stacktrace, Log...
method IsFailingLog (line 153) | private static bool IsFailingLog(LogType type)
method Dispose (line 166) | public void Dispose()
method Dispose (line 172) | protected virtual void Dispose(bool disposing)
method AnyFailingLogs (line 187) | internal bool AnyFailingLogs()
method ProcessExpectedLogs (line 193) | internal void ProcessExpectedLogs()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/UnexpectedLogMessageException.cs
class UnexpectedLogMessageException (line 7) | internal class UnexpectedLogMessageException : ResultStateException
method UnexpectedLogMessageException (line 11) | public UnexpectedLogMessageException(LogMatch log)
method BuildMessage (line 17) | private static string BuildMessage(LogMatch log)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/UnhandledLogMessageException.cs
class UnhandledLogMessageException (line 8) | internal class UnhandledLogMessageException : ResultStateException
method UnhandledLogMessageException (line 13) | public UnhandledLogMessageException(LogEvent log)
method BuildMessage (line 20) | private static string BuildMessage(LogEvent log)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/Assertions/UnityTestTimeoutException.cs
class UnityTestTimeoutException (line 6) | internal class UnityTestTimeoutException : ResultStateException
method UnityTestTimeoutException (line 8) | public UnityTestTimeoutException(int timeout)
method BuildMessage (line 13) | private static string BuildMessage(int timeout)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/ActionDelegator.cs
class ActionDelegator (line 15) | internal class ActionDelegator : BaseDelegator
method Delegate (line 18) | public object Delegate(Action action)
method Delegate (line 23) | public object Delegate(Func<object> action)
method AssertState (line 41) | private void AssertState()
method HasAction (line 49) | public bool HasAction()
method Execute (line 54) | public void Execute(LogScope logScope)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestEnumerator.cs
class TestEnumerator (line 9) | internal class TestEnumerator
method TestEnumerator (line 16) | public TestEnumerator(ITestExecutionContext context, IEnumerator testE...
method Execute (line 22) | public IEnumerator Execute()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityCombinatorialStrategy.cs
class UnityCombinatorialStrategy (line 8) | internal class UnityCombinatorialStrategy : CombinatorialStrategy, IComb...
method GetTestCases (line 10) | public new IEnumerable<ITestCaseData> GetTestCases(IEnumerable[] sources)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityPlatformAttribute.cs
class UnityPlatformAttribute (line 10) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | Att...
method UnityPlatformAttribute (line 18) | public UnityPlatformAttribute()
method UnityPlatformAttribute (line 24) | public UnityPlatformAttribute(params RuntimePlatform[] include)
method ApplyToTest (line 30) | public void ApplyToTest(Test test)
method IsPlatformSupported (line 40) | internal bool IsPlatformSupported(RuntimePlatform testTargetPlatform)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnitySetUpAttribute.cs
class UnitySetUpAttribute (line 6) | [AttributeUsage(AttributeTargets.Method)]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTearDownAttribute.cs
class UnityTearDownAttribute (line 6) | [AttributeUsage(AttributeTargets.Method)]
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTestAttribute.cs
class UnityTestAttribute (line 11) | [AttributeUsage(AttributeTargets.Method)]
method UnityTestAttribute (line 14) | public UnityTestAttribute() : base(new UnityCombinatorialStrategy(), n...
method BuildFrom (line 18) | TestMethod ISimpleTestBuilder.BuildFrom(IMethodInfo method, Test suite)
method Wrap (line 33) | public TestCommand Wrap(TestCommand command)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/BaseDelegator.cs
class BaseDelegator (line 7) | internal abstract class BaseDelegator
method HandleResult (line 17) | protected object HandleResult()
method WaitForSignal (line 31) | protected void WaitForSignal()
method Abort (line 44) | public void Abort()
method SetCurrentTestContext (line 49) | protected void SetCurrentTestContext()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandBase.cs
class BeforeAfterTestCommandBase (line 14) | internal abstract class BeforeAfterTestCommandBase<T> : DelegatingTestCo...
method BeforeAfterTestCommandBase (line 19) | protected BeforeAfterTestCommandBase(TestCommand innerCommand, string ...
method InvokeBefore (line 31) | protected abstract IEnumerator InvokeBefore(T action, Test test, Unity...
method InvokeAfter (line 33) | protected abstract IEnumerator InvokeAfter(T action, Test test, UnityT...
method GetState (line 35) | protected abstract BeforeAfterTestCommandState GetState(UnityTestExecu...
method ExecuteEnumerable (line 37) | public IEnumerable ExecuteEnumerable(ITestExecutionContext context)
method Execute (line 172) | public override TestResult Execute(ITestExecutionContext context)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandState.cs
class BeforeAfterTestCommandState (line 6) | internal class BeforeAfterTestCommandState : ScriptableObject
method Reset (line 20) | public void Reset()
method StoreTestResult (line 35) | public void StoreTestResult(TestResult result)
method ApplyTestResult (line 44) | public void ApplyTestResult(TestResult result)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableApplyChangesToContextCommand.cs
class EnumerableApplyChangesToContextCommand (line 11) | internal class EnumerableApplyChangesToContextCommand : ApplyChangesToCo...
method EnumerableApplyChangesToContextCommand (line 13) | public EnumerableApplyChangesToContextCommand(TestCommand innerCommand...
method ExecuteEnumerable (line 16) | public IEnumerable ExecuteEnumerable(ITestExecutionContext context)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs
class EnumerableSetUpTearDownCommand (line 11) | internal class EnumerableSetUpTearDownCommand : BeforeAfterTestCommandBa...
method EnumerableSetUpTearDownCommand (line 13) | public EnumerableSetUpTearDownCommand(TestCommand innerCommand)
method GetMethodsWithAttributeFromFixture (line 23) | private static MethodInfo[] GetMethodsWithAttributeFromFixture(Type fi...
method InvokeBefore (line 29) | protected override IEnumerator InvokeBefore(MethodInfo action, Test te...
method InvokeAfter (line 34) | protected override IEnumerator InvokeAfter(MethodInfo action, Test tes...
method GetState (line 39) | protected override BeforeAfterTestCommandState GetState(UnityTestExecu...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestMethodCommand.cs
class EnumerableTestMethodCommand (line 14) | internal class EnumerableTestMethodCommand : TestCommand, IEnumerableTes...
method EnumerableTestMethodCommand (line 18) | public EnumerableTestMethodCommand(TestMethod testMethod)
method ExecuteEnumerable (line 24) | public IEnumerable ExecuteEnumerable(ITestExecutionContext context)
method ExecuteEnumerableAndRecordExceptions (line 52) | private static IEnumerator ExecuteEnumerableAndRecordExceptions(IEnume...
method Execute (line 81) | public override TestResult Execute(ITestExecutionContext context)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/ImmediateEnumerableCommand.cs
class ImmediateEnumerableCommand (line 9) | internal class ImmediateEnumerableCommand : DelegatingTestCommand
method ImmediateEnumerableCommand (line 11) | public ImmediateEnumerableCommand(TestCommand innerCommand)
method Execute (line 14) | public override TestResult Execute(ITestExecutionContext context)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/OuterUnityTestActionCommand.cs
class OuterUnityTestActionCommand (line 10) | internal class OuterUnityTestActionCommand : BeforeAfterTestCommandBase<...
method OuterUnityTestActionCommand (line 12) | public OuterUnityTestActionCommand(TestCommand innerCommand)
method GetUnityTestActionsFromMethod (line 22) | private static IOuterUnityTestAction[] GetUnityTestActionsFromMethod(M...
method InvokeBefore (line 34) | protected override IEnumerator InvokeBefore(IOuterUnityTestAction acti...
method InvokeAfter (line 39) | protected override IEnumerator InvokeAfter(IOuterUnityTestAction actio...
method GetState (line 44) | protected override BeforeAfterTestCommandState GetState(UnityTestExecu...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/SetUpTearDownCommand.cs
class SetUpTearDownCommand (line 13) | internal class SetUpTearDownCommand : BeforeAfterTestCommandBase<MethodI...
method SetUpTearDownCommand (line 15) | public SetUpTearDownCommand(TestCommand innerCommand)
method GetMethodsWithAttributeFromFixture (line 25) | private static MethodInfo[] GetMethodsWithAttributeFromFixture(Type fi...
method InvokeBefore (line 31) | protected override IEnumerator InvokeBefore(MethodInfo action, Test te...
method InvokeAfter (line 37) | protected override IEnumerator InvokeAfter(MethodInfo action, Test tes...
method GetState (line 43) | protected override BeforeAfterTestCommandState GetState(UnityTestExecu...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/TestActionCommand.cs
class TestActionCommand (line 12) | internal class TestActionCommand : BeforeAfterTestCommandBase<ITestAction>
method TestActionCommand (line 14) | public TestActionCommand(TestCommand innerCommand)
method GetTestActionsFromMethod (line 24) | private static ITestAction[] GetTestActionsFromMethod(MethodInfo method)
method InvokeBefore (line 36) | protected override IEnumerator InvokeBefore(ITestAction action, Test t...
method InvokeAfter (line 42) | protected override IEnumerator InvokeAfter(ITestAction action, Test te...
method GetState (line 48) | protected override BeforeAfterTestCommandState GetState(UnityTestExecu...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Commands/TestCommandPcHelper.cs
class TestCommandPcHelper (line 6) | internal class TestCommandPcHelper
method SetEnumeratorPC (line 8) | public virtual void SetEnumeratorPC(IEnumerator enumerator, int pc)
method GetEnumeratorPC (line 13) | public virtual int GetEnumeratorPC(IEnumerator enumerator)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/ConstructDelegator.cs
class ConstructDelegator (line 14) | internal class ConstructDelegator
method ConstructDelegator (line 26) | public ConstructDelegator(IStateSerializer stateSerializer)
method HandleResult (line 31) | protected object HandleResult()
method SetCurrentTestContext (line 45) | protected void SetCurrentTestContext()
method Delegate (line 54) | public object Delegate(Type type, object[] arguments)
method AssertState (line 70) | private void AssertState()
method HasAction (line 78) | public bool HasAction()
method Execute (line 83) | public void Execute(LogScope logScope)
method DestroyCurrentTestObjectIfExists (line 134) | public void DestroyCurrentTestObjectIfExists()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Filters/AssemblyNameFilter.cs
class AssemblyNameFilter (line 7) | internal class AssemblyNameFilter : ValueMatchFilter
method AssemblyNameFilter (line 9) | public AssemblyNameFilter(string assemblyName) : base(assemblyName) {}
method Match (line 11) | public override bool Match(ITest test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Filters/CategoryFilterExtended.cs
class CategoryFilterExtended (line 9) | internal class CategoryFilterExtended : CategoryFilter
method CategoryFilterExtended (line 13) | public CategoryFilterExtended(string name) : base(name)
method Match (line 17) | public override bool Match(ITest test)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/IStateSerializer.cs
type IStateSerializer (line 5) | internal interface IStateSerializer
method RestoreScriptableObjectInstance (line 7) | ScriptableObject RestoreScriptableObjectInstance();
method RestoreClassFromJson (line 8) | void RestoreClassFromJson(ref object instance);
method CanRestoreFromJson (line 9) | bool CanRestoreFromJson(Type requestedType);
method CanRestoreFromScriptableObject (line 10) | bool CanRestoreFromScriptableObject(Type requestedType);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/CompositeWorkItem.cs
class CompositeWorkItem (line 16) | internal class CompositeWorkItem : UnityWorkItem
method CompositeWorkItem (line 30) | public CompositeWorkItem(TestSuite suite, ITestFilter childFilter, Wor...
method PerformWork (line 39) | protected override IEnumerable PerformWork()
method CheckForCancellation (line 119) | private bool CheckForCancellation()
method InitializeSetUpAndTearDownCommands (line 130) | private void InitializeSetUpAndTearDownCommands()
method PerformOneTimeSetUp (line 156) | private void PerformOneTimeSetUp()
method RunChildren (line 178) | private IEnumerable RunChildren()
method CreateChildWorkItems (line 219) | private void CreateChildWorkItems()
class UnityWorkItemOrderComparer (line 245) | private class UnityWorkItemOrderComparer : IComparer<UnityWorkItem>
method Compare (line 247) | public int Compare(UnityWorkItem x, UnityWorkItem y)
method SortChildren (line 262) | private void SortChildren()
method SkipFixture (line 267) | private void SkipFixture(ResultState resultState, string message, stri...
method SkipChildren (line 273) | private void SkipChildren(TestSuite suite, ResultState resultState, st...
method PerformOneTimeTearDown (line 292) | private void PerformOneTimeTearDown()
method GetSkipReason (line 297) | private string GetSkipReason()
method GetProviderStackTrace (line 302) | private string GetProviderStackTrace()
method CountDownChildTest (line 307) | private void CountDownChildTest()
method Cancel (line 326) | public override void Cancel(bool force)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/CoroutineTestWorkItem.cs
class CoroutineTestWorkItem (line 11) | internal class CoroutineTestWorkItem : UnityWorkItem
method CoroutineTestWorkItem (line 29) | public CoroutineTestWorkItem(TestMethod test, ITestFilter filter)
method PerformWork (line 37) | protected override IEnumerable PerformWork()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/DefaultTestWorkItem.cs
class EditModeTestCallbacks (line 14) | internal class EditModeTestCallbacks
class DefaultTestWorkItem (line 19) | internal class DefaultTestWorkItem : UnityWorkItem
method DefaultTestWorkItem (line 23) | public DefaultTestWorkItem(TestMethod test, ITestFilter filter)
method BuildTestCommand (line 31) | private static TestCommand BuildTestCommand(TestMethod test)
method PerformWork (line 70) | protected override IEnumerable PerformWork()
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/FailCommand.cs
class FailCommand (line 8) | internal class FailCommand : TestCommand
method FailCommand (line 13) | public FailCommand(Test test, ResultState resultState, string message)
method Execute (line 20) | public override TestResult Execute(ITestExecutionContext context)
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/IEnumerableTestMethodCommand.cs
type IEnumerableTestMethodCommand (line 6) | internal interface IEnumerableTestMethodCommand
method ExecuteEnumerable (line 8) | IEnumerable ExecuteEnumerable(ITestExecutionContext context);
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/PlaymodeWorkItemFactory.cs
class PlaymodeWorkItemFactory (line 6) | internal class PlaymodeWorkItemFactory : WorkItemFactory
method Create (line 8) | protected override UnityWorkItem Create(TestMethod method, ITestFilter...
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/RestoreTestContextAfterDomainReload.cs
class RestoreTestContextAfterDomainReload (line 3) | internal class RestoreTestContextAfterDomainReload {}
FILE: scatterer/OldShaders/scattererShaders/Library/PackageCache/com.unity.test-framework@1.0.13/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityLogCheckDelegatingCommand.cs
class UnityLogCheckDelegatingCommand (line 11) | internal class UnityLogCheckDelegatingCommand : DelegatingTestCommand, I...
method UnityLogCheckDelegatingCommand (line 13) | public UnityLogCheckDelegatingCommand(TestCommand innerCommand)
method Execute (line 16) | public override TestRes
Condensed preview — 3995 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,020K chars).
[
{
"path": ".gitignore",
"chars": 512,
"preview": "*.userprefs\nscatterer/obj\nscatterer/bin\nscatterer/bin/Release/Assembly-CSharp-firstpass.dll\nscatterer/bin/Release/Assemb"
},
{
"path": "Readme.md",
"chars": 530,
"preview": "Scatterer\n---------------------------------------------------------------------------------\n\nAtmospheric scattering grap"
},
{
"path": "license.md",
"chars": 47305,
"preview": " Copyright (c) 2015-2022 Ghassen Lahmar\n \n You may use, distribute and copy Scatterer under the terms of GNU General\n Pu"
},
{
"path": "scatterer/CelestialBodySortableByDistance.cs",
"chars": 1560,
"preview": "using System;\nusing System.Collections.Generic;\nnamespace scatterer\n{\n\tpublic class celestialBodySortableByDistance : IE"
},
{
"path": "scatterer/DataSerialization/ConfigPoint.cs",
"chars": 2602,
"preview": "using System;\r\nusing UnityEngine;\r\nnamespace Scatterer\r\n{\r\n\tpublic class ConfigPoint\r\n\t{\r\n\t\t[Persistent] public float al"
},
{
"path": "scatterer/DataSerialization/ConfigReader.cs",
"chars": 1315,
"preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing KSP;\r\nusing KSP.IO;\r\nusing UnityEngine;\r\n\r\nnamespace"
},
{
"path": "scatterer/DataSerialization/MainSettingsReadWrite.cs",
"chars": 9857,
"preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing KSP;\r\nusing KSP.IO;\r\nusing UnityEngine;\r\n\r\nnamespace"
},
{
"path": "scatterer/DataSerialization/PlanetshineSource.cs",
"chars": 706,
"preview": "using System;\r\nusing UnityEngine;\r\nusing System.Collections.Generic;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class AtmoPlanet"
},
{
"path": "scatterer/DataSerialization/PluginDataReadWrite.cs",
"chars": 1800,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing KSP;\r\nusing KSP.IO;\r\nusing UnityEngin"
},
{
"path": "scatterer/DataSerialization/QualityPresetsLoader.cs",
"chars": 3969,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/DataSerialization/ScattererCelestialBody.cs",
"chars": 2502,
"preview": "using System;\r\nusing UnityEngine;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpub"
},
{
"path": "scatterer/Effects/AntiAliasing/GenericAntiAliasing.cs",
"chars": 163,
"preview": "using UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic abstract class GenericAntiAliasing : MonoBehaviour\r\n\t{\r\n\t\tpublic "
},
{
"path": "scatterer/Effects/AntiAliasing/SubpixelMorphologicalAntialiasing.cs",
"chars": 4868,
"preview": "using System;\r\nusing UnityEngine;\r\nusing UnityEngine.Rendering;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class SubpixelMorphol"
},
{
"path": "scatterer/Effects/AntiAliasing/TemporalAntiAliasing.cs",
"chars": 13553,
"preview": "using UnityEngine;\nusing UnityEngine.Rendering;\nusing UnityEngine.XR;\n\nnamespace Scatterer\n{\n\t// Temporal anti-aliasing "
},
{
"path": "scatterer/Effects/AntiAliasing/Utils/HaltonSeq.cs",
"chars": 719,
"preview": "namespace Scatterer\r\n{\r\n\t/// Halton sequence utility from unity post-processing stack V2\r\n\tpublic static class HaltonSeq"
},
{
"path": "scatterer/Effects/PlanetShine/PlanetShineLight.cs",
"chars": 823,
"preview": "using System;\r\nusing UnityEngine;\r\nnamespace Scatterer\r\n{\r\n\tpublic class PlanetShineLight : MonoBehaviour\r\n\t{\r\n\t\tpublic "
},
{
"path": "scatterer/Effects/PlanetShine/PlanetshineManager.cs",
"chars": 4997,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpub"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Godrays/LegacyGodraysRenderer.cs",
"chars": 15214,
"preview": "using UnityEngine;\nusing UnityEngine.Rendering;\nusing System.Collections.Generic;\nusing System;\n\nnamespace Scatterer\n{\n\t"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Preprocessing/AtmoPreprocessor.cs",
"chars": 23799,
"preview": "/*\r\n * Proland: a procedural landscape rendering library.\r\n * Copyright (c) 2008-2011 INRIA\r\n *\r\n * This program is fre"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/SkyNode.cs",
"chars": 64606,
"preview": "using UnityEngine;\r\nusing System;\r\nusing System.IO;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/AtmospherePQS.cs",
"chars": 1696,
"preview": "//note: allows adding a material to PQS, not currently in use as projector works better\r\n//could be adapted for use with"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/AtmosphereProjectorContainer.cs",
"chars": 1835,
"preview": "using System;\r\nusing UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class AtmosphereProjectorContainer : GenericLocalAt"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/AtmosphereUtils.cs",
"chars": 8469,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusi"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/GenericLocalAtmosphereContainer.cs",
"chars": 1098,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/ScaledScatteringContainer.cs",
"chars": 3733,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing UnityEngine;\r\n\r\nnamespac"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/ScreenSpaceScatteringContainer.cs",
"chars": 13503,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusi"
},
{
"path": "scatterer/Effects/Proland/Atmosphere/Utils/SkySphereContainer.cs",
"chars": 4265,
"preview": "using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing UnityEngine;\r\n\r\nnamespac"
},
{
"path": "scatterer/Effects/Proland/Ocean/Caustics/CausticsLightRaysRenderer.cs",
"chars": 9396,
"preview": "using UnityEngine;\r\nusing UnityEngine.Rendering;\r\nusing System.Collections.Generic;\r\nusing System;\r\n\r\nnamespace Scattere"
},
{
"path": "scatterer/Effects/Proland/Ocean/Caustics/CausticsShadowMaskModulate.cs",
"chars": 4024,
"preview": "// after light's screenspace shadow mask is computed, apply caustics to it\r\n\r\nusing UnityEngine;\r\nusing UnityEngine.Rend"
},
{
"path": "scatterer/Effects/Proland/Ocean/FourierCPU.cs",
"chars": 6694,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\n\r\nnamespace Scatterer\r\n{\r\n\t\r\n public class FourierCPU\r\n {\r\n "
},
{
"path": "scatterer/Effects/Proland/Ocean/FourierGPU.cs",
"chars": 5658,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\n\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class FourierGPU\r\n\t{\r\n\t\tconst int PAS"
},
{
"path": "scatterer/Effects/Proland/Ocean/GPUWaveInteractionHandler.cs",
"chars": 10125,
"preview": "using UnityEngine;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing UnityEngine.Rendering;\n\nnamespace Sc"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanCameraUpdateHook.cs",
"chars": 12498,
"preview": "using UnityEngine;\r\nusing System;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class OceanCameraUpdateHook : MonoBehaviour\r\n\t{\r\n\t\t"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanFFTcpu.cs",
"chars": 42656,
"preview": "/*\r\n * Proland: a procedural landscape rendering library.\r\n * Copyright (c) 2008-2011 INRIA\r\n *\r\n * This program is free"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanFFTgpu.cs",
"chars": 28003,
"preview": "/*\r\n * Proland: a procedural landscape rendering library.\r\n * Copyright (c) 2008-2011 INRIA\r\n *\r\n * This program is free"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanNode.cs",
"chars": 21199,
"preview": "/*\r\n * Proland: a procedural landscape rendering library.\r\n * Copyright (c) 2008-2011 INRIA\r\n *\r\n * This program is free"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanRenderingHook.cs",
"chars": 8106,
"preview": "using System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEngine.Rendering;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic c"
},
{
"path": "scatterer/Effects/Proland/Ocean/OceanWhiteCaps.cs",
"chars": 4101,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\n\r\nnamespace Scatterer {\r\n\t/*\r\n\t * Extend the OceanFFT node to also genera"
},
{
"path": "scatterer/Effects/Proland/Ocean/UnderwaterDimmingHook.cs",
"chars": 226,
"preview": "using UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class UnderwaterDimmingHook : MonoBehaviour\r\n\t{\r\n\t\tpublic OceanNod"
},
{
"path": "scatterer/Effects/Proland/Ocean/Utils/CBUtility.cs",
"chars": 9577,
"preview": "using UnityEngine;\r\nusing UnityEngine.Rendering;\r\nusing System;\r\nusing System.IO;\r\n\r\nnamespace Scatterer\r\n{\r\n\tstatic pub"
},
{
"path": "scatterer/Effects/Proland/Ocean/Utils/FakeOceanPQS.cs",
"chars": 1574,
"preview": "using System;\r\nusing System.Reflection;\r\nusing System.Text.RegularExpressions;\r\nusing UnityEngine;\r\nusing System.Collect"
},
{
"path": "scatterer/Effects/Proland/Ocean/Utils/OceanUtils.cs",
"chars": 2326,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/Effects/Proland/Ocean/Utils/RTUtility.cs",
"chars": 1676,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\n\r\nnamespace Scatterer\r\n{\r\n\tstatic public class RTUtility\r\n\t{\r\n\t\tstatic pu"
},
{
"path": "scatterer/Effects/Proland/Ocean/Utils/WriteFloat.cs",
"chars": 13613,
"preview": "using UnityEngine;\r\nusing System;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nnamespace Scatterer\r\n{\r\n\r\n\t//This clas"
},
{
"path": "scatterer/Effects/Proland/ProlandManager.cs",
"chars": 12041,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/Effects/ScattererCelestialBodiesManager.cs",
"chars": 7148,
"preview": "// Manages loading,unloading and updating for all the Scatterer-enabled celestial bodies\r\n// Will spawn/delete/update a "
},
{
"path": "scatterer/Effects/SunFlare/SunFlare.cs",
"chars": 20063,
"preview": "//rendering steps\r\n//scaledSpaceCamera.OnPrecull -> skynodes update the extinction texture one after one\r\n//camerahook o"
},
{
"path": "scatterer/Effects/SunFlare/SunflareCameraHook.cs",
"chars": 985,
"preview": "\r\nusing UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nu"
},
{
"path": "scatterer/Effects/SunFlare/SunflareManager.cs",
"chars": 2821,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing UnityEngine;\r\n\r\nn"
},
{
"path": "scatterer/Effects/SunFlare/SunflareSettingsV1.cs",
"chars": 1151,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\n\r\nn"
},
{
"path": "scatterer/Effects/SunFlare/SunflareSettingsV2.cs",
"chars": 2427,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\n\r\nn"
},
{
"path": "scatterer/Effects/SunlightModulator/SunlightModulator.cs",
"chars": 3625,
"preview": "using UnityEngine;\r\nusing System.Collections.Generic;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class SunlightModulatorsManager"
},
{
"path": "scatterer/Effects/SunlightModulator/SunlightModulatorPostRenderHook.cs",
"chars": 654,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusi"
},
{
"path": "scatterer/Effects/SunlightModulator/SunlightModulatorPreRenderHook.cs",
"chars": 697,
"preview": "using UnityEngine;\r\nusing System.Collections;\r\nusing System.IO;\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusi"
},
{
"path": "scatterer/Effects/Tonemapping/HableCurve.cs",
"chars": 15857,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing UnityEngine;\n\nnamespace Sca"
},
{
"path": "scatterer/GUI/AtmoGUI.cs",
"chars": 9060,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/GUI/ConfigPointGUI.cs",
"chars": 21101,
"preview": "using System;\r\nusing UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class ConfigPointGUI\r\n\t{\r\n\t\tpublic int selectedConf"
},
{
"path": "scatterer/GUI/GUIhandler.cs",
"chars": 9269,
"preview": "using System;\r\nusing UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class GUIhandler: MonoBehaviour\r\n\t{\r\n\t\tpublic Rect "
},
{
"path": "scatterer/GUI/MainOptionsGUI.cs",
"chars": 21448,
"preview": "using System;\r\nusing System.Linq;\r\nusing UnityEngine;\r\n\r\nnamespace Scatterer\r\n{\r\n\tpublic class MainOptionsGUI\r\n\t{\r\n\t\tenu"
},
{
"path": "scatterer/GUI/ModularGUI/AbstractGUIModule.cs",
"chars": 622,
"preview": "//Generic GUIModule, to be overriden by concrete classes that provide their own implementation of RenderGUI\n\nusing Syste"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleBool.cs",
"chars": 1037,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleFloat.cs",
"chars": 1016,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleInt.cs",
"chars": 1020,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleLabel.cs",
"chars": 534,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleString.cs",
"chars": 1056,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleVector2.cs",
"chars": 1132,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleVector3.cs",
"chars": 1221,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/GUIModuleVector4.cs",
"chars": 1310,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing S"
},
{
"path": "scatterer/GUI/ModularGUI/ModularGUI.cs",
"chars": 864,
"preview": "//A modular gui class to simplify writing a GUI\n//Define the gui once and have render everything\n//Submodules can be us"
},
{
"path": "scatterer/GUI/OceanGUI.cs",
"chars": 6700,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/GUI/SunflareGUI.cs",
"chars": 2791,
"preview": "using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusi"
},
{
"path": "scatterer/GUI/ToolbarButton.cs",
"chars": 2047,
"preview": "using System;\r\nusing System.Collections;\r\nusing UnityEngine;\r\nusing KSP.UI.Screens;\r\n\r\nnamespace Scatterer\r\n{\r\n\t[KSPAddo"
},
{
"path": "scatterer/OldShaders/readme.md.txt",
"chars": 528,
"preview": "These are the old shader files that were distributed under GPL (matching version 0.0772) and are kept here for reference"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assembly-CSharp-Editor.csproj",
"chars": 42755,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assembly-CSharp-Editor.csproj.orig",
"chars": 47119,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assembly-CSharp.csproj",
"chars": 45116,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assembly-CSharp.csproj.orig",
"chars": 47818,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assembly-UnityScript.unityproj",
"chars": 7215,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsof"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/AssetBundles/AssetBundles.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: fb1eb8dd5509788428a96514cc36f0d0\ntimeCreated: 1520625575\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/AssetBundles.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 5d4d7b45df12a6845beb7d6a034a41a2\nfolderAsset: yes\ntimeCreated: 1520623653\nlicenseType: Free\nD"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Editor/ExportAssetBundle.cs",
"chars": 2344,
"preview": "using UnityEditor;\nusing UnityEngine;\nusing System;\nusing System.Linq;\nusing System.IO;\nusing System.Collections;\n\nname"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Editor/ExportAssetBundle.cs.meta",
"chars": 263,
"preview": "fileFormatVersion: 2\nguid: 661266b8a30572e4fb9365bba3866896\ntimeCreated: 1474706063\nlicenseType: Free\nMonoImporter:\n se"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Editor/KSPCurveEditor.cs",
"chars": 9375,
"preview": "using UnityEngine;\nusing UnityEditor;\nusing UnityEditorInternal;\nusing System;\nusing System.Collections.Generic;\nusing "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Editor/KSPCurveEditor.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: 63cd91d36b6b0e4479ef6e61ad4f6f9a\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Editor.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 98bf0690f0c9686468d3866e3c0e5e45\nfolderAsset: yes\ntimeCreated: 1520625078\nlicenseType: Free\nD"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/AreaTex.tga.meta",
"chars": 3677,
"preview": "fileFormatVersion: 2\nguid: b7c13973a7ed1444fb514d09b5e7e579\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/CustomTAA.shader",
"chars": 5777,
"preview": "// Modified TAA shader to not blur out the scatterer ocean\n\nShader \"Scatterer/TemporalAntialiasing\" {\n\tSubShader {\n\t\tTa"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/CustomTAA.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: ad09d3e70e7b09244b56b51e495a319c\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAA.cginc",
"chars": 57414,
"preview": "// Ported to Unity & tweaked by Thomas Hourdel (thomas@hourdel.com)\n//#include \"Colors.hlsl\"\n\n/**\n * Copyright (C) 2013"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAA.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: 3edf75dd062cabf449c243d3c0da9464\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAA.shader",
"chars": 1436,
"preview": "Shader \"Scatterer/SubpixelMorphologicalAntialiasing\"\n{\n\tSubShader\n\t{\n\t\tCull Off ZWrite Off ZTest Always\n\n\n\t\t// 0 - Edge"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAA.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 89df79cf5061c394d82abd40383976e5\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAABridge.cginc",
"chars": 4160,
"preview": "#ifndef UNITY_POSTFX_SMAA_BRIDGE\n#define UNITY_POSTFX_SMAA_BRIDGE\n\n//#include \"StdLib.hlsl\"\n\nsampler2D _MainTexture;\nsa"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SMAABridge.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: d12fd27d9e34a1e43b79b04f9202d548\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA/SearchTex.tga.meta",
"chars": 2697,
"preview": "fileFormatVersion: 2\nguid: b14b67faac4aff04fac7127cf1ab4f97\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/AA.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 7db44d889e0cbbf4281132a752f96ce1\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/CompositeDownscaledScattering.shader",
"chars": 4845,
"preview": "Shader \"Scatterer/CompositeDownscaledScattering\" {\n\tSubShader {\n\t\tTags {\"Queue\" = \"Transparent-499\" \"IgnoreProjector\" ="
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/CompositeDownscaledScattering.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 94a7f67cf7303d94fa3f076bd9f33095\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/DepthBufferScattering.shader",
"chars": 10831,
"preview": "Shader \"Scatterer/DepthBufferScattering\" {\n\tSubShader {\n\t\tTags {\"Queue\" = \"Transparent-499\" \"IgnoreProjector\" = \"True\" "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/DepthBufferScattering.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 470fdf3cd8176d94e8aadd242240fe3c\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/ComputeInverseShadowMatrices.compute",
"chars": 1208,
"preview": "#pragma kernel CSMain\n\nfloat4x4 unity_WorldToShadow[4];\n\nRWStructuredBuffer<float4x4> resultBuffer;\n\n//from https://ans"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/ComputeInverseShadowMatrices.compute.meta",
"chars": 202,
"preview": "fileFormatVersion: 2\nguid: eac7b0dfe80ae8b41b71e9e0c040a433\nComputeShaderImporter:\n externalObjects: {}\n currentAPIMas"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/GodraysCommon.cginc",
"chars": 555,
"preview": "//Factor to divide the godray depth by before storing\n//Half have a max value of ~65000, we need to divide the depth val"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/GodraysCommon.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: 9f2f480fb2536e54ab8493a4e7421720\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/ShadowVolumeUtils.cginc",
"chars": 2414,
"preview": "//check if ray defined by origin and end intersects frustum\n//for it to intersect frustum origin and end must be on diff"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/ShadowVolumeUtils.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: c14a5e4bdca08454eb523515cecf43c2\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/VolumeDepth - Copy.shader.BAK",
"chars": 12186,
"preview": "Shader \"Scatterer/VolumeDepth\"\n{\n\tProperties\n\t{\n\n\t}\n\tSubShader\n\t{\n\t\tTags { \"RenderType\"=\"Opaque\" }\n\t\tLOD 100\n\n\n\t\tPass\n\t"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/VolumeDepth - Copy.shader.BAK.meta",
"chars": 155,
"preview": "fileFormatVersion: 2\nguid: 78213b1ce4da5e6438195d405c9da0f5\nDefaultImporter:\n externalObjects: {}\n userData: \n assetB"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/VolumeDepth.shader",
"chars": 10010,
"preview": "Shader \"Scatterer/VolumeDepth\"\n{\n\tProperties\n\t{\n\n\t}\n\tSubShader\n\t{\n\t\tTags { \"RenderType\"=\"Opaque\" }\n\t\tLOD 100\n\n\t\tPass\n\t\t"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays/VolumeDepth.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 4e82512e02403f342aefc6129f4d04a4\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Godrays.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: d399317a9fcc74045a7924c9fdf2bcf6\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/Preprocessing.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 6124ad3c57404c3429a93ca37df030e9\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/ProjectorScattering.shader",
"chars": 9124,
"preview": "Shader \"Scatterer/AtmosphericLocalScatter\" {\n\tSubShader {\n\t\tTags {\"Queue\" = \"Transparent-497\" \"IgnoreProjector\" = \"True"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/ProjectorScattering.shader.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: 9052dff19a12cb34bb02a7f74b75c4dd\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/ScaledPlanetScattering.shader",
"chars": 6631,
"preview": "Shader \"Scatterer/ScaledPlanetScattering\" {\n\tSubShader \n\t{\n\t\tTags {\"QUEUE\"=\"Geometry+1\" \"IgnoreProjector\"=\"True\" }\n\n\t\tP"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/ScaledPlanetScattering.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: f4452670096a14945b20cca112e82047\ntimeCreated: 1541873026\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/SkySphere.shader",
"chars": 8587,
"preview": "Shader \"Scatterer/SkySphere\" \n{\n\tSubShader \n\t{\n\t\tTags {\"QUEUE\"=\"Geometry+1\" \"IgnoreProjector\"=\"True\" }\n\n\t\tPass \t//exti"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo/SkySphere.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 1e5ee557da46d59498c484308be5067e\ntimeCreated: 1541870321\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Atmo.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: e5d490e301a36f04a9397d7257fb157b\nfolderAsset: yes\ntimeCreated: 1552241563\nlicenseType: Free\nD"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/ClippingUtils.cginc",
"chars": 793,
"preview": "uniform float _ScattererCameraOverlap;\n\n//not sure if good idea to use a bool\nbool fragmentInsideOfClippingRange(float d"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/ClippingUtils.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: a3c7ce509d225e740aed9d6579e2a1e9\ntimeCreated: 1545494286\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/CommonAtmosphere.cginc",
"chars": 24157,
"preview": "//\n// Precomputed Atmospheric Scattering\n// Copyright (c) 2008 INRIA\n// All rights reserved.\n//\n// Redistribution a"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/CommonAtmosphere.cginc.meta",
"chars": 170,
"preview": "fileFormatVersion: 2\nguid: ac742e1acf5f82f45b9d8ec53fe15b21\nShaderImporter:\n defaultTextures: []\n userData: \n assetBu"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DecodeEncode/DecodedToFloat.shader",
"chars": 1052,
"preview": "Shader \"EncodeFloat/DecodeToFloat\" \n{\n\tSubShader \n\t{\n\t\tPass \n\t\t{\n\t\t\tZTest Always Cull Off ZWrite Off\n\t\t\tFog { Mode off }"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DecodeEncode/DecodedToFloat.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 6aeb6a309c9b39647b273d5f92e593dd\ntimeCreated: 1459689856\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DecodeEncode/WriteToFloat.shader",
"chars": 1051,
"preview": "Shader \"EncodeFloat/WriteToFloat\" \n{\n\tSubShader \n\t{\n\t\tPass \n\t\t{\n\t\t\tZTest Always Cull Off ZWrite Off\n\t\t\tFog { Mode off }\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DecodeEncode/WriteToFloat.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 2c80ef0306e06ac4d8a4b0fe7e4536ac\ntimeCreated: 1459689856\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DecodeEncode.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 8e6115ff67c8ba44ba8780322ca78ef8\nfolderAsset: yes\ntimeCreated: 1541842845\nlicenseType: Free\nD"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/CopyCameraDepth.shader",
"chars": 1811,
"preview": "Shader \"Scatterer/CopyCameraDepth\"\n{\n\tSubShader\n\t{\n\t\tPass //pass 0, simple copy from camera's depth texture\n\t\t{\n\t\t\tZTes"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/CopyCameraDepth.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 8db4dc37ed52fc24ba715aaa8e0fd20f\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/DepthToDistance.shader",
"chars": 1253,
"preview": "\nShader \"Scatterer/DepthToDistance\" {\n\tSubShader {\n\t\tTags {\"IgnoreProjector\" = \"True\" \"RenderType\" = \"Transparent\"}\n\n\t\t"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/DepthToDistance.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 34fc60e2fe0cbfa4a87375cdfff9dc86\ntimeCreated: 1550493086\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/DownscaleDepth.shader",
"chars": 7071,
"preview": "Shader \"Scatterer/DownscaleDepth\"\n{\n\tSubShader\n\t{\n\t\tPass //Pass 0, downscale default buffer to 1/4\n\t\t{\n\t\t\tZTest Always "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth/DownscaleDepth.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 2cb24b5a5793c654e899a06bf08ec3ae\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Depth.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 230f3ac09b9ef234cba81ade9bd0e32a\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DepthCommon.cginc",
"chars": 4478,
"preview": "#include \"UnityCG.cginc\"\n\nuniform sampler2D _CameraDepthTexture;\nuniform sampler2D _customDepthTexture;\n\nfloat3 getView"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/DepthCommon.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: 1b199a26663a15b4db765ffb1df401f2\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/CloudVolumeParticle.shader",
"chars": 11482,
"preview": "\nShader \"Scatterer-EVE/CloudVolumeParticle\" {\n\tProperties {\n\t\t_Tex(\"Particle Texture\", 2D) = \"white\" {}\n\t\t_MainTex(\"Mai"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/CloudVolumeParticle.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: a331c23f613bfba4294059442ab01d4e\ntimeCreated: 1470912280\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/EVEUtils.cginc",
"chars": 6203,
"preview": "#ifndef EVE_UTILS_CG_INCLUDED\n#define EVE_UTILS_CG_INCLUDED\n\n\t\n\t#include \"UnityCG.cginc\"\n\t#include \"AutoLight.cginc\"\n\t#i"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/EVEUtils.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: e2392d942829c3b439a231d514e10321\ntimeCreated: 1470912310\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/GeometryCloudVolumeParticle.shader",
"chars": 13257,
"preview": "Shader \"Scatterer-EVE/GeometryCloudVolumeParticle\" {\n\tProperties {\n\t\t_Tex(\"Particle Texture\", 2D) = \"white\" {}\n\t\t_MainT"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/GeometryCloudVolumeParticle.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 99744ed686e28004180091658ee4f5ae\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/GeometryCloudVolumeParticleToTexture.shader",
"chars": 13457,
"preview": "Shader \"Scatterer-EVE/GeometryCloudVolumeParticleToTexture\" {\n\tProperties {\n\t\t_Tex(\"Particle Texture\", 2D) = \"white\" {}"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/GeometryCloudVolumeParticleToTexture.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 1bbfba4363c8e1e4b8214b4004316ce5\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/SphereCloud.shader",
"chars": 10721,
"preview": "Shader \"Scatterer-EVE/Cloud\" {\n\tProperties{\n\t\t_Color(\"Color Tint\", Color) = (1,1,1,1)\n\t\t_MainTex(\"Main (RGB)\", 2D) = \"wh"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/SphereCloud.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 7071adaea60f6124d9ab426b002d5afa\ntimeCreated: 1470912280\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/SphereCloudShadowMap.shader",
"chars": 3486,
"preview": "Shader \"Scatterer-EVE/CloudShadowMap\"\n{\n\tProperties\n\t{\n\t\t_Color(\"Color Tint\", Color) = (1,1,1,1)\n\t\t_MainTex(\"Main (RGB)\""
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/SphereCloudShadowMap.shader.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: 1389c6be1c6e80b4eb8604aabdda8255\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/alphaMap.cginc",
"chars": 344,
"preview": "#ifndef ALPHA_MAP_CG_INC\n#define ALPHA_MAP_CG_INC\n\ninline half vectorSum(half4 v) \n{\n\treturn (v.x + v.y + v.z + v.w);\n}\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/alphaMap.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 1852920dca83b454c8e49493d9ead74c\ntimeCreated: 1470912310\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/cubeMap.cginc",
"chars": 10824,
"preview": "#ifndef CUBE_MAP_CG_INC\n#define CUBE_MAP_CG_INC\n\n#ifdef MAP_TYPE_CUBE_1\n#define GET_CUBE_MAP_1(name, vect) GetCubeMap(cu"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/cubeMap.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 6a022d21eb285c143ae29fc2aca21e11\ntimeCreated: 1470912310\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/noiseSimplex.cginc",
"chars": 10855,
"preview": "#ifndef NOISE_SIMPLEX_FUNC\n#define NOISE_SIMPLEX_FUNC\n\n\n/*\n\nDescription:\nArray- and textureless CgFx/HLSL 2D, 3D and 4D "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE/noiseSimplex.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 9ce3cf11b8f74594bb7b1e1dba03122d\ntimeCreated: 1470912310\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EVE.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 47d9eecc3df4a854eaabab84609abb27\nfolderAsset: yes\ntimeCreated: 1460382633\nlicenseType: Free\nD"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EclipseCommon.cginc",
"chars": 1760,
"preview": "uniform float4 sunPosAndRadius; //xyz sun pos w radius\nuniform float4x4 lightOccluders1; //array of light occluders\nu"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/EclipseCommon.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 97f2c862ef7ea1d4fa3423506b5cf0ff\ntimeCreated: 1552766346\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/IntersectCommon.cginc",
"chars": 1579,
"preview": "#pragma once\n\nfloat3 LinePlaneIntersection(float3 linePoint, float3 lineVec, float3 planeNormal, float3 planePoint, out"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/IntersectCommon.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: b4c60b58ddb35c749ad94bd8b5b83168\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Misc.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 24f430bcb0b5b8046adfc8065bffc5c9\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/0042-underwater-beach-sand-texture-seamless.jpg.meta",
"chars": 2029,
"preview": "fileFormatVersion: 2\nguid: a9126848c43c4dd499da39a90664dd73\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsFinal.png.meta",
"chars": 2029,
"preview": "fileFormatVersion: 2\nguid: 3c731404613599947b4b4559797a5168\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsGodrays.mat.meta",
"chars": 182,
"preview": "fileFormatVersion: 2\nguid: 89e0061781af2da4d938cac6c7381fdc\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsGodraysRaymarch.shader",
"chars": 5018,
"preview": "Shader \"Scatterer/CausticsGodraysRaymarch\"\n{\n\tProperties\n\t{\n\t\t_CausticsTexture (\"_CausticsTexture\", 2D) = \"\" {}\n\t\tlayer"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsGodraysRaymarch.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 44df73535c7a760458518e95391dbfdc\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsOcclusion.shader",
"chars": 3032,
"preview": "// Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight'\n\nShader \"Scatterer/CausticsOcclusion\"\n{\n Propert"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsOcclusion.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: 9c9e5198af35eb74d8c5d84a5194b184\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsScene.unity.meta",
"chars": 155,
"preview": "fileFormatVersion: 2\nguid: a4cac3a64ff3a4540bbabd58e2d7c8b2\nDefaultImporter:\n externalObjects: {}\n userData: \n assetB"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CausticsShadowMask.mat.meta",
"chars": 182,
"preview": "fileFormatVersion: 2\nguid: 43ad7f10b8cb01a4ca1b57eff53b024c\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CompositeCausticsGodrays.shader",
"chars": 1118,
"preview": "Shader \"Scatterer/CompositeCausticsGodrays\"\n{\n\tProperties{\n\t}\n\n\tSubShader{\n\t\tTags { \"Queue\"=\"Transparent+2\" \"IgnoreProj"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/CompositeCausticsGodrays.shader.meta",
"chars": 220,
"preview": "fileFormatVersion: 2\nguid: c91c0b6ea03975b419e4cb285a69a10d\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/ModulateShadowMask.cs",
"chars": 1202,
"preview": "using UnityEngine;\nusing UnityEngine.Rendering;\nusing System.Collections.Generic;\nusing System;\n\npublic class ModulateS"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/ModulateShadowMask.cs.meta",
"chars": 243,
"preview": "fileFormatVersion: 2\nguid: eb1eda9941f181549a0b626e36a4dd26\nMonoImporter:\n externalObjects: {}\n serializedVersion: 2\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/SeaFloor.mat.meta",
"chars": 188,
"preview": "fileFormatVersion: 2\nguid: 8cc83bff6b39f3d44af0de8320999144\nNativeFormatImporter:\n externalObjects: {}\n mainObjectFile"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics/WhiteTexture.png.meta",
"chars": 2029,
"preview": "fileFormatVersion: 2\nguid: 6b152d671c864bf41bbcc096f5a7567c\nTextureImporter:\n internalIDToNameTable: []\n externalObjec"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Caustics.meta",
"chars": 172,
"preview": "fileFormatVersion: 2\nguid: 94412382cf909c843b9a46a8f6b364f4\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n us"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/FindHeights.compute",
"chars": 2218,
"preview": "#pragma kernel CSMain\n\nfloat4 _Ocean_Choppyness;\nfloat4 _Ocean_GridSizes;\n\nsampler2D _Ocean_Map0;\nsampler2D _Ocean_Map3"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/FindHeights.compute.meta",
"chars": 197,
"preview": "fileFormatVersion: 2\nguid: 45322b284be6baf43a273a61abba527d\nComputeShaderImporter:\n externalObjects: {}\n currentAPIMas"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Fourier.shader",
"chars": 5308,
"preview": "// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'\n\nShader \"Scatterer/Fourier\" \n{\n\tCGINC"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/Fourier.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 6a44d0f20e3f6cd45881a44134574169\ntimeCreated: 1459689856\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitDisplacement.shader",
"chars": 1532,
"preview": "// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'\n\n\nShader \"Proland/Ocean/InitDisplacem"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitDisplacement.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 4f809c227a3cfde4bbb9482dc1814105\ntimeCreated: 1459689457\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitJacobians.shader",
"chars": 2855,
"preview": "// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'\n\n\nShader \"Proland/Ocean/InitJacobians"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitJacobians.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: f8f889eee05c15349bc81eeb0883357d\ntimeCreated: 1459689457\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitSpectrum.shader",
"chars": 2330,
"preview": "// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'\n\n\nShader \"Proland/Ocean/InitSpectrum\""
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InitSpectrum.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: 212a65848ed53294788b2731538c9d66\ntimeCreated: 1459689457\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InvisibleOcean.shader",
"chars": 637,
"preview": "Shader \"Scatterer/invisible\" \n{\n\tSubShader \n\t{\n\t\tTags {\"Queue\" = \"Transparent\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"I"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/InvisibleOcean.shader.meta",
"chars": 212,
"preview": "fileFormatVersion: 2\nguid: f32e959de7955be41a4af6dac2f75b09\ntimeCreated: 1499371576\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanBRDF.cginc",
"chars": 3265,
"preview": "/*\n * Proland: a procedural landscape rendering library.\n * Copyright (c) 2008-2011 INRIA\n *\n * This program is free sof"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanBRDF.cginc.meta",
"chars": 170,
"preview": "fileFormatVersion: 2\nguid: 907dff89ca8c76745b031725757e5f8b\nShaderImporter:\n defaultTextures: []\n userData: \n assetBu"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanDisplacement3.cginc",
"chars": 3255,
"preview": "/*\n * Proland: a procedural landscape rendering library.\n * Copyright (c) 2008-2011 INRIA\n *\n * This program is free sof"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanDisplacement3.cginc.meta",
"chars": 170,
"preview": "fileFormatVersion: 2\nguid: 2ac6db96cd5bff048a79be0215503e16\nShaderImporter:\n defaultTextures: []\n userData: \n assetBu"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanLight.cginc",
"chars": 2054,
"preview": "// Modified Light helpers for the ocean\n// unlike in autolight.cginc, object2world can't be used in the case of the oc"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanLight.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: eafae18265a10964e97bb7c9c1601ef6\ntimeCreated: 1460511161\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanShadows.cginc",
"chars": 9377,
"preview": "UNITY_DECLARE_SHADOWMAP(_ShadowMapTextureScatterer);\nfloat4 _ShadowMapTextureScatterer_TexelSize;\n\n#if SHADER_API_D3D11"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanShadows.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: e0cb37a014cdcb142af891772a27189c\ntimeCreated: 1545852000\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanUtils.cginc",
"chars": 6577,
"preview": "uniform float refractionIndex;\nuniform float3 _Underwater_Color;\nuniform float3 _Ocean_Color;\nuniform float transparenc"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanUtils.cginc.meta",
"chars": 204,
"preview": "fileFormatVersion: 2\nguid: a2cc3e5914c2bb345a87c15d0b894ee8\nShaderImporter:\n externalObjects: {}\n defaultTextures: []\n"
},
{
"path": "scatterer/OldShaders/scattererShaders/Assets/Shaders/Ocean/OceanWhiteCapsModProj3.shader",
"chars": 17972,
"preview": "/*\n * Proland: a procedural landscape rendering library.\n * Copyright (c) 2008-2011 INRIA\n *\n * This program is free so"
}
]
// ... and 3795 more files (download for full content)
About this extraction
This page contains the full source code of the LGhassen/Scatterer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3995 files (21.3 MB), approximately 1.6M tokens, and a symbol index with 3827 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.