hexiaojie 9 месяцев назад
Родитель
Сommit
f16578c33c
100 измененных файлов с 176 добавлено и 5680 удалено
  1. 70 71
      GameClient/Assets/Editor/BuildEditor/BuildDllHelper.cs
  2. 48 0
      GameClient/Assets/Editor/BuildHotUpdateTypes.cs
  3. 3 0
      GameClient/Assets/Editor/BuildHotUpdateTypes.cs.meta
  4. 1 15
      GameClient/Assets/Editor/ToolsMenu.cs
  5. 9 0
      GameClient/Assets/Game/IGameHotUpdateMarker.cs
  6. 3 0
      GameClient/Assets/Game/IGameHotUpdateMarker.cs.meta
  7. 42 20
      GameClient/Assets/YooAsset/Editor/GFGAsset/Collect/AssetBundleHelper.cs
  8. 0 1
      GameClient/Packages/manifest.json
  9. 0 6
      GameClient/Packages/packages-lock.json
  10. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40.meta
  11. BIN
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Mac.dll.bytes
  12. 0 7
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Mac.dll.bytes.meta
  13. BIN
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Win.dll.bytes
  14. 0 7
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Win.dll.bytes.meta
  15. 0 20
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/Templates/MethodBridgeStub.cpp
  16. 0 32
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/Templates/ReversePInvokeMethodStub.cpp
  17. 0 19
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/hybridclr_version.json
  18. 0 88
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/CMakeLists.txt
  19. 0 19
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/build_libil2cpp.sh
  20. 0 47
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/external/CMakeLists.txt
  21. 0 64
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/gen_lump.sh
  22. 0 62
      hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/objective/CMakeLists.txt
  23. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor.meta
  24. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds.meta
  25. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip.meta
  26. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common.meta
  27. 0 55
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CRC.cs
  28. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CRC.cs.meta
  29. 0 274
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CommandLineParser.cs
  30. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CommandLineParser.cs.meta
  31. 0 72
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/InBuffer.cs
  32. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/InBuffer.cs.meta
  33. 0 47
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/OutBuffer.cs
  34. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/OutBuffer.cs.meta
  35. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress.meta
  36. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ.meta
  37. 0 24
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/IMatchFinder.cs
  38. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/IMatchFinder.cs.meta
  39. 0 367
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzBinTree.cs
  40. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzBinTree.cs.meta
  41. 0 132
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzInWindow.cs
  42. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzInWindow.cs.meta
  43. 0 110
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzOutWindow.cs
  44. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzOutWindow.cs.meta
  45. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA.meta
  46. 0 76
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaBase.cs
  47. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaBase.cs.meta
  48. 0 398
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaDecoder.cs
  49. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaDecoder.cs.meta
  50. 0 1480
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaEncoder.cs
  51. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaEncoder.cs.meta
  52. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder.meta
  53. 0 234
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoder.cs
  54. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoder.cs.meta
  55. 0 117
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBit.cs
  56. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBit.cs.meta
  57. 0 157
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBitTree.cs
  58. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBitTree.cs.meta
  59. 0 157
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/ICoder.cs
  60. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/ICoder.cs.meta
  61. 0 8
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS.meta
  62. 0 14
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ArchiveFlags.cs
  63. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ArchiveFlags.cs.meta
  64. 0 51
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryReaderExtensions.cs
  65. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryReaderExtensions.cs.meta
  66. 0 33
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryWriterExtensions.cs
  67. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryWriterExtensions.cs.meta
  68. 0 24
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileInfo.cs
  69. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileInfo.cs.meta
  70. 0 212
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileReader.cs
  71. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileReader.cs.meta
  72. 0 112
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileWriter.cs
  73. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileWriter.cs.meta
  74. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/CompressionType.cs
  75. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/CompressionType.cs.meta
  76. 0 107
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryReader.cs
  77. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryReader.cs.meta
  78. 0 107
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryWriter.cs
  79. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryWriter.cs.meta
  80. 0 14
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianType.cs
  81. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianType.cs.meta
  82. 0 53
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/GlobalgamedatasPatcher.cs
  83. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/GlobalgamedatasPatcher.cs.meta
  84. 0 14
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Header.cs
  85. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Header.cs.meta
  86. 0 10
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Node.cs
  87. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Node.cs.meta
  88. 0 50
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ScriptingAssembliesJsonPatcher.cs
  89. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ScriptingAssembliesJsonPatcher.cs.meta
  90. 0 49
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/SevenZipHelper.cs
  91. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/SevenZipHelper.cs.meta
  92. 0 9
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlock.cs
  93. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlock.cs.meta
  94. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlockFlags.cs
  95. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlockFlags.cs.meta
  96. 0 32
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamExtensions.cs
  97. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamExtensions.cs.meta
  98. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamFile.cs
  99. 0 11
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamFile.cs.meta
  100. 0 124
      hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/UnityBinFile.cs

+ 70 - 71
GameClient/Assets/Editor/BuildEditor/BuildDllHelper.cs

@@ -1,71 +1,70 @@
-using System.IO;
-using HybridCLR.Editor;
-using UnityEditor;
-using UnityEngine;
-using GFGGame;
-using HybridCLR.Editor.Commands;
-using System.Collections.Generic;
-
-namespace GFGEditor
-{
-    public class BuildDllHelper
-    {
-        [InitializeOnLoadMethod]
-        public static void Init()
-        {
-            AssetBundleHelper.BuildHotUpdateDll = BuildHotUpdateDll;
-        }
-
-        public static void BuildHotUpdateDll()
-        {
-            CompileDllCommand.CompileDllActiveBuildTarget();
-            CopyHotUpdateAssembliesToStreamingAssets();
-        }
-
-        public static void CopyHotUpdateAssembliesToStreamingAssets()
-        {
-            var target = EditorUserBuildSettings.activeBuildTarget;
-
-            string hotfixDllSrcDir = SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target);
-            string hotfixAssembliesDstDir = LauncherConfig.DllDirHotfix;
-            if (!Directory.Exists(LauncherConfig.DllDirHotfix))
-            {
-                Directory.CreateDirectory(LauncherConfig.DllDirHotfix);
-            }
-            List<string> HotUpdateAssemblyFiles = new List<string>() { "Game.HotUpdate.dll" };
-            foreach (var dll in HotUpdateAssemblyFiles)
-            {
-                string dllPath = $"{hotfixDllSrcDir}/{dll}";
-                string dllBytesPath = $"{hotfixAssembliesDstDir}{dll}.bytes";
-                File.Copy(dllPath, dllBytesPath, true);
-                Debug.Log($"[CopyHotUpdateAssembliesToStreamingAssets] copy hotfix dll {dllPath} -> {dllBytesPath}");
-            }
-        }
-
-
-        public static void CopyAOTAssembliesToStreamingAssets()
-        {
-            var target = EditorUserBuildSettings.activeBuildTarget;
-            string aotAssembliesSrcDir = SettingsUtil.GetAssembliesPostIl2CppStripDir(target);
-            string aotAssembliesDstDir = LauncherConfig.DllDirAOT;
-            if(!Directory.Exists(LauncherConfig.DllDirAOT))
-            {
-                Directory.CreateDirectory(LauncherConfig.DllDirAOT);
-            }
-
-            foreach (var dll in HotUpdateCodeLoader.AOTMetaAssemblyNames)
-            {
-                string srcDllPath = $"{aotAssembliesSrcDir}/{dll}";
-                if (!File.Exists(srcDllPath))
-                {
-                    Debug.LogError($"ab中添加AOT补充元数据dll:{srcDllPath} 时发生错误,文件不存在。裁剪后的AOT dll在BuildPlayer时才能生成,因此需要你先构建一次游戏App后再打包。");
-                    continue;
-                }
-                string dllBytesPath = $"{aotAssembliesDstDir}{dll}.bytes";
-                File.Copy(srcDllPath, dllBytesPath, true);
-                Debug.Log($"[CopyAOTAssembliesToStreamingAssets] copy AOT dll {srcDllPath} -> {dllBytesPath}");
-            }
-        }
-
-    }
-}
+// using System.IO;
+// using HybridCLR.Editor;
+// using UnityEditor;
+// using UnityEngine;
+// using GFGGame;
+// using System.Collections.Generic;
+//
+// namespace GFGEditor
+// {
+//     public class BuildDllHelper
+//     {
+//         [InitializeOnLoadMethod]
+//         public static void Init()
+//         {
+//             AssetBundleHelper.BuildHotUpdateDll = BuildHotUpdateDll;
+//         }
+//
+//         public static void BuildHotUpdateDll()
+//         {
+//             CompileDllCommand.CompileDllActiveBuildTarget();
+//             CopyHotUpdateAssembliesToStreamingAssets();
+//         }
+//
+//         public static void CopyHotUpdateAssembliesToStreamingAssets()
+//         {
+//             var target = EditorUserBuildSettings.activeBuildTarget;
+//
+//             string hotfixDllSrcDir = SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target);
+//             string hotfixAssembliesDstDir = LauncherConfig.DllDirHotfix;
+//             if (!Directory.Exists(LauncherConfig.DllDirHotfix))
+//             {
+//                 Directory.CreateDirectory(LauncherConfig.DllDirHotfix);
+//             }
+//             List<string> HotUpdateAssemblyFiles = new List<string>() { "Game.HotUpdate.dll" };
+//             foreach (var dll in HotUpdateAssemblyFiles)
+//             {
+//                 string dllPath = $"{hotfixDllSrcDir}/{dll}";
+//                 string dllBytesPath = $"{hotfixAssembliesDstDir}{dll}.bytes";
+//                 File.Copy(dllPath, dllBytesPath, true);
+//                 Debug.Log($"[CopyHotUpdateAssembliesToStreamingAssets] copy hotfix dll {dllPath} -> {dllBytesPath}");
+//             }
+//         }
+//
+//
+//         public static void CopyAOTAssembliesToStreamingAssets()
+//         {
+//             var target = EditorUserBuildSettings.activeBuildTarget;
+//             string aotAssembliesSrcDir = SettingsUtil.GetAssembliesPostIl2CppStripDir(target);
+//             string aotAssembliesDstDir = LauncherConfig.DllDirAOT;
+//             if(!Directory.Exists(LauncherConfig.DllDirAOT))
+//             {
+//                 Directory.CreateDirectory(LauncherConfig.DllDirAOT);
+//             }
+//
+//             foreach (var dll in HotUpdateCodeLoader.AOTMetaAssemblyNames)
+//             {
+//                 string srcDllPath = $"{aotAssembliesSrcDir}/{dll}";
+//                 if (!File.Exists(srcDllPath))
+//                 {
+//                     Debug.LogError($"ab中添加AOT补充元数据dll:{srcDllPath} 时发生错误,文件不存在。裁剪后的AOT dll在BuildPlayer时才能生成,因此需要你先构建一次游戏App后再打包。");
+//                     continue;
+//                 }
+//                 string dllBytesPath = $"{aotAssembliesDstDir}{dll}.bytes";
+//                 File.Copy(srcDllPath, dllBytesPath, true);
+//                 Debug.Log($"[CopyAOTAssembliesToStreamingAssets] copy AOT dll {srcDllPath} -> {dllBytesPath}");
+//             }
+//         }
+//
+//     }
+// }

+ 48 - 0
GameClient/Assets/Editor/BuildHotUpdateTypes.cs

@@ -0,0 +1,48 @@
+// #if UNITY_EDITOR
+// using System.Linq;
+// using UnityEditor;
+// using System.Reflection;
+//
+// public static class HotUpdateTypeGenerator
+// {
+//     private const string OutputPath = "Assets/Scripts/Generated/PrecompiledHotUpdateTypes.cs";
+//     
+//     [InitializeOnLoadMethod]
+//     private static void Generate()
+//     {
+//         // 确保只在主线程执行
+//         EditorApplication.delayCall += () =>
+//         {
+//             try
+//             {
+//                 var assembly = typeof(GFGGame.).Assembly;
+//                 var types = assembly.GetTypes()
+//                     .Where(t => t.Namespace?.StartsWith("Game.HotUpdate") ?? false)
+//                     .ToArray();
+//
+//                 string code = $@"// Auto-generated code - DO NOT EDIT
+// namespace GFGGame
+// {{
+//     public static class PrecompiledHotUpdateTypes
+//     {{
+//         public static readonly System.Type[] Types = new System.Type[]
+//         {{
+//             {string.Join(",\n            ", types.Select(t => $"typeof({t.FullName})"))}
+//         }};
+//     }}
+// }}";
+//
+//                 System.IO.Directory.CreateDirectory("Assets/Scripts/Generated");
+//                 System.IO.File.WriteAllText(OutputPath, code);
+//                 AssetDatabase.Refresh();
+//                 
+//                 Debug.Log($"[预编译] 成功生成 {types.Length} 个热更类型到 {OutputPath}");
+//             }
+//             catch (System.Exception e)
+//             {
+//                 Debug.LogError($"[预编译] 生成失败: {e}");
+//             }
+//         };
+//     }
+// }
+// #endif

+ 3 - 0
GameClient/Assets/Editor/BuildHotUpdateTypes.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6c16245a44e0431b936ea8500169f742
+timeCreated: 1744216638

+ 1 - 15
GameClient/Assets/Editor/ToolsMenu.cs

@@ -370,14 +370,6 @@ namespace GFGEditor
             }
         }
 
-        [MenuItem("Tools/Build/copy AOT dll", false, 0)]
-        public static void CopyDll()
-        {
-            EditorUtility.DisplayProgressBar("进度", "正在拷贝", 1);
-            BuildDllHelper.CopyAOTAssembliesToStreamingAssets();
-            EditorUtility.ClearProgressBar();
-        }
-
         //[MenuItem("Tools/Build/Build Bundles Res Init")]
         //public static void BuildBundlesResIn()
         //{
@@ -427,13 +419,7 @@ namespace GFGEditor
         {
             PlayerPrefs.DeleteAll();
         }
-
-        [MenuItem("Tools/Build/BuildHotUpdateDll")]
-        public static void BuildHotUpdateDll()
-        {
-            BuildDllHelper.BuildHotUpdateDll();
-        }
-
+        
         [MenuItem("Tools/Build/CopyPresetAssets")]
         public static void CopyPresetAssets()
         {

+ 9 - 0
GameClient/Assets/Game/IGameHotUpdateMarker.cs

@@ -0,0 +1,9 @@
+// Game.HotUpdate/IGameHotUpdateMarker.cs
+namespace Game.HotUpdate
+{
+    // 这个接口仅用于给主工程提供程序集引用点
+    public interface IGameHotUpdateMarker 
+    {
+        // 可以留空,或者定义一些公共约束
+    }
+}

+ 3 - 0
GameClient/Assets/Game/IGameHotUpdateMarker.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: cfabe88fedfb4f2cbadb8821da758295
+timeCreated: 1744216967

+ 42 - 20
GameClient/Assets/YooAsset/Editor/GFGAsset/Collect/AssetBundleHelper.cs

@@ -9,25 +9,27 @@ namespace GFGEditor
 {
     public static class AssetBundleHelper
     {
-        public static Action BuildHotUpdateDll;
         public const string RES_ROOT_DIR_PATH = "Assets/Res";
-        public const int LimitByteSize = 1024*1024*4;
-        private static List<string> excludeFileExtensions = new List<string>() { ".meta", ".moc3" , ".can3" };
+        public const int LimitByteSize = 1024 * 1024 * 4;
+        private static List<string> excludeFileExtensions = new List<string>() { ".meta", ".moc3", ".can3" };
 
 
         private static AssetBundleCollector assetBundleCollector;
         private static AssetBundleCollectRuler _ruler;
+
         private static AssetBundleCollectRuler ruler
         {
             get
             {
-                if(_ruler == null)
+                if (_ruler == null)
                 {
                     _ruler = AssetBundleCollectRuler.GetData();
                 }
+
                 return _ruler;
             }
         }
+
         private static Dictionary<string, Dictionary<string, AssetBundleAssetListItem>> itemsSizeDicDic;
 
         //记录文件的bundle名
@@ -36,21 +38,22 @@ namespace GFGEditor
         public static void OnPreExecuteBuild()
         {
             EditorUtility.DisplayProgressBar("进度", "正在收集资源", 1);
-            BuildHotUpdateDll();
+            //BuildHotUpdateDll();
             AssetDatabase.Refresh();
             itemsSizeDicDic = new Dictionary<string, Dictionary<string, AssetBundleAssetListItem>>();
             assetBundleCollector = AssetBundleCollector.GetData();
-            
+
             foreach (var dir in ruler.PackBySeparately)
             {
                 FileHelper.ForeachFileInDir(dir, null, (string filePath) =>
                 {
                     var path = filePath.Replace("\\", "/");
                     var ext = Path.GetExtension(filePath);
-                    if(IsIgnoreFileExtension(ext))
+                    if (IsIgnoreFileExtension(ext))
                     {
                         return;
                     }
+
                     var dirPath = dir + "/";
                     if (path.Contains(dirPath))
                     {
@@ -60,6 +63,7 @@ namespace GFGEditor
                     }
                 });
             }
+
             foreach (var dir in ruler.PackByTopDir)
             {
                 FileHelper.ForeachFileInDir(dir, null, (string filePath) =>
@@ -70,6 +74,7 @@ namespace GFGEditor
                     {
                         return;
                     }
+
                     var dirPath = dir + "/";
                     if (path.Contains(dirPath))
                     {
@@ -80,6 +85,7 @@ namespace GFGEditor
                     }
                 });
             }
+
             foreach (var dir in ruler.PackByFileName)
             {
                 FileHelper.ForeachFileInDir(dir, null, (string filePath) =>
@@ -90,6 +96,7 @@ namespace GFGEditor
                     {
                         return;
                     }
+
                     var dirPath = dir + "/";
                     if (path.Contains(dirPath))
                     {
@@ -99,6 +106,7 @@ namespace GFGEditor
                     }
                 });
             }
+
             CollectNewItems();
             RecordFileBundle();
             EditorUtility.SetDirty(assetBundleCollector);
@@ -108,19 +116,20 @@ namespace GFGEditor
 
         public static void OnPostExecuteBuild(BuildResult buildResult)
         {
-            if(fileBundleDic != null)
+            if (fileBundleDic != null)
             {
                 fileBundleDic.Clear();
                 fileBundleDic = null;
             }
-            if(itemsSizeDicDic != null)
+
+            if (itemsSizeDicDic != null)
             {
                 itemsSizeDicDic.Clear();
                 itemsSizeDicDic = null;
             }
+
             assetBundleCollector = null;
             _ruler = null;
-
         }
 
         public static void CollectDynamicFile(string dirPath, string itemKey, string assetPath, bool autoMerge)
@@ -133,9 +142,9 @@ namespace GFGEditor
                 assetList = assetBundleCollector.assetBundleAssetLists[i];
                 if (assetList.dir == dirPath)
                 {
-                    foreach(var item in assetList.list)
+                    foreach (var item in assetList.list)
                     {
-                        if(item.key == itemKey)
+                        if (item.key == itemKey)
                         {
                             //新增文件直接加进去
                             if (!item.list.Contains(assetPath))
@@ -149,11 +158,13 @@ namespace GFGEditor
                                     assetList.status = 1;
                                 }
                             }
+
                             return;
                         }
                     }
                 }
             }
+
             //先计算每个item的大小缓存起来(item指必须打在一起的若干文件)
             itemsSizeDicDic.TryGetValue(dirPath, out itemsSizeDic);
             if (itemsSizeDic == null)
@@ -161,6 +172,7 @@ namespace GFGEditor
                 itemsSizeDic = new Dictionary<string, AssetBundleAssetListItem>();
                 itemsSizeDicDic[dirPath] = itemsSizeDic;
             }
+
             itemsSizeDic.TryGetValue(itemKey, out newItem);
             if (newItem == null)
             {
@@ -169,8 +181,9 @@ namespace GFGEditor
                 newItem.list = new List<string>();
                 itemsSizeDic[itemKey] = newItem;
             }
+
             newItem.list.Add(assetPath);
-            if(autoMerge)
+            if (autoMerge)
             {
                 newItem.bytes += GetFileSize(assetPath);
             }
@@ -182,7 +195,7 @@ namespace GFGEditor
 
         public static void CollectNewItems()
         {
-            foreach(var t in itemsSizeDicDic)
+            foreach (var t in itemsSizeDicDic)
             {
                 CollectNewItems(t.Key, t.Value);
             }
@@ -190,7 +203,7 @@ namespace GFGEditor
 
         public static void CollectNewItems(string dirPath, Dictionary<string, AssetBundleAssetListItem> itemsSizeDic)
         {
-            foreach(var newItem in itemsSizeDic.Values)
+            foreach (var newItem in itemsSizeDic.Values)
             {
                 bool toNew = true;
                 AssetBundleAssetList assetList;
@@ -210,12 +223,14 @@ namespace GFGEditor
                                 {
                                     assetList.status = 1;
                                 }
+
                                 toNew = false;
                             }
                         }
                     }
                 }
-                if(toNew)
+
+                if (toNew)
                 {
                     //新建一个AB
                     assetList = new AssetBundleAssetList();
@@ -227,10 +242,12 @@ namespace GFGEditor
                     {
                         assetList.status = 1;
                     }
+
                     assetBundleCollector.assetBundleAssetLists.Add(assetList);
                 }
             }
         }
+
         private static void RecordFileBundle()
         {
             fileBundleDic = new Dictionary<string, string>();
@@ -263,6 +280,7 @@ namespace GFGEditor
                 //unity处理jpg后会变的很大
                 fileSize *= 5;
             }
+
             return fileSize;
         }
 
@@ -273,6 +291,7 @@ namespace GFGEditor
             {
                 fileBundleDic.TryGetValue(assetPath, out bundleName);
             }
+
             return bundleName;
         }
 
@@ -281,16 +300,19 @@ namespace GFGEditor
             return excludeFileExtensions.Contains(extension);
         }
 
-        public static List<string> CopyFilesTo(string sourcePath, string targetPath, string[] includeExtensionNames = null)
+        public static List<string> CopyFilesTo(string sourcePath, string targetPath,
+            string[] includeExtensionNames = null)
         {
-            if(!sourcePath.EndsWith("/"))
+            if (!sourcePath.EndsWith("/"))
             {
                 sourcePath += "/";
             }
+
             if (!targetPath.EndsWith("/"))
             {
                 targetPath += "/";
             }
+
             List<string> result = new List<string>();
             if (Directory.Exists(sourcePath))
             {
@@ -317,8 +339,8 @@ namespace GFGEditor
                     }
                 }
             }
+
             return result;
         }
-
     }
-}
+}

+ 0 - 1
GameClient/Packages/manifest.json

