From b602ef34903c27266c2f8ebaeef055616bd40421 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 01 十一月 2018 18:17:27 +0800
Subject: [PATCH] 3335 资源打包使用7zip压缩

---
 Assets/Plugins/iOS/bitcode.meta                                        |    9 
 Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip            |    0 
 Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta                        |    6 
 Assets/Plugins/x86_64/liblzma.so.meta                                  |   78 ++
 Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma                   |    0 
 Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so                     |    0 
 Assets/Plugins/liblzma.bundle/Contents.meta                            |    7 
 Assets/Plugins/Android/libs/x86/liblzma.so                             |    0 
 Assets/Plugins/SevenZip/lzma.cs.meta                                   |    8 
 Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta |    8 
 Assets/Plugins/iOS/liblzma.a                                           |    0 
 Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta                    |    4 
 Assets/Plugins/x86_64.meta                                             |    7 
 Assets/Plugins/x86/liblzma.dll.meta                                    |   78 ++
 Assets/Plugins/iOS/bitcode/libbrotli.meta                              |    9 
 Assets/Plugins/iOS/bitcode/liblz4.meta                                 |    9 
 Assets/Plugins/iOS/liblzma.a.aggresive.zip                             |    0 
 Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip               |    0 
 Assets/Plugins/x86/liblzma.dll                                         |    0 
 Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta                |    4 
 Assets/Plugins/iOS/bitcode/liblzma.meta                                |    9 
 Assets/Plugins/iOS/liblzma.a.fastest.zip                               |    0 
 Assets/Plugins/SevenZip/lzma.cs                                        |  839 +++++++++++++++++++++++++++++++
 Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip                  |    0 
 Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta       |    8 
 Assets/Plugins/iOS/liblzma.smallest.zip                                |    0 
 Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta             |    8 
 Assets/Plugins/liblzma.bundle/Contents/MacOS.meta                      |    7 
 Assets/Plugins/iOS/liblzma.a.fastest.zip.meta                          |    6 
 Assets/Plugins/x86/liblzma.so                                          |    0 
 Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta              |    8 
 Assets/Plugins/x86.meta                                                |    9 
 Assets/Plugins/x86_64/liblzma.dll                                      |    0 
 Assets/Plugins/x86/liblzma.so.meta                                     |   78 ++
 Assets/Plugins/SevenZip.meta                                           |    9 
 Assets/Plugins/Android/libs/x86_64/liblzma.zip                         |    0 
 Assets/Plugins/Android/libs/x86/liblzma.so.meta                        |    4 
 Assets/Plugins/iOS/liblzma.a-simulator.zip                             |    0 
 Assets/Plugins/liblzma.bundle.meta                                     |  105 +++
 Assets/Plugins/iOS/liblzma.a-simulator.zip.meta                        |    6 
 Assets/Plugins/iOS/liblzma.smallest.zip.meta                           |    6 
 Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta          |    8 
 Assets/test7zip.cs.meta                                                |    4 
 Assets/Plugins/x86_64/liblzma.so                                       |    0 
 Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta                 |    8 
 Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip      |    0 
 Assets/Plugins/Android/libs/x86_64.meta                                |    7 
 Assets/Plugins/iOS/liblzma.a.meta                                      |   21 
 Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta                 |    6 
 Assets/Plugins/liblzma.bundle/Contents/Info.plist                      |   46 +
 /dev/null                                                              |   12 
 Assets/Plugins/x86_64/liblzma.dll.meta                                 |   78 ++
 Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip                      |    0 
 Assets/Plugins/iOS/bitcode/libzipw.meta                                |    9 
 Assets/Plugins/iOS/bitcode/libfastlz.meta                              |    9 
 Assets/test7zip.cs                                                     |   33 +
 56 files changed, 1,556 insertions(+), 14 deletions(-)