@@ -1,6 +1,5 @@
 {
   "dependencies": {
-    "com.focus-creative-games.hybridclr_unity": "file:D:/gfgProject/gfg_dev/0A-GFGClient/5client_webgl/hybridclr_unity-2.x/hybridclr_unity-2.x",
     "com.unity.2d.animation": "5.2.0",
     "com.unity.2d.psdimporter": "4.3.0",
     "com.unity.2d.sprite": "1.0.0",

+ 0 - 6
GameClient/Packages/packages-lock.json

@@ -1,11 +1,5 @@
 {
   "dependencies": {
-    "com.focus-creative-games.hybridclr_unity": {
-      "version": "file:D:/gfgProject/gfg_dev/0A-GFGClient/5client_webgl/hybridclr_unity-2.x/hybridclr_unity-2.x",
-      "depth": 0,
-      "source": "local",
-      "dependencies": {}
-    },
     "com.unity.2d.animation": {
       "version": "5.2.0",
       "depth": 0,

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 1cd43f2247d29084fa2b393c30648e64
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Mac.dll.bytes


+ 0 - 7
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Mac.dll.bytes.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 22f11da50eb60c245b40028549937af6
-TextScriptImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Win.dll.bytes


+ 0 - 7
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/ModifiedUnityAssemblies/2019.4.40/Unity.IL2CPP-Win.dll.bytes.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 94322e93a1f61b340bdc1d5042dab659
-TextScriptImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 20
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/Templates/MethodBridgeStub.cpp

@@ -1,20 +0,0 @@
-#include <codegen/il2cpp-codegen-metadata.h>
-#include "vm/ClassInlines.h"
-#include "vm/Object.h"
-#include "vm/Class.h"
-
-#include "../metadata/MetadataModule.h"
-#include "../metadata/MetadataUtil.h"
-
-#include "../interpreter/MethodBridge.h"
-#include "../interpreter/Interpreter.h"
-#include "../interpreter/MemoryUtil.h"
-#include "../interpreter/InstrinctDef.h"
-
-using namespace hybridclr::interpreter;
-
-#if {PLATFORM_ABI}
-//!!!{{CODE
-
-//!!!}}CODE
-#endif

+ 0 - 32
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/Templates/ReversePInvokeMethodStub.cpp

@@ -1,32 +0,0 @@
-#include "../metadata/ReversePInvokeMethodStub.h"
-#include "../metadata/MetadataModule.h"
-
-namespace hybridclr
-{
-namespace metadata
-{
-#if {PLATFORM_ABI}
-
-	//!!!{{CODE
-
-	void __ReversePInvokeMethod_0(void* xState)
-	{
-		CallLuaFunction(xState, 0);
-	}
-
-	void __ReversePInvokeMethod_1(void* xState)
-	{
-		CallLuaFunction(xState, 1);
-	}
-
-	Il2CppMethodPointer s_ReversePInvokeMethodStub[]
-	{
-		(Il2CppMethodPointer)__ReversePInvokeMethod_0,
-		(Il2CppMethodPointer)__ReversePInvokeMethod_1,
-		nullptr,
-	};
-
-	//!!!}}CODE
-#endif
-}
-}

+ 0 - 19
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/hybridclr_version.json

@@ -1,19 +0,0 @@
-{
-    "versions": [
-    {
-        "unity_version":"2019",
-        "hybridclr" : { "branch":"v2.3.1"},
-        "il2cpp_plus": { "branch":"v2019-2.2.0"}
-    },
-    {
-        "unity_version":"2020",
-        "hybridclr" : { "branch":"v2.3.1"},
-        "il2cpp_plus": { "branch":"v2020-2.2.1"}
-    },
-    {
-        "unity_version":"2021",
-        "hybridclr" : { "branch":"v2.3.1"},
-        "il2cpp_plus": { "branch":"v2021-2.2.1"}
-    }
-    ]
-}

+ 0 - 88
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/CMakeLists.txt

@@ -1,88 +0,0 @@
-# file: CMakeList.txt
-cmake_minimum_required(VERSION 3.0)
-set(CMAKE_OSX_DEPLOYMENT_TARGET iOS)
-
-set(TMP $ENV{HUATUO_IL2CPP_SOURCE_DIR})
-if ( NOT TMP )
-    message(FATAL_ERROR "需要设置环境变量: HUATUO_IL2CPP_SOURCE_DIR")
-else()
-    message(STATUS "unity il2cpp 路径为: ${TMP}")
-endif()
-
-set(SDK_VERSION $ENV{IPHONESIMULATOR_VERSION})
-if ( SDK_VERSION )
-    message(STATUS "使用iPhoneSimulator版本:" ${SDK_VERSION})
-else()
-    message(STATUS "当前使用默认版本的iPhoneSimulator,可以通过设置环境变量IPHONESIMULATOR_VERSION,指定版本")
-endif()
-
-project(il2cpp)
-execute_process(COMMAND sh gen_lump.sh ${PROJECT_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-
-add_subdirectory(external)
-add_subdirectory(objective)
-
-
-set(IL2CPP_SOURCE_DIR $ENV{HUATUO_IL2CPP_SOURCE_DIR})
-
-message(STATUS "il2cpp project, binary dir: " ${CMAKE_BINARY_DIR})
-message(STATUS "il2cpp project, build dir: " ${PROJECT_BINARY_DIR})
-message(STATUS "il2cpp project, il2cpp source dir: " ${IL2CPP_SOURCE_DIR})
-
-
-SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
-find_program(CLANG_EXECUTABLE NAMES clang clang-7 clang-8 clang-9 clang-10)
-if (NOT CLANG_EXECUTABLE)
-    message(FATAL_ERROR "Cannot find any clang executable.")
-endif()
-
-
-set(CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk)
-
-#set(CMAKE_VERBOSE_MAKEFILE ON)
-set(CMAKE_CXX_COMPILER clang++)
-set(CMAKE_C_COMPILER clang)
-#add_compile_options(-x objective-c++)
-
-# 以下命令为复制的Xcode生成中的命令
-set(CMAKE_CXX_FLAGS "-target arm64-apple-ios11.0 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1z -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fmodules-ignore-macro=IL2CPP_TARGET_IOS=1 -fembed-bitcode -fmodules-ignore-macro=BASELIB_DYNAMICLIBRARY=1 -fmodules-ignore-macro=BASELIB_INLINE_NAMESPACE=il2cpp_baselib -fmodules-ignore-macro=AARCH64 -fmodules-ignore-macro=__aarch64__ -fmodules-ignore-macro=IL2CPP_SUPPORT_THREADS -fmodules-ignore-macro=IL2CPP_THREADS_PTHREAD -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wquoted-include-in-framework-header -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DIL2CPP_TARGET_IOS=1 -isysroot ${CMAKE_OSX_SYSROOT} -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability ")
-
-
-add_definitions(-DIL2CPP_TARGET_IOS=1)
-add_definitions(-DBASELIB_DYNAMICLIBRARY=1)
-add_definitions(-DBASELIB_INLINE_NAMESPACE=il2cpp_baselib)
-add_definitions(-DAARCH64)
-add_definitions(-D__aarch64__)
-add_definitions(-DIL2CPP_SUPPORT_THREADS)
-add_definitions(-DIL2CPP_THREADS_PTHREAD)
-#add_definitions(-DCMAKE_C_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang)
-#add_definitions(-DCMAKE_CXX_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++)
-#add_definitions(-DIL2CPP_TARGET_DARWIN)
-add_definitions(-DIL2CPP_PLATFORM_SUPPORTS_TIMEZONEINFO)
-
-add_definitions(-MMD)
-add_definitions(-MT dependencies)
-
-
-include_directories(${IL2CPP_SOURCE_DIR}/libil2cpp/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/bdwgc/include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Platforms/OSX/Include/)
-
-# 修改为本机对应SDK路径
-include_directories(SYSTEM /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/c++/v1)
-include_directories(SYSTEM /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include)
-
-aux_source_directory(${PROJECT_BINARY_DIR}/lump_cpp LUMP_SOURCE_LIST)
-aux_source_directory(${IL2CPP_SOURCE_DIR}/libil2cpp LIBIL2CPP_SOURCE_LIST)
-
-#find_library(zlib ${PROJECT_SOURCE_DIR}/external)
-add_library(il2cpp_original STATIC ${LIBIL2CPP_SOURCE_LIST} ${LUMP_SOURCE_LIST})
-add_dependencies(il2cpp_original external objective)
-
-add_custom_command(TARGET il2cpp_original 
-    POST_BUILD
-    COMMAND xcrun -r libtool -static -o libil2cpp.a libil2cpp_original.a external/libexternal.a objective/libobjective.a
-    COMMENT "post build this is command combine libil2cpp_original.a, libojjective.a and libzlib.a into libil2cpp"
-    )

+ 0 - 19
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/build_libil2cpp.sh

@@ -1,19 +0,0 @@
-#!/bin/bash
-
-export HUATUO_IL2CPP_SOURCE_DIR=$(pushd ../LocalIl2CppData-OSXEditor/il2cpp > /dev/null && pwd && popd > /dev/null)
-export IPHONESIMULATOR_VERSION=
-
-rm -rf build
-
-mkdir build
-cd build
-cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 .. 
-make -j24
-
-if [ -f "libil2cpp.a" ]
-then
-	echo 'build succ'
-else
-    echo "build fail"
-    exit 1
-fi

+ 0 - 47
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/external/CMakeLists.txt

@@ -1,47 +0,0 @@
-# file: external/CMakeList.txt
-cmake_minimum_required(VERSION 3.0)
-set(CMAKE_OSX_DEPLOYMENT_TARGET iOS)
-
-set(IL2CPP_SOURCE_DIR $ENV{HUATUO_IL2CPP_SOURCE_DIR})
-set(SDK_VERSION $ENV{IPHONESIMULATOR_VERSION})
-
-message(STATUS "external project, external source dir: " ${IL2CPP_SOURCE_DIR})
-
-SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
-
-find_program(CLANG_EXECUTABLE NAMES clang clang-7 clang-8 clang-9 clang-10)
-if (NOT CLANG_EXECUTABLE)
-    message(FATAL_ERROR "Cannot find any clang executable.")
-endif()
-
-set(CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk)
-set(CMAKE_VERBOSE_MAKEFILE ON)
-set(CMAKE_C_COMPILER clang)
-
-set(CMAKE_C_FLAGS "-x c -target arm64-apple-ios11.0 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fmodules-ignore-macro=IL2CPP_TARGET_IOS=1 -fembed-bitcode -fmodules-ignore-macro=BASELIB_DYNAMICLIBRARY=1 -fmodules-ignore-macro=BASELIB_INLINE_NAMESPACE=il2cpp_baselib -fmodules-ignore-macro=AARCH64 -fmodules-ignore-macro=__aarch64__ -fmodules-ignore-macro=IL2CPP_SUPPORT_THREADS -fmodules-ignore-macro=IL2CPP_THREADS_PTHREAD -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wquoted-include-in-framework-header -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -DIL2CPP_TARGET_IOS=1 -isysroot ${CMAKE_OSX_SYSROOT} -fstrict-aliasing -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability")
-
-
-add_definitions(-DIL2CPP_TARGET_IOS=1)
-add_definitions(-DBASELIB_DYNAMICLIBRARY=1)
-add_definitions(-DBASELIB_INLINE_NAMESPACE=il2cpp_baselib)
-add_definitions(-DAARCH64)
-add_definitions(-D__aarch64__)
-#add_definitions(-D__arm64__)
-add_definitions(-DIL2CPP_SUPPORT_THREADS)
-add_definitions(-DIL2CPP_THREADS_PTHREAD)
-#add_definitions(-DCMAKE_C_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang)
-#add_definitions(-DCMAKE_CXX_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++)
-#add_definitions(-DIL2CPP_TARGET_DARWIN)
-add_definitions(-DIL2CPP_PLATFORM_SUPPORTS_TIMEZONEINFO=0)
-
-add_definitions(-MMD)
-add_definitions(-MT dependencies)
-
-include_directories(${IL2CPP_SOURCE_DIR}/external/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/bdwgc/include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Platforms/OSX/Include/)
-
-aux_source_directory(${IL2CPP_SOURCE_DIR}/external/zlib/ ZLIB_C_SOURCE_LIST)
-add_library(external STATIC ${ZLIB_C_SOURCE_LIST})
-

+ 0 - 64
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/gen_lump.sh

@@ -1,64 +0,0 @@
-echo '====================================================================='
-echo 'gen lump'
-echo '$HUATUO_IL2CPP_SOURCE_DIR='${HUATUO_IL2CPP_SOURCE_DIR}   #/Applications/Unity/Unity.app/Contents/il2cpp/
-
-GEN_SOURCE_DIR=$1
-BASE_DIR=${HUATUO_IL2CPP_SOURCE_DIR}/libil2cpp
-echo base dir: ${BASE_DIR}
-echo " "
-#BASE_DIR=${HUATUO_IL2CPP_SOURCE_DIR}/libil2cpp
-function SearchCppFile()
-{
-    for f in $(ls $1)
-    do
-        SUB_DIR=$1/$f
-        if [ -d ${SUB_DIR} ]; then
-            SearchCppFile ${SUB_DIR}
-        fi
-    done
-
-    CPP_FILE_NUM=`ls -l $1/ | grep "\.cpp$"|wc -l`
-    if (( ${CPP_FILE_NUM} > 0 ))
-    then
-        for f in $1/*.cpp
-        do
-            echo "#include \""$f"\"" >> ${OUTPUT_FILE_NAME}
-        done
-    fi
-
-    MM_FILE_NUM=`ls -l $1/ | grep "\.mm$"|wc -l`
-    if (( ${MM_FILE_NUM} > 0 ))
-    then
-        for f in $1/*.mm
-        do
-            echo "#include \""$f"\"" >> ${OBJECTIVE_FILE_NAME}
-        done
-    fi
-}
-
-rm -rf "${GEN_SOURCE_DIR}"/lump_cpp
-rm -rf "${GEN_SOURCE_DIR}"/lump_mm
-mkdir "${GEN_SOURCE_DIR}"/lump_cpp
-mkdir "${GEN_SOURCE_DIR}"/lump_mm
-
-OBJECTIVE_FILE_NAME=${GEN_SOURCE_DIR}/lump_mm/lump_libil2cpp_ojective.mm
-echo "#include \"${BASE_DIR}/il2cpp-config.h\"" > ${OBJECTIVE_FILE_NAME}
-echo gen file: ${OBJECTIVE_FILE_NAME}
-
-for FOLDER in hybridclr vm pch utils vm-utils codegen metadata os debugger mono gc icalls
-do
-    OUTPUT_FILE_NAME=${GEN_SOURCE_DIR}/lump_cpp/lump_libil2cpp_${FOLDER}.cpp
-    echo "#include \"${BASE_DIR}/il2cpp-config.h\"" > ${OUTPUT_FILE_NAME}
-    if  [ $FOLDER = hybridclr ] || [ $FOLDER = vm ]
-    then
-        echo "#include \"${BASE_DIR}/codegen/il2cpp-codegen.h\"" >> ${OUTPUT_FILE_NAME}
-    fi
-    SearchCppFile ${BASE_DIR}/${FOLDER}
-    echo gen file: ${OUTPUT_FILE_NAME}
-done
-
-echo gen done.
-echo '====================================================================='
-echo " "
-
-

+ 0 - 62
hybridclr_unity-2.x/hybridclr_unity-2.x/Data~/iOSBuild/objective/CMakeLists.txt

@@ -1,62 +0,0 @@
-# file: CMakeList.txt
-cmake_minimum_required(VERSION 3.0)
-set(CMAKE_OSX_DEPLOYMENT_TARGET iOS)
-project(il2cpp)
-
-set(IL2CPP_SOURCE_DIR $ENV{HUATUO_IL2CPP_SOURCE_DIR})
-set(SDK_VERSION $ENV{IPHONESIMULATOR_VERSION})
-
-message(STATUS "objective project, binary dir: " ${PROJECT_BINARY_DIR})
-message(STATUS "objective project, il2cpp source dir: " ${PROJECT_SOURCE_DIR})
-
-
-SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
-find_program(CLANG_EXECUTABLE NAMES clang clang-7 clang-8 clang-9 clang-10)
-if (NOT CLANG_EXECUTABLE)
-    message(FATAL_ERROR "Cannot find any clang executable.")
-endif()
-
-
-set(CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk)
-
-set(CMAKE_VERBOSE_MAKEFILE ON)
-set(CMAKE_CXX_COMPILER clang++)
-set(CMAKE_C_COMPILER clang)
-#add_compile_options(-x objective-c++)
-
-# 以下命令为复制的Xcode生成中的命令
-set(CMAKE_CXX_FLAGS "-target arm64-apple-ios11.0 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1z -fmodules -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fmodules-ignore-macro=IL2CPP_TARGET_IOS=1 -fembed-bitcode -fmodules-ignore-macro=BASELIB_DYNAMICLIBRARY=1 -fmodules-ignore-macro=BASELIB_INLINE_NAMESPACE=il2cpp_baselib -fmodules-ignore-macro=AARCH64 -fmodules-ignore-macro=__aarch64__ -fmodules-ignore-macro=IL2CPP_SUPPORT_THREADS -fmodules-ignore-macro=IL2CPP_THREADS_PTHREAD -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wquoted-include-in-framework-header -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DIL2CPP_TARGET_IOS=1 -isysroot ${SDK_VERSION} -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability ")
-
-
-add_definitions(-DIL2CPP_TARGET_IOS=1)
-add_definitions(-DBASELIB_DYNAMICLIBRARY=1)
-add_definitions(-DBASELIB_INLINE_NAMESPACE=il2cpp_baselib)
-add_definitions(-DAARCH64)
-add_definitions(-D__aarch64__)
-add_definitions(-DIL2CPP_SUPPORT_THREADS)
-add_definitions(-DIL2CPP_THREADS_PTHREAD)
-#add_definitions(-DCMAKE_C_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang)
-#add_definitions(-DCMAKE_CXX_COMPILER=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++)
-#add_definitions(-DIL2CPP_TARGET_DARWIN)
-add_definitions(-DIL2CPP_PLATFORM_SUPPORTS_TIMEZONEINFO)
-
-add_definitions(-MMD)
-add_definitions(-MT dependencies)
-
-
-include_directories(${IL2CPP_SOURCE_DIR}/libil2cpp)
-include_directories(${IL2CPP_SOURCE_DIR}/external)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/bdwgc/include/)
-include_directories(${IL2CPP_SOURCE_DIR}/external/baselib/Platforms/OSX/Include/)
-
-# 修改为本机对应SDK路径
-include_directories(SYSTEM /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/c++/v1)
-include_directories(SYSTEM /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include)
-
-get_filename_component(PARENT_PATH ${PROJECT_BINARY_DIR} PATH)
-aux_source_directory(${PARENT_PATH}/lump_mm LUMP_SOURCE_LIST)
-
-#find_library(zlib ${PROJECT_SOURCE_DIR}/external)
-add_library(objective STATIC ${LUMP_SOURCE_LIST})
-

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: c3fabc41cf17c444995fc01a76c5dbe6
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: daa1e09af240aae4da0741843cb2b3f3
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 08f44f6e8bfbc2c45afae7bdd2d7f21f
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 5cedddbfa873eb94496b496e2a3ce8aa
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 55
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CRC.cs

@@ -1,55 +0,0 @@
-// Common/CRC.cs
-
-namespace SevenZip
-{
-	public class CRC
-	{
-		public static readonly uint[] Table;
-
-		static CRC()
-		{
-			Table = new uint[256];
-			const uint kPoly = 0xEDB88320;
-			for (uint i = 0; i < 256; i++)
-			{
-				uint r = i;
-				for (int j = 0; j < 8; j++)
-					if ((r & 1) != 0)
-						r = (r >> 1) ^ kPoly;
-					else
-						r >>= 1;
-				Table[i] = r;
-			}
-		}
-
-		uint _value = 0xFFFFFFFF;
-
-		public void Init() { _value = 0xFFFFFFFF; }
-
-		public void UpdateByte(byte b)
-		{
-			_value = Table[(((byte)(_value)) ^ b)] ^ (_value >> 8);
-		}
-
-		public void Update(byte[] data, uint offset, uint size)
-		{
-			for (uint i = 0; i < size; i++)
-				_value = Table[(((byte)(_value)) ^ data[offset + i])] ^ (_value >> 8);
-		}
-
-		public uint GetDigest() { return _value ^ 0xFFFFFFFF; }
-
-		static uint CalculateDigest(byte[] data, uint offset, uint size)
-		{
-			CRC crc = new CRC();
-			// crc.Init();
-			crc.Update(data, offset, size);
-			return crc.GetDigest();
-		}
-
-		static bool VerifyDigest(uint digest, byte[] data, uint offset, uint size)
-		{
-			return (CalculateDigest(data, offset, size) == digest);
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CRC.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: d0bb58ecc915d9d47b8567adaa2d0ca6
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 274
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CommandLineParser.cs

@@ -1,274 +0,0 @@
-// CommandLineParser.cs
-
-using System;
-using System.Collections;
-
-namespace SevenZip.CommandLineParser
-{
-	public enum SwitchType
-	{
-		Simple,
-		PostMinus,
-		LimitedPostString,
-		UnLimitedPostString,
-		PostChar
-	}
-
-	public class SwitchForm
-	{
-		public string IDString;
-		public SwitchType Type;
-		public bool Multi;
-		public int MinLen;
-		public int MaxLen;
-		public string PostCharSet;
-
-		public SwitchForm(string idString, SwitchType type, bool multi,
-			int minLen, int maxLen, string postCharSet)
-		{
-			IDString = idString;
-			Type = type;
-			Multi = multi;
-			MinLen = minLen;
-			MaxLen = maxLen;
-			PostCharSet = postCharSet;
-		}
-		public SwitchForm(string idString, SwitchType type, bool multi, int minLen):
-			this(idString, type, multi, minLen, 0, "")
-		{
-		}
-		public SwitchForm(string idString, SwitchType type, bool multi):
-			this(idString, type, multi, 0)
-		{
-		}
-	}
-
-	public class SwitchResult
-	{
-		public bool ThereIs;
-		public bool WithMinus;
-		public ArrayList PostStrings = new ArrayList();
-		public int PostCharIndex;
-		public SwitchResult()
-		{
-			ThereIs = false;
-		}
-	}
-
-	public class Parser
-	{
-		public ArrayList NonSwitchStrings = new ArrayList();
-		SwitchResult[] _switches;
-
-		public Parser(int numSwitches)
-		{
-			_switches = new SwitchResult[numSwitches];
-			for (int i = 0; i < numSwitches; i++)
-				_switches[i] = new SwitchResult();
-		}
-
-		bool ParseString(string srcString, SwitchForm[] switchForms)
-		{
-			int len = srcString.Length;
-			if (len == 0)
-				return false;
-			int pos = 0;
-			if (!IsItSwitchChar(srcString[pos]))
-				return false;
-			while (pos < len)
-			{
-				if (IsItSwitchChar(srcString[pos]))
-					pos++;
-				const int kNoLen = -1;
-				int matchedSwitchIndex = 0;
-				int maxLen = kNoLen;
-				for (int switchIndex = 0; switchIndex < _switches.Length; switchIndex++)
-				{
-					int switchLen = switchForms[switchIndex].IDString.Length;
-					if (switchLen <= maxLen || pos + switchLen > len)
-						continue;
-					if (String.Compare(switchForms[switchIndex].IDString, 0,
-							srcString, pos, switchLen, true) == 0)
-					{
-						matchedSwitchIndex = switchIndex;
-						maxLen = switchLen;
-					}
-				}
-				if (maxLen == kNoLen)
-					throw new Exception("maxLen == kNoLen");
-				SwitchResult matchedSwitch = _switches[matchedSwitchIndex];
-				SwitchForm switchForm = switchForms[matchedSwitchIndex];
-				if ((!switchForm.Multi) && matchedSwitch.ThereIs)
-					throw new Exception("switch must be single");
-				matchedSwitch.ThereIs = true;
-				pos += maxLen;
-				int tailSize = len - pos;
-				SwitchType type = switchForm.Type;
-				switch (type)
-				{
-					case SwitchType.PostMinus:
-						{
-							if (tailSize == 0)
-								matchedSwitch.WithMinus = false;
-							else
-							{
-								matchedSwitch.WithMinus = (srcString[pos] == kSwitchMinus);
-								if (matchedSwitch.WithMinus)
-									pos++;
-							}
-							break;
-						}
-					case SwitchType.PostChar:
-						{
-							if (tailSize < switchForm.MinLen)
-								throw new Exception("switch is not full");
-							string charSet = switchForm.PostCharSet;
-							const int kEmptyCharValue = -1;
-							if (tailSize == 0)
-								matchedSwitch.PostCharIndex = kEmptyCharValue;
-							else
-							{
-								int index = charSet.IndexOf(srcString[pos]);
-								if (index < 0)
-									matchedSwitch.PostCharIndex = kEmptyCharValue;
-								else
-								{
-									matchedSwitch.PostCharIndex = index;
-									pos++;
-								}
-							}
-							break;
-						}
-					case SwitchType.LimitedPostString:
-					case SwitchType.UnLimitedPostString:
-						{
-							int minLen = switchForm.MinLen;
-							if (tailSize < minLen)
-								throw new Exception("switch is not full");
-							if (type == SwitchType.UnLimitedPostString)
-							{
-								matchedSwitch.PostStrings.Add(srcString.Substring(pos));
-								return true;
-							}
-							String stringSwitch = srcString.Substring(pos, minLen);
-							pos += minLen;
-							for (int i = minLen; i < switchForm.MaxLen && pos < len; i++, pos++)
-							{
-								char c = srcString[pos];
-								if (IsItSwitchChar(c))
-									break;
-								stringSwitch += c;
-							}
-							matchedSwitch.PostStrings.Add(stringSwitch);
-							break;
-						}
-				}
-			}
-			return true;
-
-		}
-
-		public void ParseStrings(SwitchForm[] switchForms, string[] commandStrings)
-		{
-			int numCommandStrings = commandStrings.Length;
-			bool stopSwitch = false;
-			for (int i = 0; i < numCommandStrings; i++)
-			{
-				string s = commandStrings[i];
-				if (stopSwitch)
-					NonSwitchStrings.Add(s);
-				else
-					if (s == kStopSwitchParsing)
-					stopSwitch = true;
-				else
-					if (!ParseString(s, switchForms))
-					NonSwitchStrings.Add(s);
-			}
-		}
-
-		public SwitchResult this[int index] { get { return _switches[index]; } }
-
-		public static int ParseCommand(CommandForm[] commandForms, string commandString,
-			out string postString)
-		{
-			for (int i = 0; i < commandForms.Length; i++)
-			{
-				string id = commandForms[i].IDString;
-				if (commandForms[i].PostStringMode)
-				{
-					if (commandString.IndexOf(id) == 0)
-					{
-						postString = commandString.Substring(id.Length);
-						return i;
-					}
-				}
-				else
-					if (commandString == id)
-				{
-					postString = "";
-					return i;
-				}
-			}
-			postString = "";
-			return -1;
-		}
-
-		static bool ParseSubCharsCommand(int numForms, CommandSubCharsSet[] forms,
-			string commandString, ArrayList indices)
-		{
-			indices.Clear();
-			int numUsedChars = 0;
-			for (int i = 0; i < numForms; i++)
-			{
-				CommandSubCharsSet charsSet = forms[i];
-				int currentIndex = -1;
-				int len = charsSet.Chars.Length;
-				for (int j = 0; j < len; j++)
-				{
-					char c = charsSet.Chars[j];
-					int newIndex = commandString.IndexOf(c);
-					if (newIndex >= 0)
-					{
-						if (currentIndex >= 0)
-							return false;
-						if (commandString.IndexOf(c, newIndex + 1) >= 0)
-							return false;
-						currentIndex = j;
-						numUsedChars++;
-					}
-				}
-				if (currentIndex == -1 && !charsSet.EmptyAllowed)
-					return false;
-				indices.Add(currentIndex);
-			}
-			return (numUsedChars == commandString.Length);
-		}
-		const char kSwitchID1 = '-';
-		const char kSwitchID2 = '/';
-
-		const char kSwitchMinus = '-';
-		const string kStopSwitchParsing = "--";
-
-		static bool IsItSwitchChar(char c)
-		{
-			return (c == kSwitchID1 || c == kSwitchID2);
-		}
-	}
-
-	public class CommandForm
-	{
-		public string IDString = "";
-		public bool PostStringMode = false;
-		public CommandForm(string idString, bool postStringMode)
-		{
-			IDString = idString;
-			PostStringMode = postStringMode;
-		}
-	}
-
-	class CommandSubCharsSet
-	{
-		public string Chars = "";
-		public bool EmptyAllowed = false;
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/CommandLineParser.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: dc0b3921c07ef224cb3656391f4317c3
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 72
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/InBuffer.cs

@@ -1,72 +0,0 @@
-// InBuffer.cs
-
-namespace SevenZip.Buffer
-{
-	public class InBuffer
-	{
-		byte[] m_Buffer;
-		uint m_Pos;
-		uint m_Limit;
-		uint m_BufferSize;
-		System.IO.Stream m_Stream;
-		bool m_StreamWasExhausted;
-		ulong m_ProcessedSize;
-
-		public InBuffer(uint bufferSize)
-		{
-			m_Buffer = new byte[bufferSize];
-			m_BufferSize = bufferSize;
-		}
-
-		public void Init(System.IO.Stream stream)
-		{
-			m_Stream = stream;
-			m_ProcessedSize = 0;
-			m_Limit = 0;
-			m_Pos = 0;
-			m_StreamWasExhausted = false;
-		}
-
-		public bool ReadBlock()
-		{
-			if (m_StreamWasExhausted)
-				return false;
-			m_ProcessedSize += m_Pos;
-			int aNumProcessedBytes = m_Stream.Read(m_Buffer, 0, (int)m_BufferSize);
-			m_Pos = 0;
-			m_Limit = (uint)aNumProcessedBytes;
-			m_StreamWasExhausted = (aNumProcessedBytes == 0);
-			return (!m_StreamWasExhausted);
-		}
-
-
-		public void ReleaseStream()
-		{
-			// m_Stream.Close(); 
-			m_Stream = null;
-		}
-
-		public bool ReadByte(byte b) // check it
-		{
-			if (m_Pos >= m_Limit)
-				if (!ReadBlock())
-					return false;
-			b = m_Buffer[m_Pos++];
-			return true;
-		}
-
-		public byte ReadByte()
-		{
-			// return (byte)m_Stream.ReadByte();
-			if (m_Pos >= m_Limit)
-				if (!ReadBlock())
-					return 0xFF;
-			return m_Buffer[m_Pos++];
-		}
-
-		public ulong GetProcessedSize()
-		{
-			return m_ProcessedSize + m_Pos;
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/InBuffer.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 6ea025f5b275726479ba55e956574898
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 47
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/OutBuffer.cs

@@ -1,47 +0,0 @@
-// OutBuffer.cs
-
-namespace SevenZip.Buffer
-{
-	public class OutBuffer
-	{
-		byte[] m_Buffer;
-		uint m_Pos;
-		uint m_BufferSize;
-		System.IO.Stream m_Stream;
-		ulong m_ProcessedSize;
-
-		public OutBuffer(uint bufferSize)
-		{
-			m_Buffer = new byte[bufferSize];
-			m_BufferSize = bufferSize;
-		}
-
-		public void SetStream(System.IO.Stream stream) { m_Stream = stream; }
-		public void FlushStream() { m_Stream.Flush(); }
-		public void CloseStream() { m_Stream.Close(); }
-		public void ReleaseStream() { m_Stream = null; }
-
-		public void Init()
-		{
-			m_ProcessedSize = 0;
-			m_Pos = 0;
-		}
-
-		public void WriteByte(byte b)
-		{
-			m_Buffer[m_Pos++] = b;
-			if (m_Pos >= m_BufferSize)
-				FlushData();
-		}
-
-		public void FlushData()
-		{
-			if (m_Pos == 0)
-				return;
-			m_Stream.Write(m_Buffer, 0, (int)m_Pos);
-			m_Pos = 0;
-		}
-
-		public ulong GetProcessedSize() { return m_ProcessedSize + m_Pos; }
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Common/OutBuffer.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 5d61847c152e7384ab15aea89a942f54
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 4b6765bf0d03fd243b47d74c9b73c38b
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a83572c42056f474db56e761a4f35e38
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 24
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/IMatchFinder.cs

@@ -1,24 +0,0 @@
-// IMatchFinder.cs
-
-using System;
-
-namespace SevenZip.Compression.LZ
-{
-	interface IInWindowStream
-	{
-		void SetStream(System.IO.Stream inStream);
-		void Init();
-		void ReleaseStream();
-		Byte GetIndexByte(Int32 index);
-		UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit);
-		UInt32 GetNumAvailableBytes();
-	}
-
-	interface IMatchFinder : IInWindowStream
-	{
-		void Create(UInt32 historySize, UInt32 keepAddBufferBefore,
-				UInt32 matchMaxLen, UInt32 keepAddBufferAfter);
-		UInt32 GetMatches(UInt32[] distances);
-		void Skip(UInt32 num);
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/IMatchFinder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: bfd1ee430d8108042a2607d92d7f58ad
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 367
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzBinTree.cs

@@ -1,367 +0,0 @@
-// LzBinTree.cs
-
-using System;
-
-namespace SevenZip.Compression.LZ
-{
-	public class BinTree : InWindow, IMatchFinder
-	{
-		UInt32 _cyclicBufferPos;
-		UInt32 _cyclicBufferSize = 0;
-		UInt32 _matchMaxLen;
-
-		UInt32[] _son;
-		UInt32[] _hash;
-
-		UInt32 _cutValue = 0xFF;
-		UInt32 _hashMask;
-		UInt32 _hashSizeSum = 0;
-
-		bool HASH_ARRAY = true;
-
-		const UInt32 kHash2Size = 1 << 10;
-		const UInt32 kHash3Size = 1 << 16;
-		const UInt32 kBT2HashSize = 1 << 16;
-		const UInt32 kStartMaxLen = 1;
-		const UInt32 kHash3Offset = kHash2Size;
-		const UInt32 kEmptyHashValue = 0;
-		const UInt32 kMaxValForNormalize = ((UInt32)1 << 31) - 1;
-	
-		UInt32 kNumHashDirectBytes = 0;
-		UInt32 kMinMatchCheck = 4;
-		UInt32 kFixHashSize = kHash2Size + kHash3Size;
-		
-		public void SetType(int numHashBytes)
-		{
-			HASH_ARRAY = (numHashBytes > 2);
-			if (HASH_ARRAY)
-			{
-				kNumHashDirectBytes = 0;
-				kMinMatchCheck = 4;
-				kFixHashSize = kHash2Size + kHash3Size;
-			}
-			else
-			{
-				kNumHashDirectBytes = 2;
-				kMinMatchCheck = 2 + 1;
-				kFixHashSize = 0;
-			}
-		}
-
-		public new void SetStream(System.IO.Stream stream) { base.SetStream(stream); }
-		public new void ReleaseStream() { base.ReleaseStream(); }
-		
-		public new void Init()
-		{
-			base.Init();
-			for (UInt32 i = 0; i < _hashSizeSum; i++)
-				_hash[i] = kEmptyHashValue;
-			_cyclicBufferPos = 0;
-			ReduceOffsets(-1);
-		}
-
-		public new void MovePos()
-		{
-			if (++_cyclicBufferPos >= _cyclicBufferSize)
-				_cyclicBufferPos = 0;
-			base.MovePos();
-			if (_pos == kMaxValForNormalize)
-				Normalize();
-		}
-
-		public new Byte GetIndexByte(Int32 index) { return base.GetIndexByte(index); }
-
-		public new UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit)
-		{ return base.GetMatchLen(index, distance, limit); }
-
-		public new UInt32 GetNumAvailableBytes() { return base.GetNumAvailableBytes(); }
-
-		public void Create(UInt32 historySize, UInt32 keepAddBufferBefore,
-				UInt32 matchMaxLen, UInt32 keepAddBufferAfter)
-		{
-			if (historySize > kMaxValForNormalize - 256)
-				throw new Exception();
-			_cutValue = 16 + (matchMaxLen >> 1);
-				
-			UInt32 windowReservSize = (historySize + keepAddBufferBefore +
-					matchMaxLen + keepAddBufferAfter) / 2 + 256;
-
-			base.Create(historySize + keepAddBufferBefore, matchMaxLen + keepAddBufferAfter, windowReservSize);
-
-			_matchMaxLen = matchMaxLen;
-
-			UInt32 cyclicBufferSize = historySize + 1;
-			if (_cyclicBufferSize != cyclicBufferSize)
-				_son = new UInt32[(_cyclicBufferSize = cyclicBufferSize) * 2];
-
-			UInt32 hs = kBT2HashSize;
-
-			if (HASH_ARRAY)
-			{
-				hs = historySize - 1;
-				hs |= (hs >> 1);
-				hs |= (hs >> 2);
-				hs |= (hs >> 4);
-				hs |= (hs >> 8);
-				hs >>= 1;
-				hs |= 0xFFFF;
-				if (hs > (1 << 24))
-					hs >>= 1;
-				_hashMask = hs;
-				hs++;
-				hs += kFixHashSize;
-			}
-			if (hs != _hashSizeSum)
-				_hash = new UInt32[_hashSizeSum = hs];
-		}
-
-		public UInt32 GetMatches(UInt32[] distances)
-		{
-			UInt32 lenLimit;
-			if (_pos + _matchMaxLen <= _streamPos)
-				lenLimit = _matchMaxLen;
-			else
-			{
-				lenLimit = _streamPos - _pos;
-				if (lenLimit < kMinMatchCheck)
-				{
-					MovePos();
-					return 0;
-				}
-			}
-
-			UInt32 offset = 0;
-			UInt32 matchMinPos = (_pos > _cyclicBufferSize) ? (_pos - _cyclicBufferSize) : 0;
-			UInt32 cur = _bufferOffset + _pos;
-			UInt32 maxLen = kStartMaxLen; // to avoid items for len < hashSize;
-			UInt32 hashValue, hash2Value = 0, hash3Value = 0;
-
-			if (HASH_ARRAY)
-			{
-				UInt32 temp = CRC.Table[_bufferBase[cur]] ^ _bufferBase[cur + 1];
-				hash2Value = temp & (kHash2Size - 1);
-				temp ^= ((UInt32)(_bufferBase[cur + 2]) << 8);
-				hash3Value = temp & (kHash3Size - 1);
-				hashValue = (temp ^ (CRC.Table[_bufferBase[cur + 3]] << 5)) & _hashMask;
-			}
-			else
-				hashValue = _bufferBase[cur] ^ ((UInt32)(_bufferBase[cur + 1]) << 8);
-
-			UInt32 curMatch = _hash[kFixHashSize + hashValue];
-			if (HASH_ARRAY)
-			{
-				UInt32 curMatch2 = _hash[hash2Value];
-				UInt32 curMatch3 = _hash[kHash3Offset + hash3Value];
-				_hash[hash2Value] = _pos;
-				_hash[kHash3Offset + hash3Value] = _pos;
-				if (curMatch2 > matchMinPos)
-					if (_bufferBase[_bufferOffset + curMatch2] == _bufferBase[cur])
-					{
-						distances[offset++] = maxLen = 2;
-						distances[offset++] = _pos - curMatch2 - 1;
-					}
-				if (curMatch3 > matchMinPos)
-					if (_bufferBase[_bufferOffset + curMatch3] == _bufferBase[cur])
-					{
-						if (curMatch3 == curMatch2)
-							offset -= 2;
-						distances[offset++] = maxLen = 3;
-						distances[offset++] = _pos - curMatch3 - 1;
-						curMatch2 = curMatch3;
-					}
-				if (offset != 0 && curMatch2 == curMatch)
-				{
-					offset -= 2;
-					maxLen = kStartMaxLen;
-				}
-			}
-
-			_hash[kFixHashSize + hashValue] = _pos;
-
-			UInt32 ptr0 = (_cyclicBufferPos << 1) + 1;
-			UInt32 ptr1 = (_cyclicBufferPos << 1);
-
-			UInt32 len0, len1;
-			len0 = len1 = kNumHashDirectBytes;
-			
-			if (kNumHashDirectBytes != 0)
-			{
-				if (curMatch > matchMinPos)
-				{
-					if (_bufferBase[_bufferOffset + curMatch + kNumHashDirectBytes] !=
-							_bufferBase[cur + kNumHashDirectBytes])
-					{
-						distances[offset++] = maxLen = kNumHashDirectBytes;
-						distances[offset++] = _pos - curMatch - 1;
-					}
-				}
-			}
-			
-			UInt32 count = _cutValue;
-			
-			while(true)
-			{
-				if(curMatch <= matchMinPos || count-- == 0)
-				{
-					_son[ptr0] = _son[ptr1] = kEmptyHashValue;
-					break;
-				}
-				UInt32 delta = _pos - curMatch;
-				UInt32 cyclicPos = ((delta <= _cyclicBufferPos) ?
-							(_cyclicBufferPos - delta) :
-							(_cyclicBufferPos - delta + _cyclicBufferSize)) << 1;
-
-				UInt32 pby1 = _bufferOffset + curMatch;
-				UInt32 len = Math.Min(len0, len1);
-				if (_bufferBase[pby1 + len] == _bufferBase[cur + len])
-				{
-					while(++len != lenLimit)
-						if (_bufferBase[pby1 + len] != _bufferBase[cur + len])
-							break;
-					if (maxLen < len)
-					{
-						distances[offset++] = maxLen = len;
-						distances[offset++] = delta - 1;
-						if (len == lenLimit)
-						{
-							_son[ptr1] = _son[cyclicPos];
-							_son[ptr0] = _son[cyclicPos + 1];
-							break;
-						}
-					}
-				}
-				if (_bufferBase[pby1 + len] < _bufferBase[cur + len])
-				{
-					_son[ptr1] = curMatch;
-					ptr1 = cyclicPos + 1;
-					curMatch = _son[ptr1];
-					len1 = len;
-				}
-				else
-				{
-					_son[ptr0] = curMatch;
-					ptr0 = cyclicPos;
-					curMatch = _son[ptr0];
-					len0 = len;
-				}
-			}
-			MovePos();
-			return offset;
-		}
-
-		public void Skip(UInt32 num)
-		{
-			do
-			{
-				UInt32 lenLimit;
-				if (_pos + _matchMaxLen <= _streamPos)
-					lenLimit = _matchMaxLen;
-				else
-				{
-					lenLimit = _streamPos - _pos;
-					if (lenLimit < kMinMatchCheck)
-					{
-						MovePos();
-						continue;
-					}
-				}
-
-				UInt32 matchMinPos = (_pos > _cyclicBufferSize) ? (_pos - _cyclicBufferSize) : 0;
-				UInt32 cur = _bufferOffset + _pos;
-
-				UInt32 hashValue;
-
-				if (HASH_ARRAY)
-				{
-					UInt32 temp = CRC.Table[_bufferBase[cur]] ^ _bufferBase[cur + 1];
-					UInt32 hash2Value = temp & (kHash2Size - 1);
-					_hash[hash2Value] = _pos;
-					temp ^= ((UInt32)(_bufferBase[cur + 2]) << 8);
-					UInt32 hash3Value = temp & (kHash3Size - 1);
-					_hash[kHash3Offset + hash3Value] = _pos;
-					hashValue = (temp ^ (CRC.Table[_bufferBase[cur + 3]] << 5)) & _hashMask;
-				}
-				else
-					hashValue = _bufferBase[cur] ^ ((UInt32)(_bufferBase[cur + 1]) << 8);
-
-				UInt32 curMatch = _hash[kFixHashSize + hashValue];
-				_hash[kFixHashSize + hashValue] = _pos;
-
-				UInt32 ptr0 = (_cyclicBufferPos << 1) + 1;
-				UInt32 ptr1 = (_cyclicBufferPos << 1);
-
-				UInt32 len0, len1;
-				len0 = len1 = kNumHashDirectBytes;
-
-				UInt32 count = _cutValue;
-				while (true)
-				{
-					if (curMatch <= matchMinPos || count-- == 0)
-					{
-						_son[ptr0] = _son[ptr1] = kEmptyHashValue;
-						break;
-					}
-
-					UInt32 delta = _pos - curMatch;
-					UInt32 cyclicPos = ((delta <= _cyclicBufferPos) ?
-								(_cyclicBufferPos - delta) :
-								(_cyclicBufferPos - delta + _cyclicBufferSize)) << 1;
-
-					UInt32 pby1 = _bufferOffset + curMatch;
-					UInt32 len = Math.Min(len0, len1);
-					if (_bufferBase[pby1 + len] == _bufferBase[cur + len])
-					{
-						while (++len != lenLimit)
-							if (_bufferBase[pby1 + len] != _bufferBase[cur + len])
-								break;
-						if (len == lenLimit)
-						{
-							_son[ptr1] = _son[cyclicPos];
-							_son[ptr0] = _son[cyclicPos + 1];
-							break;
-						}
-					}
-					if (_bufferBase[pby1 + len] < _bufferBase[cur + len])
-					{
-						_son[ptr1] = curMatch;
-						ptr1 = cyclicPos + 1;
-						curMatch = _son[ptr1];
-						len1 = len;
-					}
-					else
-					{
-						_son[ptr0] = curMatch;
-						ptr0 = cyclicPos;
-						curMatch = _son[ptr0];
-						len0 = len;
-					}
-				}
-				MovePos();
-			}
-			while (--num != 0);
-		}
-
-		void NormalizeLinks(UInt32[] items, UInt32 numItems, UInt32 subValue)
-		{
-			for (UInt32 i = 0; i < numItems; i++)
-			{
-				UInt32 value = items[i];
-				if (value <= subValue)
-					value = kEmptyHashValue;
-				else
-					value -= subValue;
-				items[i] = value;
-			}
-		}
-
-		void Normalize()
-		{
-			UInt32 subValue = _pos - _cyclicBufferSize;
-			NormalizeLinks(_son, _cyclicBufferSize * 2, subValue);
-			NormalizeLinks(_hash, _hashSizeSum, subValue);
-			ReduceOffsets((Int32)subValue);
-		}
-
-		public void SetCutValue(UInt32 cutValue) { _cutValue = cutValue; }
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzBinTree.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3ba8015d2d5df3a459615ffc06635e6d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 132
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzInWindow.cs

@@ -1,132 +0,0 @@
-// LzInWindow.cs
-
-using System;
-
-namespace SevenZip.Compression.LZ
-{
-	public class InWindow
-	{
-		public Byte[] _bufferBase = null; // pointer to buffer with data
-		System.IO.Stream _stream;
-		UInt32 _posLimit; // offset (from _buffer) of first byte when new block reading must be done
-		bool _streamEndWasReached; // if (true) then _streamPos shows real end of stream
-
-		UInt32 _pointerToLastSafePosition;
-
-		public UInt32 _bufferOffset;
-
-		public UInt32 _blockSize; // Size of Allocated memory block
-		public UInt32 _pos; // offset (from _buffer) of curent byte
-		UInt32 _keepSizeBefore; // how many BYTEs must be kept in buffer before _pos
-		UInt32 _keepSizeAfter; // how many BYTEs must be kept buffer after _pos
-		public UInt32 _streamPos; // offset (from _buffer) of first not read byte from Stream
-
-		public void MoveBlock()
-		{
-			UInt32 offset = (UInt32)(_bufferOffset) + _pos - _keepSizeBefore;
-			// we need one additional byte, since MovePos moves on 1 byte.
-			if (offset > 0)
-				offset--;
-			
-			UInt32 numBytes = (UInt32)(_bufferOffset) + _streamPos - offset;
-
-			// check negative offset ????
-			for (UInt32 i = 0; i < numBytes; i++)
-				_bufferBase[i] = _bufferBase[offset + i];
-			_bufferOffset -= offset;
-		}
-
-		public virtual void ReadBlock()
-		{
-			if (_streamEndWasReached)
-				return;
-			while (true)
-			{
-				int size = (int)((0 - _bufferOffset) + _blockSize - _streamPos);
-				if (size == 0)
-					return;
-				int numReadBytes = _stream.Read(_bufferBase, (int)(_bufferOffset + _streamPos), size);
-				if (numReadBytes == 0)
-				{
-					_posLimit = _streamPos;
-					UInt32 pointerToPostion = _bufferOffset + _posLimit;
-					if (pointerToPostion > _pointerToLastSafePosition)
-						_posLimit = (UInt32)(_pointerToLastSafePosition - _bufferOffset);
-
-					_streamEndWasReached = true;
-					return;
-				}
-				_streamPos += (UInt32)numReadBytes;
-				if (_streamPos >= _pos + _keepSizeAfter)
-					_posLimit = _streamPos - _keepSizeAfter;
-			}
-		}
-
-		void Free() { _bufferBase = null; }
-
-		public void Create(UInt32 keepSizeBefore, UInt32 keepSizeAfter, UInt32 keepSizeReserv)
-		{
-			_keepSizeBefore = keepSizeBefore;
-			_keepSizeAfter = keepSizeAfter;
-			UInt32 blockSize = keepSizeBefore + keepSizeAfter + keepSizeReserv;
-			if (_bufferBase == null || _blockSize != blockSize)
-			{
-				Free();
-				_blockSize = blockSize;
-				_bufferBase = new Byte[_blockSize];
-			}
-			_pointerToLastSafePosition = _blockSize - keepSizeAfter;
-		}
-
-		public void SetStream(System.IO.Stream stream) { _stream = stream; }
-		public void ReleaseStream() { _stream = null; }
-
-		public void Init()
-		{
-			_bufferOffset = 0;
-			_pos = 0;
-			_streamPos = 0;
-			_streamEndWasReached = false;
-			ReadBlock();
-		}
-
-		public void MovePos()
-		{
-			_pos++;
-			if (_pos > _posLimit)
-			{
-				UInt32 pointerToPostion = _bufferOffset + _pos;
-				if (pointerToPostion > _pointerToLastSafePosition)
-					MoveBlock();
-				ReadBlock();
-			}
-		}
-
-		public Byte GetIndexByte(Int32 index) { return _bufferBase[_bufferOffset + _pos + index]; }
-
-		// index + limit have not to exceed _keepSizeAfter;
-		public UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit)
-		{
-			if (_streamEndWasReached)
-				if ((_pos + index) + limit > _streamPos)
-					limit = _streamPos - (UInt32)(_pos + index);
-			distance++;
-			// Byte *pby = _buffer + (size_t)_pos + index;
-			UInt32 pby = _bufferOffset + _pos + (UInt32)index;
-
-			UInt32 i;
-			for (i = 0; i < limit && _bufferBase[pby + i] == _bufferBase[pby + i - distance]; i++);
-			return i;
-		}
-
-		public UInt32 GetNumAvailableBytes() { return _streamPos - _pos; }
-
-		public void ReduceOffsets(Int32 subValue)
-		{
-			_bufferOffset += (UInt32)subValue;
-			_posLimit -= (UInt32)subValue;
-			_pos -= (UInt32)subValue;
-			_streamPos -= (UInt32)subValue;
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzInWindow.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 333112c3785a6ec4cbbfec8515081cac
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 110
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzOutWindow.cs

@@ -1,110 +0,0 @@
-// LzOutWindow.cs
-
-namespace SevenZip.Compression.LZ
-{
-	public class OutWindow
-	{
-		byte[] _buffer = null;
-		uint _pos;
-		uint _windowSize = 0;
-		uint _streamPos;
-		System.IO.Stream _stream;
-
-		public uint TrainSize = 0;
-
-		public void Create(uint windowSize)
-		{
-			if (_windowSize != windowSize)
-			{
-				// System.GC.Collect();
-				_buffer = new byte[windowSize];
-			}
-			_windowSize = windowSize;
-			_pos = 0;
-			_streamPos = 0;
-		}
-
-		public void Init(System.IO.Stream stream, bool solid)
-		{
-			ReleaseStream();
-			_stream = stream;
-			if (!solid)
-			{
-				_streamPos = 0;
-				_pos = 0;
-				TrainSize = 0;
-			}
-		}
-	
-		public bool Train(System.IO.Stream stream)
-		{
-			long len = stream.Length;
-			uint size = (len < _windowSize) ? (uint)len : _windowSize;
-			TrainSize = size;
-			stream.Position = len - size;
-			_streamPos = _pos = 0;
-			while (size > 0)
-			{
-				uint curSize = _windowSize - _pos;
-				if (size < curSize)
-					curSize = size;
-				int numReadBytes = stream.Read(_buffer, (int)_pos, (int)curSize);
-				if (numReadBytes == 0)
-					return false;
-				size -= (uint)numReadBytes;
-				_pos += (uint)numReadBytes;
-				_streamPos += (uint)numReadBytes;
-				if (_pos == _windowSize)
-					_streamPos = _pos = 0;
-			}
-			return true;
-		}
-
-		public void ReleaseStream()
-		{
-			Flush();
-			_stream = null;
-		}
-
-		public void Flush()
-		{
-			uint size = _pos - _streamPos;
-			if (size == 0)
-				return;
-			_stream.Write(_buffer, (int)_streamPos, (int)size);
-			if (_pos >= _windowSize)
-				_pos = 0;
-			_streamPos = _pos;
-		}
-
-		public void CopyBlock(uint distance, uint len)
-		{
-			uint pos = _pos - distance - 1;
-			if (pos >= _windowSize)
-				pos += _windowSize;
-			for (; len > 0; len--)
-			{
-				if (pos >= _windowSize)
-					pos = 0;
-				_buffer[_pos++] = _buffer[pos++];
-				if (_pos >= _windowSize)
-					Flush();
-			}
-		}
-
-		public void PutByte(byte b)
-		{
-			_buffer[_pos++] = b;
-			if (_pos >= _windowSize)
-				Flush();
-		}
-
-		public byte GetByte(uint distance)
-		{
-			uint pos = _pos - distance - 1;
-			if (pos >= _windowSize)
-				pos += _windowSize;
-			return _buffer[pos];
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZ/LzOutWindow.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: bb296a6e14ab7c44cb6388693d581a62
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 5fcd2f5c8b724164a8a01cee73896d1a
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 76
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaBase.cs

@@ -1,76 +0,0 @@
-// LzmaBase.cs
-
-namespace SevenZip.Compression.LZMA
-{
-	internal abstract class Base
-	{
-		public const uint kNumRepDistances = 4;
-		public const uint kNumStates = 12;
-
-		// static byte []kLiteralNextStates  = {0, 0, 0, 0, 1, 2, 3, 4,  5,  6,   4, 5};
-		// static byte []kMatchNextStates    = {7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10};
-		// static byte []kRepNextStates      = {8, 8, 8, 8, 8, 8, 8, 11, 11, 11, 11, 11};
-		// static byte []kShortRepNextStates = {9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11};
-
-		public struct State
-		{
-			public uint Index;
-			public void Init() { Index = 0; }
-			public void UpdateChar()
-			{
-				if (Index < 4) Index = 0;
-				else if (Index < 10) Index -= 3;
-				else Index -= 6;
-			}
-			public void UpdateMatch() { Index = (uint)(Index < 7 ? 7 : 10); }
-			public void UpdateRep() { Index = (uint)(Index < 7 ? 8 : 11); }
-			public void UpdateShortRep() { Index = (uint)(Index < 7 ? 9 : 11); }
-			public bool IsCharState() { return Index < 7; }
-		}
-
-		public const int kNumPosSlotBits = 6;
-		public const int kDicLogSizeMin = 0;
-		// public const int kDicLogSizeMax = 30;
-		// public const uint kDistTableSizeMax = kDicLogSizeMax * 2;
-
-		public const int kNumLenToPosStatesBits = 2; // it's for speed optimization
-		public const uint kNumLenToPosStates = 1 << kNumLenToPosStatesBits;
-
-		public const uint kMatchMinLen = 2;
-
-		public static uint GetLenToPosState(uint len)
-		{
-			len -= kMatchMinLen;
-			if (len < kNumLenToPosStates)
-				return len;
-			return (uint)(kNumLenToPosStates - 1);
-		}
-
-		public const int kNumAlignBits = 4;
-		public const uint kAlignTableSize = 1 << kNumAlignBits;
-		public const uint kAlignMask = (kAlignTableSize - 1);
-
-		public const uint kStartPosModelIndex = 4;
-		public const uint kEndPosModelIndex = 14;
-		public const uint kNumPosModels = kEndPosModelIndex - kStartPosModelIndex;
-
-		public const uint kNumFullDistances = 1 << ((int)kEndPosModelIndex / 2);
-
-		public const uint kNumLitPosStatesBitsEncodingMax = 4;
-		public const uint kNumLitContextBitsMax = 8;
-
-		public const int kNumPosStatesBitsMax = 4;
-		public const uint kNumPosStatesMax = (1 << kNumPosStatesBitsMax);
-		public const int kNumPosStatesBitsEncodingMax = 4;
-		public const uint kNumPosStatesEncodingMax = (1 << kNumPosStatesBitsEncodingMax);
-
-		public const int kNumLowLenBits = 3;
-		public const int kNumMidLenBits = 3;
-		public const int kNumHighLenBits = 8;
-		public const uint kNumLowLenSymbols = 1 << kNumLowLenBits;
-		public const uint kNumMidLenSymbols = 1 << kNumMidLenBits;
-		public const uint kNumLenSymbols = kNumLowLenSymbols + kNumMidLenSymbols +
-				(1 << kNumHighLenBits);
-		public const uint kMatchMaxLen = kMatchMinLen + kNumLenSymbols - 1;
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaBase.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 62f365191077342479f8227edadf57e3
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 398
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaDecoder.cs

@@ -1,398 +0,0 @@
-// LzmaDecoder.cs
-
-using System;
-
-namespace SevenZip.Compression.LZMA
-{
-	using RangeCoder;
-
-	public class Decoder : ICoder, ISetDecoderProperties // ,System.IO.Stream
-	{
-		class LenDecoder
-		{
-			BitDecoder m_Choice = new BitDecoder();
-			BitDecoder m_Choice2 = new BitDecoder();
-			BitTreeDecoder[] m_LowCoder = new BitTreeDecoder[Base.kNumPosStatesMax];
-			BitTreeDecoder[] m_MidCoder = new BitTreeDecoder[Base.kNumPosStatesMax];
-			BitTreeDecoder m_HighCoder = new BitTreeDecoder(Base.kNumHighLenBits);
-			uint m_NumPosStates = 0;
-
-			public void Create(uint numPosStates)
-			{
-				for (uint posState = m_NumPosStates; posState < numPosStates; posState++)
-				{
-					m_LowCoder[posState] = new BitTreeDecoder(Base.kNumLowLenBits);
-					m_MidCoder[posState] = new BitTreeDecoder(Base.kNumMidLenBits);
-				}
-				m_NumPosStates = numPosStates;
-			}
-
-			public void Init()
-			{
-				m_Choice.Init();
-				for (uint posState = 0; posState < m_NumPosStates; posState++)
-				{
-					m_LowCoder[posState].Init();
-					m_MidCoder[posState].Init();
-				}
-				m_Choice2.Init();
-				m_HighCoder.Init();
-			}
-
-			public uint Decode(RangeCoder.Decoder rangeDecoder, uint posState)
-			{
-				if (m_Choice.Decode(rangeDecoder) == 0)
-					return m_LowCoder[posState].Decode(rangeDecoder);
-				else
-				{
-					uint symbol = Base.kNumLowLenSymbols;
-					if (m_Choice2.Decode(rangeDecoder) == 0)
-						symbol += m_MidCoder[posState].Decode(rangeDecoder);
-					else
-					{
-						symbol += Base.kNumMidLenSymbols;
-						symbol += m_HighCoder.Decode(rangeDecoder);
-					}
-					return symbol;
-				}
-			}
-		}
-
-		class LiteralDecoder
-		{
-			struct Decoder2
-			{
-				BitDecoder[] m_Decoders;
-				public void Create() { m_Decoders = new BitDecoder[0x300]; }
-				public void Init() { for (int i = 0; i < 0x300; i++) m_Decoders[i].Init(); }
-
-				public byte DecodeNormal(RangeCoder.Decoder rangeDecoder)
-				{
-					uint symbol = 1;
-					do
-						symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
-					while (symbol < 0x100);
-					return (byte)symbol;
-				}
-
-				public byte DecodeWithMatchByte(RangeCoder.Decoder rangeDecoder, byte matchByte)
-				{
-					uint symbol = 1;
-					do
-					{
-						uint matchBit = (uint)(matchByte >> 7) & 1;
-						matchByte <<= 1;
-						uint bit = m_Decoders[((1 + matchBit) << 8) + symbol].Decode(rangeDecoder);
-						symbol = (symbol << 1) | bit;
-						if (matchBit != bit)
-						{
-							while (symbol < 0x100)
-								symbol = (symbol << 1) | m_Decoders[symbol].Decode(rangeDecoder);
-							break;
-						}
-					}
-					while (symbol < 0x100);
-					return (byte)symbol;
-				}
-			}
-
-			Decoder2[] m_Coders;
-			int m_NumPrevBits;
-			int m_NumPosBits;
-			uint m_PosMask;
-
-			public void Create(int numPosBits, int numPrevBits)
-			{
-				if (m_Coders != null && m_NumPrevBits == numPrevBits &&
-					m_NumPosBits == numPosBits)
-					return;
-				m_NumPosBits = numPosBits;
-				m_PosMask = ((uint)1 << numPosBits) - 1;
-				m_NumPrevBits = numPrevBits;
-				uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
-				m_Coders = new Decoder2[numStates];
-				for (uint i = 0; i < numStates; i++)
-					m_Coders[i].Create();
-			}
-
-			public void Init()
-			{
-				uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
-				for (uint i = 0; i < numStates; i++)
-					m_Coders[i].Init();
-			}
-
-			uint GetState(uint pos, byte prevByte)
-			{ return ((pos & m_PosMask) << m_NumPrevBits) + (uint)(prevByte >> (8 - m_NumPrevBits)); }
-
-			public byte DecodeNormal(RangeCoder.Decoder rangeDecoder, uint pos, byte prevByte)
-			{ return m_Coders[GetState(pos, prevByte)].DecodeNormal(rangeDecoder); }
-
-			public byte DecodeWithMatchByte(RangeCoder.Decoder rangeDecoder, uint pos, byte prevByte, byte matchByte)
-			{ return m_Coders[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte); }
-		};
-
-		LZ.OutWindow m_OutWindow = new LZ.OutWindow();
-		RangeCoder.Decoder m_RangeDecoder = new RangeCoder.Decoder();
-
-		BitDecoder[] m_IsMatchDecoders = new BitDecoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
-		BitDecoder[] m_IsRepDecoders = new BitDecoder[Base.kNumStates];
-		BitDecoder[] m_IsRepG0Decoders = new BitDecoder[Base.kNumStates];
-		BitDecoder[] m_IsRepG1Decoders = new BitDecoder[Base.kNumStates];
-		BitDecoder[] m_IsRepG2Decoders = new BitDecoder[Base.kNumStates];
-		BitDecoder[] m_IsRep0LongDecoders = new BitDecoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
-
-		BitTreeDecoder[] m_PosSlotDecoder = new BitTreeDecoder[Base.kNumLenToPosStates];
-		BitDecoder[] m_PosDecoders = new BitDecoder[Base.kNumFullDistances - Base.kEndPosModelIndex];
-
-		BitTreeDecoder m_PosAlignDecoder = new BitTreeDecoder(Base.kNumAlignBits);
-
-		LenDecoder m_LenDecoder = new LenDecoder();
-		LenDecoder m_RepLenDecoder = new LenDecoder();
-
-		LiteralDecoder m_LiteralDecoder = new LiteralDecoder();
-
-		uint m_DictionarySize;
-		uint m_DictionarySizeCheck;
-
-		uint m_PosStateMask;
-
-		public Decoder()
-		{
-			m_DictionarySize = 0xFFFFFFFF;
-			for (int i = 0; i < Base.kNumLenToPosStates; i++)
-				m_PosSlotDecoder[i] = new BitTreeDecoder(Base.kNumPosSlotBits);
-		}
-
-		void SetDictionarySize(uint dictionarySize)
-		{
-			if (m_DictionarySize != dictionarySize)
-			{
-				m_DictionarySize = dictionarySize;
-				m_DictionarySizeCheck = Math.Max(m_DictionarySize, 1);
-				uint blockSize = Math.Max(m_DictionarySizeCheck, (1 << 12));
-				m_OutWindow.Create(blockSize);
-			}
-		}
-
-		void SetLiteralProperties(int lp, int lc)
-		{
-			if (lp > 8)
-				throw new InvalidParamException();
-			if (lc > 8)
-				throw new InvalidParamException();
-			m_LiteralDecoder.Create(lp, lc);
-		}
-
-		void SetPosBitsProperties(int pb)
-		{
-			if (pb > Base.kNumPosStatesBitsMax)
-				throw new InvalidParamException();
-			uint numPosStates = (uint)1 << pb;
-			m_LenDecoder.Create(numPosStates);
-			m_RepLenDecoder.Create(numPosStates);
-			m_PosStateMask = numPosStates - 1;
-		}
-
-		bool _solid = false;
-		void Init(System.IO.Stream inStream, System.IO.Stream outStream)
-		{
-			m_RangeDecoder.Init(inStream);
-			m_OutWindow.Init(outStream, _solid);
-
-			uint i;
-			for (i = 0; i < Base.kNumStates; i++)
-			{
-				for (uint j = 0; j <= m_PosStateMask; j++)
-				{
-					uint index = (i << Base.kNumPosStatesBitsMax) + j;
-					m_IsMatchDecoders[index].Init();
-					m_IsRep0LongDecoders[index].Init();
-				}
-				m_IsRepDecoders[i].Init();
-				m_IsRepG0Decoders[i].Init();
-				m_IsRepG1Decoders[i].Init();
-				m_IsRepG2Decoders[i].Init();
-			}
-
-			m_LiteralDecoder.Init();
-			for (i = 0; i < Base.kNumLenToPosStates; i++)
-				m_PosSlotDecoder[i].Init();
-			// m_PosSpecDecoder.Init();
-			for (i = 0; i < Base.kNumFullDistances - Base.kEndPosModelIndex; i++)
-				m_PosDecoders[i].Init();
-
-			m_LenDecoder.Init();
-			m_RepLenDecoder.Init();
-			m_PosAlignDecoder.Init();
-		}
-
-		public void Code(System.IO.Stream inStream, System.IO.Stream outStream,
-			Int64 inSize, Int64 outSize, ICodeProgress progress)
-		{
-			Init(inStream, outStream);
-
-			Base.State state = new Base.State();
-			state.Init();
-			uint rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0;
-
-			UInt64 nowPos64 = 0;
-			UInt64 outSize64 = (UInt64)outSize;
-			if (nowPos64 < outSize64)
-			{
-				if (m_IsMatchDecoders[state.Index << Base.kNumPosStatesBitsMax].Decode(m_RangeDecoder) != 0)
-					throw new DataErrorException();
-				state.UpdateChar();
-				byte b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, 0, 0);
-				m_OutWindow.PutByte(b);
-				nowPos64++;
-			}
-			while (nowPos64 < outSize64)
-			{
-				// UInt64 next = Math.Min(nowPos64 + (1 << 18), outSize64);
-					// while(nowPos64 < next)
-				{
-					uint posState = (uint)nowPos64 & m_PosStateMask;
-					if (m_IsMatchDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
-					{
-						byte b;
-						byte prevByte = m_OutWindow.GetByte(0);
-						if (!state.IsCharState())
-							b = m_LiteralDecoder.DecodeWithMatchByte(m_RangeDecoder,
-								(uint)nowPos64, prevByte, m_OutWindow.GetByte(rep0));
-						else
-							b = m_LiteralDecoder.DecodeNormal(m_RangeDecoder, (uint)nowPos64, prevByte);
-						m_OutWindow.PutByte(b);
-						state.UpdateChar();
-						nowPos64++;
-					}
-					else
-					{
-						uint len;
-						if (m_IsRepDecoders[state.Index].Decode(m_RangeDecoder) == 1)
-						{
-							if (m_IsRepG0Decoders[state.Index].Decode(m_RangeDecoder) == 0)
-							{
-								if (m_IsRep0LongDecoders[(state.Index << Base.kNumPosStatesBitsMax) + posState].Decode(m_RangeDecoder) == 0)
-								{
-									state.UpdateShortRep();
-									m_OutWindow.PutByte(m_OutWindow.GetByte(rep0));
-									nowPos64++;
-									continue;
-								}
-							}
-							else
-							{
-								UInt32 distance;
-								if (m_IsRepG1Decoders[state.Index].Decode(m_RangeDecoder) == 0)
-								{
-									distance = rep1;
-								}
-								else
-								{
-									if (m_IsRepG2Decoders[state.Index].Decode(m_RangeDecoder) == 0)
-										distance = rep2;
-									else
-									{
-										distance = rep3;
-										rep3 = rep2;
-									}
-									rep2 = rep1;
-								}
-								rep1 = rep0;
-								rep0 = distance;
-							}
-							len = m_RepLenDecoder.Decode(m_RangeDecoder, posState) + Base.kMatchMinLen;
-							state.UpdateRep();
-						}
-						else
-						{
-							rep3 = rep2;
-							rep2 = rep1;
-							rep1 = rep0;
-							len = Base.kMatchMinLen + m_LenDecoder.Decode(m_RangeDecoder, posState);
-							state.UpdateMatch();
-							uint posSlot = m_PosSlotDecoder[Base.GetLenToPosState(len)].Decode(m_RangeDecoder);
-							if (posSlot >= Base.kStartPosModelIndex)
-							{
-								int numDirectBits = (int)((posSlot >> 1) - 1);
-								rep0 = ((2 | (posSlot & 1)) << numDirectBits);
-								if (posSlot < Base.kEndPosModelIndex)
-									rep0 += BitTreeDecoder.ReverseDecode(m_PosDecoders,
-											rep0 - posSlot - 1, m_RangeDecoder, numDirectBits);
-								else
-								{
-									rep0 += (m_RangeDecoder.DecodeDirectBits(
-										numDirectBits - Base.kNumAlignBits) << Base.kNumAlignBits);
-									rep0 += m_PosAlignDecoder.ReverseDecode(m_RangeDecoder);
-								}
-							}
-							else
-								rep0 = posSlot;
-						}
-						if (rep0 >= m_OutWindow.TrainSize + nowPos64 || rep0 >= m_DictionarySizeCheck)
-						{
-							if (rep0 == 0xFFFFFFFF)
-								break;
-							throw new DataErrorException();
-						}
-						m_OutWindow.CopyBlock(rep0, len);
-						nowPos64 += len;
-					}
-				}
-			}
-			m_OutWindow.Flush();
-			m_OutWindow.ReleaseStream();
-			m_RangeDecoder.ReleaseStream();
-		}
-
-		public void SetDecoderProperties(byte[] properties)
-		{
-			if (properties.Length < 5)
-				throw new InvalidParamException();
-			int lc = properties[0] % 9;
-			int remainder = properties[0] / 9;
-			int lp = remainder % 5;
-			int pb = remainder / 5;
-			if (pb > Base.kNumPosStatesBitsMax)
-				throw new InvalidParamException();
-			UInt32 dictionarySize = 0;
-			for (int i = 0; i < 4; i++)
-				dictionarySize += ((UInt32)(properties[1 + i])) << (i * 8);
-			SetDictionarySize(dictionarySize);
-			SetLiteralProperties(lp, lc);
-			SetPosBitsProperties(pb);
-		}
-
-		public bool Train(System.IO.Stream stream)
-		{
-			_solid = true;
-			return m_OutWindow.Train(stream);
-		}
-
-		/*
-		public override bool CanRead { get { return true; }}
-		public override bool CanWrite { get { return true; }}
-		public override bool CanSeek { get { return true; }}
-		public override long Length { get { return 0; }}
-		public override long Position
-		{
-			get { return 0;	}
-			set { }
-		}
-		public override void Flush() { }
-		public override int Read(byte[] buffer, int offset, int count) 
-		{
-			return 0;
-		}
-		public override void Write(byte[] buffer, int offset, int count)
-		{
-		}
-		public override long Seek(long offset, System.IO.SeekOrigin origin)
-		{
-			return 0;
-		}
-		public override void SetLength(long value) {}
-		*/
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaDecoder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: c60a9ce2c6df6774498e337ad69a356b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 1480
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaEncoder.cs

@@ -1,1480 +0,0 @@
-// LzmaEncoder.cs
-
-using System;
-
-namespace SevenZip.Compression.LZMA
-{
-	using RangeCoder;
-
-	public class Encoder : ICoder, ISetCoderProperties, IWriteCoderProperties
-	{
-		enum EMatchFinderType
-		{
-			BT2,
-			BT4,
-		};
-
-		const UInt32 kIfinityPrice = 0xFFFFFFF;
-
-		static Byte[] g_FastPos = new Byte[1 << 11];
-
-		static Encoder()
-		{
-			const Byte kFastSlots = 22;
-			int c = 2;
-			g_FastPos[0] = 0;
-			g_FastPos[1] = 1;
-			for (Byte slotFast = 2; slotFast < kFastSlots; slotFast++)
-			{
-				UInt32 k = ((UInt32)1 << ((slotFast >> 1) - 1));
-				for (UInt32 j = 0; j < k; j++, c++)
-					g_FastPos[c] = slotFast;
-			}
-		}
-
-		static UInt32 GetPosSlot(UInt32 pos)
-		{
-			if (pos < (1 << 11))
-				return g_FastPos[pos];
-			if (pos < (1 << 21))
-				return (UInt32)(g_FastPos[pos >> 10] + 20);
-			return (UInt32)(g_FastPos[pos >> 20] + 40);
-		}
-
-		static UInt32 GetPosSlot2(UInt32 pos)
-		{
-			if (pos < (1 << 17))
-				return (UInt32)(g_FastPos[pos >> 6] + 12);
-			if (pos < (1 << 27))
-				return (UInt32)(g_FastPos[pos >> 16] + 32);
-			return (UInt32)(g_FastPos[pos >> 26] + 52);
-		}
-
-		Base.State _state = new Base.State();
-		Byte _previousByte;
-		UInt32[] _repDistances = new UInt32[Base.kNumRepDistances];
-
-		void BaseInit()
-		{
-			_state.Init();
-			_previousByte = 0;
-			for (UInt32 i = 0; i < Base.kNumRepDistances; i++)
-				_repDistances[i] = 0;
-		}
-
-		const int kDefaultDictionaryLogSize = 22;
-		const UInt32 kNumFastBytesDefault = 0x20;
-
-		class LiteralEncoder
-		{
-			public struct Encoder2
-			{
-				BitEncoder[] m_Encoders;
-
-				public void Create() { m_Encoders = new BitEncoder[0x300]; }
-
-				public void Init() { for (int i = 0; i < 0x300; i++) m_Encoders[i].Init(); }
-
-				public void Encode(RangeCoder.Encoder rangeEncoder, byte symbol)
-				{
-					uint context = 1;
-					for (int i = 7; i >= 0; i--)
-					{
-						uint bit = (uint)((symbol >> i) & 1);
-						m_Encoders[context].Encode(rangeEncoder, bit);
-						context = (context << 1) | bit;
-					}
-				}
-
-				public void EncodeMatched(RangeCoder.Encoder rangeEncoder, byte matchByte, byte symbol)
-				{
-					uint context = 1;
-					bool same = true;
-					for (int i = 7; i >= 0; i--)
-					{
-						uint bit = (uint)((symbol >> i) & 1);
-						uint state = context;
-						if (same)
-						{
-							uint matchBit = (uint)((matchByte >> i) & 1);
-							state += ((1 + matchBit) << 8);
-							same = (matchBit == bit);
-						}
-						m_Encoders[state].Encode(rangeEncoder, bit);
-						context = (context << 1) | bit;
-					}
-				}
-
-				public uint GetPrice(bool matchMode, byte matchByte, byte symbol)
-				{
-					uint price = 0;
-					uint context = 1;
-					int i = 7;
-					if (matchMode)
-					{
-						for (; i >= 0; i--)
-						{
-							uint matchBit = (uint)(matchByte >> i) & 1;
-							uint bit = (uint)(symbol >> i) & 1;
-							price += m_Encoders[((1 + matchBit) << 8) + context].GetPrice(bit);
-							context = (context << 1) | bit;
-							if (matchBit != bit)
-							{
-								i--;
-								break;
-							}
-						}
-					}
-					for (; i >= 0; i--)
-					{
-						uint bit = (uint)(symbol >> i) & 1;
-						price += m_Encoders[context].GetPrice(bit);
-						context = (context << 1) | bit;
-					}
-					return price;
-				}
-			}
-
-			Encoder2[] m_Coders;
-			int m_NumPrevBits;
-			int m_NumPosBits;
-			uint m_PosMask;
-
-			public void Create(int numPosBits, int numPrevBits)
-			{
-				if (m_Coders != null && m_NumPrevBits == numPrevBits && m_NumPosBits == numPosBits)
-					return;
-				m_NumPosBits = numPosBits;
-				m_PosMask = ((uint)1 << numPosBits) - 1;
-				m_NumPrevBits = numPrevBits;
-				uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
-				m_Coders = new Encoder2[numStates];
-				for (uint i = 0; i < numStates; i++)
-					m_Coders[i].Create();
-			}
-
-			public void Init()
-			{
-				uint numStates = (uint)1 << (m_NumPrevBits + m_NumPosBits);
-				for (uint i = 0; i < numStates; i++)
-					m_Coders[i].Init();
-			}
-
-			public Encoder2 GetSubCoder(UInt32 pos, Byte prevByte)
-			{ return m_Coders[((pos & m_PosMask) << m_NumPrevBits) + (uint)(prevByte >> (8 - m_NumPrevBits))]; }
-		}
-
-		class LenEncoder
-		{
-			RangeCoder.BitEncoder _choice = new RangeCoder.BitEncoder();
-			RangeCoder.BitEncoder _choice2 = new RangeCoder.BitEncoder();
-			RangeCoder.BitTreeEncoder[] _lowCoder = new RangeCoder.BitTreeEncoder[Base.kNumPosStatesEncodingMax];
-			RangeCoder.BitTreeEncoder[] _midCoder = new RangeCoder.BitTreeEncoder[Base.kNumPosStatesEncodingMax];
-			RangeCoder.BitTreeEncoder _highCoder = new RangeCoder.BitTreeEncoder(Base.kNumHighLenBits);
-
-			public LenEncoder()
-			{
-				for (UInt32 posState = 0; posState < Base.kNumPosStatesEncodingMax; posState++)
-				{
-					_lowCoder[posState] = new RangeCoder.BitTreeEncoder(Base.kNumLowLenBits);
-					_midCoder[posState] = new RangeCoder.BitTreeEncoder(Base.kNumMidLenBits);
-				}
-			}
-
-			public void Init(UInt32 numPosStates)
-			{
-				_choice.Init();
-				_choice2.Init();
-				for (UInt32 posState = 0; posState < numPosStates; posState++)
-				{
-					_lowCoder[posState].Init();
-					_midCoder[posState].Init();
-				}
-				_highCoder.Init();
-			}
-
-			public void Encode(RangeCoder.Encoder rangeEncoder, UInt32 symbol, UInt32 posState)
-			{
-				if (symbol < Base.kNumLowLenSymbols)
-				{
-					_choice.Encode(rangeEncoder, 0);
-					_lowCoder[posState].Encode(rangeEncoder, symbol);
-				}
-				else
-				{
-					symbol -= Base.kNumLowLenSymbols;
-					_choice.Encode(rangeEncoder, 1);
-					if (symbol < Base.kNumMidLenSymbols)
-					{
-						_choice2.Encode(rangeEncoder, 0);
-						_midCoder[posState].Encode(rangeEncoder, symbol);
-					}
-					else
-					{
-						_choice2.Encode(rangeEncoder, 1);
-						_highCoder.Encode(rangeEncoder, symbol - Base.kNumMidLenSymbols);
-					}
-				}
-			}
-
-			public void SetPrices(UInt32 posState, UInt32 numSymbols, UInt32[] prices, UInt32 st)
-			{
-				UInt32 a0 = _choice.GetPrice0();
-				UInt32 a1 = _choice.GetPrice1();
-				UInt32 b0 = a1 + _choice2.GetPrice0();
-				UInt32 b1 = a1 + _choice2.GetPrice1();
-				UInt32 i = 0;
-				for (i = 0; i < Base.kNumLowLenSymbols; i++)
-				{
-					if (i >= numSymbols)
-						return;
-					prices[st + i] = a0 + _lowCoder[posState].GetPrice(i);
-				}
-				for (; i < Base.kNumLowLenSymbols + Base.kNumMidLenSymbols; i++)
-				{
-					if (i >= numSymbols)
-						return;
-					prices[st + i] = b0 + _midCoder[posState].GetPrice(i - Base.kNumLowLenSymbols);
-				}
-				for (; i < numSymbols; i++)
-					prices[st + i] = b1 + _highCoder.GetPrice(i - Base.kNumLowLenSymbols - Base.kNumMidLenSymbols);
-			}
-		};
-
-		const UInt32 kNumLenSpecSymbols = Base.kNumLowLenSymbols + Base.kNumMidLenSymbols;
-
-		class LenPriceTableEncoder : LenEncoder
-		{
-			UInt32[] _prices = new UInt32[Base.kNumLenSymbols << Base.kNumPosStatesBitsEncodingMax];
-			UInt32 _tableSize;
-			UInt32[] _counters = new UInt32[Base.kNumPosStatesEncodingMax];
-
-			public void SetTableSize(UInt32 tableSize) { _tableSize = tableSize; }
-
-			public UInt32 GetPrice(UInt32 symbol, UInt32 posState)
-			{
-				return _prices[posState * Base.kNumLenSymbols + symbol];
-			}
-
-			void UpdateTable(UInt32 posState)
-			{
-				SetPrices(posState, _tableSize, _prices, posState * Base.kNumLenSymbols);
-				_counters[posState] = _tableSize;
-			}
-
-			public void UpdateTables(UInt32 numPosStates)
-			{
-				for (UInt32 posState = 0; posState < numPosStates; posState++)
-					UpdateTable(posState);
-			}
-
-			public new void Encode(RangeCoder.Encoder rangeEncoder, UInt32 symbol, UInt32 posState)
-			{
-				base.Encode(rangeEncoder, symbol, posState);
-				if (--_counters[posState] == 0)
-					UpdateTable(posState);
-			}
-		}
-
-		const UInt32 kNumOpts = 1 << 12;
-		class Optimal
-		{
-			public Base.State State;
-
-			public bool Prev1IsChar;
-			public bool Prev2;
-
-			public UInt32 PosPrev2;
-			public UInt32 BackPrev2;
-
-			public UInt32 Price;
-			public UInt32 PosPrev;
-			public UInt32 BackPrev;
-
-			public UInt32 Backs0;
-			public UInt32 Backs1;
-			public UInt32 Backs2;
-			public UInt32 Backs3;
-
-			public void MakeAsChar() { BackPrev = 0xFFFFFFFF; Prev1IsChar = false; }
-			public void MakeAsShortRep() { BackPrev = 0; ; Prev1IsChar = false; }
-			public bool IsShortRep() { return (BackPrev == 0); }
-		};
-		Optimal[] _optimum = new Optimal[kNumOpts];
-		LZ.IMatchFinder _matchFinder = null;
-		RangeCoder.Encoder _rangeEncoder = new RangeCoder.Encoder();
-
-		RangeCoder.BitEncoder[] _isMatch = new RangeCoder.BitEncoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
-		RangeCoder.BitEncoder[] _isRep = new RangeCoder.BitEncoder[Base.kNumStates];
-		RangeCoder.BitEncoder[] _isRepG0 = new RangeCoder.BitEncoder[Base.kNumStates];
-		RangeCoder.BitEncoder[] _isRepG1 = new RangeCoder.BitEncoder[Base.kNumStates];
-		RangeCoder.BitEncoder[] _isRepG2 = new RangeCoder.BitEncoder[Base.kNumStates];
-		RangeCoder.BitEncoder[] _isRep0Long = new RangeCoder.BitEncoder[Base.kNumStates << Base.kNumPosStatesBitsMax];
-
-		RangeCoder.BitTreeEncoder[] _posSlotEncoder = new RangeCoder.BitTreeEncoder[Base.kNumLenToPosStates];
-		
-		RangeCoder.BitEncoder[] _posEncoders = new RangeCoder.BitEncoder[Base.kNumFullDistances - Base.kEndPosModelIndex];
-		RangeCoder.BitTreeEncoder _posAlignEncoder = new RangeCoder.BitTreeEncoder(Base.kNumAlignBits);
-
-		LenPriceTableEncoder _lenEncoder = new LenPriceTableEncoder();
-		LenPriceTableEncoder _repMatchLenEncoder = new LenPriceTableEncoder();
-
-		LiteralEncoder _literalEncoder = new LiteralEncoder();
-
-		UInt32[] _matchDistances = new UInt32[Base.kMatchMaxLen * 2 + 2];
-		
-		UInt32 _numFastBytes = kNumFastBytesDefault;
-		UInt32 _longestMatchLength;
-		UInt32 _numDistancePairs;
-
-		UInt32 _additionalOffset;
-
-		UInt32 _optimumEndIndex;
-		UInt32 _optimumCurrentIndex;
-
-		bool _longestMatchWasFound;
-
-		UInt32[] _posSlotPrices = new UInt32[1 << (Base.kNumPosSlotBits + Base.kNumLenToPosStatesBits)];
-		UInt32[] _distancesPrices = new UInt32[Base.kNumFullDistances << Base.kNumLenToPosStatesBits];
-		UInt32[] _alignPrices = new UInt32[Base.kAlignTableSize];
-		UInt32 _alignPriceCount;
-
-		UInt32 _distTableSize = (kDefaultDictionaryLogSize * 2);
-
-		int _posStateBits = 2;
-		UInt32 _posStateMask = (4 - 1);
-		int _numLiteralPosStateBits = 0;
-		int _numLiteralContextBits = 3;
-
-		UInt32 _dictionarySize = (1 << kDefaultDictionaryLogSize);
-		UInt32 _dictionarySizePrev = 0xFFFFFFFF;
-		UInt32 _numFastBytesPrev = 0xFFFFFFFF;
-
-		Int64 nowPos64;
-		bool _finished;
-		System.IO.Stream _inStream;
-
-		EMatchFinderType _matchFinderType = EMatchFinderType.BT4;
-		bool _writeEndMark = false;
-		
-		bool _needReleaseMFStream;
-
-		void Create()
-		{
-			if (_matchFinder == null)
-			{
-				LZ.BinTree bt = new LZ.BinTree();
-				int numHashBytes = 4;
-				if (_matchFinderType == EMatchFinderType.BT2)
-					numHashBytes = 2;
-				bt.SetType(numHashBytes);
-				_matchFinder = bt;
-			}
-			_literalEncoder.Create(_numLiteralPosStateBits, _numLiteralContextBits);
-
-			if (_dictionarySize == _dictionarySizePrev && _numFastBytesPrev == _numFastBytes)
-				return;
-			_matchFinder.Create(_dictionarySize, kNumOpts, _numFastBytes, Base.kMatchMaxLen + 1);
-			_dictionarySizePrev = _dictionarySize;
-			_numFastBytesPrev = _numFastBytes;
-		}
-
-		public Encoder()
-		{
-			for (int i = 0; i < kNumOpts; i++)
-				_optimum[i] = new Optimal();
-			for (int i = 0; i < Base.kNumLenToPosStates; i++)
-				_posSlotEncoder[i] = new RangeCoder.BitTreeEncoder(Base.kNumPosSlotBits);
-		}
-
-		void SetWriteEndMarkerMode(bool writeEndMarker)
-		{
-			_writeEndMark = writeEndMarker;
-		}
-
-		void Init()
-		{
-			BaseInit();
-			_rangeEncoder.Init();
-
-			uint i;
-			for (i = 0; i < Base.kNumStates; i++)
-			{
-				for (uint j = 0; j <= _posStateMask; j++)
-				{
-					uint complexState = (i << Base.kNumPosStatesBitsMax) + j;
-					_isMatch[complexState].Init();
-					_isRep0Long[complexState].Init();
-				}
-				_isRep[i].Init();
-				_isRepG0[i].Init();
-				_isRepG1[i].Init();
-				_isRepG2[i].Init();
-			}
-			_literalEncoder.Init();
-			for (i = 0; i < Base.kNumLenToPosStates; i++)
-				_posSlotEncoder[i].Init();
-			for (i = 0; i < Base.kNumFullDistances - Base.kEndPosModelIndex; i++)
-				_posEncoders[i].Init();
-
-			_lenEncoder.Init((UInt32)1 << _posStateBits);
-			_repMatchLenEncoder.Init((UInt32)1 << _posStateBits);
-
-			_posAlignEncoder.Init();
-
-			_longestMatchWasFound = false;
-			_optimumEndIndex = 0;
-			_optimumCurrentIndex = 0;
-			_additionalOffset = 0;
-		}
-
-		void ReadMatchDistances(out UInt32 lenRes, out UInt32 numDistancePairs)
-		{
-			lenRes = 0;
-			numDistancePairs = _matchFinder.GetMatches(_matchDistances);
-			if (numDistancePairs > 0)
-			{
-				lenRes = _matchDistances[numDistancePairs - 2];
-				if (lenRes == _numFastBytes)
-					lenRes += _matchFinder.GetMatchLen((int)lenRes - 1, _matchDistances[numDistancePairs - 1],
-						Base.kMatchMaxLen - lenRes);
-			}
-			_additionalOffset++;
-		}
-
-
-		void MovePos(UInt32 num)
-		{
-			if (num > 0)
-			{
-				_matchFinder.Skip(num);
-				_additionalOffset += num;
-			}
-		}
-
-		UInt32 GetRepLen1Price(Base.State state, UInt32 posState)
-		{
-			return _isRepG0[state.Index].GetPrice0() +
-					_isRep0Long[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0();
-		}
-
-		UInt32 GetPureRepPrice(UInt32 repIndex, Base.State state, UInt32 posState)
-		{
-			UInt32 price;
-			if (repIndex == 0)
-			{
-				price = _isRepG0[state.Index].GetPrice0();
-				price += _isRep0Long[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
-			}
-			else
-			{
-				price = _isRepG0[state.Index].GetPrice1();
-				if (repIndex == 1)
-					price += _isRepG1[state.Index].GetPrice0();
-				else
-				{
-					price += _isRepG1[state.Index].GetPrice1();
-					price += _isRepG2[state.Index].GetPrice(repIndex - 2);
-				}
-			}
-			return price;
-		}
-
-		UInt32 GetRepPrice(UInt32 repIndex, UInt32 len, Base.State state, UInt32 posState)
-		{
-			UInt32 price = _repMatchLenEncoder.GetPrice(len - Base.kMatchMinLen, posState);
-			return price + GetPureRepPrice(repIndex, state, posState);
-		}
-	
-		UInt32 GetPosLenPrice(UInt32 pos, UInt32 len, UInt32 posState)
-		{
-			UInt32 price;
-			UInt32 lenToPosState = Base.GetLenToPosState(len);
-			if (pos < Base.kNumFullDistances)
-				price = _distancesPrices[(lenToPosState * Base.kNumFullDistances) + pos];
-			else
-				price = _posSlotPrices[(lenToPosState << Base.kNumPosSlotBits) + GetPosSlot2(pos)] +
-					_alignPrices[pos & Base.kAlignMask];
-			return price + _lenEncoder.GetPrice(len - Base.kMatchMinLen, posState);
-		}
-
-		UInt32 Backward(out UInt32 backRes, UInt32 cur)
-		{
-			_optimumEndIndex = cur;
-			UInt32 posMem = _optimum[cur].PosPrev;
-			UInt32 backMem = _optimum[cur].BackPrev;
-			do
-			{
-				if (_optimum[cur].Prev1IsChar)
-				{
-					_optimum[posMem].MakeAsChar();
-					_optimum[posMem].PosPrev = posMem - 1;
-					if (_optimum[cur].Prev2)
-					{
-						_optimum[posMem - 1].Prev1IsChar = false;
-						_optimum[posMem - 1].PosPrev = _optimum[cur].PosPrev2;
-						_optimum[posMem - 1].BackPrev = _optimum[cur].BackPrev2;
-					}
-				}
-				UInt32 posPrev = posMem;
-				UInt32 backCur = backMem;
-
-				backMem = _optimum[posPrev].BackPrev;
-				posMem = _optimum[posPrev].PosPrev;
-
-				_optimum[posPrev].BackPrev = backCur;
-				_optimum[posPrev].PosPrev = cur;
-				cur = posPrev;
-			}
-			while (cur > 0);
-			backRes = _optimum[0].BackPrev;
-			_optimumCurrentIndex = _optimum[0].PosPrev;
-			return _optimumCurrentIndex;
-		}
-
-		UInt32[] reps = new UInt32[Base.kNumRepDistances];
-		UInt32[] repLens = new UInt32[Base.kNumRepDistances];
-
-
-		UInt32 GetOptimum(UInt32 position, out UInt32 backRes)
-		{
-			if (_optimumEndIndex != _optimumCurrentIndex)
-			{
-				UInt32 lenRes = _optimum[_optimumCurrentIndex].PosPrev - _optimumCurrentIndex;
-				backRes = _optimum[_optimumCurrentIndex].BackPrev;
-				_optimumCurrentIndex = _optimum[_optimumCurrentIndex].PosPrev;
-				return lenRes;
-			}
-			_optimumCurrentIndex = _optimumEndIndex = 0;
-
-			UInt32 lenMain, numDistancePairs;
-			if (!_longestMatchWasFound)
-			{
-				ReadMatchDistances(out lenMain, out numDistancePairs);
-			}
-			else
-			{
-				lenMain = _longestMatchLength;
-				numDistancePairs = _numDistancePairs;
-				_longestMatchWasFound = false;
-			}
-
-			UInt32 numAvailableBytes = _matchFinder.GetNumAvailableBytes() + 1;
-			if (numAvailableBytes < 2)
-			{
-				backRes = 0xFFFFFFFF;
-				return 1;
-			}
-			if (numAvailableBytes > Base.kMatchMaxLen)
-				numAvailableBytes = Base.kMatchMaxLen;
-
-			UInt32 repMaxIndex = 0;
-			UInt32 i;			
-			for (i = 0; i < Base.kNumRepDistances; i++)
-			{
-				reps[i] = _repDistances[i];
-				repLens[i] = _matchFinder.GetMatchLen(0 - 1, reps[i], Base.kMatchMaxLen);
-				if (repLens[i] > repLens[repMaxIndex])
-					repMaxIndex = i;
-			}
-			if (repLens[repMaxIndex] >= _numFastBytes)
-			{
-				backRes = repMaxIndex;
-				UInt32 lenRes = repLens[repMaxIndex];
-				MovePos(lenRes - 1);
-				return lenRes;
-			}
-
-			if (lenMain >= _numFastBytes)
-			{
-				backRes = _matchDistances[numDistancePairs - 1] + Base.kNumRepDistances;
-				MovePos(lenMain - 1);
-				return lenMain;
-			}
-			
-			Byte currentByte = _matchFinder.GetIndexByte(0 - 1);
-			Byte matchByte = _matchFinder.GetIndexByte((Int32)(0 - _repDistances[0] - 1 - 1));
-
-			if (lenMain < 2 && currentByte != matchByte && repLens[repMaxIndex] < 2)
-			{
-				backRes = (UInt32)0xFFFFFFFF;
-				return 1;
-			}
-
-			_optimum[0].State = _state;
-
-			UInt32 posState = (position & _posStateMask);
-
-			_optimum[1].Price = _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0() +
-					_literalEncoder.GetSubCoder(position, _previousByte).GetPrice(!_state.IsCharState(), matchByte, currentByte);
-			_optimum[1].MakeAsChar();
-
-			UInt32 matchPrice = _isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
-			UInt32 repMatchPrice = matchPrice + _isRep[_state.Index].GetPrice1();
-
-			if (matchByte == currentByte)
-			{
-				UInt32 shortRepPrice = repMatchPrice + GetRepLen1Price(_state, posState);
-				if (shortRepPrice < _optimum[1].Price)
-				{
-					_optimum[1].Price = shortRepPrice;
-					_optimum[1].MakeAsShortRep();
-				}
-			}
-
-			UInt32 lenEnd = ((lenMain >= repLens[repMaxIndex]) ? lenMain : repLens[repMaxIndex]);
-
-			if(lenEnd < 2)
-			{
-				backRes = _optimum[1].BackPrev;
-				return 1;
-			}
-			
-			_optimum[1].PosPrev = 0;
-
-			_optimum[0].Backs0 = reps[0];
-			_optimum[0].Backs1 = reps[1];
-			_optimum[0].Backs2 = reps[2];
-			_optimum[0].Backs3 = reps[3];
-
-			UInt32 len = lenEnd;
-			do
-				_optimum[len--].Price = kIfinityPrice;
-			while (len >= 2);
-
-			for (i = 0; i < Base.kNumRepDistances; i++)
-			{
-				UInt32 repLen = repLens[i];
-				if (repLen < 2)
-					continue;
-				UInt32 price = repMatchPrice + GetPureRepPrice(i, _state, posState);
-				do
-				{
-					UInt32 curAndLenPrice = price + _repMatchLenEncoder.GetPrice(repLen - 2, posState);
-					Optimal optimum = _optimum[repLen];
-					if (curAndLenPrice < optimum.Price)
-					{
-						optimum.Price = curAndLenPrice;
-						optimum.PosPrev = 0;
-						optimum.BackPrev = i;
-						optimum.Prev1IsChar = false;
-					}
-				}
-				while (--repLen >= 2);
-			}
-
-			UInt32 normalMatchPrice = matchPrice + _isRep[_state.Index].GetPrice0();
-			
-			len = ((repLens[0] >= 2) ? repLens[0] + 1 : 2);
-			if (len <= lenMain)
-			{
-				UInt32 offs = 0;
-				while (len > _matchDistances[offs])
-					offs += 2;
-				for (; ; len++)
-				{
-					UInt32 distance = _matchDistances[offs + 1];
-					UInt32 curAndLenPrice = normalMatchPrice + GetPosLenPrice(distance, len, posState);
-					Optimal optimum = _optimum[len];
-					if (curAndLenPrice < optimum.Price)
-					{
-						optimum.Price = curAndLenPrice;
-						optimum.PosPrev = 0;
-						optimum.BackPrev = distance + Base.kNumRepDistances;
-						optimum.Prev1IsChar = false;
-					}
-					if (len == _matchDistances[offs])
-					{
-						offs += 2;
-						if (offs == numDistancePairs)
-							break;
-					}
-				}
-			}
-
-			UInt32 cur = 0;
-
-			while (true)
-			{
-				cur++;
-				if (cur == lenEnd)
-					return Backward(out backRes, cur);
-				UInt32 newLen;
-				ReadMatchDistances(out newLen, out numDistancePairs);
-				if (newLen >= _numFastBytes)
-				{
-					_numDistancePairs = numDistancePairs;
-					_longestMatchLength = newLen;
-					_longestMatchWasFound = true;
-					return Backward(out backRes, cur);
-				}
-				position++;
-				UInt32 posPrev = _optimum[cur].PosPrev;
-				Base.State state;
-				if (_optimum[cur].Prev1IsChar)
-				{
-					posPrev--;
-					if (_optimum[cur].Prev2)
-					{
-						state = _optimum[_optimum[cur].PosPrev2].State;
-						if (_optimum[cur].BackPrev2 < Base.kNumRepDistances)
-							state.UpdateRep();
-						else
-							state.UpdateMatch();
-					}
-					else
-						state = _optimum[posPrev].State;
-					state.UpdateChar();
-				}
-				else
-					state = _optimum[posPrev].State;
-				if (posPrev == cur - 1)
-				{
-					if (_optimum[cur].IsShortRep())
-						state.UpdateShortRep();
-					else
-						state.UpdateChar();
-				}
-				else
-				{
-					UInt32 pos;
-					if (_optimum[cur].Prev1IsChar && _optimum[cur].Prev2)
-					{
-						posPrev = _optimum[cur].PosPrev2;
-						pos = _optimum[cur].BackPrev2;
-						state.UpdateRep();
-					}
-					else
-					{
-						pos = _optimum[cur].BackPrev;
-						if (pos < Base.kNumRepDistances)
-							state.UpdateRep();
-						else
-							state.UpdateMatch();
-					}
-					Optimal opt = _optimum[posPrev];
-					if (pos < Base.kNumRepDistances)
-					{
-						if (pos == 0)
-						{
-							reps[0] = opt.Backs0;
-							reps[1] = opt.Backs1;
-							reps[2] = opt.Backs2;
-							reps[3] = opt.Backs3;
-						}
-						else if (pos == 1)
-						{
-							reps[0] = opt.Backs1;
-							reps[1] = opt.Backs0;
-							reps[2] = opt.Backs2;
-							reps[3] = opt.Backs3;
-						}
-						else if (pos == 2)
-						{
-							reps[0] = opt.Backs2;
-							reps[1] = opt.Backs0;
-							reps[2] = opt.Backs1;
-							reps[3] = opt.Backs3;
-						}
-						else
-						{
-							reps[0] = opt.Backs3;
-							reps[1] = opt.Backs0;
-							reps[2] = opt.Backs1;
-							reps[3] = opt.Backs2;
-						}
-					}
-					else
-					{
-						reps[0] = (pos - Base.kNumRepDistances);
-						reps[1] = opt.Backs0;
-						reps[2] = opt.Backs1;
-						reps[3] = opt.Backs2;
-					}
-				}
-				_optimum[cur].State = state;
-				_optimum[cur].Backs0 = reps[0];
-				_optimum[cur].Backs1 = reps[1];
-				_optimum[cur].Backs2 = reps[2];
-				_optimum[cur].Backs3 = reps[3];
-				UInt32 curPrice = _optimum[cur].Price;
-
-				currentByte = _matchFinder.GetIndexByte(0 - 1);
-				matchByte = _matchFinder.GetIndexByte((Int32)(0 - reps[0] - 1 - 1));
-
-				posState = (position & _posStateMask);
-
-				UInt32 curAnd1Price = curPrice +
-					_isMatch[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice0() +
-					_literalEncoder.GetSubCoder(position, _matchFinder.GetIndexByte(0 - 2)).
-					GetPrice(!state.IsCharState(), matchByte, currentByte);
-
-				Optimal nextOptimum = _optimum[cur + 1];
-
-				bool nextIsChar = false;
-				if (curAnd1Price < nextOptimum.Price)
-				{
-					nextOptimum.Price = curAnd1Price;
-					nextOptimum.PosPrev = cur;
-					nextOptimum.MakeAsChar();
-					nextIsChar = true;
-				}
-
-				matchPrice = curPrice + _isMatch[(state.Index << Base.kNumPosStatesBitsMax) + posState].GetPrice1();
-				repMatchPrice = matchPrice + _isRep[state.Index].GetPrice1();
-
-				if (matchByte == currentByte &&
-					!(nextOptimum.PosPrev < cur && nextOptimum.BackPrev == 0))
-				{
-					UInt32 shortRepPrice = repMatchPrice + GetRepLen1Price(state, posState);
-					if (shortRepPrice <= nextOptimum.Price)
-					{
-						nextOptimum.Price = shortRepPrice;
-						nextOptimum.PosPrev = cur;
-						nextOptimum.MakeAsShortRep();
-						nextIsChar = true;
-					}
-				}
-
-				UInt32 numAvailableBytesFull = _matchFinder.GetNumAvailableBytes() + 1;
-				numAvailableBytesFull = Math.Min(kNumOpts - 1 - cur, numAvailableBytesFull);
-				numAvailableBytes = numAvailableBytesFull;
-
-				if (numAvailableBytes < 2)
-					continue;
-				if (numAvailableBytes > _numFastBytes)
-					numAvailableBytes = _numFastBytes;
-				if (!nextIsChar && matchByte != currentByte)
-				{
-					// try Literal + rep0
-					UInt32 t = Math.Min(numAvailableBytesFull - 1, _numFastBytes);
-					UInt32 lenTest2 = _matchFinder.GetMatchLen(0, reps[0], t);
-					if (lenTest2 >= 2)
-					{
-						Base.State state2 = state;
-						state2.UpdateChar();
-						UInt32 posStateNext = (position + 1) & _posStateMask;
-						UInt32 nextRepMatchPrice = curAnd1Price +
-							_isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1() +
-							_isRep[state2.Index].GetPrice1();
-						{
-							UInt32 offset = cur + 1 + lenTest2;
-							while (lenEnd < offset)
-								_optimum[++lenEnd].Price = kIfinityPrice;
-							UInt32 curAndLenPrice = nextRepMatchPrice + GetRepPrice(
-								0, lenTest2, state2, posStateNext);
-							Optimal optimum = _optimum[offset];
-							if (curAndLenPrice < optimum.Price)
-							{
-								optimum.Price = curAndLenPrice;
-								optimum.PosPrev = cur + 1;
-								optimum.BackPrev = 0;
-								optimum.Prev1IsChar = true;
-								optimum.Prev2 = false;
-							}
-						}
-					}
-				}
-
-				UInt32 startLen = 2; // speed optimization 
-
-				for (UInt32 repIndex = 0; repIndex < Base.kNumRepDistances; repIndex++)
-				{
-					UInt32 lenTest = _matchFinder.GetMatchLen(0 - 1, reps[repIndex], numAvailableBytes);
-					if (lenTest < 2)
-						continue;
-					UInt32 lenTestTemp = lenTest;
-					do
-					{
-						while (lenEnd < cur + lenTest)
-							_optimum[++lenEnd].Price = kIfinityPrice;
-						UInt32 curAndLenPrice = repMatchPrice + GetRepPrice(repIndex, lenTest, state, posState);
-						Optimal optimum = _optimum[cur + lenTest];
-						if (curAndLenPrice < optimum.Price)
-						{
-							optimum.Price = curAndLenPrice;
-							optimum.PosPrev = cur;
-							optimum.BackPrev = repIndex;
-							optimum.Prev1IsChar = false;
-						}
-					}
-					while(--lenTest >= 2);
-					lenTest = lenTestTemp;
-
-					if (repIndex == 0)
-						startLen = lenTest + 1;
-
-					// if (_maxMode)
-					if (lenTest < numAvailableBytesFull)
-					{
-						UInt32 t = Math.Min(numAvailableBytesFull - 1 - lenTest, _numFastBytes);
-						UInt32 lenTest2 = _matchFinder.GetMatchLen((Int32)lenTest, reps[repIndex], t);
-						if (lenTest2 >= 2)
-						{
-							Base.State state2 = state;
-							state2.UpdateRep();
-							UInt32 posStateNext = (position + lenTest) & _posStateMask;
-							UInt32 curAndLenCharPrice = 
-									repMatchPrice + GetRepPrice(repIndex, lenTest, state, posState) + 
-									_isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice0() +
-									_literalEncoder.GetSubCoder(position + lenTest, 
-									_matchFinder.GetIndexByte((Int32)lenTest - 1 - 1)).GetPrice(true,
-									_matchFinder.GetIndexByte((Int32)((Int32)lenTest - 1 - (Int32)(reps[repIndex] + 1))), 
-									_matchFinder.GetIndexByte((Int32)lenTest - 1));
-							state2.UpdateChar();
-							posStateNext = (position + lenTest + 1) & _posStateMask;
-							UInt32 nextMatchPrice = curAndLenCharPrice + _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1();
-							UInt32 nextRepMatchPrice = nextMatchPrice + _isRep[state2.Index].GetPrice1();
-							
-							// for(; lenTest2 >= 2; lenTest2--)
-							{
-								UInt32 offset = lenTest + 1 + lenTest2;
-								while(lenEnd < cur + offset)
-									_optimum[++lenEnd].Price = kIfinityPrice;
-								UInt32 curAndLenPrice = nextRepMatchPrice + GetRepPrice(0, lenTest2, state2, posStateNext);
-								Optimal optimum = _optimum[cur + offset];
-								if (curAndLenPrice < optimum.Price) 
-								{
-									optimum.Price = curAndLenPrice;
-									optimum.PosPrev = cur + lenTest + 1;
-									optimum.BackPrev = 0;
-									optimum.Prev1IsChar = true;
-									optimum.Prev2 = true;
-									optimum.PosPrev2 = cur;
-									optimum.BackPrev2 = repIndex;
-								}
-							}
-						}
-					}
-				}
-
-				if (newLen > numAvailableBytes)
-				{
-					newLen = numAvailableBytes;
-					for (numDistancePairs = 0; newLen > _matchDistances[numDistancePairs]; numDistancePairs += 2) ;
-					_matchDistances[numDistancePairs] = newLen;
-					numDistancePairs += 2;
-				}
-				if (newLen >= startLen)
-				{
-					normalMatchPrice = matchPrice + _isRep[state.Index].GetPrice0();
-					while (lenEnd < cur + newLen)
-						_optimum[++lenEnd].Price = kIfinityPrice;
-
-					UInt32 offs = 0;
-					while (startLen > _matchDistances[offs])
-						offs += 2;
-
-					for (UInt32 lenTest = startLen; ; lenTest++)
-					{
-						UInt32 curBack = _matchDistances[offs + 1];
-						UInt32 curAndLenPrice = normalMatchPrice + GetPosLenPrice(curBack, lenTest, posState);
-						Optimal optimum = _optimum[cur + lenTest];
-						if (curAndLenPrice < optimum.Price)
-						{
-							optimum.Price = curAndLenPrice;
-							optimum.PosPrev = cur;
-							optimum.BackPrev = curBack + Base.kNumRepDistances;
-							optimum.Prev1IsChar = false;
-						}
-
-						if (lenTest == _matchDistances[offs])
-						{
-							if (lenTest < numAvailableBytesFull)
-							{
-								UInt32 t = Math.Min(numAvailableBytesFull - 1 - lenTest, _numFastBytes);
-								UInt32 lenTest2 = _matchFinder.GetMatchLen((Int32)lenTest, curBack, t);
-								if (lenTest2 >= 2)
-								{
-									Base.State state2 = state;
-									state2.UpdateMatch();
-									UInt32 posStateNext = (position + lenTest) & _posStateMask;
-									UInt32 curAndLenCharPrice = curAndLenPrice +
-										_isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice0() +
-										_literalEncoder.GetSubCoder(position + lenTest,
-										_matchFinder.GetIndexByte((Int32)lenTest - 1 - 1)).
-										GetPrice(true,
-										_matchFinder.GetIndexByte((Int32)lenTest - (Int32)(curBack + 1) - 1),
-										_matchFinder.GetIndexByte((Int32)lenTest - 1));
-									state2.UpdateChar();
-									posStateNext = (position + lenTest + 1) & _posStateMask;
-									UInt32 nextMatchPrice = curAndLenCharPrice + _isMatch[(state2.Index << Base.kNumPosStatesBitsMax) + posStateNext].GetPrice1();
-									UInt32 nextRepMatchPrice = nextMatchPrice + _isRep[state2.Index].GetPrice1();
-
-									UInt32 offset = lenTest + 1 + lenTest2;
-									while (lenEnd < cur + offset)
-										_optimum[++lenEnd].Price = kIfinityPrice;
-									curAndLenPrice = nextRepMatchPrice + GetRepPrice(0, lenTest2, state2, posStateNext);
-									optimum = _optimum[cur + offset];
-									if (curAndLenPrice < optimum.Price)
-									{
-										optimum.Price = curAndLenPrice;
-										optimum.PosPrev = cur + lenTest + 1;
-										optimum.BackPrev = 0;
-										optimum.Prev1IsChar = true;
-										optimum.Prev2 = true;
-										optimum.PosPrev2 = cur;
-										optimum.BackPrev2 = curBack + Base.kNumRepDistances;
-									}
-								}
-							}
-							offs += 2;
-							if (offs == numDistancePairs)
-								break;
-						}
-					}
-				}
-			}
-		}
-
-		bool ChangePair(UInt32 smallDist, UInt32 bigDist)
-		{
-			const int kDif = 7;
-			return (smallDist < ((UInt32)(1) << (32 - kDif)) && bigDist >= (smallDist << kDif));
-		}
-
-		void WriteEndMarker(UInt32 posState)
-		{
-			if (!_writeEndMark)
-				return;
-
-			_isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].Encode(_rangeEncoder, 1);
-			_isRep[_state.Index].Encode(_rangeEncoder, 0);
-			_state.UpdateMatch();
-			UInt32 len = Base.kMatchMinLen;
-			_lenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
-			UInt32 posSlot = (1 << Base.kNumPosSlotBits) - 1;
-			UInt32 lenToPosState = Base.GetLenToPosState(len);
-			_posSlotEncoder[lenToPosState].Encode(_rangeEncoder, posSlot);
-			int footerBits = 30;
-			UInt32 posReduced = (((UInt32)1) << footerBits) - 1;
-			_rangeEncoder.EncodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits);
-			_posAlignEncoder.ReverseEncode(_rangeEncoder, posReduced & Base.kAlignMask);
-		}
-
-		void Flush(UInt32 nowPos)
-		{
-			ReleaseMFStream();
-			WriteEndMarker(nowPos & _posStateMask);
-			_rangeEncoder.FlushData();
-			_rangeEncoder.FlushStream();
-		}
-
-		public void CodeOneBlock(out Int64 inSize, out Int64 outSize, out bool finished)
-		{
-			inSize = 0;
-			outSize = 0;
-			finished = true;
-
-			if (_inStream != null)
-			{
-				_matchFinder.SetStream(_inStream);
-				_matchFinder.Init();
-				_needReleaseMFStream = true;
-				_inStream = null;
-				if (_trainSize > 0)
-					_matchFinder.Skip(_trainSize);
-			}
-
-			if (_finished)
-				return;
-			_finished = true;
-
-
-			Int64 progressPosValuePrev = nowPos64;
-			if (nowPos64 == 0)
-			{
-				if (_matchFinder.GetNumAvailableBytes() == 0)
-				{
-					Flush((UInt32)nowPos64);
-					return;
-				}
-				UInt32 len, numDistancePairs; // it's not used
-				ReadMatchDistances(out len, out numDistancePairs);
-				UInt32 posState = (UInt32)(nowPos64) & _posStateMask;
-				_isMatch[(_state.Index << Base.kNumPosStatesBitsMax) + posState].Encode(_rangeEncoder, 0);
-				_state.UpdateChar();
-				Byte curByte = _matchFinder.GetIndexByte((Int32)(0 - _additionalOffset));
-				_literalEncoder.GetSubCoder((UInt32)(nowPos64), _previousByte).Encode(_rangeEncoder, curByte);
-				_previousByte = curByte;
-				_additionalOffset--;
-				nowPos64++;
-			}
-			if (_matchFinder.GetNumAvailableBytes() == 0)
-			{
-				Flush((UInt32)nowPos64);
-				return;
-			}
-			while (true)
-			{
-				UInt32 pos;
-				UInt32 len = GetOptimum((UInt32)nowPos64, out pos);
-				
-				UInt32 posState = ((UInt32)nowPos64) & _posStateMask;
-				UInt32 complexState = (_state.Index << Base.kNumPosStatesBitsMax) + posState;
-				if (len == 1 && pos == 0xFFFFFFFF)
-				{
-					_isMatch[complexState].Encode(_rangeEncoder, 0);
-					Byte curByte = _matchFinder.GetIndexByte((Int32)(0 - _additionalOffset));
-					LiteralEncoder.Encoder2 subCoder = _literalEncoder.GetSubCoder((UInt32)nowPos64, _previousByte);
-					if (!_state.IsCharState())
-					{
-						Byte matchByte = _matchFinder.GetIndexByte((Int32)(0 - _repDistances[0] - 1 - _additionalOffset));
-						subCoder.EncodeMatched(_rangeEncoder, matchByte, curByte);
-					}
-					else
-						subCoder.Encode(_rangeEncoder, curByte);
-					_previousByte = curByte;
-					_state.UpdateChar();
-				}
-				else
-				{
-					_isMatch[complexState].Encode(_rangeEncoder, 1);
-					if (pos < Base.kNumRepDistances)
-					{
-						_isRep[_state.Index].Encode(_rangeEncoder, 1);
-						if (pos == 0)
-						{
-							_isRepG0[_state.Index].Encode(_rangeEncoder, 0);
-							if (len == 1)
-								_isRep0Long[complexState].Encode(_rangeEncoder, 0);
-							else
-								_isRep0Long[complexState].Encode(_rangeEncoder, 1);
-						}
-						else
-						{
-							_isRepG0[_state.Index].Encode(_rangeEncoder, 1);
-							if (pos == 1)
-								_isRepG1[_state.Index].Encode(_rangeEncoder, 0);
-							else
-							{
-								_isRepG1[_state.Index].Encode(_rangeEncoder, 1);
-								_isRepG2[_state.Index].Encode(_rangeEncoder, pos - 2);
-							}
-						}
-						if (len == 1)
-							_state.UpdateShortRep();
-						else
-						{
-							_repMatchLenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
-							_state.UpdateRep();
-						}
-						UInt32 distance = _repDistances[pos];
-						if (pos != 0)
-						{
-							for (UInt32 i = pos; i >= 1; i--)
-								_repDistances[i] = _repDistances[i - 1];
-							_repDistances[0] = distance;
-						}
-					}
-					else
-					{
-						_isRep[_state.Index].Encode(_rangeEncoder, 0);
-						_state.UpdateMatch();
-						_lenEncoder.Encode(_rangeEncoder, len - Base.kMatchMinLen, posState);
-						pos -= Base.kNumRepDistances;
-						UInt32 posSlot = GetPosSlot(pos);
-						UInt32 lenToPosState = Base.GetLenToPosState(len);
-						_posSlotEncoder[lenToPosState].Encode(_rangeEncoder, posSlot);
-
-						if (posSlot >= Base.kStartPosModelIndex)
-						{
-							int footerBits = (int)((posSlot >> 1) - 1);
-							UInt32 baseVal = ((2 | (posSlot & 1)) << footerBits);
-							UInt32 posReduced = pos - baseVal;
-
-							if (posSlot < Base.kEndPosModelIndex)
-								RangeCoder.BitTreeEncoder.ReverseEncode(_posEncoders,
-										baseVal - posSlot - 1, _rangeEncoder, footerBits, posReduced);
-							else
-							{
-								_rangeEncoder.EncodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits);
-								_posAlignEncoder.ReverseEncode(_rangeEncoder, posReduced & Base.kAlignMask);
-								_alignPriceCount++;
-							}
-						}
-						UInt32 distance = pos;
-						for (UInt32 i = Base.kNumRepDistances - 1; i >= 1; i--)
-							_repDistances[i] = _repDistances[i - 1];
-						_repDistances[0] = distance;
-						_matchPriceCount++;
-					}
-					_previousByte = _matchFinder.GetIndexByte((Int32)(len - 1 - _additionalOffset));
-				}
-				_additionalOffset -= len;
-				nowPos64 += len;
-				if (_additionalOffset == 0)
-				{
-					// if (!_fastMode)
-					if (_matchPriceCount >= (1 << 7))
-						FillDistancesPrices();
-					if (_alignPriceCount >= Base.kAlignTableSize)
-						FillAlignPrices();
-					inSize = nowPos64;
-					outSize = _rangeEncoder.GetProcessedSizeAdd();
-					if (_matchFinder.GetNumAvailableBytes() == 0)
-					{
-						Flush((UInt32)nowPos64);
-						return;
-					}
-
-					if (nowPos64 - progressPosValuePrev >= (1 << 12))
-					{
-						_finished = false;
-						finished = false;
-						return;
-					}
-				}
-			}
-		}
-
-		void ReleaseMFStream()
-		{
-			if (_matchFinder != null && _needReleaseMFStream)
-			{
-				_matchFinder.ReleaseStream();
-				_needReleaseMFStream = false;
-			}
-		}
-
-		void SetOutStream(System.IO.Stream outStream) { _rangeEncoder.SetStream(outStream); }
-		void ReleaseOutStream() { _rangeEncoder.ReleaseStream(); }
-
-		void ReleaseStreams()
-		{
-			ReleaseMFStream();
-			ReleaseOutStream();
-		}
-
-		void SetStreams(System.IO.Stream inStream, System.IO.Stream outStream,
-				Int64 inSize, Int64 outSize)
-		{
-			_inStream = inStream;
-			_finished = false;
-			Create();
-			SetOutStream(outStream);
-			Init();
-
-			// if (!_fastMode)
-			{
-				FillDistancesPrices();
-				FillAlignPrices();
-			}
-
-			_lenEncoder.SetTableSize(_numFastBytes + 1 - Base.kMatchMinLen);
-			_lenEncoder.UpdateTables((UInt32)1 << _posStateBits);
-			_repMatchLenEncoder.SetTableSize(_numFastBytes + 1 - Base.kMatchMinLen);
-			_repMatchLenEncoder.UpdateTables((UInt32)1 << _posStateBits);
-
-			nowPos64 = 0;
-		}
-
-
-		public void Code(System.IO.Stream inStream, System.IO.Stream outStream,
-			Int64 inSize, Int64 outSize, ICodeProgress progress)
-		{
-			_needReleaseMFStream = false;
-			try
-			{
-				SetStreams(inStream, outStream, inSize, outSize);
-				while (true)
-				{
-					Int64 processedInSize;
-					Int64 processedOutSize;
-					bool finished;
-					CodeOneBlock(out processedInSize, out processedOutSize, out finished);
-					if (finished)
-						return;
-					if (progress != null)
-					{
-						progress.SetProgress(processedInSize, processedOutSize);
-					}
-				}
-			}
-			finally
-			{
-				ReleaseStreams();
-			}
-		}
-
-		const int kPropSize = 5;
-		Byte[] properties = new Byte[kPropSize];
-
-		public void WriteCoderProperties(System.IO.Stream outStream)
-		{
-			properties[0] = (Byte)((_posStateBits * 5 + _numLiteralPosStateBits) * 9 + _numLiteralContextBits);
-			for (int i = 0; i < 4; i++)
-				properties[1 + i] = (Byte)((_dictionarySize >> (8 * i)) & 0xFF);
-			outStream.Write(properties, 0, kPropSize);
-		}
-		
-		UInt32[] tempPrices = new UInt32[Base.kNumFullDistances];
-		UInt32 _matchPriceCount;
-
-		void FillDistancesPrices()
-		{
-			for (UInt32 i = Base.kStartPosModelIndex; i < Base.kNumFullDistances; i++)
-			{ 
-				UInt32 posSlot = GetPosSlot(i);
-				int footerBits = (int)((posSlot >> 1) - 1);
-				UInt32 baseVal = ((2 | (posSlot & 1)) << footerBits);
-				tempPrices[i] = BitTreeEncoder.ReverseGetPrice(_posEncoders, 
-					baseVal - posSlot - 1, footerBits, i - baseVal);
-			}
-
-			for (UInt32 lenToPosState = 0; lenToPosState < Base.kNumLenToPosStates; lenToPosState++)
-			{
-				UInt32 posSlot;
-				RangeCoder.BitTreeEncoder encoder = _posSlotEncoder[lenToPosState];
-			
-				UInt32 st = (lenToPosState << Base.kNumPosSlotBits);
-				for (posSlot = 0; posSlot < _distTableSize; posSlot++)
-					_posSlotPrices[st + posSlot] = encoder.GetPrice(posSlot);
-				for (posSlot = Base.kEndPosModelIndex; posSlot < _distTableSize; posSlot++)
-					_posSlotPrices[st + posSlot] += ((((posSlot >> 1) - 1) - Base.kNumAlignBits) << RangeCoder.BitEncoder.kNumBitPriceShiftBits);
-
-				UInt32 st2 = lenToPosState * Base.kNumFullDistances;
-				UInt32 i;
-				for (i = 0; i < Base.kStartPosModelIndex; i++)
-					_distancesPrices[st2 + i] = _posSlotPrices[st + i];
-				for (; i < Base.kNumFullDistances; i++)
-					_distancesPrices[st2 + i] = _posSlotPrices[st + GetPosSlot(i)] + tempPrices[i];
-			}
-			_matchPriceCount = 0;
-		}
-
-		void FillAlignPrices()
-		{
-			for (UInt32 i = 0; i < Base.kAlignTableSize; i++)
-				_alignPrices[i] = _posAlignEncoder.ReverseGetPrice(i);
-			_alignPriceCount = 0;
-		}
-
-
-		static string[] kMatchFinderIDs = 
-		{
-			"BT2",
-			"BT4",
-		};
-
-		static int FindMatchFinder(string s)
-		{
-			for (int m = 0; m < kMatchFinderIDs.Length; m++)
-				if (s == kMatchFinderIDs[m])
-					return m;
-			return -1;
-		}
-	
-		public void SetCoderProperties(CoderPropID[] propIDs, object[] properties)
-		{
-			for (UInt32 i = 0; i < properties.Length; i++)
-			{
-				object prop = properties[i];
-				switch (propIDs[i])
-				{
-					case CoderPropID.NumFastBytes:
-					{
-						if (!(prop is Int32))
-							throw new InvalidParamException();
-						Int32 numFastBytes = (Int32)prop;
-						if (numFastBytes < 5 || numFastBytes > Base.kMatchMaxLen)
-							throw new InvalidParamException();
-						_numFastBytes = (UInt32)numFastBytes;
-						break;
-					}
-					case CoderPropID.Algorithm:
-					{
-						/*
-						if (!(prop is Int32))
-							throw new InvalidParamException();
-						Int32 maximize = (Int32)prop;
-						_fastMode = (maximize == 0);
-						_maxMode = (maximize >= 2);
-						*/
-						break;
-					}
-					case CoderPropID.MatchFinder:
-					{
-						if (!(prop is String))
-							throw new InvalidParamException();
-						EMatchFinderType matchFinderIndexPrev = _matchFinderType;
-						int m = FindMatchFinder(((string)prop).ToUpper());
-						if (m < 0)
-							throw new InvalidParamException();
-						_matchFinderType = (EMatchFinderType)m;
-						if (_matchFinder != null && matchFinderIndexPrev != _matchFinderType)
-							{
-							_dictionarySizePrev = 0xFFFFFFFF;
-							_matchFinder = null;
-							}
-						break;
-					}
-					case CoderPropID.DictionarySize:
-					{
-						const int kDicLogSizeMaxCompress = 30;
-						if (!(prop is Int32))
-							throw new InvalidParamException(); ;
-						Int32 dictionarySize = (Int32)prop;
-						if (dictionarySize < (UInt32)(1 << Base.kDicLogSizeMin) ||
-							dictionarySize > (UInt32)(1 << kDicLogSizeMaxCompress))
-							throw new InvalidParamException();
-						_dictionarySize = (UInt32)dictionarySize;
-						int dicLogSize;
-						for (dicLogSize = 0; dicLogSize < (UInt32)kDicLogSizeMaxCompress; dicLogSize++)
-							if (dictionarySize <= ((UInt32)(1) << dicLogSize))
-								break;
-						_distTableSize = (UInt32)dicLogSize * 2;
-						break;
-					}
-					case CoderPropID.PosStateBits:
-					{
-						if (!(prop is Int32))
-							throw new InvalidParamException();
-						Int32 v = (Int32)prop;
-						if (v < 0 || v > (UInt32)Base.kNumPosStatesBitsEncodingMax)
-							throw new InvalidParamException();
-						_posStateBits = (int)v;
-						_posStateMask = (((UInt32)1) << (int)_posStateBits) - 1;
-						break;
-					}
-					case CoderPropID.LitPosBits:
-					{
-						if (!(prop is Int32))
-							throw new InvalidParamException();
-						Int32 v = (Int32)prop;
-						if (v < 0 || v > (UInt32)Base.kNumLitPosStatesBitsEncodingMax)
-							throw new InvalidParamException();
-						_numLiteralPosStateBits = (int)v;
-						break;
-					}
-					case CoderPropID.LitContextBits:
-					{
-						if (!(prop is Int32))
-							throw new InvalidParamException();
-						Int32 v = (Int32)prop;
-						if (v < 0 || v > (UInt32)Base.kNumLitContextBitsMax)
-							throw new InvalidParamException(); ;
-						_numLiteralContextBits = (int)v;
-						break;
-					}
-					case CoderPropID.EndMarker:
-					{
-						if (!(prop is Boolean))
-							throw new InvalidParamException();
-						SetWriteEndMarkerMode((Boolean)prop);
-						break;
-					}
-					default:
-						throw new InvalidParamException();
-				}
-			}
-		}
-
-		uint _trainSize = 0;
-		public void SetTrainSize(uint trainSize)
-		{
-			_trainSize = trainSize;
-		}
-		
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/LZMA/LzmaEncoder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 37dcefc9d952dc34f9fba085a160a968
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 73c80167cede90a4a8fc4938bab053c8
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 234
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoder.cs

@@ -1,234 +0,0 @@
-using System;
-
-namespace SevenZip.Compression.RangeCoder
-{
-	class Encoder
-	{
-		public const uint kTopValue = (1 << 24);
-
-		System.IO.Stream Stream;
-
-		public UInt64 Low;
-		public uint Range;
-		uint _cacheSize;
-		byte _cache;
-
-		long StartPosition;
-
-		public void SetStream(System.IO.Stream stream)
-		{
-			Stream = stream;
-		}
-
-		public void ReleaseStream()
-		{
-			Stream = null;
-		}
-
-		public void Init()
-		{
-			StartPosition = Stream.Position;
-
-			Low = 0;
-			Range = 0xFFFFFFFF;
-			_cacheSize = 1;
-			_cache = 0;
-		}
-
-		public void FlushData()
-		{
-			for (int i = 0; i < 5; i++)
-				ShiftLow();
-		}
-
-		public void FlushStream()
-		{
-			Stream.Flush();
-		}
-
-		public void CloseStream()
-		{
-			Stream.Close();
-		}
-
-		public void Encode(uint start, uint size, uint total)
-		{
-			Low += start * (Range /= total);
-			Range *= size;
-			while (Range < kTopValue)
-			{
-				Range <<= 8;
-				ShiftLow();
-			}
-		}
-
-		public void ShiftLow()
-		{
-			if ((uint)Low < (uint)0xFF000000 || (uint)(Low >> 32) == 1)
-			{
-				byte temp = _cache;
-				do
-				{
-					Stream.WriteByte((byte)(temp + (Low >> 32)));
-					temp = 0xFF;
-				}
-				while (--_cacheSize != 0);
-				_cache = (byte)(((uint)Low) >> 24);
-			}
-			_cacheSize++;
-			Low = ((uint)Low) << 8;
-		}
-
-		public void EncodeDirectBits(uint v, int numTotalBits)
-		{
-			for (int i = numTotalBits - 1; i >= 0; i--)
-			{
-				Range >>= 1;
-				if (((v >> i) & 1) == 1)
-					Low += Range;
-				if (Range < kTopValue)
-				{
-					Range <<= 8;
-					ShiftLow();
-				}
-			}
-		}
-
-		public void EncodeBit(uint size0, int numTotalBits, uint symbol)
-		{
-			uint newBound = (Range >> numTotalBits) * size0;
-			if (symbol == 0)
-				Range = newBound;
-			else
-			{
-				Low += newBound;
-				Range -= newBound;
-			}
-			while (Range < kTopValue)
-			{
-				Range <<= 8;
-				ShiftLow();
-			}
-		}
-
-		public long GetProcessedSizeAdd()
-		{
-			return _cacheSize +
-				Stream.Position - StartPosition + 4;
-			// (long)Stream.GetProcessedSize();
-		}
-	}
-
-	class Decoder
-	{
-		public const uint kTopValue = (1 << 24);
-		public uint Range;
-		public uint Code;
-		// public Buffer.InBuffer Stream = new Buffer.InBuffer(1 << 16);
-		public System.IO.Stream Stream;
-
-		public void Init(System.IO.Stream stream)
-		{
-			// Stream.Init(stream);
-			Stream = stream;
-
-			Code = 0;
-			Range = 0xFFFFFFFF;
-			for (int i = 0; i < 5; i++)
-				Code = (Code << 8) | (byte)Stream.ReadByte();
-		}
-
-		public void ReleaseStream()
-		{
-			// Stream.ReleaseStream();
-			Stream = null;
-		}
-
-		public void CloseStream()
-		{
-			Stream.Close();
-		}
-
-		public void Normalize()
-		{
-			while (Range < kTopValue)
-			{
-				Code = (Code << 8) | (byte)Stream.ReadByte();
-				Range <<= 8;
-			}
-		}
-
-		public void Normalize2()
-		{
-			if (Range < kTopValue)
-			{
-				Code = (Code << 8) | (byte)Stream.ReadByte();
-				Range <<= 8;
-			}
-		}
-
-		public uint GetThreshold(uint total)
-		{
-			return Code / (Range /= total);
-		}
-
-		public void Decode(uint start, uint size, uint total)
-		{
-			Code -= start * Range;
-			Range *= size;
-			Normalize();
-		}
-
-		public uint DecodeDirectBits(int numTotalBits)
-		{
-			uint range = Range;
-			uint code = Code;
-			uint result = 0;
-			for (int i = numTotalBits; i > 0; i--)
-			{
-				range >>= 1;
-				/*
-				result <<= 1;
-				if (code >= range)
-				{
-					code -= range;
-					result |= 1;
-				}
-				*/
-				uint t = (code - range) >> 31;
-				code -= range & (t - 1);
-				result = (result << 1) | (1 - t);
-
-				if (range < kTopValue)
-				{
-					code = (code << 8) | (byte)Stream.ReadByte();
-					range <<= 8;
-				}
-			}
-			Range = range;
-			Code = code;
-			return result;
-		}
-
-		public uint DecodeBit(uint size0, int numTotalBits)
-		{
-			uint newBound = (Range >> numTotalBits) * size0;
-			uint symbol;
-			if (Code < newBound)
-			{
-				symbol = 0;
-				Range = newBound;
-			}
-			else
-			{
-				symbol = 1;
-				Code -= newBound;
-				Range -= newBound;
-			}
-			Normalize();
-			return symbol;
-		}
-
-		// ulong GetProcessedSize() {return Stream.GetProcessedSize(); }
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a855cbfe314340a43b3d71672dcbb058
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 117
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBit.cs

@@ -1,117 +0,0 @@
-using System;
-
-namespace SevenZip.Compression.RangeCoder
-{
-	struct BitEncoder
-	{
-		public const int kNumBitModelTotalBits = 11;
-		public const uint kBitModelTotal = (1 << kNumBitModelTotalBits);
-		const int kNumMoveBits = 5;
-		const int kNumMoveReducingBits = 2;
-		public const int kNumBitPriceShiftBits = 6;
-
-		uint Prob;
-
-		public void Init() { Prob = kBitModelTotal >> 1; }
-
-		public void UpdateModel(uint symbol)
-		{
-			if (symbol == 0)
-				Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
-			else
-				Prob -= (Prob) >> kNumMoveBits;
-		}
-
-		public void Encode(Encoder encoder, uint symbol)
-		{
-			// encoder.EncodeBit(Prob, kNumBitModelTotalBits, symbol);
-			// UpdateModel(symbol);
-			uint newBound = (encoder.Range >> kNumBitModelTotalBits) * Prob;
-			if (symbol == 0)
-			{
-				encoder.Range = newBound;
-				Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
-			}
-			else
-			{
-				encoder.Low += newBound;
-				encoder.Range -= newBound;
-				Prob -= (Prob) >> kNumMoveBits;
-			}
-			if (encoder.Range < Encoder.kTopValue)
-			{
-				encoder.Range <<= 8;
-				encoder.ShiftLow();
-			}
-		}
-
-		private static UInt32[] ProbPrices = new UInt32[kBitModelTotal >> kNumMoveReducingBits];
-
-		static BitEncoder()
-		{
-			const int kNumBits = (kNumBitModelTotalBits - kNumMoveReducingBits);
-			for (int i = kNumBits - 1; i >= 0; i--)
-			{
-				UInt32 start = (UInt32)1 << (kNumBits - i - 1);
-				UInt32 end = (UInt32)1 << (kNumBits - i);
-				for (UInt32 j = start; j < end; j++)
-					ProbPrices[j] = ((UInt32)i << kNumBitPriceShiftBits) +
-						(((end - j) << kNumBitPriceShiftBits) >> (kNumBits - i - 1));
-			}
-		}
-
-		public uint GetPrice(uint symbol)
-		{
-			return ProbPrices[(((Prob - symbol) ^ ((-(int)symbol))) & (kBitModelTotal - 1)) >> kNumMoveReducingBits];
-		}
-	  public uint GetPrice0() { return ProbPrices[Prob >> kNumMoveReducingBits]; }
-		public uint GetPrice1() { return ProbPrices[(kBitModelTotal - Prob) >> kNumMoveReducingBits]; }
-	}
-
-	struct BitDecoder
-	{
-		public const int kNumBitModelTotalBits = 11;
-		public const uint kBitModelTotal = (1 << kNumBitModelTotalBits);
-		const int kNumMoveBits = 5;
-
-		uint Prob;
-
-		public void UpdateModel(int numMoveBits, uint symbol)
-		{
-			if (symbol == 0)
-				Prob += (kBitModelTotal - Prob) >> numMoveBits;
-			else
-				Prob -= (Prob) >> numMoveBits;
-		}
-
-		public void Init() { Prob = kBitModelTotal >> 1; }
-
-		public uint Decode(RangeCoder.Decoder rangeDecoder)
-		{
-			uint newBound = (uint)(rangeDecoder.Range >> kNumBitModelTotalBits) * (uint)Prob;
-			if (rangeDecoder.Code < newBound)
-			{
-				rangeDecoder.Range = newBound;
-				Prob += (kBitModelTotal - Prob) >> kNumMoveBits;
-				if (rangeDecoder.Range < Decoder.kTopValue)
-				{
-					rangeDecoder.Code = (rangeDecoder.Code << 8) | (byte)rangeDecoder.Stream.ReadByte();
-					rangeDecoder.Range <<= 8;
-				}
-				return 0;
-			}
-			else
-			{
-				rangeDecoder.Range -= newBound;
-				rangeDecoder.Code -= newBound;
-				Prob -= (Prob) >> kNumMoveBits;
-				if (rangeDecoder.Range < Decoder.kTopValue)
-				{
-					rangeDecoder.Code = (rangeDecoder.Code << 8) | (byte)rangeDecoder.Stream.ReadByte();
-					rangeDecoder.Range <<= 8;
-				}
-				return 1;
-			}
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBit.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f3fd3305ff6e02448a7b0470cfe65b77
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 157
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBitTree.cs

@@ -1,157 +0,0 @@
-using System;
-
-namespace SevenZip.Compression.RangeCoder
-{
-	struct BitTreeEncoder
-	{
-		BitEncoder[] Models;
-		int NumBitLevels;
-
-		public BitTreeEncoder(int numBitLevels)
-		{
-			NumBitLevels = numBitLevels;
-			Models = new BitEncoder[1 << numBitLevels];
-		}
-
-		public void Init()
-		{
-			for (uint i = 1; i < (1 << NumBitLevels); i++)
-				Models[i].Init();
-		}
-
-		public void Encode(Encoder rangeEncoder, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; )
-			{
-				bitIndex--;
-				UInt32 bit = (symbol >> bitIndex) & 1;
-				Models[m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-			}
-		}
-
-		public void ReverseEncode(Encoder rangeEncoder, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (UInt32 i = 0; i < NumBitLevels; i++)
-			{
-				UInt32 bit = symbol & 1;
-				Models[m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-				symbol >>= 1;
-			}
-		}
-
-		public UInt32 GetPrice(UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; )
-			{
-				bitIndex--;
-				UInt32 bit = (symbol >> bitIndex) & 1;
-				price += Models[m].GetPrice(bit);
-				m = (m << 1) + bit;
-			}
-			return price;
-		}
-
-		public UInt32 ReverseGetPrice(UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int i = NumBitLevels; i > 0; i--)
-			{
-				UInt32 bit = symbol & 1;
-				symbol >>= 1;
-				price += Models[m].GetPrice(bit);
-				m = (m << 1) | bit;
-			}
-			return price;
-		}
-
-		public static UInt32 ReverseGetPrice(BitEncoder[] Models, UInt32 startIndex,
-			int NumBitLevels, UInt32 symbol)
-		{
-			UInt32 price = 0;
-			UInt32 m = 1;
-			for (int i = NumBitLevels; i > 0; i--)
-			{
-				UInt32 bit = symbol & 1;
-				symbol >>= 1;
-				price += Models[startIndex + m].GetPrice(bit);
-				m = (m << 1) | bit;
-			}
-			return price;
-		}
-
-		public static void ReverseEncode(BitEncoder[] Models, UInt32 startIndex,
-			Encoder rangeEncoder, int NumBitLevels, UInt32 symbol)
-		{
-			UInt32 m = 1;
-			for (int i = 0; i < NumBitLevels; i++)
-			{
-				UInt32 bit = symbol & 1;
-				Models[startIndex + m].Encode(rangeEncoder, bit);
-				m = (m << 1) | bit;
-				symbol >>= 1;
-			}
-		}
-	}
-
-	struct BitTreeDecoder
-	{
-		BitDecoder[] Models;
-		int NumBitLevels;
-
-		public BitTreeDecoder(int numBitLevels)
-		{
-			NumBitLevels = numBitLevels;
-			Models = new BitDecoder[1 << numBitLevels];
-		}
-
-		public void Init()
-		{
-			for (uint i = 1; i < (1 << NumBitLevels); i++)
-				Models[i].Init();
-		}
-
-		public uint Decode(RangeCoder.Decoder rangeDecoder)
-		{
-			uint m = 1;
-			for (int bitIndex = NumBitLevels; bitIndex > 0; bitIndex--)
-				m = (m << 1) + Models[m].Decode(rangeDecoder);
-			return m - ((uint)1 << NumBitLevels);
-		}
-
-		public uint ReverseDecode(RangeCoder.Decoder rangeDecoder)
-		{
-			uint m = 1;
-			uint symbol = 0;
-			for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
-			{
-				uint bit = Models[m].Decode(rangeDecoder);
-				m <<= 1;
-				m += bit;
-				symbol |= (bit << bitIndex);
-			}
-			return symbol;
-		}
-
-		public static uint ReverseDecode(BitDecoder[] Models, UInt32 startIndex,
-			RangeCoder.Decoder rangeDecoder, int NumBitLevels)
-		{
-			uint m = 1;
-			uint symbol = 0;
-			for (int bitIndex = 0; bitIndex < NumBitLevels; bitIndex++)
-			{
-				uint bit = Models[startIndex + m].Decode(rangeDecoder);
-				m <<= 1;
-				m += bit;
-				symbol |= (bit << bitIndex);
-			}
-			return symbol;
-		}
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/Compress/RangeCoder/RangeCoderBitTree.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: ef79f786b772db344a4792a5cba382ff
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 157
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/ICoder.cs

@@ -1,157 +0,0 @@
-// ICoder.h
-
-using System;
-
-namespace SevenZip
-{
-	/// <summary>
-	/// The exception that is thrown when an error in input stream occurs during decoding.
-	/// </summary>
-	class DataErrorException : ApplicationException
-	{
-		public DataErrorException(): base("Data Error") { }
-	}
-
-	/// <summary>
-	/// The exception that is thrown when the value of an argument is outside the allowable range.
-	/// </summary>
-	class InvalidParamException : ApplicationException
-	{
-		public InvalidParamException(): base("Invalid Parameter") { }
-	}
-
-	public interface ICodeProgress
-	{
-		/// <summary>
-		/// Callback progress.
-		/// </summary>
-		/// <param name="inSize">
-		/// input size. -1 if unknown.
-		/// </param>
-		/// <param name="outSize">
-		/// output size. -1 if unknown.
-		/// </param>
-		void SetProgress(Int64 inSize, Int64 outSize);
-	};
-
-	public interface ICoder
-	{
-		/// <summary>
-		/// Codes streams.
-		/// </summary>
-		/// <param name="inStream">
-		/// input Stream.
-		/// </param>
-		/// <param name="outStream">
-		/// output Stream.
-		/// </param>
-		/// <param name="inSize">
-		/// input Size. -1 if unknown.
-		/// </param>
-		/// <param name="outSize">
-		/// output Size. -1 if unknown.
-		/// </param>
-		/// <param name="progress">
-		/// callback progress reference.
-		/// </param>
-		/// <exception cref="SevenZip.DataErrorException">
-		/// if input stream is not valid
-		/// </exception>
-		void Code(System.IO.Stream inStream, System.IO.Stream outStream,
-			Int64 inSize, Int64 outSize, ICodeProgress progress);
-	};
-
-	/*
-	public interface ICoder2
-	{
-		 void Code(ISequentialInStream []inStreams,
-				const UInt64 []inSizes, 
-				ISequentialOutStream []outStreams, 
-				UInt64 []outSizes,
-				ICodeProgress progress);
-	};
-  */
-
-	/// <summary>
-	/// Provides the fields that represent properties idenitifiers for compressing.
-	/// </summary>
-	public enum CoderPropID
-	{
-		/// <summary>
-		/// Specifies default property.
-		/// </summary>
-		DefaultProp = 0,
-		/// <summary>
-		/// Specifies size of dictionary.
-		/// </summary>
-		DictionarySize,
-		/// <summary>
-		/// Specifies size of memory for PPM*.
-		/// </summary>
-		UsedMemorySize,
-		/// <summary>
-		/// Specifies order for PPM methods.
-		/// </summary>
-		Order,
-		/// <summary>
-		/// Specifies Block Size.
-		/// </summary>
-		BlockSize,
-		/// <summary>
-		/// Specifies number of postion state bits for LZMA (0 <= x <= 4).
-		/// </summary>
-		PosStateBits,
-		/// <summary>
-		/// Specifies number of literal context bits for LZMA (0 <= x <= 8).
-		/// </summary>
-		LitContextBits,
-		/// <summary>
-		/// Specifies number of literal position bits for LZMA (0 <= x <= 4).
-		/// </summary>
-		LitPosBits,
-		/// <summary>
-		/// Specifies number of fast bytes for LZ*.
-		/// </summary>
-		NumFastBytes,
-		/// <summary>
-		/// Specifies match finder. LZMA: "BT2", "BT4" or "BT4B".
-		/// </summary>
-		MatchFinder,
-		/// <summary>
-		/// Specifies the number of match finder cyckes.
-		/// </summary>
-		MatchFinderCycles,
-		/// <summary>
-		/// Specifies number of passes.
-		/// </summary>
-		NumPasses,
-		/// <summary>
-		/// Specifies number of algorithm.
-		/// </summary>
-		Algorithm,
-		/// <summary>
-		/// Specifies the number of threads.
-		/// </summary>
-		NumThreads,
-		/// <summary>
-		/// Specifies mode with end marker.
-		/// </summary>
-		EndMarker
-	};
-
-
-	public interface ISetCoderProperties
-	{
-		void SetCoderProperties(CoderPropID[] propIDs, object[] properties);
-	};
-
-	public interface IWriteCoderProperties
-	{
-		void WriteCoderProperties(System.IO.Stream outStream);
-	}
-
-	public interface ISetDecoderProperties
-	{
-		void SetDecoderProperties(byte[] properties);
-	}
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/7zip/ICoder.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 9f4fba00efa28594ea18888f574d028a
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 59ab7ccacd9a9944bb9456da235d6760
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 14
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ArchiveFlags.cs

@@ -1,14 +0,0 @@
-using System;
-
-namespace UnityFS
-{
-    [Flags]
-    public enum ArchiveFlags
-    {
-        CompressionTypeMask = 0x3f,
-        BlocksAndDirectoryInfoCombined = 0x40,
-        BlocksInfoAtTheEnd = 0x80,
-        OldWebPluginCompatibility = 0x100,
-        BlockInfoNeedPaddingAtStart = 0x200
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ArchiveFlags.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 099de05eebdffaf4baeed3290dc98aaf
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 51
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryReaderExtensions.cs

@@ -1,51 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-
-namespace UnityFS
-{
-    public static class BinaryReaderExtensions
-    {
-
-        public static void AlignStream(this BinaryReader reader, int alignment)
-        {
-            var pos = reader.BaseStream.Position;
-            var mod = pos % alignment;
-            if (mod != 0)
-            {
-                reader.BaseStream.Position += alignment - mod;
-            }
-        }
-
-        public static string ReadAlignedString(this BinaryReader reader)
-        {
-            var length = reader.ReadInt32();
-            if (length > 0 && length <= reader.BaseStream.Length - reader.BaseStream.Position)
-            {
-                var stringData = reader.ReadBytes(length);
-                var result = Encoding.UTF8.GetString(stringData);
-                reader.AlignStream(4);
-                return result;
-            }
-            return "";
-        }
-
-        public static string ReadStringToNull(this BinaryReader reader, int maxLength = 32767)
-        {
-            var bytes = new List<byte>();
-            int count = 0;
-            while (reader.BaseStream.Position != reader.BaseStream.Length && count < maxLength)
-            {
-                var b = reader.ReadByte();
-                if (b == 0)
-                {
-                    break;
-                }
-                bytes.Add(b);
-                count++;
-            }
-            return Encoding.UTF8.GetString(bytes.ToArray());
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryReaderExtensions.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a84e427dd05adde44b4345b3fd49007a
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 33
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryWriterExtensions.cs

@@ -1,33 +0,0 @@
-using System;
-using System.IO;
-using System.Text;
-
-namespace UnityFS
-{
-    public static class BinaryWriterExtensions
-    {
-        public static void AlignStream(this BinaryWriter writer, int alignment)
-        {
-            var pos = writer.BaseStream.Position;
-            var mod = pos % alignment;
-            if (mod != 0)
-            {
-                writer.Write(new byte[alignment - mod]);
-            }
-        }
-
-        public static void WriteAlignedString(this BinaryWriter writer, string str)
-        {
-            var bytes = Encoding.UTF8.GetBytes(str);
-            writer.Write(bytes.Length);
-            writer.Write(bytes);
-            writer.AlignStream(4);
-        }
-
-        public static void WriteNullEndString(this BinaryWriter writer, string str)
-        {
-            writer.Write(Encoding.UTF8.GetBytes(str));
-            writer.Write((byte)0);
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BinaryWriterExtensions.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 02eda21769c083346a5bd9b7dca49427
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 24
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileInfo.cs

@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace UnityFS
-{
-    public class BundleSubFile
-    {
-        public string file;
-        public byte[] data;
-    }
-
-    public class BundleFileInfo
-    {
-        public string signature;
-        public uint version;
-        public string unityVersion;
-        public string unityRevision;
-        public ArchiveFlags flags;
-        public List<BundleSubFile> files;
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileInfo.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 1a72550a949e322419b9c5d6e4fe495d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 212
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileReader.cs

@@ -1,212 +0,0 @@
-using LZ4;
-using System;
-using System.IO;
-using System.Linq;
-using UnityEngine;
-
-namespace UnityFS
-{
-
-    public class BundleFileReader
-    {
-
-        private Header m_Header;
-        private StorageBlock[] m_BlocksInfo;
-        private Node[] m_DirectoryInfo;
-
-        private StreamFile[] fileList;
-
-        public BundleFileReader()
-        {
-
-        }
-
-        public void Load(EndianBinaryReader reader)
-        {
-            Debug.Log($"reader. pos:{reader.Position} length:{reader.BaseStream.Length}");
-            m_Header = new Header();
-            m_Header.signature = reader.ReadStringToNull();
-            m_Header.version = reader.ReadUInt32();
-            m_Header.unityVersion = reader.ReadStringToNull();
-            m_Header.unityRevision = reader.ReadStringToNull();
-            System.Diagnostics.Debug.Assert(m_Header.signature == "UnityFS");
-
-
-            m_Header.size = reader.ReadInt64();
-            Debug.Log($"header size:{m_Header.size}");
-            m_Header.compressedBlocksInfoSize = reader.ReadUInt32();
-            m_Header.uncompressedBlocksInfoSize = reader.ReadUInt32();
-            m_Header.flags = (ArchiveFlags)reader.ReadUInt32();
-            if (m_Header.signature != "UnityFS")
-            {
-                reader.ReadByte();
-            }
-
-            ReadMetadata(reader);
-            using (var blocksStream = CreateBlocksStream())
-            {
-                ReadBlocks(reader, blocksStream);
-                ReadFiles(blocksStream);
-            }
-        }
-
-        public BundleFileInfo CreateBundleFileInfo()
-        {
-            return new BundleFileInfo
-            {
-                signature = m_Header.signature,
-                version = m_Header.version,
-                unityVersion = m_Header.unityVersion,
-                unityRevision = m_Header.unityRevision,
-                files = fileList.Select(f => new BundleSubFile { file = f.path, data = f.stream.ReadAllBytes() }).ToList(),
-            };
-        }
-
-        private byte[] ReadBlocksInfoAndDirectoryMetadataUnCompressedBytes(EndianBinaryReader reader)
-        {
-            byte[] metadataUncompressBytes;
-            if (m_Header.version >= 7)
-            {
-                reader.AlignStream(16);
-            }
-            if ((m_Header.flags & ArchiveFlags.BlocksInfoAtTheEnd) != 0)
-            {
-                var position = reader.Position;
-                reader.Position = reader.BaseStream.Length - m_Header.compressedBlocksInfoSize;
-                metadataUncompressBytes = reader.ReadBytes((int)m_Header.compressedBlocksInfoSize);
-                reader.Position = position;
-            }
-            else //0x40 BlocksAndDirectoryInfoCombined
-            {
-                metadataUncompressBytes = reader.ReadBytes((int)m_Header.compressedBlocksInfoSize);
-            }
-            return metadataUncompressBytes;
-        }
-
-        private byte[] DecompressBytes(CompressionType compressionType, byte[] compressedBytes, uint uncompressedSize)
-        {
-            switch (compressionType)
-            {
-                case CompressionType.None:
-                    {
-                        return compressedBytes;
-                    }
-                case CompressionType.Lzma:
-                    {
-                        var uncompressedStream = new MemoryStream((int)(uncompressedSize));
-                        using (var compressedStream = new MemoryStream(compressedBytes))
-                        {
-                            ComparessHelper.Decompress7Zip(compressedStream, uncompressedStream, m_Header.compressedBlocksInfoSize, m_Header.uncompressedBlocksInfoSize);
-                        }
-                        return uncompressedStream.ReadAllBytes();
-                    }
-                case CompressionType.Lz4:
-                case CompressionType.Lz4HC:
-                    {
-                        var uncompressedBytes = new byte[uncompressedSize];
-                        var numWrite = LZ4Codec.Decode(compressedBytes, 0, compressedBytes.Length, uncompressedBytes, 0, uncompressedBytes.Length, true);
-                        if (numWrite != uncompressedSize)
-                        {
-                            throw new IOException($"Lz4 decompression error, write {numWrite} bytes but expected {uncompressedSize} bytes");
-                        }
-                        return uncompressedBytes;
-                    }
-                default:
-                    throw new IOException($"Unsupported compression type {compressionType}");
-            }
-        }
-
-        private void ReadMetadata(EndianBinaryReader reader)
-        {
-            byte[] compressMetadataBytes = ReadBlocksInfoAndDirectoryMetadataUnCompressedBytes(reader);
-            MemoryStream metadataStream = new MemoryStream(DecompressBytes((CompressionType)(m_Header.flags & ArchiveFlags.CompressionTypeMask), compressMetadataBytes, m_Header.uncompressedBlocksInfoSize));
-            using (var blocksInfoReader = new EndianBinaryReader(metadataStream))
-            {
-                var uncompressedDataHash = blocksInfoReader.ReadBytes(16);
-                var blocksInfoCount = blocksInfoReader.ReadInt32();
-                m_BlocksInfo = new StorageBlock[blocksInfoCount];
-                for (int i = 0; i < blocksInfoCount; i++)
-                {
-                    m_BlocksInfo[i] = new StorageBlock
-                    {
-                        uncompressedSize = blocksInfoReader.ReadUInt32(),
-                        compressedSize = blocksInfoReader.ReadUInt32(),
-                        flags = (StorageBlockFlags)blocksInfoReader.ReadUInt16()
-                    };
-                }
-
-                var nodesCount = blocksInfoReader.ReadInt32();
-                m_DirectoryInfo = new Node[nodesCount];
-                for (int i = 0; i < nodesCount; i++)
-                {
-                    m_DirectoryInfo[i] = new Node
-                    {
-                        offset = blocksInfoReader.ReadInt64(),
-                        size = blocksInfoReader.ReadInt64(),
-                        flags = blocksInfoReader.ReadUInt32(),
-                        path = blocksInfoReader.ReadStringToNull(),
-                    };
-                }
-            }
-            if (m_Header.flags.HasFlag(ArchiveFlags.BlockInfoNeedPaddingAtStart))
-            {
-                reader.AlignStream(16);
-            }
-        }
-
-
-        private Stream CreateBlocksStream()
-        {
-            Stream blocksStream;
-            var uncompressedSizeSum = m_BlocksInfo.Sum(x => x.uncompressedSize);
-            if (uncompressedSizeSum >= int.MaxValue)
-            {
-                throw new Exception($"too fig file");
-            }
-            else
-            {
-                blocksStream = new MemoryStream((int)uncompressedSizeSum);
-            }
-            return blocksStream;
-        }
-
-        public void ReadFiles(Stream blocksStream)
-        {
-            fileList = new StreamFile[m_DirectoryInfo.Length];
-            for (int i = 0; i < m_DirectoryInfo.Length; i++)
-            {
-                var node = m_DirectoryInfo[i];
-                var file = new StreamFile();
-                fileList[i] = file;
-                file.path = node.path;
-                file.fileName = Path.GetFileName(node.path);
-                if (node.size >= int.MaxValue)
-                {
-                    throw new Exception($"exceed max file size");
-                    /*var memoryMappedFile = MemoryMappedFile.CreateNew(null, entryinfo_size);
-                    file.stream = memoryMappedFile.CreateViewStream();*/
-                    //var extractPath = path + "_unpacked" + Path.DirectorySeparatorChar;
-                    //Directory.CreateDirectory(extractPath);
-                    //file.stream = new FileStream(extractPath + file.fileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
-                }
-                file.stream = new MemoryStream((int)node.size);
-                blocksStream.Position = node.offset;
-                blocksStream.CopyTo(file.stream, node.size);
-                file.stream.Position = 0;
-            }
-        }
-
-        private void ReadBlocks(EndianBinaryReader reader, Stream blocksStream)
-        {
-            foreach (var blockInfo in m_BlocksInfo)
-            {
-                var compressedSize = (int)blockInfo.compressedSize;
-                byte[] compressedBlockBytes = reader.ReadBytes(compressedSize);
-                var compressionType = (CompressionType)(blockInfo.flags & StorageBlockFlags.CompressionTypeMask);
-                byte[] uncompressedBlockBytes = DecompressBytes(compressionType, compressedBlockBytes, blockInfo.uncompressedSize);
-                blocksStream.Write(uncompressedBlockBytes, 0, uncompressedBlockBytes.Length);
-            }
-            blocksStream.Position = 0;
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileReader.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f9b938458cc610e4d8a910c4499693cf
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 112
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileWriter.cs

@@ -1,112 +0,0 @@
-using LZ4;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using UnityEngine;
-
-namespace UnityFS
-{
-    public class BundleFileWriter
-    {
-        private readonly BundleFileInfo _bundle;
-
-        private readonly List<Node> _files = new List<Node>();
-        private readonly List<StorageBlock> _blocks = new List<StorageBlock>();
-
-        private readonly EndianBinaryWriter _blockDirectoryMetadataStream = new EndianBinaryWriter(new MemoryStream());
-        private byte[] _blockBytes;
-
-        public BundleFileWriter(BundleFileInfo bundle)
-        {
-            _bundle = bundle;
-        }
-
-        public void Write(EndianBinaryWriter output)
-        {
-            InitBlockAndDirectories();
-
-            output.WriteNullEndString(_bundle.signature);
-            output.Write(_bundle.version);
-            output.WriteNullEndString(_bundle.unityVersion);
-            output.WriteNullEndString(_bundle.unityRevision);
-
-            BuildBlockDirectoryMetadata();
-
-
-            long sizePos = output.Position;
-            output.Write(0L);
-            output.Write((uint)_blockDirectoryMetadataStream.Length);
-            output.Write((uint)_blockDirectoryMetadataStream.Length);
-            ArchiveFlags flags = ArchiveFlags.BlocksAndDirectoryInfoCombined | (uint)CompressionType.None;
-            output.Write((uint)flags);
-
-            if (_bundle.version >= 7)
-            {
-                output.AlignStream(16);
-            }
-            byte[] metadataBytes = _blockDirectoryMetadataStream.BaseStream.ReadAllBytes();
-            output.Write(metadataBytes, 0, metadataBytes.Length);
-
-            byte[] dataBytes = _blockBytes;
-            output.Write(dataBytes, 0, dataBytes.Length);
-
-            output.Position = sizePos;
-            output.Write(output.Length);
-        }
-
-        private void InitBlockAndDirectories()
-        {
-            var dataStream = new MemoryStream();
-            foreach(var file in _bundle.files)
-            {
-                byte[] data = file.data;
-                _files.Add(new Node { path = file.file, flags = 0, offset = dataStream.Length, size = data.LongLength });
-                dataStream.Write(data, 0, data.Length);
-            }
-            byte[] dataBytes = dataStream.ToArray();
-
-            var compressedBlockStream = new MemoryStream(dataBytes.Length / 2);
-            int blockByteSize = 128 * 1024;
-            long dataSize = dataBytes.Length;
-            byte[] tempCompressBlock = new byte[blockByteSize * 2];
-            for(long i = 0, blockNum = (dataSize + blockByteSize - 1) /  blockByteSize; i < blockNum; i++)
-            {
-                long curBlockSize = Math.Min(dataSize, blockByteSize);
-                dataSize -= curBlockSize;
-
-                int compressedSize = LZ4Codec.Encode(dataBytes, (int)(i * blockByteSize), (int)curBlockSize, tempCompressBlock, 0, tempCompressBlock.Length);
-                compressedBlockStream.Write(tempCompressBlock, 0, compressedSize);
-                _blocks.Add(new StorageBlock { flags = (StorageBlockFlags)(int)CompressionType.Lz4, compressedSize = (uint)compressedSize, uncompressedSize = (uint)curBlockSize });
-                //Debug.Log($"== block[{i}] uncompressedSize:{curBlockSize} compressedSize:{compressedSize}  totalblocksize:{compressedBlockStream.Length}");
-            }
-            _blockBytes = compressedBlockStream.ToArray();
-        }
-
-        private void BuildBlockDirectoryMetadata()
-        {
-            var hash = new byte[16];
-            _blockDirectoryMetadataStream.Write(hash, 0, 16);
-
-            _blockDirectoryMetadataStream.Write((uint)_blocks.Count);
-            foreach(var b in _blocks)
-            {
-                _blockDirectoryMetadataStream.Write(b.uncompressedSize);
-                _blockDirectoryMetadataStream.Write(b.compressedSize);
-                _blockDirectoryMetadataStream.Write((ushort)b.flags);
-            }
-
-            _blockDirectoryMetadataStream.Write((uint)_files.Count);
-            foreach(var f in _files)
-            {
-                _blockDirectoryMetadataStream.Write(f.offset);
-                _blockDirectoryMetadataStream.Write(f.size);
-                _blockDirectoryMetadataStream.Write(f.flags);
-                _blockDirectoryMetadataStream.WriteNullEndString(f.path);
-            }
-            //Debug.Log($"block and directory metadata size:{_blockDirectoryMetadataStream.Length}");
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/BundleFileWriter.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: d6705163b267de54a868f5e84f6c7024
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/CompressionType.cs

@@ -1,11 +0,0 @@
-namespace UnityFS
-{
-    public enum CompressionType
-    {
-        None,
-        Lzma,
-        Lz4,
-        Lz4HC,
-        Lzham
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/CompressionType.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: ddcd6644c83d2a94f9668d6e913bd80e
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 107
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryReader.cs

@@ -1,107 +0,0 @@
-using System;
-using System.IO;
-
-namespace UnityFS
-{
-    public class EndianBinaryReader : BinaryReader
-    {
-        private readonly byte[] buffer;
-
-        public EndianType Endian;
-
-        public EndianBinaryReader(Stream stream, EndianType endian = EndianType.BigEndian) : base(stream)
-        {
-            Endian = endian;
-            buffer = new byte[8];
-        }
-
-        public long Position
-        {
-            get => BaseStream.Position;
-            set => BaseStream.Position = value;
-        }
-
-        private unsafe void ReadBufferBigEndian(byte* dst, byte[] src, int size)
-        {
-            System.Diagnostics.Debug.Assert(BitConverter.IsLittleEndian);
-            for (int i = 0; i < size; i++)
-            {
-                dst[i] = src[size - i - 1];
-            }
-        }
-
-        public override short ReadInt16()
-        {
-            return (short)ReadUInt16();
-        }
-
-        public unsafe override ushort ReadUInt16()
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                Read(buffer, 0, 2);
-                ushort x = 0;
-                ReadBufferBigEndian((byte*)&x, buffer, 2);
-                return x;
-            }
-            return base.ReadUInt16();
-        }
-
-        public override int ReadInt32()
-        {
-            return (int)ReadUInt32();
-        }
-
-        public unsafe override uint ReadUInt32()
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                Read(buffer, 0, 4);
-                uint x = 0;
-                ReadBufferBigEndian((byte*)&x, buffer, 4);
-                return x;
-            }
-            return base.ReadUInt32();
-        }
-
-        public override long ReadInt64()
-        {
-            return (long)ReadUInt64();
-        }
-
-        public unsafe override ulong ReadUInt64()
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                Read(buffer, 0, 8);
-
-                ulong x = 0;
-                ReadBufferBigEndian((byte*)&x, buffer, 8);
-                return x;
-            }
-            return base.ReadUInt64();
-        }
-
-        public override float ReadSingle()
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                Read(buffer, 0, 4);
-                Array.Reverse(buffer, 0, 4);
-                return BitConverter.ToSingle(buffer, 0);
-            }
-            return base.ReadSingle();
-        }
-
-        public override double ReadDouble()
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                Read(buffer, 0, 8);
-                Array.Reverse(buffer);
-                return BitConverter.ToDouble(buffer, 0);
-            }
-            return base.ReadDouble();
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryReader.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 9b02c037f0fa1014da65773804248d8d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 107
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryWriter.cs

@@ -1,107 +0,0 @@
-using System;
-using System.IO;
-
-namespace UnityFS
-{
-    public class EndianBinaryWriter : BinaryWriter
-    {
-        private readonly byte[] buffer;
-
-        public EndianType Endian;
-
-        public EndianBinaryWriter(Stream stream, EndianType endian = EndianType.BigEndian) : base(stream)
-        {
-            Endian = endian;
-            buffer = new byte[8];
-        }
-
-        public long Position
-        {
-            get => BaseStream.Position;
-            set => BaseStream.Position = value;
-        }
-
-        public long Length => BaseStream.Length;
-
-        public override void Write(short x)
-        {
-            Write((ushort)x);
-        }
-
-        private unsafe void WriteBufferBigEndian(byte[] dst, byte* src, int size)
-        {
-            System.Diagnostics.Debug.Assert(BitConverter.IsLittleEndian);
-            for(int i = 0; i < size; i++)
-            {
-                dst[i] = src[size - i - 1];
-            }
-        }
-
-        public unsafe override void Write(ushort x)
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                WriteBufferBigEndian(buffer, (byte*)&x, 2);
-                Write(buffer, 0, 2);
-                return;
-            }
-            base.Write(x);
-        }
-
-        public override void Write(int x)
-        {
-            Write((uint)x);
-        }
-
-        public unsafe override void Write(uint x)
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                WriteBufferBigEndian(buffer, (byte*)&x, 4);
-                Write(buffer, 0, 4);
-                return;
-            }
-            base.Write(x);
-        }
-
-        public override void Write(long x)
-        {
-            Write((ulong)x);
-        }
-
-        public unsafe override void Write(ulong x)
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                WriteBufferBigEndian(buffer, (byte*)&x, 8);
-                Write(buffer, 0, 8);
-                return;
-            }
-            base.Write(x);
-        }
-
-        public override void Write(float x)
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                var buf = BitConverter.GetBytes(x);
-                Array.Reverse(buf, 0, 4);
-                Write(buf, 0, 4);
-                return;
-            }
-            base.Write(x);
-        }
-
-        public override void Write(double x)
-        {
-            if (Endian == EndianType.BigEndian)
-            {
-                var buf = BitConverter.GetBytes(x);
-                Array.Reverse(buf, 0, 8);
-                Write(buf, 0, 8);
-                return;
-            }
-            base.Write(x);
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianBinaryWriter.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4107364c7434b2042ad647b28e322513
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 14
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianType.cs

@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace UnityFS
-{
-    public enum EndianType
-    {
-        LittleEndian,
-        BigEndian
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/EndianType.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 2f6cbab4506c18248b410a164be891d2
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 53
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/GlobalgamedatasPatcher.cs

@@ -1,53 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using UnityEngine;
-using UnityFS;
-
-namespace HybridCLR.Editor.UnityBinFileReader
-{
-    public class Dataunity3dPatcher
-    {
-
-        public void ApplyPatch(string dataunity3dFile, List<string> hotUpdateAssemblies)
-        {
-            var reader = new BundleFileReader();
-            using (var fs = new EndianBinaryReader(new MemoryStream(File.ReadAllBytes(dataunity3dFile))))
-            {
-                reader.Load(fs);
-            }
-
-            var info = reader.CreateBundleFileInfo();
-            //Debug.Log($"name:{info.signature} version:{info.version} files:{info.files.Count}");
-            //foreach (var file in info.files)
-            //{
-            //    Debug.Log($"file:{file.file} size:{file.data.Length}");
-            //}
-
-            var globalgamemanagersFile = info.files.Find(f => f.file == "globalgamemanagers");
-            //Debug.LogFormat("gobalgamemanagers origin size:{0}", globalgamemanagersFile.data.Length);
-
-            var ggdBinFile = new UnityBinFile();
-            ggdBinFile.LoadFromStream(new MemoryStream(globalgamemanagersFile.data));
-            ggdBinFile.AddScriptingAssemblies(hotUpdateAssemblies);
-            byte[] patchedGlobalgamedatasBytes = ggdBinFile.CreatePatchedBytes();
-            //Debug.LogFormat("gobalgamemanagers post patche size:{0}", patchedGlobalgamedatasBytes.Length);
-            globalgamemanagersFile.data = patchedGlobalgamedatasBytes;
-
-            var writer = new BundleFileWriter(info);
-            var output = new MemoryStream();
-            writer.Write(new EndianBinaryWriter(output));
-            Debug.Log($"patch file:{dataunity3dFile} size:{output.Length}");
-
-            //string bakFile = dataunity3dFile + ".bak";
-            //if (!File.Exists(bakFile))
-            //{
-            //    File.Copy(dataunity3dFile, bakFile);
-            //}
-            File.WriteAllBytes(dataunity3dFile, output.ToArray());
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/GlobalgamedatasPatcher.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 653a22d285c79f44a8113c5571b2d26b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 14
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Header.cs

@@ -1,14 +0,0 @@
-namespace UnityFS
-{
-    public class Header
-    {
-        public string signature;
-        public uint version;
-        public string unityVersion;
-        public string unityRevision;
-        public long size;
-        public uint compressedBlocksInfoSize;
-        public uint uncompressedBlocksInfoSize;
-        public ArchiveFlags flags;
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Header.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f121e0520fa65c240884d43fd00b3c2a
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 10
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Node.cs

@@ -1,10 +0,0 @@
-namespace UnityFS
-{
-    public class Node
-    {
-        public long offset;
-        public long size;
-        public uint flags;
-        public string path;
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/Node.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: e3eea8a6a32b6ac4ba609b39715e25e2
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 50
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ScriptingAssembliesJsonPatcher.cs

@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using UnityEngine;
-
-namespace UnityFS
-{
-    public class ScriptingAssembliesJsonPatcher
-    {
-        [Serializable]
-        private class ScriptingAssemblies
-        {
-            public List<string> names;
-            public List<int> types;
-        }
-
-        private string _file;
-        ScriptingAssemblies _scriptingAssemblies;
-
-        public void Load(string file)
-        {
-            _file = file;
-            string content = File.ReadAllText(file);
-            _scriptingAssemblies = JsonUtility.FromJson<ScriptingAssemblies>(content);
-        }
-
-        public void AddScriptingAssemblies(List<string> assemblies)
-        {
-            foreach (string name in assemblies)
-            {
-                if (!_scriptingAssemblies.names.Contains(name))
-                {
-                    _scriptingAssemblies.names.Add(name);
-                    _scriptingAssemblies.types.Add(16); // user dll type
-                    Debug.Log($"[PatchScriptAssembliesJson] add hotfix assembly:{name} to {_file}");
-                }
-            }
-        }
-
-        public void Save(string jsonFile)
-        {
-            string content = JsonUtility.ToJson(_scriptingAssemblies);
-
-            File.WriteAllText(jsonFile, content);
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/ScriptingAssembliesJsonPatcher.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4455f7304f8678f408dd6cf21734f55e
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 49
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/SevenZipHelper.cs

@@ -1,49 +0,0 @@
-using System;
-using System.IO;
-using SevenZip.Compression.LZMA;
-
-
-namespace UnityFS
-{
-    public static class ComparessHelper
-    {
-        public static MemoryStream Decompress7Zip(MemoryStream inStream)
-        {
-            var decoder = new Decoder();
-
-            inStream.Seek(0, SeekOrigin.Begin);
-            var newOutStream = new MemoryStream();
-
-            var properties = new byte[5];
-            if (inStream.Read(properties, 0, 5) != 5)
-                throw new Exception("input .lzma is too short");
-            long outSize = 0;
-            for (var i = 0; i < 8; i++)
-            {
-                var v = inStream.ReadByte();
-                if (v < 0)
-                    throw new Exception("Can't Read 1");
-                outSize |= ((long)(byte)v) << (8 * i);
-            }
-            decoder.SetDecoderProperties(properties);
-
-            var compressedSize = inStream.Length - inStream.Position;
-            decoder.Code(inStream, newOutStream, compressedSize, outSize, null);
-
-            newOutStream.Position = 0;
-            return newOutStream;
-        }
-
-        public static void Decompress7Zip(Stream compressedStream, Stream decompressedStream, long compressedSize, long decompressedSize)
-        {
-            var basePosition = compressedStream.Position;
-            var decoder = new Decoder();
-            var properties = new byte[5];
-            if (compressedStream.Read(properties, 0, 5) != 5)
-                throw new Exception("input .lzma is too short");
-            decoder.SetDecoderProperties(properties);
-            decoder.Code(compressedStream, decompressedStream, compressedSize - 5, decompressedSize, null);
-            compressedStream.Position = basePosition + compressedSize;
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/SevenZipHelper.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 6606a654e10b3ba48b76b566b903b353
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlock.cs

@@ -1,9 +0,0 @@
-namespace UnityFS
-{
-    public class StorageBlock
-    {
-        public uint compressedSize;
-        public uint uncompressedSize;
-        public StorageBlockFlags flags;
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlock.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 40dc58bec5631f14c9c17c8a486496d4
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlockFlags.cs

@@ -1,11 +0,0 @@
-using System;
-
-namespace UnityFS
-{
-    [Flags]
-    public enum StorageBlockFlags
-    {
-        CompressionTypeMask = 0x3f,
-        Streamed = 0x40
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StorageBlockFlags.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 79b9ed6799d3caf459cf2dfae5765a23
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 32
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamExtensions.cs

@@ -1,32 +0,0 @@
-using System.IO;
-
-namespace UnityFS
-{
-    public static class StreamExtensions
-    {
-        private const int BufferSize = 81920;
-
-        public static void CopyTo(this Stream source, Stream destination, long size)
-        {
-            var buffer = new byte[BufferSize];
-            for (var left = size; left > 0; left -= BufferSize)
-            {
-                int toRead = BufferSize < left ? BufferSize : (int)left;
-                int read = source.Read(buffer, 0, toRead);
-                destination.Write(buffer, 0, read);
-                if (read != toRead)
-                {
-                    return;
-                }
-            }
-        }
-
-        public static byte[] ReadAllBytes(this Stream source)
-        {
-            source.Position = 0;
-            var bytes = new byte[source.Length];
-            source.Read(bytes, 0, bytes.Length);
-            return bytes;
-        }
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamExtensions.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 2262fbf5672028a48b0c63821d7ff0c0
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamFile.cs

@@ -1,11 +0,0 @@
-using System.IO;
-
-namespace UnityFS
-{
-    public class StreamFile
-    {
-        public string path;
-        public string fileName;
-        public Stream stream;
-    }
-}

+ 0 - 11
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/StreamFile.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: fad7df04825c947489aad0d5d0c191a7
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 124
hybridclr_unity-2.x/hybridclr_unity-2.x/Editor/3rds/UnityFS/UnityBinFile.cs

@@ -1,124 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using UnityEngine;
-using System.Text;
-using System.Reflection;
-using System;
-using System.Linq;
-
-namespace UnityFS
-{
-    /// <summary>
-    /// Unity 生成的二进制文件(本代码不支持5.x之前的版本)
-    /// </summary>
-    public unsafe class UnityBinFile
-    {
-        /*
-         * MonoManager: idx: 6;
-         * type: metaData.types[objects[6].typeID]
-         */
-        public const int kMonoManagerIdx = 6;
-
-        public FileHeader header;
-        public MetaData metaData;
-        public ScriptsData scriptsData;
-
-        private Stream _originStream;
-
-        public void LoadFromStream(Stream source)
-        {
-            _originStream = source;
-            using (var br = new BinaryReader(source, Encoding.UTF8, true))
-            {
-                header.LoadFromStream(br);
-                // 按理说 metaData 应该新开一个buffer来避免加载时的对齐逻辑问题,但由于 sizeof(Header) = 20,已经对齐到4了,所以可以连续读
-                metaData.LoadFromStream(br, header.dataOffset);
-                scriptsData = metaData.GetScriptData(br);
-            }
-        }
-
-        public void Load(string path)
-        {
-            LoadFromStream(new MemoryStream(File.ReadAllBytes(path)));
-        }
-
-        public void AddScriptingAssemblies(List<string> assemblies)
-        {
-            foreach (string name in assemblies)
-            {
-                if (!scriptsData.dllNames.Contains(name))
-                {
-                    scriptsData.dllNames.Add(name);
-                    scriptsData.dllTypes.Add(16); // user dll type
-                    Debug.Log($"[PatchScriptAssembliesJson] add dll:{name} to globalgamemanagers");
-                }
-            }
-        }
-
-        public byte[] CreatePatchedBytes()
-        {
-            var fsR = _originStream;
-            fsR.Position = 0;
-            var brR = new BinaryReader(fsR, Encoding.UTF8, true);
-
-            var ms = new MemoryStream((int)(header.fileSize * 1.5f));
-            var bw = new BinaryWriter(ms, Encoding.UTF8, true);
-
-            /*
-             * 开始写入data
-             * dll名称列表存储于 data 区段,修改其数据并不会影响 MetaData 大小,因此 dataOffset 不会改变
-             */
-            ms.Position = header.dataOffset;
-
-            Dictionary<long, ObjectInfo> newObjInfos = new Dictionary<long, ObjectInfo>();
-            foreach (var kv in metaData.objects)
-            {
-                long objID = kv.Key;
-                ObjectInfo objInfo = kv.Value;
-
-                byte[] buff = new byte[objInfo.size];
-                fsR.Position = objInfo.realPos;
-                brR.Read(buff, 0, buff.Length);
-
-
-                {// unity 的数据偏移貌似会对齐到 8
-                    int newPos = (((int)ms.Position + 7) >> 3) << 3;
-                    int gapSize = newPos - (int)ms.Position;
-
-                    for (int i = 0; i < gapSize; i++)
-                        bw.Write((byte)0);
-
-                    objInfo.dataPos = (uint)ms.Position - header.dataOffset; // 重定位数据偏移
-                }
-
-                if (objID != kMonoManagerIdx)
-                    bw.Write(buff, 0, buff.Length);
-                else
-                    objInfo.size = (uint)scriptsData.SaveToStream(bw);
-
-                newObjInfos.Add(objID, objInfo);
-            }
-
-            metaData.objects = newObjInfos;
-            header.fileSize = (uint)ms.Position;
-
-            ms.Position = 0;
-            header.SaveToStream(bw);
-            metaData.SaveToStream(bw);
-
-            brR.Close();
-
-            // 写入新文件
-            ms.Position = 0;
-            return ms.ToArray();
-        }
-
-        public void Save(string newPath)
-        {
-            byte[] patchedBytes = CreatePatchedBytes();
-            File.WriteAllBytes(newPath, patchedBytes);
-        }
-    }
-
-}

Некоторые файлы не были показаны из-за большого количества измененных файлов