diff --git a/Assets/Editor/Tool/SevenZipUtility.cs b/Assets/Editor/Tool/SevenZipUtility.cs
deleted file mode 100644
index f21cca8..0000000
--- a/Assets/Editor/Tool/SevenZipUtility.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.IO;
-
-public class SevenZipUtility
-{
-    static string m_SevenZipToolPath = string.Empty;
-    static string sevenZipToolPath {
-        get {
-            if (string.IsNullOrEmpty(m_SevenZipToolPath))
-            {
-                if (Directory.Exists("C:/Program Files/7-Zip"))
-                {
-                    m_SevenZipToolPath = "C:/Program Files/7-Zip";
-                }
-                else
-                {
-                    m_SevenZipToolPath = "C:/Program Files (x86)/7-Zip";
-                }
-            }
-
-            return m_SevenZipToolPath;
-        }
-    }
-
-    public static void Compress(string from, string to)
-    {
-        if (File.Exists(to))
-        {
-            File.Delete(to);
-        }
-
-        var cmd = string.Format("\"{0}\\7z\" a {1} {2} -mx9", sevenZipToolPath, to, from);
-        SystemCMD.RunCmd(cmd);
-    }
-
-    public static CompressProgress CompressStreamingAssets()
-    {
-        var files = new List<FileInfo>();
-        FileExtersion.GetAllDirectoryFileInfos(Application.streamingAssetsPath, files);
-
-        var progress = new CompressProgress();
-        progress.total = files.Count;
-
-        foreach (var item in files)
-        {
-            var fullName = item.FullName;
-            var extension = Path.GetExtension(item.FullName);
-            if (extension == ".meta")
-            {
-                continue;
-            }
-
-            var to = string.Empty;
-            if (string.IsNullOrEmpty(extension))
-            {
-                to = fullName + ".7z";
-            }
-            else
-            {
-                to = fullName.Replace(extension, ".7z");
-            }
-
-            Compress(fullName, to);
-            progress.complete++;
-        }
-
-        return progress;
-    }
-
-    public class CompressProgress
-    {
-        public int total;
-        public int complete;
-        public float progress {
-            get {
-                return complete / (float)total;
-            }
-        }
-
-        public bool done {
-            get {
-                return complete >= total;
-            }
-        }
-    }
-
-}
diff --git a/Assets/Editor/Tool/SystemCMD.cs b/Assets/Editor/Tool/SystemCMD.cs
deleted file mode 100644
index 33eb7d4..0000000
--- a/Assets/Editor/Tool/SystemCMD.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class SystemCMD
-{
-    /// <summary>
-    /// 璋冪敤缁堢鎵ц鍛戒护
-    /// </summary>
-    /// <param name="command"></param>
-    /// <returns></returns>
-    public static string RunCmd(string command)
-    {
-        System.Diagnostics.Process p = new System.Diagnostics.Process();
-        p.StartInfo.FileName = "cmd.exe";           //纭畾绋嬪簭鍚�
-        p.StartInfo.Arguments = "/c " + command;    //纭畾绋嬪紡鍛戒护琛�
-        p.StartInfo.UseShellExecute = false;        //Shell鐨勪娇鐢�
-        p.StartInfo.RedirectStandardInput = true;   //閲嶅畾鍚戣緭鍏�
-        p.StartInfo.RedirectStandardOutput = true; //閲嶅畾鍚戣緭鍑�
-        p.StartInfo.RedirectStandardError = true;   //閲嶅畾鍚戣緭鍑洪敊璇�
-        p.StartInfo.CreateNoWindow = true;          //璁剧疆缃笉鏄剧ず绀虹獥鍙�
-        p.Start();
-        p.WaitForExit();
-        string err = p.StandardError.ReadToEnd();
-        string standoutput = p.StandardOutput.ReadToEnd();
-        if (string.IsNullOrEmpty(err))
-        {
-            return standoutput;
-        }
-        else
-        {
-            return err;        //杈撳嚭鍑烘祦鍙栧緱鍛戒护琛岀粨鏋滄灉
-        }
-    }
-
-}
diff --git a/Assets/Editor/Tool/SystemCMD.cs.meta b/Assets/Editor/Tool/SystemCMD.cs.meta
deleted file mode 100644
index 2936b62..0000000
--- a/Assets/Editor/Tool/SystemCMD.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 6de2d4b13bfadaf419c682196b36e001
-timeCreated: 1541043601
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so
new file mode 100644
index 0000000..8234bec
--- /dev/null
+++ b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
new file mode 100644
index 0000000..c02a2ed
--- /dev/null
+++ b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 47f1efaba9ae5384e860af5a2f4b81f4
+DefaultImporter:
+  userData: 
diff --git a/Assets/Plugins/Android/libs/x86/liblzma.so b/Assets/Plugins/Android/libs/x86/liblzma.so
new file mode 100644
index 0000000..b8db604
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/Android/libs/x86/liblzma.so.meta b/Assets/Plugins/Android/libs/x86/liblzma.so.meta
new file mode 100644
index 0000000..3956efb
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86/liblzma.so.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 30173cd337b2c3342807248d739cfef5
+DefaultImporter:
+  userData: 
diff --git a/Assets/Plugins/Android/libs/x86_64.meta b/Assets/Plugins/Android/libs/x86_64.meta
new file mode 100644
index 0000000..1676797
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1c82f02f593b1ea46b1f621db7963d42
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/Android/libs/x86_64/liblzma.zip b/Assets/Plugins/Android/libs/x86_64/liblzma.zip
new file mode 100644
index 0000000..a5a0a21
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64/liblzma.zip
Binary files differ
diff --git a/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta b/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta
new file mode 100644
index 0000000..b60ebb8
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: b33b02668b8329341b048c388739b940
+DefaultImporter:
+  userData: 
diff --git a/Assets/Plugins/SevenZip.meta b/Assets/Plugins/SevenZip.meta
new file mode 100644
index 0000000..3672382
--- /dev/null
+++ b/Assets/Plugins/SevenZip.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 12b6aa1b020583d4da0e4a2bf52bb7ff
+folderAsset: yes
+timeCreated: 1541063894
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/SevenZip/lzma.cs b/Assets/Plugins/SevenZip/lzma.cs
new file mode 100644
index 0000000..e3de0b5
--- /dev/null
+++ b/Assets/Plugins/SevenZip/lzma.cs
@@ -0,0 +1,839 @@
+using System;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using System.Collections.Generic;
+using System.IO;
+
+
+#if (UNITY_WSA_8_1 ||  UNITY_WP_8_1 || UNITY_WINRT_8_1) && !UNITY_EDITOR
+ using File = UnityEngine.Windows.File;
+ #else
+ using File = System.IO.File;
+ #endif
+ 
+#if NETFX_CORE
+	#if UNITY_WSA_10_0
+		using System.IO.IsolatedStorage;
+		using static System.IO.Directory;
+		using static System.IO.File;
+		using static System.IO.FileStream;
+	#endif
+#endif
+
+
+public class lzma {
+
+	//if you want to be able to call the functions: get7zinfo, get7zSize, decode2Buffer from a thread set this string before to the Application.persistentDataPath !
+	public static string persitentDataPath="";
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+
+    internal static int[] props = new int [7];
+    internal static bool defaultsSet = false;
+
+    //0 = level, /* 0 <= level <= 9, default = 5 */
+	//1 = dictSize, /* use (1 << N) or (3 << N). 4 KB < dictSize <= 128 MB */
+	//2 = lc, /* 0 <= lc <= 8, default = 3  */
+	//3 = lp, /* 0 <= lp <= 4, default = 0  */
+	//4 = pb, /* 0 <= pb <= 4, default = 2  */
+	//5 = fb,  /* 5 <= fb <= 273, default = 32 */
+	//6 = numThreads /* 1 or 2, default = 2 */
+
+	//A function that sets the compression properties for the lzma compressor. Will affect the lzma alone file and the lzma buffer compression.
+	//A simple usage of this function is to call it only with the 1st parameter that sets the compression level: setProps(9);
+	//
+	//Multithread safe advice: call this function before starting any thread operations !!!
+    public static void setProps(int level = 5, int dictSize = 16777216, int lc = 3, int lp = 0, int pb = 2, int fb = 32, int numThreads = 2) {
+        defaultsSet = true;
+        props[0] = level;
+        props[1] = dictSize;
+        props[2] = lc;
+        props[3] = lp;
+        props[4] = pb;
+        props[5] = fb;
+        props[6] = numThreads;
+    }
+#endif
+
+
+#if (UNITY_IOS || UNITY_WEBGL || UNITY_IPHONE) && !UNITY_EDITOR
+
+		#if(!UNITY_WEBGL)
+			[DllImport("__Internal")]
+			public static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+			[DllImport("__Internal")]
+			private static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths,  string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+		#endif
+
+		[DllImport("__Internal")]
+		private static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("__Internal")]
+		private static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("__Internal")]
+		internal static extern int lzmaUtil(bool encode, string inPath, string outPath, IntPtr Props);
+		[DllImport("__Internal")]
+		internal static extern int decode2Buf(string filePath, string entry,  IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("__Internal")]
+		internal static extern void _releaseBuffer(IntPtr buffer);	
+		[DllImport("__Internal")]
+		internal static extern IntPtr Lzma_Compress( IntPtr buffer, int bufferLength, bool makeHeader, ref int v, IntPtr Props);
+		[DllImport("__Internal")]
+		internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize,  IntPtr outbuffer,bool useHeader);
+#endif
+
+#if UNITY_5_4_OR_NEWER
+	#if (UNITY_ANDROID || UNITY_STANDALONE_LINUX) && (!UNITY_EDITOR || UNITY_EDITOR_LINUX)
+		private const string libname = "lzma";
+	#elif UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
+		private const string libname = "liblzma";
+	#endif
+#else
+	#if (UNITY_ANDROID || UNITY_STANDALONE_LINUX) && !UNITY_EDITOR 
+		private const string libname = "lzma";
+	#endif
+	#if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
+		private const string libname = "liblzma";
+	#endif
+#endif
+
+#if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX
+		#if (UNITY_STANDALONE_OSX  || UNITY_STANDALONE_LINUX || UNITY_ANDROID || UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX)&& !UNITY_EDITOR_WIN
+			//set permissions of a file in user, group, other. Each string should contain any or all chars of "rwx".
+			//returns 0 on success
+			[DllImport(libname, EntryPoint = "lsetPermissions")]
+			internal static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+		#endif
+        [DllImport(libname, EntryPoint = "decompress7zip")]
+		internal static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths,  string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport(libname, EntryPoint = "decompress7zip2")]
+		internal static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport(libname, EntryPoint = "_getSize")]
+		internal static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport(libname, EntryPoint = "lzmaUtil")]
+		internal static extern int lzmaUtil(bool encode, string inPath, string outPath, IntPtr Props);
+		[DllImport(libname, EntryPoint = "decode2Buf")]
+		internal static extern int decode2Buf(string filePath, string entry,  IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport(libname, EntryPoint = "_releaseBuffer")]
+		internal static extern void _releaseBuffer(IntPtr buffer);
+		[DllImport(libname, EntryPoint = "Lzma_Compress")]
+		internal static extern IntPtr Lzma_Compress( IntPtr buffer, int bufferLength, bool makeHeader, ref int v, IntPtr Props);
+		[DllImport(libname, EntryPoint = "Lzma_Uncompress")]
+		internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize, IntPtr outbuffer,bool useHeader);
+#endif
+
+#if (UNITY_WP_8_1 || UNITY_WSA) && !UNITY_EDITOR
+		#if (UNITY_IOS  || UNITY_IPHONE)
+			[DllImport("__Internal")]
+			internal static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+		#endif
+        #if UNITY_WSA_10_0
+            [DllImport("liblzma", EntryPoint = "decompress7zip")]
+			internal static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths,  string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+        #endif
+		[DllImport("liblzma", EntryPoint = "decompress7zip2")]
+		internal static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("liblzma", EntryPoint = "_getSize")]
+		internal static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("liblzma", EntryPoint = "decode2Buf")]
+		internal static extern int decode2Buf(string filePath, string entry,  IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+		[DllImport("liblzma", EntryPoint = "Lzma_Uncompress")]
+		internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize, IntPtr outbuffer,bool useHeader);
+#endif
+
+
+	// set permissions of a file in user, group, other.
+	// Each string should contain any or all chars of "rwx".
+	// returns 0 on success
+	public static int setFilePermissions(string filePath, string _user, string _group, string _other){
+		#if (UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX || UNITY_ANDROID || UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX || UNITY_IOS || UNITY_IPHONE) && !UNITY_EDITOR_WIN
+			return lsetPermissions(filePath, _user, _group, _other);
+		#else
+			return -1;
+		#endif
+	}
+
+    // An integer variable to store the total number of files in a 7z archive, excluding the folders.
+    public static int trueTotalFiles = 0;
+
+    //ERROR CODES:
+    //  1 : OK
+    //	2 : Could not find requested file in archive
+    // -1 : Could not open input(7z) file
+    // -2 : Decoder doesn't support this archive
+    // -3 : Can not allocate memory
+    // -4 : CRC error of 7z file
+    // -5 : Unknown error
+    // -6 : Can not open output file (usually when the path to write to, is invalid)
+    // -7 : Can not write output file
+    // -8 : Can not close output file
+
+    //The most common use of this library is to download a 7z file in your Application.persistentDataPath directory
+    //and decompress it in a folder that you want.
+
+    //int lz=lzma.doDecompress7zip(Application.persistentDataPath+"/myCompresedFile.7z",Application.persistentDataPath+"/myUncompressedFiles/");
+
+    //WSA8.1 does not support large files.
+
+	//filePath			: the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+	//exctractionPath	: the path in where you want your files to be extracted
+    //progress          : a single item integer array to get the progress of the extracted files (use this function when calling from a separate thread, otherwise call the 2nd implementation)
+    //                  : (for ios this integer is not properly updated. So we use the lzma.getProgressCount() function to get the progress. See example.)
+	//largeFiles		: set this to true if you are extracting files larger then 30-40 Mb. It is slower though but prevents crashing your app when extracting large files!
+	//fullPaths			: set this to true if you want to keep the folder structure of the 7z file.
+	//entry				: set the name of a single file file you want to extract from your archive. If the file resides in a folder, the full path should be added.
+	//					   (for example  game/meshes/small/table.mesh )
+	//FileBuffer		: A buffer that holds a 7zip file. When assigned the function will decompress from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+    //use this function from a separate thread to get the progress  of the extracted files in the referenced 'progress' integer.
+    //
+	public static int doDecompress7zip(string filePath, string exctractionPath,  int [] progress, bool largeFiles=false, bool fullPaths=false, string entry=null, byte[] FileBuffer=null){
+
+		int res = 0;
+		GCHandle ibuf = GCHandle.Alloc(progress, GCHandleType.Pinned);
+
+		#if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+
+		if(FileBuffer != null) {
+			GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+			
+				
+			if (largeFiles){
+				res = decompress7zip(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+			}else{
+				res =  decompress7zip2(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+			}
+				fbuf.Free(); ibuf.Free(); return res;
+		} else {
+			if (largeFiles){
+				res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}else{
+				res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}
+		}
+		
+		#endif
+		
+ 		#if (!UNITY_WSA && !UNITY_WEBGL && !UNITY_EDITOR_OSX && !UNITY_STANDALONE_LINUX && !UNITY_ANDROID && !UNITY_IOS)  || UNITY_EDITOR_WIN || UNITY_WSA_10_0
+            if (largeFiles){
+				res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}else{
+				res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}
+		#endif
+
+		#if (UNITY_WSA_8_1 ||  UNITY_WP_8_1 || UNITY_WINRT_8_1 || UNITY_WEBGL) && !UNITY_EDITOR
+			res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+			ibuf.Free(); return res;
+		#endif
+    }
+
+    //same as above only the progress integer is a local variable.
+    //use this when you don't want to get the progress of the extracted files and when not calling the function from a separate thread.
+    public static int doDecompress7zip(string filePath, string exctractionPath,  bool largeFiles = false, bool fullPaths = false, string entry = null, byte[] FileBuffer=null)
+    {
+        //make a check if the last '/' exists at the end of the exctractionPath and add it if it is missing
+        if (@exctractionPath.Substring(@exctractionPath.Length - 1, 1) != "/") { @exctractionPath += "/"; }
+
+        int[] progress = new int[1];
+		GCHandle ibuf = GCHandle.Alloc(progress, GCHandleType.Pinned);
+		int res = 0;
+		
+		#if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+		if(FileBuffer != null) {
+			GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+			
+			
+			if (largeFiles){
+				res = decompress7zip(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+			}else{
+				res = decompress7zip2(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+			}
+				fbuf.Free(); ibuf.Free(); return res;
+		} else {
+			if (largeFiles){
+				res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}else{
+				res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+			}
+		}
+		#endif
+		
+		#if (!UNITY_WSA && !UNITY_WEBGL && !UNITY_EDITOR_OSX && !UNITY_STANDALONE_LINUX  && !UNITY_ANDROID && !UNITY_IOS) || UNITY_EDITOR_WIN || UNITY_WSA_10_0
+			if (largeFiles){
+				res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+            }
+            else{
+				res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+				ibuf.Free(); return res;
+            }
+		#endif
+
+		#if (UNITY_WSA_8_1 ||  UNITY_WP_8_1 || UNITY_WINRT_8_1  || UNITY_WEBGL) && !UNITY_EDITOR
+			res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+			ibuf.Free(); return res;
+		#endif
+    }
+
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+    //ERROR CODES (for both encode/decode LzmaUtil functions):
+    //   1 : OK
+    // -10 : Can not read input file
+    // -11 : Can not write output file
+    // -12 : Can not allocate memory
+    // -13 : Data error
+
+    //This function encodes a single archive in lzma alone format.
+    //inPath	: the file to be encoded. (use full path + file name)
+    //outPath	: the .lzma file that will be produced. (use full path + file name)
+	//
+	//You can set the compression properties by calling the setProps function before.
+	//setProps(9) for example will set compression evel to highest level.
+    public static int LzmaUtilEncode(string inPath, string outPath){
+        if (!defaultsSet) setProps();
+        GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+		int res = lzmaUtil(true, @inPath, @outPath, prps.AddrOfPinnedObject());
+        prps.Free();
+        return res;
+	}
+
+
+	//This function decodes a single archive in lzma alone format.
+	//inPath	: the .lzma file that will be decoded. (use full path + file name)
+	//outPath	: the decoded file. (use full path + file name)
+	public static int LzmaUtilDecode(string inPath, string outPath){
+		return lzmaUtil(false, @inPath, @outPath, IntPtr.Zero);
+	}
+
+#endif
+
+	//Lists get filled with filenames (including path if the file is in a folder) and uncompressed file sizes
+	public static List <string> ninfo = new List<string>();//filenames
+	public static List <long> sinfo = new List<long>();//file sizes
+
+    //this function fills the ArrayLists with the filenames and file sizes that are in the 7zip file
+    //returns			: the total size in bytes of the files in the 7z archive 
+    //
+    //filePath			: the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+    //tempPath			: (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+    //					: this is useful when your 7z archive resides in a read only location.
+    //					: the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+	//FileBuffer		: A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+    //
+    //trueTotalFiles is an integer variable to store the total number of files in a 7z archive, excluding the folders.
+    public static long get7zInfo(string filePath, string tempPath = null, byte[] FileBuffer = null){
+
+        ninfo.Clear(); sinfo.Clear();
+        trueTotalFiles = 0;
+        int res = -1;
+        string logPath = "";
+
+		#if !NETFX_CORE
+			if (@tempPath == null) {
+				if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else  logPath = @Application.persistentDataPath + "/sevenZip.log"; 
+			 }else { logPath = @tempPath; }
+		#endif
+		//for WSA, logPath should always be: Application.persistentDataPath + "/sevenZip.log"; 
+		#if NETFX_CORE
+			#if UNITY_WSA_10_0
+				if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else  logPath = @Application.persistentDataPath + "/sevenZip.log";
+			#endif
+			#if UNITY_WSA_8_1 ||  UNITY_WP_8_1 || UNITY_WINRT_8_1
+				if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else  logPath = @UnityEngine.Windows.Directory.localFolder + "/sevenZip.log";
+			#endif
+		#endif
+
+		if (File.Exists(logPath + ".txt")) File.Delete(logPath + ".txt");
+
+		#if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+          if(FileBuffer != null) {
+                GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+                res = _getSize(null, logPath,  fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+                fbuf.Free();
+            }else {
+                res = _getSize(@filePath, logPath,  IntPtr.Zero, 0);
+            }
+        #else
+            res = _getSize(@filePath, logPath,  IntPtr.Zero, 0);     
+        #endif   
+
+        if (res == -1) { /*Debug.Log("Input file not found.");*/ return -1; }
+
+		if (!File.Exists(logPath + ".txt")) {/* Debug.Log("Info file not found.");*/ return -3; }
+
+		#if !NETFX_CORE
+			StreamReader r = new StreamReader(logPath + ".txt");
+		#endif
+		#if NETFX_CORE
+			#if UNITY_WSA_10_0
+			IsolatedStorageFile ipath = IsolatedStorageFile.GetUserStoreForApplication();
+			StreamReader r = new StreamReader(new IsolatedStorageFileStream("sevenZip.log.txt", FileMode.Open, ipath));
+			#endif
+			#if UNITY_WSA_8_1 ||  UNITY_WP_8_1 || UNITY_WINRT_8_1
+			var data = UnityEngine.Windows.File.ReadAllBytes(logPath + ".txt");
+			string ss = System.Text.Encoding.UTF8.GetString(data,0,data.Length);
+			StringReader r = new StringReader(ss);
+			#endif
+		#endif
+
+        string line;
+        string[] rtt;
+        long t = 0, sum = 0;
+		
+		while ((line = r.ReadLine()) != null)
+		{
+			rtt = line.Split('|');
+			ninfo.Add(rtt[0]);
+			long.TryParse(rtt[1], out t);
+			sum += t;
+			sinfo.Add(t);
+			if (t > 0) trueTotalFiles++;
+		}
+
+		#if !NETFX_CORE
+			r.Close();
+		#endif
+		r.Dispose();
+		File.Delete(logPath + ".txt");
+
+        return sum;
+    }
+	
+	
+	//this function returns the uncompressed file size of a given file in the 7z archive if specified,
+	//otherwise it will return the total uncompressed size of all the files in the archive.
+	//
+	//If you don't fill the filePath parameter it will assume that the get7zInfo function has already been called.
+	//
+	//
+	//filePath			: the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+	// 					: if you call the function with filePath as null, it will try to find file sizes from the last call.
+	//fileName 			: the file name we want to get the file size (if it resides in a folder add the folder path also)
+	//tempPath			: (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+	//					: this is useful when your 7z archive resides in a read only location.
+    //					: the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+	//FileBuffer		: A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+	public static long get7zSize( string filePath=null, string fileName=null, string tempPath=null, byte[] FileBuffer=null){
+		
+		if(filePath!=null){
+			if(get7zInfo(@filePath, @tempPath, FileBuffer) < 0){ return -1;}
+		}
+
+		if(ninfo == null){
+			if(ninfo.Count==0) { return -1; }
+		}
+
+		long sum=0;
+
+		if(fileName!=null){
+			for(int i=0; i<ninfo.Count; i++){
+				if(ninfo[i].ToString() == fileName){
+					return (long)sinfo[i];
+				}
+			}
+		}else{
+			for(int i=0; i<ninfo.Count; i++){
+				sum += (long)sinfo[i];
+			}
+			return sum;
+		}
+		return -1;//nothing was found
+	}
+
+
+
+	//A function to decode a specific archive in a 7z archive to a byte buffer
+	//
+	//filePath		: the full path to the 7z archive 
+	//entry			: the file name to decode to a buffer. If the file resides in a folder, the full path should be used.
+	//tempPath		: (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+	//				: this is useful when your 7z archive resides in a read only location.
+    //				: the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+	//FileBuffer	: A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+	public static byte[] decode2Buffer(  string filePath, string entry, string tempPath=null, byte[] FileBuffer=null){
+		
+		int bufs = (int)get7zSize( @filePath, entry, @tempPath,FileBuffer );
+        if (bufs <= 0) return null;//entry error or it does not exist
+        byte[] nb = new byte[bufs];
+        int res = 0;
+
+        GCHandle dec2buf = GCHandle.Alloc(nb, GCHandleType.Pinned);
+
+		#if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+          if(FileBuffer != null) {
+                GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+                res = decode2Buf(null, entry, dec2buf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+                fbuf.Free();
+            }else {
+                res = decode2Buf(@filePath, entry, dec2buf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+            }
+        #else
+            res = decode2Buf(@filePath, entry, dec2buf.AddrOfPinnedObject(), IntPtr.Zero, 0);    
+        #endif
+
+        dec2buf.Free();
+		if(res==1){ return nb;}
+		else {nb=null; return null; }
+
+    }
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+
+    //This function encodes inBuffer to lzma alone format into the outBuffer provided.
+    //The buffer can be saved also into a file and can be opened by applications that opens the lzma alone format.
+    //This buffer can be uncompressed by the decompressBuffer function.
+    //Returns true if success
+    //if makeHeader==false then the lzma 13 bytes header will not be added to the buffer.
+	//
+	//You can set the compression properties by calling the setProps function before.
+	//setProps(9) for example will set compression level to the highest level.
+	//
+    public static  bool compressBuffer(byte[] inBuffer, ref byte[] outBuffer, bool makeHeader=true){
+
+        if (!defaultsSet) setProps();
+        GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		IntPtr ptr;
+        
+        int res = 0;
+
+		ptr = Lzma_Compress(cbuf.AddrOfPinnedObject(), inBuffer.Length, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+		cbuf.Free(); prps.Free();
+
+		if(res==0 || ptr==IntPtr.Zero){_releaseBuffer(ptr); return false;}
+
+		Array.Resize(ref outBuffer,res);
+		Marshal.Copy(ptr, outBuffer, 0, res);
+
+		_releaseBuffer(ptr);
+
+		return true;
+	}
+
+
+    //same as the above function, only it compresses a part of the input buffer.
+	//
+	//inBufferPartialLength: the size of the input buffer that should be compressed
+	//inBufferPartialIndex:  the offset of the input buffer from where the compression will start
+	//
+	public static bool compressBufferPartial(byte[] inBuffer, int inBufferPartialIndex, int inBufferPartialLength, ref byte[] outBuffer, bool makeHeader = true)
+    {
+		if(inBufferPartialIndex + inBufferPartialLength > inBuffer.Length) return false;
+
+        if (!defaultsSet) setProps();
+        GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+        GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+
+        IntPtr ptr;
+        IntPtr ptrPartial;
+
+        int res = 0;
+
+        ptrPartial = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + inBufferPartialIndex);
+
+        ptr = Lzma_Compress(ptrPartial, inBufferPartialLength, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+        cbuf.Free();
+
+        if (res == 0 || ptr == IntPtr.Zero) { _releaseBuffer(ptr); return false; }
+
+        Array.Resize(ref outBuffer, res);
+        Marshal.Copy(ptr, outBuffer, 0, res);
+		 
+        _releaseBuffer(ptr);
+
+        return true;
+    }
+
+
+	//same as compressBufferPartial, only this function will compress the data into a fixed size buffer
+	//the compressed size is returned so you can manipulate it at will.
+	public static int compressBufferPartialFixed(byte[] inBuffer, int inBufferPartialIndex, int inBufferPartialLength, ref byte[] outBuffer, bool safe = true,  bool makeHeader = true)
+    {
+		if(inBufferPartialIndex + inBufferPartialLength > inBuffer.Length) return 0;
+
+        if (!defaultsSet) setProps();
+        GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+        GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+
+        IntPtr ptr;
+        IntPtr ptrPartial;
+
+        int res = 0;
+
+        ptrPartial = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + inBufferPartialIndex);
+
+        ptr = Lzma_Compress(ptrPartial, inBufferPartialLength, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+        cbuf.Free();
+
+        if (res == 0 || ptr == IntPtr.Zero) { _releaseBuffer(ptr); return 0; }
+
+		//if the compressed buffer is larger then the fixed size buffer we use:
+		//1. then write only the data that fit in it.
+		//2. or we return 0. 
+		//It depends on if we set the safe flag to true or not.
+		if(res>outBuffer.Length) {
+			if(safe){ _releaseBuffer(ptr); return 0; } else {  res = outBuffer.Length; }
+		}
+
+        Marshal.Copy(ptr, outBuffer, 0, res);
+		 
+        _releaseBuffer(ptr);
+
+        return res;
+    }
+
+
+	//same as the compressBuffer function, only this function will put the result in a fixed size buffer to avoid memory allocations.
+	//the compressed size is returned so you can manipulate it at will.
+	public static int compressBufferFixed(byte[] inBuffer, ref byte[] outBuffer, bool safe = true, bool makeHeader=true){
+
+        if (!defaultsSet) setProps();
+        GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		IntPtr ptr;
+        
+        int res = 0;
+
+		ptr = Lzma_Compress(cbuf.AddrOfPinnedObject(), inBuffer.Length, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+		cbuf.Free(); prps.Free();
+		if(res==0 || ptr==IntPtr.Zero){_releaseBuffer(ptr); return 0;}
+
+		//if the compressed buffer is larger then the fixed size buffer we use:
+		//1. then write only the data that fit in it.
+		//2. or we return 0. 
+		//It depends on if we set the safe flag to true or not.
+		if(res>outBuffer.Length) {
+			if(safe){ _releaseBuffer(ptr); return 0; } else {  res = outBuffer.Length; }
+		}
+
+		Marshal.Copy(ptr, outBuffer, 0, res);
+
+		_releaseBuffer(ptr);
+
+		return res;
+	}
+
+#endif
+
+
+
+
+
+	//This function will decompress a compressed asset bundle.
+	//It finds the magic number of the lzma format and extracts from there.
+	//
+	//inBuffer:		the buffer that stores a compressed asset bundle.
+	//outBuffer:	a referenced buffer where the asset bundle will be uncompressed.
+    //The error codes
+    /*
+        OK 0
+		
+        ERROR_DATA 1
+        ERROR_MEM 2
+        ERROR_UNSUPPORTED 4
+        ERROR_PARAM 5
+        ERROR_INPUT_EOF 6
+        ERROR_OUTPUT_EOF 7
+        ERROR_FAIL 11
+        ERROR_THREAD 12
+    */
+	public static  int decompressAssetBundle(byte[] inBuffer,  ref byte[] outbuffer){
+
+		int offset = 0;
+		
+		for(int i=0; i<inBuffer.Length; i++) {
+			if(i>1024) break;
+			if(inBuffer[i] == 0x5d) {
+				if(inBuffer[i+1] == 0x00) {
+					if(inBuffer[i+2] == 0x00) {
+						if(inBuffer[i+3] == 0x08) {
+							offset = i;  break; 
+						}
+					}
+				}
+			}
+		}
+		
+		if(offset==0 || offset>1024) return 4;
+
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		IntPtr ptrBundle = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + offset);
+		int uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,offset+5);
+		if(uncompressedSize<0) { cbuf.Free(); return 4; }
+		Array.Resize(ref outbuffer, uncompressedSize);
+		GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+		
+		int res = Lzma_Uncompress(ptrBundle, inBuffer.Length-offset, uncompressedSize, obuf.AddrOfPinnedObject(), true);
+
+		cbuf.Free();
+		obuf.Free();
+
+		//if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return res; }
+	
+		return res;		
+	}
+
+
+	/*
+	//this will decompress an lzma alone format file.
+	public static  int decompressLzmaAlone(string inFile,  string outFile){
+
+		if(File.Exists(inFile)) {
+			var inBuffer = File.ReadAllBytes(inFile);
+
+			int offset = 0;
+		
+			for(int i=0; i<inBuffer.Length; i++) {
+				if(i>16) break;
+				if(inBuffer[i] == 0x5d) {
+					if(inBuffer[i+1] == 0x00) {
+						if(inBuffer[i+2] == 0x00) {
+							if(inBuffer[i+3] == 0x00) {
+								offset = i;  break; 
+							}
+						}
+					}
+				}
+			}
+		
+			if(offset>16) {  inBuffer=null; return 4; }
+
+			GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+			IntPtr ptrBundle = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + offset);
+			int uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,offset+5);
+			if(uncompressedSize<0) { cbuf.Free(); return 4; }
+			byte[] outBuffer = new byte[uncompressedSize];
+			GCHandle obuf = GCHandle.Alloc(outBuffer, GCHandleType.Pinned);
+		
+			int res = Lzma_Uncompress(ptrBundle, inBuffer.Length-offset, uncompressedSize, obuf.AddrOfPinnedObject(), true);
+
+			cbuf.Free();
+			obuf.Free();
+
+			File.WriteAllBytes(outFile, outBuffer);
+
+			Array.Resize(ref outBuffer, 0);
+			Array.Resize(ref inBuffer, 0);
+
+			outBuffer = null;
+			inBuffer = null;
+
+			GC.Collect();
+
+			return res;	
+		} else {
+			return -1;
+		}	
+	}
+	*/
+
+
+    //This function decompresses an lzma compressed byte buffer.
+    //If the useHeader flag is false you have to provide the uncompressed size of the buffer via the customLength integer.
+    //if res==0 operation was successful
+    //The error codes
+    /*
+        OK 0
+		
+        ERROR_DATA 1
+        ERROR_MEM 2
+        ERROR_UNSUPPORTED 4
+        ERROR_PARAM 5
+        ERROR_INPUT_EOF 6
+        ERROR_OUTPUT_EOF 7
+        ERROR_FAIL 11
+        ERROR_THREAD 12
+        */
+    public static  int decompressBuffer(byte[] inBuffer,  ref byte[] outbuffer, bool useHeader=true, int customLength=0){
+		
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		int uncompressedSize = 0;
+		
+		//if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header 
+		//provide the known uncompressed size through the customLength integer.
+		if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+		Array.Resize(ref outbuffer, uncompressedSize);
+
+		GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+		
+		int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+		cbuf.Free();
+		obuf.Free();
+
+		//if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return res; }
+	
+		return res;		
+	}
+
+	public static  byte[] decompressBuffer(byte[] inBuffer, bool useHeader=true, int customLength=0){
+		
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		int uncompressedSize = 0;
+		
+		//if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header 
+		//provide the known uncompressed size through the customLength integer.
+		if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+		byte[] outbuffer = new byte[uncompressedSize];
+
+		GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+		
+		int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+		cbuf.Free();
+		obuf.Free();
+
+		if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return null; }
+	
+		return outbuffer;		
+	}
+
+
+	//same as above function. Only this one outputs to a buffer of fixed which size isn't resized to avoid memory allocations.
+	//The fixed buffer should have a size that will be able to hold the incoming decompressed data.
+	//returns the uncompressed size.
+	public static  int decompressBufferFixed(byte[] inBuffer,  ref byte[] outbuffer, bool safe = true, bool useHeader=true, int customLength=0){
+
+		int uncompressedSize = 0;
+		
+		//if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header 
+		//provide the known uncompressed size through the customLength integer.
+		if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+		//Check if the uncompressed size is bigger then the size of the fixed buffer. Then:
+		//1. write only the data that fit in it.
+		//2. or return a negative number. 
+		//It depends on if we set the safe flag to true or not.
+		if(uncompressedSize > outbuffer.Length) {
+			if(safe) return -101;  else  uncompressedSize = outbuffer.Length;
+		 }
+
+		GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+		GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+		
+		int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+		cbuf.Free();
+		obuf.Free();
+
+		if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return -res; }
+	
+		return uncompressedSize;		
+	}
+
+}
+
diff --git a/Assets/Plugins/SevenZip/lzma.cs.meta b/Assets/Plugins/SevenZip/lzma.cs.meta
new file mode 100644
index 0000000..f273e36
--- /dev/null
+++ b/Assets/Plugins/SevenZip/lzma.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 13c1c59b80961f74e9c2c894f0961517
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
diff --git a/Assets/Plugins/iOS/bitcode.meta b/Assets/Plugins/iOS/bitcode.meta
new file mode 100644
index 0000000..ef7aec7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: aea70e06332fd3e4cb4798606c87a13e
+folderAsset: yes
+timeCreated: 1452862552
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/libbrotli.meta b/Assets/Plugins/iOS/bitcode/libbrotli.meta
new file mode 100644
index 0000000..39892f3
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libbrotli.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d5a3daf797c64c94c81b903bc20465b7
+folderAsset: yes
+timeCreated: 1455164213
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/libfastlz.meta b/Assets/Plugins/iOS/bitcode/libfastlz.meta
new file mode 100644
index 0000000..26f32fa
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libfastlz.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 168c23f7b2a985844bb1d75f8f6def1c
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblz4.meta b/Assets/Plugins/iOS/bitcode/liblz4.meta
new file mode 100644
index 0000000..16f59f8
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblz4.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f08f107c1bc95c44e88b396f562d726e
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip
new file mode 100644
index 0000000..951cbfe
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta
new file mode 100644
index 0000000..b0925db
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b2699330b724ffc4d92e81ab4554b568
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip
new file mode 100644
index 0000000..698b4ee
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta
new file mode 100644
index 0000000..fff64e7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3e3113bc8d3c63344a4276ea5cacdbcc
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip
new file mode 100644
index 0000000..94d2749
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta
new file mode 100644
index 0000000..6aba071
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 527d7a6912edd7f4998b09a787646512
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip
new file mode 100644
index 0000000..6ff6326
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta
new file mode 100644
index 0000000..41e3cc8
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: afeda9bca77bb774f812793c304fc961
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.meta b/Assets/Plugins/iOS/bitcode/liblzma.meta
new file mode 100644
index 0000000..4e02738
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 95f44f25645ad824490021beb8785cc2
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/bitcode/libzipw.meta b/Assets/Plugins/iOS/bitcode/libzipw.meta
new file mode 100644
index 0000000..3daacf7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libzipw.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f03c7c5e39169574593b46ac54fd5531
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.a b/Assets/Plugins/iOS/liblzma.a
new file mode 100644
index 0000000..7db8e56
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a-simulator.zip b/Assets/Plugins/iOS/liblzma.a-simulator.zip
new file mode 100644
index 0000000..ea159ba
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a-simulator.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta b/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta
new file mode 100644
index 0000000..0febae1
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 8df3da085354f294c9f9e57a31ba34cf
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.a.aggresive.zip b/Assets/Plugins/iOS/liblzma.a.aggresive.zip
new file mode 100644
index 0000000..90a8925
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.aggresive.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta b/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta
new file mode 100644
index 0000000..14cc05f
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 105d619dcc562f943acdd38091063327
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip
new file mode 100644
index 0000000..c7f0790
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta
new file mode 100644
index 0000000..ff60bf2
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: a09a492a241113640a4f6d92fcbf3b06
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest.zip b/Assets/Plugins/iOS/liblzma.a.fastest.zip
new file mode 100644
index 0000000..eb1e749
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta b/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta
new file mode 100644
index 0000000..57d0c50
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 01faae07d6f95d542b54575ee72e8251
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.a.meta b/Assets/Plugins/iOS/liblzma.a.meta
new file mode 100644
index 0000000..1668536
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: 105d4f0d61dadd545bcaa1893acff966
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+    iOS:
+      enabled: 1
+      settings: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/iOS/liblzma.smallest.zip b/Assets/Plugins/iOS/liblzma.smallest.zip
new file mode 100644
index 0000000..ed6d331
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.smallest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.smallest.zip.meta b/Assets/Plugins/iOS/liblzma.smallest.zip.meta
new file mode 100644
index 0000000..30ed596
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.smallest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: c4bfcb521dd223a4f9f982364b11aa9a
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/liblzma.bundle.meta b/Assets/Plugins/liblzma.bundle.meta
new file mode 100644
index 0000000..68196e6
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle.meta
@@ -0,0 +1,105 @@
+fileFormatVersion: 2
+guid: 63d5675a14cb23e49912d4f187b616e8
+folderAsset: yes
+PluginImporter:
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  isOverridable: 0
+  platformData:
+    data:
+      first:
+        Android: Android
+      second:
+        enabled: 0
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Any: 
+      second:
+        enabled: 0
+        settings: {}
+    data:
+      first:
+        Editor: Editor
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+          DefaultValueInitialized: true
+          OS: OSX
+    data:
+      first:
+        Facebook: Win
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Facebook: Win64
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: Linux
+      second:
+        enabled: 1
+        settings:
+          CPU: x86
+    data:
+      first:
+        Standalone: Linux64
+      second:
+        enabled: 1
+        settings:
+          CPU: x86_64
+    data:
+      first:
+        Standalone: LinuxUniversal
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: OSXIntel
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: OSXIntel64
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: OSXUniversal
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: Win
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+    data:
+      first:
+        Standalone: Win64
+      second:
+        enabled: 1
+        settings:
+          CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/liblzma.bundle/Contents.meta b/Assets/Plugins/liblzma.bundle/Contents.meta
new file mode 100644
index 0000000..dcc6167
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dc97a21f359ee4227b7f5c87717fb807
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/liblzma.bundle/Contents/Info.plist b/Assets/Plugins/liblzma.bundle/Contents/Info.plist
new file mode 100644
index 0000000..076f901
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/Info.plist
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>15E65</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>liblzma</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.lzma.liblzma</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>liblzma</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleSupportedPlatforms</key>
+	<array>
+		<string>MacOSX</string>
+	</array>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>DTCompiler</key>
+	<string>com.apple.compilers.llvm.clang.1_0</string>
+	<key>DTPlatformBuild</key>
+	<string>7D175</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>15E60</string>
+	<key>DTSDKName</key>
+	<string>macosx10.11</string>
+	<key>DTXcode</key>
+	<string>0730</string>
+	<key>DTXcodeBuild</key>
+	<string>7D175</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright 漏 2015 liblzma. All rights reserved.</string>
+</dict>
+</plist>
diff --git a/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta b/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta
new file mode 100644
index 0000000..c59d0de
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8dfb9d1243974425dbfb586b931e8fcf
+timeCreated: 1461938405
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta b/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta
new file mode 100644
index 0000000..d9a6b18
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fcdc6e0bbfd78425f96d7e8a1196b892
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma
new file mode 100644
index 0000000..048ce47
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma
Binary files differ
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta
new file mode 100644
index 0000000..44663b7
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce457a7d0ad044b069c5f1e12c271693
+timeCreated: 1461938405
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86.meta b/Assets/Plugins/x86.meta
new file mode 100644
index 0000000..cbb2f23
--- /dev/null
+++ b/Assets/Plugins/x86.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4d91deb074c81564388a0deffdb37efe
+folderAsset: yes
+timeCreated: 1541063936
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86/liblzma.dll b/Assets/Plugins/x86/liblzma.dll
new file mode 100644
index 0000000..8f3c7d9
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.dll
Binary files differ
diff --git a/Assets/Plugins/x86/liblzma.dll.meta b/Assets/Plugins/x86/liblzma.dll.meta
new file mode 100644
index 0000000..eb28c20
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.dll.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: d994befc74ab2d14eaac2bb81af65a34
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: x86
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 1
+      settings:
+        CPU: x86
+    Linux64:
+      enabled: 1
+      settings:
+        CPU: None
+    LinuxUniversal:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    OSXIntel:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    OSXIntel64:
+      enabled: 1
+      settings:
+        CPU: None
+    OSXUniversal:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    Win64:
+      enabled: 0
+      settings:
+        CPU: None
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86/liblzma.so b/Assets/Plugins/x86/liblzma.so
new file mode 100644
index 0000000..be2bb17
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/x86/liblzma.so.meta b/Assets/Plugins/x86/liblzma.so.meta
new file mode 100644
index 0000000..bd27224
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.so.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: ff306ab5a1e61dd43949f88c2ed78bf1
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: x86
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 1
+      settings:
+        CPU: x86
+    Linux64:
+      enabled: 0
+      settings:
+        CPU: None
+    LinuxUniversal:
+      enabled: 1
+      settings:
+        CPU: x86
+    OSXIntel:
+      enabled: 0
+      settings:
+        CPU: None
+    OSXIntel64:
+      enabled: 0
+      settings:
+        CPU: None
+    OSXUniversal:
+      enabled: 0
+      settings:
+        CPU: None
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    Win64:
+      enabled: 1
+      settings:
+        CPU: None
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86_64.meta b/Assets/Plugins/x86_64.meta
new file mode 100644
index 0000000..f0675b9
--- /dev/null
+++ b/Assets/Plugins/x86_64.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: af7a02cd8159b3f43a03b1eb98f5e4f7
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86_64/liblzma.dll b/Assets/Plugins/x86_64/liblzma.dll
new file mode 100644
index 0000000..b8283bc
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.dll
Binary files differ
diff --git a/Assets/Plugins/x86_64/liblzma.dll.meta b/Assets/Plugins/x86_64/liblzma.dll.meta
new file mode 100644
index 0000000..43c9131
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.dll.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: f2d2b6279f15d5742abe1a18469e956e
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: x86_64
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 1
+      settings:
+        CPU: None
+    Linux64:
+      enabled: 1
+      settings:
+        CPU: x86_64
+    LinuxUniversal:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    OSXIntel:
+      enabled: 1
+      settings:
+        CPU: None
+    OSXIntel64:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    OSXUniversal:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 0
+      settings:
+        CPU: None
+    Win64:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/x86_64/liblzma.so b/Assets/Plugins/x86_64/liblzma.so
new file mode 100644
index 0000000..8c81312
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/x86_64/liblzma.so.meta b/Assets/Plugins/x86_64/liblzma.so.meta
new file mode 100644
index 0000000..060662f
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.so.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: 7778049c517fa6a42a4c1c97c462fb57
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Android:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        CPU: x86_64
+        DefaultValueInitialized: true
+        OS: AnyOS
+    Linux:
+      enabled: 0
+      settings:
+        CPU: None
+    Linux64:
+      enabled: 1
+      settings:
+        CPU: x86_64
+    LinuxUniversal:
+      enabled: 1
+      settings:
+        CPU: x86_64
+    OSXIntel:
+      enabled: 0
+      settings:
+        CPU: None
+    OSXIntel64:
+      enabled: 0
+      settings:
+        CPU: None
+    OSXUniversal:
+      enabled: 0
+      settings:
+        CPU: None
+    SamsungTV:
+      enabled: 0
+      settings:
+        STV_MODEL: STANDARD_13
+    WP8:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+    Win:
+      enabled: 1
+      settings:
+        CPU: None
+    Win64:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+    WindowsStoreApps:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        DontProcess: False
+        PlaceholderPath: 
+        SDK: AnySDK
+    iOS:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/test7zip.cs b/Assets/test7zip.cs
new file mode 100644
index 0000000..bc2814f
--- /dev/null
+++ b/Assets/test7zip.cs
@@ -0,0 +1,33 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System.IO;
+
+public class test7zip : MonoBehaviour
+{
+
+    // Use this for initialization
+    void Start()
+    {
+
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        if (Input.GetKeyDown(KeyCode.F))
+        {
+            var files = new List<FileInfo>();
+            FileExtersion.GetAllDirectoryFileInfos(Application.streamingAssetsPath, files);
+            foreach (var item in files)
+            {
+                var fullName = item.FullName;
+                if (fullName.EndsWith(".7z"))
+                {
+                    SevenZipUtility.DeCompress(fullName, Path.GetDirectoryName(fullName));
+                }
+            }
+
+        }
+    }
+}
diff --git a/Assets/Editor/Tool/SevenZipUtility.cs.meta b/Assets/test7zip.cs.meta
similarity index 75%
rename from Assets/Editor/Tool/SevenZipUtility.cs.meta
rename to Assets/test7zip.cs.meta
index b33edf8..37349b7 100644
--- a/Assets/Editor/Tool/SevenZipUtility.cs.meta
+++ b/Assets/test7zip.cs.meta
@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: f144847788b6f254083b077d968bc6f4
-timeCreated: 1541055675
+guid: 7a1b12e7a570a4345879992fcd78e239
+timeCreated: 1541066123
 licenseType: Pro
 MonoImporter:
   serializedVersion: 2

--
Gitblit v1.8.0