From c00085893be689c096d0a32acd28ca727e0df34e Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 17:49:23 -0500 Subject: [PATCH 01/88] Implement core Amsi types for antimalware integration --- .../AntiMalware/WinAPI/AmsiFileStream.cs | 113 +++++ .../AntiMalware/WinAPI/AmsiMemoryStream.cs | 114 +++++ IPA.Loader/AntiMalware/WinAPI/Constants.cs | 14 + IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs | 58 +++ IPA.Loader/IPA.Loader.csproj | 5 + IPA.Loader/Loader/LibLoader.cs | 476 +++++++++--------- 6 files changed, 542 insertions(+), 238 deletions(-) create mode 100644 IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs create mode 100644 IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs create mode 100644 IPA.Loader/AntiMalware/WinAPI/Constants.cs create mode 100644 IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs diff --git a/IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs b/IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs new file mode 100644 index 00000000..a14653ca --- /dev/null +++ b/IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs @@ -0,0 +1,113 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware.WinAPI +{ + internal class AmsiFileStream : IAmsiStream, IDisposable + { + private readonly FileInfo file; + private readonly IntPtr session; + + public AmsiFileStream(FileInfo file, IntPtr session) + { + this.file = file; + this.session = session; + } + + public unsafe void GetAttribute([In] AmsiAttribute attribute, [In] uint dataSize, [Out] byte* buffer, out uint writtenData) + { + switch (attribute) + { + case AmsiAttribute.AppName: + writtenData = WriteWString(AmsiConstants.AppName, dataSize, buffer); + return; + case AmsiAttribute.Session: + *(IntPtr*)buffer = session; + writtenData = (uint)sizeof(IntPtr); + return; + + case AmsiAttribute.ContentName: + writtenData = WriteWString(file.FullName, dataSize, buffer); + return; + + case AmsiAttribute.ContentSize: + *(ulong*)buffer = (ulong)file.Length; + writtenData = sizeof(ulong); + return; + + default: + throw new NotImplementedException(); // return e_notimpl + } + + static unsafe uint WriteWString(string str, uint dataSize, byte* buffer) + { + fixed (char* name = str) + { + return (uint)Encoding.Unicode.GetBytes(name, str.Length, buffer, (int)dataSize); + } + } + } + + private FileStream? stream; + private bool disposedValue; + private readonly byte[] readBuffer = new byte[1024]; + + public unsafe void Read([In] ulong position, [In] uint dataSize, [Out] byte* buffer, out uint readSize) + { + stream ??= file.OpenRead(); + + stream.Position = (long)position; + + var bytesToRead = dataSize; + readSize = 0; + + while (bytesToRead > 0) + { + var bytesRead = stream.Read(readBuffer, 0, (int)Math.Min(readBuffer.Length, bytesToRead)); + if (bytesRead == 0) + { + break; + } + fixed (byte* readBufferPtr = readBuffer) + { + Buffer.MemoryCopy(readBufferPtr, buffer + readSize, dataSize - readSize, bytesRead); + } + bytesToRead -= (uint)bytesRead; + readSize += (uint)bytesRead; + } + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + stream?.Dispose(); + } + + disposedValue = true; + } + } + + // This does not have unmanagd resources, so it doesn't need to exist + // ~AmsiFileStream() + // { + // // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + // Dispose(disposing: false); + // } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} diff --git a/IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs b/IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs new file mode 100644 index 00000000..8aabd050 --- /dev/null +++ b/IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs @@ -0,0 +1,114 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware.WinAPI +{ + internal class AmsiMemoryStream : IAmsiStream, IDisposable + { + private readonly string contentName; + private readonly byte[] data; + private readonly GCHandle dataHandle; + + private readonly IntPtr session; + private bool disposedValue; + + public AmsiMemoryStream(string contentName, byte[] data, IntPtr session) + { + this.data = data; + dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned); + this.session = session; + this.contentName = contentName; + } + + public unsafe void GetAttribute([In] AmsiAttribute attribute, [In] uint dataSize, [Out] byte* buffer, out uint writtenData) + { + switch (attribute) + { + case AmsiAttribute.AppName: + writtenData = WriteWString(AmsiConstants.AppName, dataSize, buffer); + return; + case AmsiAttribute.Session: + *(IntPtr*)buffer = session; + writtenData = (uint)sizeof(IntPtr); + return; + + case AmsiAttribute.ContentName: + writtenData = WriteWString(contentName, dataSize, buffer); + return; + + case AmsiAttribute.ContentSize: + *(ulong*)buffer = (ulong)data.Length; + writtenData = sizeof(ulong); + return; + + case AmsiAttribute.ContentAddress: + // because our data is pinned, it can't move while this object exists so we can pass out the fixed address + fixed (byte* dataAddr = data) + { + *(byte**)buffer = dataAddr; + } + writtenData = (uint)sizeof(IntPtr); + return; + + default: + throw new NotImplementedException(); // return e_notimpl + } + + static unsafe uint WriteWString(string str, uint dataSize, byte* buffer) + { + fixed (char* name = str) + { + return (uint)Encoding.Unicode.GetBytes(name, str.Length, buffer, (int)dataSize); + } + } + } + + public unsafe void Read([In] ulong position, [In] uint dataSize, [Out] byte* buffer, out uint readSize) + { + if (position >= (ulong)data.Length) + { + throw new EndOfStreamException(); + } + + fixed (byte* dataPtr = data) + { + var toRead = Math.Min((ulong)data.Length - position, dataSize); + Buffer.MemoryCopy(dataPtr + position, buffer, dataSize, toRead); + readSize = (uint)toRead; + } + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // no managed stae to dispose + } + + dataHandle.Free(); + disposedValue = true; + } + } + + ~AmsiMemoryStream() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: false); + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} diff --git a/IPA.Loader/AntiMalware/WinAPI/Constants.cs b/IPA.Loader/AntiMalware/WinAPI/Constants.cs new file mode 100644 index 00000000..e841cb6c --- /dev/null +++ b/IPA.Loader/AntiMalware/WinAPI/Constants.cs @@ -0,0 +1,14 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware.WinAPI +{ + internal static class AmsiConstants + { + public static const string AppName = "BSIPA/" + Config.SelfConfig.IPAVersion; + } +} diff --git a/IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs new file mode 100644 index 00000000..61b7ca1a --- /dev/null +++ b/IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs @@ -0,0 +1,58 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware.WinAPI +{ + [Guid("82d29c2e-f062-44e6-b5c9-3d9a2f24a2df")] + [ComVisible(true)] + internal interface IAntimalware + { + void Scan([In] IAmsiStream stream, [Out] out AmsiResult result, [Out] out IAntimalwareProvider provider); + void CloseSession([In] ulong session); + } + + [Guid("3e47f2e5-81d4-4d3b-897f-545096770373")] + [ComVisible(true)] + internal interface IAmsiStream + { + unsafe void GetAttribute([In] AmsiAttribute attribute, [In] uint dataSize, [Out] byte* buffer, out uint writtenData); + unsafe void Read([In] ulong position, [In] uint dataSize, [Out] byte* buffer, out uint readSize); + } + + [Guid("b2cabfe3-fe04-42b1-a5df-08d483d4d125")] + [ComVisible(true)] + internal interface IAntimalwareProvider + { + [return: MarshalAs(UnmanagedType.LPWStr)] string DisplayName(); + + AmsiResult Scan([In] IAmsiStream stream); + void CloseSession([In] ulong session); + } + + internal enum AmsiResult + { + Clean = 0, + NotDetected = 1, + BlockedByAdminStart = 0x4000, + BlockedByAdminEnd = 0x4fff, + Detected = 32768 + } + + internal enum AmsiAttribute + { + AppName = 0, + ContentName = 1, + ContentSize = 2, + ContentAddress = 3, + Session = 4, + RedirectChainSize = 5, + RedirectChainAddress = 6, + AllSize = 7, + AllAddress = 8, + } +} diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 3cc88a4f..6d3ff5e4 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -69,6 +69,11 @@ + + + + + diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 1e1ecdd8..3f0a0076 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -1,248 +1,248 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Reflection; -using System.Runtime.InteropServices; -using System.Linq; -using IPA.Logging; -using IPA.Utilities; -using Mono.Cecil; -#if NET3 -using Net3_Proxy; -using Directory = Net3_Proxy.Directory; -using Path = Net3_Proxy.Path; -using File = Net3_Proxy.File; -#endif - -namespace IPA.Loader -{ - internal class CecilLibLoader : BaseAssemblyResolver - { - private static readonly string CurrentAssemblyName = Assembly.GetExecutingAssembly().GetName().Name; - private static readonly string CurrentAssemblyPath = Assembly.GetExecutingAssembly().Location; - - public override AssemblyDefinition Resolve(AssemblyNameReference name, ReaderParameters parameters) - { - LibLoader.SetupAssemblyFilenames(); - - if (name.Name == CurrentAssemblyName) - return AssemblyDefinition.ReadAssembly(CurrentAssemblyPath, parameters); - - if (LibLoader.FilenameLocations.TryGetValue($"{name.Name}.dll", out var path)) - { - if (File.Exists(path)) - return AssemblyDefinition.ReadAssembly(path, parameters); - } - else if (LibLoader.FilenameLocations.TryGetValue($"{name.Name}.{name.Version}.dll", out path)) - { - if (File.Exists(path)) - return AssemblyDefinition.ReadAssembly(path, parameters); - } - - - return base.Resolve(name, parameters); - } - } - - internal static class LibLoader - { - internal static string LibraryPath => Path.Combine(Environment.CurrentDirectory, "Libs"); - internal static string NativeLibraryPath => Path.Combine(LibraryPath, "Native"); - internal static Dictionary FilenameLocations; - - internal static void Configure() - { - SetupAssemblyFilenames(true); - AppDomain.CurrentDomain.AssemblyResolve -= AssemblyLibLoader; - AppDomain.CurrentDomain.AssemblyResolve += AssemblyLibLoader; - } - - internal static void SetupAssemblyFilenames(bool force = false) - { - if (FilenameLocations == null || force) - { - FilenameLocations = new Dictionary(); - +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Linq; +using IPA.Logging; +using IPA.Utilities; +using Mono.Cecil; +#if NET3 +using Net3_Proxy; +using Directory = Net3_Proxy.Directory; +using Path = Net3_Proxy.Path; +using File = Net3_Proxy.File; +#endif + +namespace IPA.Loader +{ + internal class CecilLibLoader : BaseAssemblyResolver + { + private static readonly string CurrentAssemblyName = Assembly.GetExecutingAssembly().GetName().Name; + private static readonly string CurrentAssemblyPath = Assembly.GetExecutingAssembly().Location; + + public override AssemblyDefinition Resolve(AssemblyNameReference name, ReaderParameters parameters) + { + LibLoader.SetupAssemblyFilenames(); + + if (name.Name == CurrentAssemblyName) + return AssemblyDefinition.ReadAssembly(CurrentAssemblyPath, parameters); + + if (LibLoader.FilenameLocations.TryGetValue($"{name.Name}.dll", out var path)) + { + if (File.Exists(path)) + return AssemblyDefinition.ReadAssembly(path, parameters); + } + else if (LibLoader.FilenameLocations.TryGetValue($"{name.Name}.{name.Version}.dll", out path)) + { + if (File.Exists(path)) + return AssemblyDefinition.ReadAssembly(path, parameters); + } + + + return base.Resolve(name, parameters); + } + } + + internal static class LibLoader + { + internal static string LibraryPath => Path.Combine(Environment.CurrentDirectory, "Libs"); + internal static string NativeLibraryPath => Path.Combine(LibraryPath, "Native"); + internal static Dictionary FilenameLocations; + + internal static void Configure() + { + SetupAssemblyFilenames(true); + AppDomain.CurrentDomain.AssemblyResolve -= AssemblyLibLoader; + AppDomain.CurrentDomain.AssemblyResolve += AssemblyLibLoader; + } + + internal static void SetupAssemblyFilenames(bool force = false) + { + if (FilenameLocations == null || force) + { + FilenameLocations = new Dictionary(); + foreach (var fn in TraverseTree(LibraryPath, s => s != NativeLibraryPath)) { - if (FilenameLocations.ContainsKey(fn.Name)) - Log(Logger.Level.Critical, $"Multiple instances of {fn.Name} exist in Libs! Ignoring {fn.FullName}"); + if (FilenameLocations.ContainsKey(fn.Name)) + Log(Logger.Level.Critical, $"Multiple instances of {fn.Name} exist in Libs! Ignoring {fn.FullName}"); else FilenameLocations.Add(fn.Name, fn.FullName); - } - - if (!SetDefaultDllDirectories(LoadLibraryFlags.LOAD_LIBRARY_SEARCH_USER_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_SYSTEM32 - | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_APPLICATION_DIR)) - { - var err = new Win32Exception(); - Log(Logger.Level.Critical, $"Error configuring DLL search path"); - Log(Logger.Level.Critical, err); - return; - } - - static void AddDir(string path) - { - var retPtr = AddDllDirectory(path); - if (retPtr == IntPtr.Zero) - { - var err = new Win32Exception(); - Log(Logger.Level.Warning, $"Could not add DLL directory {path}"); - Log(Logger.Level.Warning, err); - } - } - - if (Directory.Exists(NativeLibraryPath)) - { - AddDir(NativeLibraryPath); - _ = TraverseTree(NativeLibraryPath, dir => - { // this is a terrible hack for iterating directories - AddDir(dir); return true; - }).All(f => true); // force it to iterate all - } - - //var unityData = Directory.EnumerateDirectories(Environment.CurrentDirectory, "*_Data").First(); - //AddDir(Path.Combine(unityData, "Plugins")); - - foreach (var dir in Environment.GetEnvironmentVariable("path") - .Split(Path.PathSeparator) + } + + if (!SetDefaultDllDirectories(LoadLibraryFlags.LOAD_LIBRARY_SEARCH_USER_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_SYSTEM32 + | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_APPLICATION_DIR)) + { + var err = new Win32Exception(); + Log(Logger.Level.Critical, $"Error configuring DLL search path"); + Log(Logger.Level.Critical, err); + return; + } + + static void AddDir(string path) + { + var retPtr = AddDllDirectory(path); + if (retPtr == IntPtr.Zero) + { + var err = new Win32Exception(); + Log(Logger.Level.Warning, $"Could not add DLL directory {path}"); + Log(Logger.Level.Warning, err); + } + } + + if (Directory.Exists(NativeLibraryPath)) + { + AddDir(NativeLibraryPath); + _ = TraverseTree(NativeLibraryPath, dir => + { // this is a terrible hack for iterating directories + AddDir(dir); return true; + }).All(f => true); // force it to iterate all + } + + //var unityData = Directory.EnumerateDirectories(Environment.CurrentDirectory, "*_Data").First(); + //AddDir(Path.Combine(unityData, "Plugins")); + + foreach (var dir in Environment.GetEnvironmentVariable("path") + .Split(Path.PathSeparator) .Select(Environment.ExpandEnvironmentVariables)) { AddDir(dir); - } - } - } - - public static Assembly AssemblyLibLoader(object source, ResolveEventArgs e) - { - var asmName = new AssemblyName(e.Name); - return LoadLibrary(asmName); - } - - internal static Assembly LoadLibrary(AssemblyName asmName) - { - Log(Logger.Level.Debug, $"Resolving library {asmName}"); - - SetupAssemblyFilenames(); - - var testFile = $"{asmName.Name}.dll"; - Log(Logger.Level.Debug, $"Looking for file {asmName.Name}.dll"); - - if (FilenameLocations.TryGetValue(testFile, out var path)) - { - Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); - if (File.Exists(path)) - return Assembly.LoadFrom(path); - - Log(Logger.Level.Critical, $"but {path} no longer exists!"); - } - else if (FilenameLocations.TryGetValue(testFile = $"{asmName.Name}.{asmName.Version}.dll", out path)) - { - Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); - Log(Logger.Level.Warning, $"File {testFile} should be renamed to just {asmName.Name}.dll"); - if (File.Exists(path)) - return Assembly.LoadFrom(path); - - Log(Logger.Level.Critical, $"but {path} no longer exists!"); - } - - Log(Logger.Level.Critical, $"No library {asmName} found"); - - return null; - } - - internal static void Log(Logger.Level lvl, string message) - { // multiple proxy methods to delay loading of assemblies until it's done - if (Logger.LogCreated) - AssemblyLibLoaderCallLogger(lvl, message); - else - if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) - Console.WriteLine($"[{lvl}] {message}"); - } - internal static void Log(Logger.Level lvl, Exception message) - { // multiple proxy methods to delay loading of assemblies until it's done - if (Logger.LogCreated) - AssemblyLibLoaderCallLogger(lvl, message); - else - if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) - Console.WriteLine($"[{lvl}] {message}"); - } - - private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.libLoader.Log(lvl, message); - private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, Exception message) => Logger.libLoader.Log(lvl, message); - - // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree - private static IEnumerable TraverseTree(string root, Func dirValidator = null) - { - if (dirValidator == null) dirValidator = s => true; - - var dirs = new Stack(32); - - if (!Directory.Exists(root)) - throw new ArgumentException("Directory does not exist", nameof(root)); - dirs.Push(root); - - while (dirs.Count > 0) - { - string currentDir = dirs.Pop(); - string[] subDirs; - try - { - subDirs = Directory.GetDirectories(currentDir); - } - catch (UnauthorizedAccessException) - { continue; } - catch (DirectoryNotFoundException) - { continue; } - - string[] files; - try - { - files = Directory.GetFiles(currentDir); - } - catch (UnauthorizedAccessException) - { continue; } - catch (DirectoryNotFoundException) - { continue; } - - foreach (string str in subDirs) - if (dirValidator(str)) dirs.Push(str); - - foreach (string file in files) - { - FileInfo nextValue; - try - { - nextValue = new FileInfo(file); - } - catch (FileNotFoundException) - { continue; } - - yield return nextValue; - } - } - } - + } + } + } + + public static Assembly AssemblyLibLoader(object source, ResolveEventArgs e) + { + var asmName = new AssemblyName(e.Name); + return LoadLibrary(asmName); + } + + internal static Assembly LoadLibrary(AssemblyName asmName) + { + Log(Logger.Level.Debug, $"Resolving library {asmName}"); + + SetupAssemblyFilenames(); + + var testFile = $"{asmName.Name}.dll"; + Log(Logger.Level.Debug, $"Looking for file {asmName.Name}.dll"); + + if (FilenameLocations.TryGetValue(testFile, out var path)) + { + Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); + if (File.Exists(path)) + return Assembly.LoadFrom(path); + + Log(Logger.Level.Critical, $"but {path} no longer exists!"); + } + else if (FilenameLocations.TryGetValue(testFile = $"{asmName.Name}.{asmName.Version}.dll", out path)) + { + Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); + Log(Logger.Level.Warning, $"File {testFile} should be renamed to just {asmName.Name}.dll"); + if (File.Exists(path)) + return Assembly.LoadFrom(path); + + Log(Logger.Level.Critical, $"but {path} no longer exists!"); + } + + Log(Logger.Level.Critical, $"No library {asmName} found"); + + return null; + } + + internal static void Log(Logger.Level lvl, string message) + { // multiple proxy methods to delay loading of assemblies until it's done + if (Logger.LogCreated) + AssemblyLibLoaderCallLogger(lvl, message); + else + if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) + Console.WriteLine($"[{lvl}] {message}"); + } + internal static void Log(Logger.Level lvl, Exception message) + { // multiple proxy methods to delay loading of assemblies until it's done + if (Logger.LogCreated) + AssemblyLibLoaderCallLogger(lvl, message); + else + if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) + Console.WriteLine($"[{lvl}] {message}"); + } + + private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.libLoader.Log(lvl, message); + private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, Exception message) => Logger.libLoader.Log(lvl, message); + + // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree + private static IEnumerable TraverseTree(string root, Func dirValidator = null) + { + if (dirValidator == null) dirValidator = s => true; + + var dirs = new Stack(32); + + if (!Directory.Exists(root)) + throw new ArgumentException("Directory does not exist", nameof(root)); + dirs.Push(root); + + while (dirs.Count > 0) + { + string currentDir = dirs.Pop(); + string[] subDirs; + try + { + subDirs = Directory.GetDirectories(currentDir); + } + catch (UnauthorizedAccessException) + { continue; } + catch (DirectoryNotFoundException) + { continue; } + + string[] files; + try + { + files = Directory.GetFiles(currentDir); + } + catch (UnauthorizedAccessException) + { continue; } + catch (DirectoryNotFoundException) + { continue; } + + foreach (string str in subDirs) + if (dirValidator(str)) dirs.Push(str); + + foreach (string file in files) + { + FileInfo nextValue; + try + { + nextValue = new FileInfo(file); + } + catch (FileNotFoundException) + { continue; } + + yield return nextValue; + } + } + } + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] -#if NET461 +#if NET461 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] -#endif - private static extern IntPtr AddDllDirectory(string lpPathName); - - [Flags] - private enum LoadLibraryFlags : uint - { - None = 0, - LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x00000200, - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x00001000, - LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800, - LOAD_LIBRARY_SEARCH_USER_DIRS = 0x00000400, - } - +#endif + private static extern IntPtr AddDllDirectory(string lpPathName); + + [Flags] + private enum LoadLibraryFlags : uint + { + None = 0, + LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x00000200, + LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x00001000, + LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800, + LOAD_LIBRARY_SEARCH_USER_DIRS = 0x00000400, + } + [DllImport("kernel32.dll", SetLastError = true)] -#if NET461 +#if NET461 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] -#endif - private static extern bool SetDefaultDllDirectories(LoadLibraryFlags dwFlags); - } -} +#endif + private static extern bool SetDefaultDllDirectories(LoadLibraryFlags dwFlags); + } +} From 3c1b26811daf31bfec923ee3af168403b80368ae Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 19:33:57 -0500 Subject: [PATCH 02/88] Expose Windows AMSI interface through common interface to BSIPA plugins --- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 25 ++++++++ IPA.Loader/AntiMalware/IAntiMalware.cs | 11 ++++ IPA.Loader/AntiMalware/NoopAntiMalware.cs | 15 +++++ IPA.Loader/AntiMalware/ScanResult.cs | 11 ++++ .../WinAPI/AmsiFileStream.cs | 0 .../WinAPI/AmsiMemoryStream.cs | 0 .../{ => _HideInNet3}/WinAPI/Constants.cs | 3 +- .../{ => _HideInNet3}/WinAPI/IAntimalware.cs | 0 .../_HideInNet3/WindowsAntiMalware.cs | 64 +++++++++++++++++++ IPA.Loader/IPA.Loader.csproj | 4 +- IPA.Loader/Logging/Logger.cs | 1 + 11 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 IPA.Loader/AntiMalware/AntiMalwareEngine.cs create mode 100644 IPA.Loader/AntiMalware/IAntiMalware.cs create mode 100644 IPA.Loader/AntiMalware/NoopAntiMalware.cs create mode 100644 IPA.Loader/AntiMalware/ScanResult.cs rename IPA.Loader/AntiMalware/{ => _HideInNet3}/WinAPI/AmsiFileStream.cs (100%) rename IPA.Loader/AntiMalware/{ => _HideInNet3}/WinAPI/AmsiMemoryStream.cs (100%) rename IPA.Loader/AntiMalware/{ => _HideInNet3}/WinAPI/Constants.cs (53%) rename IPA.Loader/AntiMalware/{ => _HideInNet3}/WinAPI/IAntimalware.cs (100%) create mode 100644 IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs new file mode 100644 index 00000000..9ca16586 --- /dev/null +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -0,0 +1,25 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware +{ + public static class AntiMalwareEngine + { + public static IAntiMalware Engine { get; } = InitializeEngine(); + + private static IAntiMalware InitializeEngine() + { + IAntiMalware? engine = null; +#if !NET35 + engine = WindowsAntiMalware.TryInitialize(); +#endif + engine ??= new NoopAntiMalware(); + + return engine; + } + } +} diff --git a/IPA.Loader/AntiMalware/IAntiMalware.cs b/IPA.Loader/AntiMalware/IAntiMalware.cs new file mode 100644 index 00000000..0d974a34 --- /dev/null +++ b/IPA.Loader/AntiMalware/IAntiMalware.cs @@ -0,0 +1,11 @@ +#nullable enable +using System.IO; + +namespace IPA.AntiMalware +{ + public interface IAntiMalware + { + ScanResult ScanFile(FileInfo file); + ScanResult ScanData(byte[] data, string? contentName = null); + } +} diff --git a/IPA.Loader/AntiMalware/NoopAntiMalware.cs b/IPA.Loader/AntiMalware/NoopAntiMalware.cs new file mode 100644 index 00000000..60609898 --- /dev/null +++ b/IPA.Loader/AntiMalware/NoopAntiMalware.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware +{ + internal class NoopAntiMalware : IAntiMalware + { + public ScanResult ScanData(byte[] data, string contentName = null) => ScanResult.NotDetected; + public ScanResult ScanFile(FileInfo file) => ScanResult.NotDetected; + } +} diff --git a/IPA.Loader/AntiMalware/ScanResult.cs b/IPA.Loader/AntiMalware/ScanResult.cs new file mode 100644 index 00000000..ba17fde9 --- /dev/null +++ b/IPA.Loader/AntiMalware/ScanResult.cs @@ -0,0 +1,11 @@ + +namespace IPA.AntiMalware +{ + public enum ScanResult + { + KnownSafe, + NotDetected, + Detected, + BlockedByPolicy + } +} diff --git a/IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs b/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiFileStream.cs similarity index 100% rename from IPA.Loader/AntiMalware/WinAPI/AmsiFileStream.cs rename to IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiFileStream.cs diff --git a/IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs b/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiMemoryStream.cs similarity index 100% rename from IPA.Loader/AntiMalware/WinAPI/AmsiMemoryStream.cs rename to IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiMemoryStream.cs diff --git a/IPA.Loader/AntiMalware/WinAPI/Constants.cs b/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs similarity index 53% rename from IPA.Loader/AntiMalware/WinAPI/Constants.cs rename to IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs index e841cb6c..65dc96cc 100644 --- a/IPA.Loader/AntiMalware/WinAPI/Constants.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs @@ -9,6 +9,7 @@ namespace IPA.AntiMalware.WinAPI { internal static class AmsiConstants { - public static const string AppName = "BSIPA/" + Config.SelfConfig.IPAVersion; + public const string AppName = "BSIPA/" + Config.SelfConfig.IPAVersion; + public static readonly Guid CAntimalwareGuid = new("fdb00e52-a214-4aa1-8fba-4357bb0072ec"); } } diff --git a/IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/IAntimalware.cs similarity index 100% rename from IPA.Loader/AntiMalware/WinAPI/IAntimalware.cs rename to IPA.Loader/AntiMalware/_HideInNet3/WinAPI/IAntimalware.cs diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs new file mode 100644 index 00000000..d5bc671c --- /dev/null +++ b/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs @@ -0,0 +1,64 @@ +#nullable enable +using IPA.AntiMalware.WinAPI; +using IPA.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware +{ + internal class WindowsAntiMalware : IAntiMalware + { + internal static WindowsAntiMalware? TryInitialize() + { + try + { + return new(); + } + catch (Exception e) + { + Logger.AntiMalware.Warn("Could not initialize antimalware engine:"); + Logger.AntiMalware.Warn(e); + return null; + } + } + + private readonly IAntimalware amInterface; + + private WindowsAntiMalware() + { + var amType = Type.GetTypeFromCLSID(AmsiConstants.CAntimalwareGuid, true); + amInterface = (IAntimalware)Activator.CreateInstance(amType); + } + + private static ScanResult ScanResultFromAmsiResult(AmsiResult result) + => result switch + { + AmsiResult.Clean => ScanResult.KnownSafe, + AmsiResult.NotDetected => ScanResult.NotDetected, + AmsiResult.Detected => ScanResult.Detected, + var a when a is >= AmsiResult.BlockedByAdminStart and <= AmsiResult.BlockedByAdminEnd => ScanResult.BlockedByPolicy, + _ => ScanResult.NotDetected, + }; + + public ScanResult ScanFile(FileInfo file) + { + using var stream = new AmsiFileStream(file, IntPtr.Zero); + amInterface.Scan(stream, out var result, out var provider); + Logger.AntiMalware.Debug($"Scanned file '{file}' with {provider.DisplayName()}, and got '{result}'"); + return ScanResultFromAmsiResult(result); + } + + public ScanResult ScanData(byte[] data, string? contentName = null) + { + contentName ??= $"unknown_data_{Guid.NewGuid()}"; + using var stream = new AmsiMemoryStream(contentName, data, IntPtr.Zero); + amInterface.Scan(stream, out var result, out var provider); + Logger.AntiMalware.Debug($"Scanned data named '{contentName}' with {provider.DisplayName()}, and got '{result}'"); + return ScanResultFromAmsiResult(result); + } + } +} diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 6d3ff5e4..c14a9de5 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -70,8 +70,8 @@ - - + + diff --git a/IPA.Loader/Logging/Logger.cs b/IPA.Loader/Logging/Logger.cs index 13d2d8c3..d89f4f50 100644 --- a/IPA.Loader/Logging/Logger.cs +++ b/IPA.Loader/Logging/Logger.cs @@ -33,6 +33,7 @@ namespace IPA.Logging } } + internal static Logger AntiMalware => log.GetChildLogger("AntiMalware"); internal static Logger updater => log.GetChildLogger("Updater"); internal static Logger libLoader => log.GetChildLogger("LibraryLoader"); internal static Logger injector => log.GetChildLogger("Injector"); From bb92164dcbde36f29f16414996ec477b16bbf4b3 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 19:44:31 -0500 Subject: [PATCH 03/88] Document new public APIs --- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 8 ++++++++ IPA.Loader/AntiMalware/IAntiMalware.cs | 14 ++++++++++++++ IPA.Loader/AntiMalware/ScanResult.cs | 18 +++++++++++++++++- .../_HideInNet3/WindowsAntiMalware.cs | 3 +-- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index 9ca16586..3c70c09f 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -7,8 +7,16 @@ using System.Threading.Tasks; namespace IPA.AntiMalware { + /// + /// Provides a way to access BSIPA's Anti-Malware engine. + /// + /// + /// public static class AntiMalwareEngine { + /// + /// Gets the current Anti-Malware engine. + /// public static IAntiMalware Engine { get; } = InitializeEngine(); private static IAntiMalware InitializeEngine() diff --git a/IPA.Loader/AntiMalware/IAntiMalware.cs b/IPA.Loader/AntiMalware/IAntiMalware.cs index 0d974a34..5c8d37a6 100644 --- a/IPA.Loader/AntiMalware/IAntiMalware.cs +++ b/IPA.Loader/AntiMalware/IAntiMalware.cs @@ -3,9 +3,23 @@ using System.IO; namespace IPA.AntiMalware { + /// + /// An Anti-Malware engine that can be used to scan and detect potentially harmful files. + /// public interface IAntiMalware { + /// + /// Scans a particular file for malware. + /// + /// The file to scan. + /// A indicating whether the file is safe or not. ScanResult ScanFile(FileInfo file); + /// + /// Scans a particular in-memory blob for malware. + /// + /// The binary blob to scan. + /// The name of the content. If this is left , one will be automatically generated. + /// A indicating whether the file is safe or not. ScanResult ScanData(byte[] data, string? contentName = null); } } diff --git a/IPA.Loader/AntiMalware/ScanResult.cs b/IPA.Loader/AntiMalware/ScanResult.cs index ba17fde9..43d501eb 100644 --- a/IPA.Loader/AntiMalware/ScanResult.cs +++ b/IPA.Loader/AntiMalware/ScanResult.cs @@ -1,11 +1,27 @@  namespace IPA.AntiMalware { + /// + /// The result of an Anti-Malware scan. + /// public enum ScanResult { + /// + /// The object is known to be safe. + /// KnownSafe, + /// + /// No malware was detected, but it is not known to be safe. + /// NotDetected, + /// + /// Malware was detected, and the content should not be executed. + /// Detected, - BlockedByPolicy + /// + /// The malware engine returned a threat level less than the max, so this object may be dangerous. + /// Proceed with caution. + /// + MaybeMalware } } diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs index d5bc671c..048dca96 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs @@ -40,8 +40,7 @@ namespace IPA.AntiMalware AmsiResult.Clean => ScanResult.KnownSafe, AmsiResult.NotDetected => ScanResult.NotDetected, AmsiResult.Detected => ScanResult.Detected, - var a when a is >= AmsiResult.BlockedByAdminStart and <= AmsiResult.BlockedByAdminEnd => ScanResult.BlockedByPolicy, - _ => ScanResult.NotDetected, + _ => ScanResult.MaybeMalware }; public ScanResult ScanFile(FileInfo file) From e68274b1a7c54b8755c6723662da0336719754cd Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 19:49:37 -0500 Subject: [PATCH 04/88] Add IAntiMalware to InitInjector --- IPA.Loader/Loader/PluginInitInjector.cs | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/IPA.Loader/Loader/PluginInitInjector.cs b/IPA.Loader/Loader/PluginInitInjector.cs index c4d085ab..9272239d 100644 --- a/IPA.Loader/Loader/PluginInitInjector.cs +++ b/IPA.Loader/Loader/PluginInitInjector.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -6,6 +7,7 @@ using IPA.Config; using IPA.Logging; using IPA.Utilities; using System.Linq.Expressions; +using IPA.AntiMalware; #if NET4 using Expression = System.Linq.Expressions.Expression; using ExpressionEx = System.Linq.Expressions.Expression; @@ -57,7 +59,7 @@ namespace IPA.Loader /// the of the parameter being injected. /// the for the plugin being loaded. /// the value to inject into that parameter. - public delegate object InjectParameter(object previous, ParameterInfo param, PluginMetadata meta); + public delegate object? InjectParameter(object? previous, ParameterInfo param, PluginMetadata meta); /// /// Adds an injector to be used when calling future plugins' Init methods. @@ -77,7 +79,7 @@ namespace IPA.Loader public TypedInjector(Type t, InjectParameter i) { Type = t; Injector = i; } - public object Inject(object prev, ParameterInfo info, PluginMetadata meta) + public object? Inject(object? prev, ParameterInfo info, PluginMetadata meta) => Injector(prev, info, meta); public bool Equals(TypedInjector other) @@ -94,15 +96,12 @@ namespace IPA.Loader public static bool operator !=(TypedInjector a, TypedInjector b) => !a.Equals(b); } - private static readonly List injectors = new List + private static readonly List injectors = new() { new TypedInjector(typeof(Logger), (prev, param, meta) => prev ?? new StandardLogger(meta.Name)), new TypedInjector(typeof(PluginMetadata), (prev, param, meta) => prev ?? meta), - new TypedInjector(typeof(Config.Config), (prev, param, meta) => - { - if (prev != null) return prev; - return Config.Config.GetConfigFor(meta.Name, param); - }) + new TypedInjector(typeof(Config.Config), (prev, param, meta) => prev ?? Config.Config.GetConfigFor(meta.Name, param)), + new TypedInjector(typeof(IAntiMalware), (prev, param, meta) => prev ?? AntiMalwareEngine.Engine) }; private static int? MatchPriority(Type target, Type source) @@ -139,14 +138,14 @@ namespace IPA.Loader Expression.ArrayIndex(arr, Expression.Constant(i)), t)))); } - internal static object[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object persist) + internal static object?[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object? persist) { - var initArgs = new List(); + var initArgs = new List(); - var previousValues = persist as Dictionary; + var previousValues = persist as Dictionary; if (previousValues == null) { - previousValues = new Dictionary(injectors.Count); + previousValues = new(injectors.Count); persist = previousValues; } @@ -157,15 +156,15 @@ namespace IPA.Loader var value = paramType.GetDefault(); var toUse = injectors.Select(i => (inject: i, priority: MatchPriority(paramType, i.Type))) // check match priority, combine it - .Where(t => t.priority != null) // filter null priorities - .Select(t => (t.inject, priority: t.priority.Value)) // remove nullable + .NonNull(t => t.priority) // filter null priorities + .Select(t => (t.inject, priority: t.priority!.Value)) // remove nullable .OrderByDescending(t => t.priority) // sort by value .Select(t => t.inject); // remove priority value // this tries injectors in order of closest match by type provided foreach (var pair in toUse) { - object prev = null; + object? prev = null; if (previousValues.ContainsKey(pair)) prev = previousValues[pair]; From 4d006c2a708537a3b5ecc44773f93286600b3884 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:23:45 -0500 Subject: [PATCH 05/88] Move stuff around for supporting Win32 AMSI --- .../WinAPI/Constants.cs => AmsiConstants.cs} | 6 +- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 2 +- .../AntiMalware/WindowsWin32AntiMalware.cs | 104 ++++++++++++++++++ .../{WinAPI => ComAPI}/AmsiFileStream.cs | 2 +- .../{WinAPI => ComAPI}/AmsiMemoryStream.cs | 2 +- .../{WinAPI => ComAPI}/IAntimalware.cs | 0 ...ntiMalware.cs => WindowsCOMAntiMalware.cs} | 8 +- 7 files changed, 112 insertions(+), 12 deletions(-) rename IPA.Loader/AntiMalware/{_HideInNet3/WinAPI/Constants.cs => AmsiConstants.cs} (64%) create mode 100644 IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs rename IPA.Loader/AntiMalware/_HideInNet3/{WinAPI => ComAPI}/AmsiFileStream.cs (96%) rename IPA.Loader/AntiMalware/_HideInNet3/{WinAPI => ComAPI}/AmsiMemoryStream.cs (96%) rename IPA.Loader/AntiMalware/_HideInNet3/{WinAPI => ComAPI}/IAntimalware.cs (100%) rename IPA.Loader/AntiMalware/_HideInNet3/{WindowsAntiMalware.cs => WindowsCOMAntiMalware.cs} (88%) diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs b/IPA.Loader/AntiMalware/AmsiConstants.cs similarity index 64% rename from IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs rename to IPA.Loader/AntiMalware/AmsiConstants.cs index 65dc96cc..de310955 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/Constants.cs +++ b/IPA.Loader/AntiMalware/AmsiConstants.cs @@ -1,11 +1,7 @@ #nullable enable using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace IPA.AntiMalware.WinAPI +namespace IPA.AntiMalware { internal static class AmsiConstants { diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index 3c70c09f..fcf9484d 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -23,7 +23,7 @@ namespace IPA.AntiMalware { IAntiMalware? engine = null; #if !NET35 - engine = WindowsAntiMalware.TryInitialize(); + engine = WindowsCOMAntiMalware.TryInitialize(); #endif engine ??= new NoopAntiMalware(); diff --git a/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs new file mode 100644 index 00000000..aef3c1a4 --- /dev/null +++ b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs @@ -0,0 +1,104 @@ +#nullable enable +using IPA.AntiMalware.ComAPI; +using IPA.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace IPA.AntiMalware +{ + internal class WindowsWin32AntiMalware : IAntiMalware, IDisposable + { + internal static WindowsWin32AntiMalware? TryInitialize() + { + try + { + return new(); + } + catch (Exception e) + { + Logger.AntiMalware.Warn("Could not initialize antimalware engine:"); + Logger.AntiMalware.Warn(e); + return null; + } + } + + private readonly IntPtr handle; + private bool disposedValue; + + private WindowsWin32AntiMalware() + { + AmsiInitialize(AmsiConstants.AppName, out handle); + } + + private static ScanResult ScanResultFromAmsiResult(AmsiResult result) + => result switch + { + AmsiResult.Clean => ScanResult.KnownSafe, + AmsiResult.NotDetected => ScanResult.NotDetected, + AmsiResult.Detected => ScanResult.Detected, + _ => ScanResult.MaybeMalware + }; + + public ScanResult ScanFile(FileInfo file) + { + var data = File.ReadAllBytes(file.FullName); + return ScanData(data, file.FullName); + } + + public ScanResult ScanData(byte[] data, string? contentName = null) + { + contentName ??= $"unknown_data_{Guid.NewGuid()}"; + + + + Logger.AntiMalware.Debug($"Scanned data named '{contentName}' with {provider.DisplayName()}, and got '{result}'"); + return ScanResultFromAmsiResult(result); + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // we have no disposable managed state + } + + AmsiUninitialize(handle); + disposedValue = true; + } + } + + ~WindowsWin32AntiMalware() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: false); + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + + [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] + [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] + private static extern void AmsiInitialize([MarshalAs(UnmanagedType.LPWStr)] string appName, [Out] out IntPtr handle); + + [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] + [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] + private static extern void AmsiUninitialize(IntPtr handle); + + [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] + [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] + private static extern void AmsiScanBuffer(IntPtr context, + [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer, uint length, + [MarshalAs(UnmanagedType.LPWStr)] string contentName, IntPtr session, [Out] out AmsiResult result); + } +} diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiFileStream.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiFileStream.cs similarity index 96% rename from IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiFileStream.cs rename to IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiFileStream.cs index a14653ca..be0d383f 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiFileStream.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiFileStream.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; -namespace IPA.AntiMalware.WinAPI +namespace IPA.AntiMalware.ComAPI { internal class AmsiFileStream : IAmsiStream, IDisposable { diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiMemoryStream.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiMemoryStream.cs similarity index 96% rename from IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiMemoryStream.cs rename to IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiMemoryStream.cs index 8aabd050..a611fa7a 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/AmsiMemoryStream.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/AmsiMemoryStream.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; -namespace IPA.AntiMalware.WinAPI +namespace IPA.AntiMalware.ComAPI { internal class AmsiMemoryStream : IAmsiStream, IDisposable { diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WinAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs similarity index 100% rename from IPA.Loader/AntiMalware/_HideInNet3/WinAPI/IAntimalware.cs rename to IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs similarity index 88% rename from IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs rename to IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs index 048dca96..1a71d371 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WindowsAntiMalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs @@ -1,5 +1,5 @@ #nullable enable -using IPA.AntiMalware.WinAPI; +using IPA.AntiMalware.ComAPI; using IPA.Logging; using System; using System.Collections.Generic; @@ -10,9 +10,9 @@ using System.Threading.Tasks; namespace IPA.AntiMalware { - internal class WindowsAntiMalware : IAntiMalware + internal class WindowsCOMAntiMalware : IAntiMalware { - internal static WindowsAntiMalware? TryInitialize() + internal static WindowsCOMAntiMalware? TryInitialize() { try { @@ -28,7 +28,7 @@ namespace IPA.AntiMalware private readonly IAntimalware amInterface; - private WindowsAntiMalware() + private WindowsCOMAntiMalware() { var amType = Type.GetTypeFromCLSID(AmsiConstants.CAntimalwareGuid, true); amInterface = (IAntimalware)Activator.CreateInstance(amType); From 26c92ace947d37ec2910dec378905c1136d72871 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:26:16 -0500 Subject: [PATCH 06/88] Finish implementation of Win32AntiMalware --- IPA.Loader/AntiMalware/AmsiResult.cs | 13 +++++++++++++ IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs | 8 +++++--- .../AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs | 9 --------- 3 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 IPA.Loader/AntiMalware/AmsiResult.cs diff --git a/IPA.Loader/AntiMalware/AmsiResult.cs b/IPA.Loader/AntiMalware/AmsiResult.cs new file mode 100644 index 00000000..ff755180 --- /dev/null +++ b/IPA.Loader/AntiMalware/AmsiResult.cs @@ -0,0 +1,13 @@ +#nullable enable + +namespace IPA.AntiMalware +{ + internal enum AmsiResult + { + Clean = 0, + NotDetected = 1, + BlockedByAdminStart = 0x4000, + BlockedByAdminEnd = 0x4fff, + Detected = 32768 + } +} diff --git a/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs index aef3c1a4..ba3f5daf 100644 --- a/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs +++ b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs @@ -54,9 +54,9 @@ namespace IPA.AntiMalware { contentName ??= $"unknown_data_{Guid.NewGuid()}"; + AmsiScanBuffer(handle, data, (uint)data.Length, contentName, IntPtr.Zero, out var result); - - Logger.AntiMalware.Debug($"Scanned data named '{contentName}' with {provider.DisplayName()}, and got '{result}'"); + Logger.AntiMalware.Debug($"Scanned data named '{contentName}' and got '{result}'"); return ScanResultFromAmsiResult(result); } @@ -99,6 +99,8 @@ namespace IPA.AntiMalware [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] private static extern void AmsiScanBuffer(IntPtr context, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer, uint length, - [MarshalAs(UnmanagedType.LPWStr)] string contentName, IntPtr session, [Out] out AmsiResult result); + [MarshalAs(UnmanagedType.LPWStr)] string contentName, + IntPtr session, + [Out] out AmsiResult result); } } diff --git a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs index 61b7ca1a..76743397 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs @@ -34,15 +34,6 @@ namespace IPA.AntiMalware.WinAPI void CloseSession([In] ulong session); } - internal enum AmsiResult - { - Clean = 0, - NotDetected = 1, - BlockedByAdminStart = 0x4000, - BlockedByAdminEnd = 0x4fff, - Detected = 32768 - } - internal enum AmsiAttribute { AppName = 0, From 6c9a842e0391e15206e17d4422780008c6e98f37 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:27:01 -0500 Subject: [PATCH 07/88] Make AntiMalwareEngine try to use the Win32 engine too --- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 1 + IPA.Loader/Loader/PluginLoader.cs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index fcf9484d..ada9d18d 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -25,6 +25,7 @@ namespace IPA.AntiMalware #if !NET35 engine = WindowsCOMAntiMalware.TryInitialize(); #endif + engine ??= WindowsWin32AntiMalware.TryInitialize(); engine ??= new NoopAntiMalware(); return engine; diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index feb72462..1dad5c15 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -17,6 +17,7 @@ using SemVer; using System.Diagnostics.CodeAnalysis; using HarmonyLib; using System.Diagnostics; +using IPA.AntiMalware; #if NET4 using Task = System.Threading.Tasks.Task; using TaskEx = System.Threading.Tasks.Task; @@ -141,6 +142,9 @@ namespace IPA.Loader try { + Logger.loader.Debug($"Scanning {plugin}"); + AntiMalwareEngine.Engine.ScanFile(new FileInfo(plugin)); + var pluginModule = AssemblyDefinition.ReadAssembly(plugin, new ReaderParameters { ReadingMode = ReadingMode.Immediate, From 0c3649861be6136aa84c831148b683114fe2363e Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:35:10 -0500 Subject: [PATCH 08/88] Adjusted log messages to be marginally more helpful --- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 3 +++ .../AntiMalware/WindowsWin32AntiMalware.cs | 11 ++++++++--- .../_HideInNet3/ComAPI/IAntimalware.cs | 2 +- .../_HideInNet3/WindowsCOMAntiMalware.cs | 6 +++--- Refs/UnityEngine.CoreModule.Net4.dll | Bin 723968 -> 723968 bytes 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index ada9d18d..c3cedc6a 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -1,4 +1,5 @@ #nullable enable +using IPA.Logging; using System; using System.Collections.Generic; using System.Linq; @@ -28,6 +29,8 @@ namespace IPA.AntiMalware engine ??= WindowsWin32AntiMalware.TryInitialize(); engine ??= new NoopAntiMalware(); + Logger.AntiMalware.Debug($"Antimalware engine initialized with {engine.GetType()}"); + return engine; } } diff --git a/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs index ba3f5daf..43bfba69 100644 --- a/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs +++ b/IPA.Loader/AntiMalware/WindowsWin32AntiMalware.cs @@ -1,5 +1,4 @@ #nullable enable -using IPA.AntiMalware.ComAPI; using IPA.Logging; using System; using System.Collections.Generic; @@ -21,7 +20,7 @@ namespace IPA.AntiMalware } catch (Exception e) { - Logger.AntiMalware.Warn("Could not initialize antimalware engine:"); + Logger.AntiMalware.Warn("Could not initialize Win32-based antimalware engine:"); Logger.AntiMalware.Warn(e); return null; } @@ -56,7 +55,7 @@ namespace IPA.AntiMalware AmsiScanBuffer(handle, data, (uint)data.Length, contentName, IntPtr.Zero, out var result); - Logger.AntiMalware.Debug($"Scanned data named '{contentName}' and got '{result}'"); + Logger.AntiMalware.Trace($"Scanned data named '{contentName}' and got '{result}'"); return ScanResultFromAmsiResult(result); } @@ -88,15 +87,21 @@ namespace IPA.AntiMalware } [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] +#if !NET35 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] +#endif private static extern void AmsiInitialize([MarshalAs(UnmanagedType.LPWStr)] string appName, [Out] out IntPtr handle); [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] +#if !NET35 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] +#endif private static extern void AmsiUninitialize(IntPtr handle); [DllImport("amsi", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode, ExactSpelling = true)] +#if !NET35 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] +#endif private static extern void AmsiScanBuffer(IntPtr context, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer, uint length, [MarshalAs(UnmanagedType.LPWStr)] string contentName, diff --git a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs index 76743397..53547f96 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs @@ -6,7 +6,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; -namespace IPA.AntiMalware.WinAPI +namespace IPA.AntiMalware.ComAPI { [Guid("82d29c2e-f062-44e6-b5c9-3d9a2f24a2df")] [ComVisible(true)] diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs index 1a71d371..236efcf0 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs @@ -20,7 +20,7 @@ namespace IPA.AntiMalware } catch (Exception e) { - Logger.AntiMalware.Warn("Could not initialize antimalware engine:"); + Logger.AntiMalware.Warn("Could not initialize COM-based antimalware engine:"); Logger.AntiMalware.Warn(e); return null; } @@ -47,7 +47,7 @@ namespace IPA.AntiMalware { using var stream = new AmsiFileStream(file, IntPtr.Zero); amInterface.Scan(stream, out var result, out var provider); - Logger.AntiMalware.Debug($"Scanned file '{file}' with {provider.DisplayName()}, and got '{result}'"); + Logger.AntiMalware.Trace($"Scanned file '{file}' with {provider.DisplayName()}, and got '{result}'"); return ScanResultFromAmsiResult(result); } @@ -56,7 +56,7 @@ namespace IPA.AntiMalware contentName ??= $"unknown_data_{Guid.NewGuid()}"; using var stream = new AmsiMemoryStream(contentName, data, IntPtr.Zero); amInterface.Scan(stream, out var result, out var provider); - Logger.AntiMalware.Debug($"Scanned data named '{contentName}' with {provider.DisplayName()}, and got '{result}'"); + Logger.AntiMalware.Trace($"Scanned data named '{contentName}' with {provider.DisplayName()}, and got '{result}'"); return ScanResultFromAmsiResult(result); } } diff --git a/Refs/UnityEngine.CoreModule.Net4.dll b/Refs/UnityEngine.CoreModule.Net4.dll index 1effedfcfe324e83f31f34543eeac09d505d4d39..17925d3a0a2e5c7675b73b0011e344d7b84da0ef 100644 GIT binary patch delta 45 tcmZpeq0<0FEsQNpEzB(}Ev#GE@`4%J+w+6jfEYw`05RwG{9vw$I{;eb4?O?? delta 45 tcmZpeq0<0FEsQNpEzB(}Ev#GE@`4%J+Vg`!m>q~YfS7Z8elXX>9ROO*4?F+> From 53f94fcb807d84b439935faaf63f72b21f1e4558 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:46:19 -0500 Subject: [PATCH 09/88] Added anti-malware related config options --- IPA.Injector/Injector.cs | 38 ++++++++------------- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 13 ++++--- IPA.Loader/Config/SelfConfig.cs | 20 ++++++++++- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/IPA.Injector/Injector.cs b/IPA.Injector/Injector.cs index 1ea7e058..26542ea9 100644 --- a/IPA.Injector/Injector.cs +++ b/IPA.Injector/Injector.cs @@ -1,4 +1,6 @@ -using IPA.Config; +#nullable enable +using IPA.AntiMalware; +using IPA.Config; using IPA.Injector.Backups; using IPA.Loader; using IPA.Logging; @@ -29,8 +31,8 @@ namespace IPA.Injector // ReSharper disable once UnusedMember.Global internal static class Injector { - private static Task pluginAsyncLoadTask; - private static Task permissionFixTask; + private static Task? pluginAsyncLoadTask; + private static Task? permissionFixTask; //private static string otherNewtonsoftJson = null; // ReSharper disable once UnusedParameter.Global @@ -40,7 +42,7 @@ namespace IPA.Injector // and since this class doesn't have any static fields that // aren't defined in mscorlib, we can control exactly what // gets loaded. - + _ = args; try { if (Environment.GetCommandLineArgs().Contains("--verbose")) @@ -48,16 +50,6 @@ namespace IPA.Injector SetupLibraryLoading(); - /*var otherNewtonsoft = Path.Combine( - Directory.EnumerateDirectories(Environment.CurrentDirectory, "*_Data").First(), - "Managed", - "Newtonsoft.Json.dll"); - if (File.Exists(otherNewtonsoft)) - { // this game ships its own Newtonsoft; force load ours and flag loading theirs - LibLoader.LoadLibrary(new AssemblyName("Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed")); - otherNewtonsoftJson = otherNewtonsoft; - }*/ - EnsureDirectories(); // this is weird, but it prevents Mono from having issues loading the type. @@ -93,6 +85,9 @@ namespace IPA.Injector GameVersionEarly.Load(); + // load the anti-malware engine + _ = AntiMalwareEngine.Engine; + Updates.InstallPendingUpdates(); LibLoader.SetupAssemblyFilenames(true); @@ -110,9 +105,9 @@ namespace IPA.Injector { string path; if (!Directory.Exists(path = Path.Combine(Environment.CurrentDirectory, "UserData"))) - Directory.CreateDirectory(path); + _ = Directory.CreateDirectory(path); if (!Directory.Exists(path = Path.Combine(Environment.CurrentDirectory, "Plugins"))) - Directory.CreateDirectory(path); + _ = Directory.CreateDirectory(path); } private static void SetupLibraryLoading() @@ -184,7 +179,7 @@ namespace IPA.Injector goto endPatchCoreModule; } - MethodDefinition cctor = null; + MethodDefinition? cctor = null; foreach (var m in application.Methods) if (m.IsRuntimeSpecialName && m.Name == ".cctor") cctor = m; @@ -311,9 +306,6 @@ namespace IPA.Injector if (bootstrapped) return; bootstrapped = true; - /*if (otherNewtonsoftJson != null) - Assembly.LoadFrom(otherNewtonsoftJson);*/ - Application.logMessageReceived += delegate (string condition, string stackTrace, LogType type) { @@ -336,12 +328,12 @@ namespace IPA.Injector private static void Bootstrapper_Destroyed() { // wait for plugins to finish loading - pluginAsyncLoadTask.Wait(); - permissionFixTask.Wait(); + pluginAsyncLoadTask?.Wait(); + permissionFixTask?.Wait(); log.Debug("Plugins loaded"); log.Debug(string.Join(", ", PluginLoader.PluginsMetadata.StrJP())); - PluginComponent.Create(); + _ = PluginComponent.Create(); } } } \ No newline at end of file diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index c3cedc6a..501aa0d3 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -1,10 +1,6 @@ #nullable enable +using IPA.Config; using IPA.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace IPA.AntiMalware { @@ -23,10 +19,13 @@ namespace IPA.AntiMalware private static IAntiMalware InitializeEngine() { IAntiMalware? engine = null; + if (SelfConfig.AntiMalware_.UseIfAvailable_) + { #if !NET35 - engine = WindowsCOMAntiMalware.TryInitialize(); + engine = WindowsCOMAntiMalware.TryInitialize(); #endif - engine ??= WindowsWin32AntiMalware.TryInitialize(); + engine ??= WindowsWin32AntiMalware.TryInitialize(); + } engine ??= new NoopAntiMalware(); Logger.AntiMalware.Debug($"Antimalware engine initialized with {engine.GetType()}"); diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index 8bd610de..0434961f 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -79,6 +79,9 @@ namespace IPA.Config // Debug.CondenseModLogs internal static SelfConfig CommandLineValues = new(); + // For readability's sake, I want the default values to be visible in source. +#pragma warning disable CA1805 // Do not initialize unnecessarily + // END: section ignore public virtual bool Regenerate { get; set; } = true; @@ -149,7 +152,22 @@ namespace IPA.Config // LINE: ignore [NonNullable] - public virtual Debug_ Debug { get; set; } = new Debug_(); + public virtual Debug_ Debug { get; set; } = new(); + + public class AntiMalware_ + { + public virtual bool UseIfAvailable { get; set; } = true; + // LINE: ignore + public static bool UseIfAvailable_ => Instance?.AntiMalware?.UseIfAvailable ?? true; + + public virtual bool LoadPartialThreatPlugins { get; set; } = false; + // LINE: ignore + public static bool LoadPartialThreatPlugins_ => Instance?.AntiMalware?.LoadPartialThreatPlugins ?? true; + } + + // LINE: ignore + [NonNullable] + public virtual AntiMalware_ AntiMalware { get; set; } = new(); public virtual bool YeetMods { get; set; } = true; // LINE: ignore 2 From 4a91c241892bf991a5570afe24d50403b23e6631 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 21:59:07 -0500 Subject: [PATCH 10/88] Scans now actually prevent running of code --- IPA.Injector/Updates.cs | 17 ++++++++++++++++- IPA.Loader/Config/SelfConfig.cs | 4 ++-- IPA.Loader/Loader/PluginLoader.cs | 15 ++++++++++++--- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/IPA.Injector/Updates.cs b/IPA.Injector/Updates.cs index 1862f889..754b13f9 100644 --- a/IPA.Injector/Updates.cs +++ b/IPA.Injector/Updates.cs @@ -1,4 +1,7 @@ -using IPA.Utilities; +#nullable enable +using IPA.AntiMalware; +using IPA.Config; +using IPA.Utilities; using System; using System.Collections.Generic; using System.Diagnostics; @@ -31,6 +34,18 @@ namespace IPA.Injector var path = Path.Combine(UnityGame.InstallPath, "IPA.exe"); if (!File.Exists(path)) return; + var scanResult = AntiMalwareEngine.Engine.ScanFile(new FileInfo(path)); + if (scanResult == ScanResult.Detected) + { + updater.Error("Scan of BSIPA installer found malware; not updating"); + return; + } + if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) + { + updater.Error("Scan of BSIPA installer returned partial threat; not updating. To allow this, enable AntiMalware.RunPartialThreatCode in the config."); + return; + } + var ipaVersion = new Version(FileVersionInfo.GetVersionInfo(path).FileVersion); var selfVersion = Assembly.GetExecutingAssembly().GetName().Version; diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index 0434961f..a6a66e43 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -160,9 +160,9 @@ namespace IPA.Config // LINE: ignore public static bool UseIfAvailable_ => Instance?.AntiMalware?.UseIfAvailable ?? true; - public virtual bool LoadPartialThreatPlugins { get; set; } = false; + public virtual bool RunPartialThreatCode { get; set; } = false; // LINE: ignore - public static bool LoadPartialThreatPlugins_ => Instance?.AntiMalware?.LoadPartialThreatPlugins ?? true; + public static bool RunPartialThreatCode_ => Instance?.AntiMalware?.RunPartialThreatCode ?? true; } // LINE: ignore diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 1dad5c15..7c1e5daf 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -142,10 +142,19 @@ namespace IPA.Loader try { - Logger.loader.Debug($"Scanning {plugin}"); - AntiMalwareEngine.Engine.ScanFile(new FileInfo(plugin)); + var scanResult = AntiMalwareEngine.Engine.ScanFile(metadata.File); + if (scanResult is ScanResult.Detected) + { + Logger.loader.Warn($"Scan of {plugin} found malware; not loading"); + continue; + } + if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) + { + Logger.loader.Warn($"Scan of {plugin} found partial threat; not loading. To load this, set AntiMalware.RunPartialThreatCode in the config."); + continue; + } - var pluginModule = AssemblyDefinition.ReadAssembly(plugin, new ReaderParameters + var pluginModule = AssemblyDefinition.ReadAssembly(metadata.File.FullName, new ReaderParameters { ReadingMode = ReadingMode.Immediate, ReadWrite = false, From 97b9eb6c34c9dac726bad5aa5cc74386a17e40c0 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 22:11:14 -0500 Subject: [PATCH 11/88] Library loader now scans libraries before loading them --- IPA.Injector/Injector.cs | 3 +- IPA.Loader/AntiMalware/AntiMalwareEngine.cs | 14 +++++- IPA.Loader/Loader/LibLoader.cs | 51 +++++++++++++++------ 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/IPA.Injector/Injector.cs b/IPA.Injector/Injector.cs index 26542ea9..edaa9ea2 100644 --- a/IPA.Injector/Injector.cs +++ b/IPA.Injector/Injector.cs @@ -85,8 +85,7 @@ namespace IPA.Injector GameVersionEarly.Load(); - // load the anti-malware engine - _ = AntiMalwareEngine.Engine; + AntiMalwareEngine.Initialize(); Updates.InstallPendingUpdates(); diff --git a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs index 501aa0d3..dc9aef79 100644 --- a/IPA.Loader/AntiMalware/AntiMalwareEngine.cs +++ b/IPA.Loader/AntiMalware/AntiMalwareEngine.cs @@ -1,6 +1,7 @@ #nullable enable using IPA.Config; using IPA.Logging; +using System; namespace IPA.AntiMalware { @@ -11,12 +12,21 @@ namespace IPA.AntiMalware /// public static class AntiMalwareEngine { + private static IAntiMalware? engine; + /// /// Gets the current Anti-Malware engine. /// - public static IAntiMalware Engine { get; } = InitializeEngine(); + public static IAntiMalware Engine => engine ?? throw new InvalidOperationException(); + + internal static bool IsInitialized => engine != null; + + internal static void Initialize() + { + engine = CreateEngine(); + } - private static IAntiMalware InitializeEngine() + private static IAntiMalware CreateEngine() { IAntiMalware? engine = null; if (SelfConfig.AntiMalware_.UseIfAvailable_) diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 3f0a0076..710375b4 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; @@ -9,6 +10,8 @@ using System.Linq; using IPA.Logging; using IPA.Utilities; using Mono.Cecil; +using IPA.AntiMalware; +using IPA.Config; #if NET3 using Net3_Proxy; using Directory = Net3_Proxy.Directory; @@ -50,7 +53,7 @@ namespace IPA.Loader { internal static string LibraryPath => Path.Combine(Environment.CurrentDirectory, "Libs"); internal static string NativeLibraryPath => Path.Combine(LibraryPath, "Native"); - internal static Dictionary FilenameLocations; + internal static Dictionary FilenameLocations = null!; internal static void Configure() { @@ -113,13 +116,13 @@ namespace IPA.Loader } } - public static Assembly AssemblyLibLoader(object source, ResolveEventArgs e) + public static Assembly? AssemblyLibLoader(object source, ResolveEventArgs e) { var asmName = new AssemblyName(e.Name); return LoadLibrary(asmName); } - internal static Assembly LoadLibrary(AssemblyName asmName) + internal static Assembly? LoadLibrary(AssemblyName asmName) { Log(Logger.Level.Debug, $"Resolving library {asmName}"); @@ -131,19 +134,13 @@ namespace IPA.Loader if (FilenameLocations.TryGetValue(testFile, out var path)) { Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); - if (File.Exists(path)) - return Assembly.LoadFrom(path); - - Log(Logger.Level.Critical, $"but {path} no longer exists!"); + return LoadSafe(path); } else if (FilenameLocations.TryGetValue(testFile = $"{asmName.Name}.{asmName.Version}.dll", out path)) { Log(Logger.Level.Debug, $"Found file {testFile} as {path}"); Log(Logger.Level.Warning, $"File {testFile} should be renamed to just {asmName.Name}.dll"); - if (File.Exists(path)) - return Assembly.LoadFrom(path); - - Log(Logger.Level.Critical, $"but {path} no longer exists!"); + return LoadSafe(path); } Log(Logger.Level.Critical, $"No library {asmName} found"); @@ -151,7 +148,33 @@ namespace IPA.Loader return null; } - internal static void Log(Logger.Level lvl, string message) + private static Assembly? LoadSafe(string path) + { + if (!File.Exists(path)) + { + Log(Logger.Level.Critical, $"{path} no longer exists!"); + return null; + } + + if (AntiMalwareEngine.IsInitialized) + { + var result = AntiMalwareEngine.Engine.ScanFile(new FileInfo(path)); + if (result is ScanResult.Detected) + { + Log(Logger.Level.Error, $"Scan of '{path}' found malware; not loading"); + return null; + } + if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && result is not ScanResult.KnownSafe and not ScanResult.NotDetected) + { + Log(Logger.Level.Error, $"Scan of '{path}' found partial threat; not loading. To load this, enable AntiMalware.RunPartialThreatCode in the config."); + return null; + } + } + + return Assembly.LoadFrom(path); + } + + internal static void Log(Logger.Level lvl, string message) { // multiple proxy methods to delay loading of assemblies until it's done if (Logger.LogCreated) AssemblyLibLoaderCallLogger(lvl, message); @@ -172,7 +195,7 @@ namespace IPA.Loader private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, Exception message) => Logger.libLoader.Log(lvl, message); // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree - private static IEnumerable TraverseTree(string root, Func dirValidator = null) + private static IEnumerable TraverseTree(string root, Func? dirValidator = null) { if (dirValidator == null) dirValidator = s => true; From f93bdad9af5c40c39b4bcd3cf02ba1d2a4d9620c Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 22:22:27 -0500 Subject: [PATCH 12/88] Delay scan of IPA.exe until just before it would be run --- IPA.Injector/Updates.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/IPA.Injector/Updates.cs b/IPA.Injector/Updates.cs index 754b13f9..ee9ec1de 100644 --- a/IPA.Injector/Updates.cs +++ b/IPA.Injector/Updates.cs @@ -34,23 +34,23 @@ namespace IPA.Injector var path = Path.Combine(UnityGame.InstallPath, "IPA.exe"); if (!File.Exists(path)) return; - var scanResult = AntiMalwareEngine.Engine.ScanFile(new FileInfo(path)); - if (scanResult == ScanResult.Detected) - { - updater.Error("Scan of BSIPA installer found malware; not updating"); - return; - } - if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) - { - updater.Error("Scan of BSIPA installer returned partial threat; not updating. To allow this, enable AntiMalware.RunPartialThreatCode in the config."); - return; - } - var ipaVersion = new Version(FileVersionInfo.GetVersionInfo(path).FileVersion); var selfVersion = Assembly.GetExecutingAssembly().GetName().Version; if (ipaVersion > selfVersion) { + var scanResult = AntiMalwareEngine.Engine.ScanFile(new FileInfo(path)); + if (scanResult == ScanResult.Detected) + { + updater.Error("Scan of BSIPA installer found malware; not updating"); + return; + } + if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) + { + updater.Error("Scan of BSIPA installer returned partial threat; not updating. To allow this, enable AntiMalware.RunPartialThreatCode in the config."); + return; + } + _ = Process.Start(new ProcessStartInfo { FileName = path, From 59216c31474597022aa109bec88ccc9e242f9ece Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 22:23:22 -0500 Subject: [PATCH 13/88] Bump version --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 1f6cc03d..a864f713 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.14.0", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.1.7-pre.1", + "version": "4.1.7-pre.2", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From be988d7a4454b3b07e79c2cc6290bf6eabe2f8a2 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 6 Apr 2021 22:30:59 -0500 Subject: [PATCH 14/88] Use latest version of docfx --- .github/workflows/tag_docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tag_docs.yml b/.github/workflows/tag_docs.yml index c6031945..62f5b9c8 100644 --- a/.github/workflows/tag_docs.yml +++ b/.github/workflows/tag_docs.yml @@ -37,7 +37,7 @@ jobs: - name: Install DocFX uses: crazy-max/ghaction-chocolatey@v1 with: - args: install docfx --version 2.48 -y + args: install docfx -y - name: Checkout current pages uses: actions/checkout@v2 with: From 56bb594fbc659d3db61a11ff241986ab11d43d5c Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 27 Apr 2021 21:44:34 -0500 Subject: [PATCH 15/88] Fix bug with loading of metadata with plugin-hint pointing to a class type --- IPA.Loader/Loader/PluginLoader.cs | 70 +++++++++++++++++-------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 7c1e5daf..7cead744 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -198,43 +198,49 @@ namespace IPA.Loader metadata.Manifest = pluginManifest; + bool TryPopulatePluginType(TypeDefinition type, PluginMetadata meta) + { + if (!type.HasCustomAttributes) + return false; + + var attr = type.CustomAttributes.FirstOrDefault(a => a.Constructor.DeclaringType.FullName == typeof(PluginAttribute).FullName); + if (attr is null) + return false; + + if (!attr.HasConstructorArguments) + { + Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has no arguments"); + return false; + } + + var args = attr.ConstructorArguments; + if (args.Count != 1) + { + Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has unexpected number of arguments"); + return false; + } + var rtOptionsArg = args[0]; + if (rtOptionsArg.Type.FullName != typeof(RuntimeOptions).FullName) + { + Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but first argument is of unexpected type {rtOptionsArg.Type.FullName}"); + return false; + } + + var rtOptionsValInt = (int)rtOptionsArg.Value; // `int` is the underlying type of RuntimeOptions + + meta.RuntimeOptions = (RuntimeOptions)rtOptionsValInt; + meta.PluginType = type; + return true; + } + void TryGetNamespacedPluginType(string ns, PluginMetadata meta) { foreach (var type in pluginModule.Types) { if (type.Namespace != ns) continue; - if (type.HasCustomAttributes) - { - var attr = type.CustomAttributes.FirstOrDefault(a => a.Constructor.DeclaringType.FullName == typeof(PluginAttribute).FullName); - if (attr != null) - { - if (!attr.HasConstructorArguments) - { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has no arguments"); - return; - } - - var args = attr.ConstructorArguments; - if (args.Count != 1) - { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has unexpected number of arguments"); - return; - } - var rtOptionsArg = args[0]; - if (rtOptionsArg.Type.FullName != typeof(RuntimeOptions).FullName) - { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but first argument is of unexpected type {rtOptionsArg.Type.FullName}"); - return; - } - - var rtOptionsValInt = (int)rtOptionsArg.Value; // `int` is the underlying type of RuntimeOptions - - meta.RuntimeOptions = (RuntimeOptions)rtOptionsValInt; - meta.PluginType = type; - return; - } - } + if (TryPopulatePluginType(type, meta)) + return; } } @@ -243,7 +249,7 @@ namespace IPA.Loader if (hint != null) { var type = pluginModule.GetType(hint); - if (type != null) + if (type == null || !TryPopulatePluginType(type, metadata)) TryGetNamespacedPluginType(hint, metadata); } From fef1ad08000692b3ceec588efff7f8287833fea6 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 27 Apr 2021 22:00:23 -0500 Subject: [PATCH 16/88] Add explicit check for plugin resolution loops --- IPA.Loader/Loader/PluginLoader.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 7cead744..3b93e48c 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -816,6 +816,7 @@ namespace IPA.Loader var loadedPlugins = new Dictionary(); var outputOrder = new List(PluginsMetadata.Count); + var isProcessing = new HashSet(); { bool TryResolveId(string id, [MaybeNullWhen(false)] out PluginMetadata meta, out bool disabled, out bool ignored) @@ -846,6 +847,18 @@ namespace IPA.Loader void Resolve(PluginMetadata plugin, ref bool disabled, out bool ignored) { + // first we need to check for loops in the resolution graph to prevent stack overflows + if (isProcessing.Contains(plugin)) + { + Logger.loader.Error($"Loop detected while processing {plugin.Name}; flagging as ignored"); + // we can't safely add it to ignoredPlugins, because then when the ignore propagates up the stack, + // we may end up ignoring outselves again + ignored = true; + return; + } + + using var _removeProcessing = Utils.ScopeGuard(() => isProcessing.Remove(plugin)); + // if this method is being called, this is the first and only time that it has been called for this plugin. ignored = false; From a70bc778693c96ffad58dc90023b3c1266e11997 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 28 Apr 2021 01:09:11 -0500 Subject: [PATCH 17/88] Attempt to make COM anti-malware work, find out that Mono is utterly broken --- IPA.Loader/AntiMalware/AmsiConstants.cs | 3 ++ .../_HideInNet3/ComAPI/IAntimalware.cs | 15 +++++---- .../_HideInNet3/WindowsCOMAntiMalware.cs | 31 +++++++++++++++++-- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/IPA.Loader/AntiMalware/AmsiConstants.cs b/IPA.Loader/AntiMalware/AmsiConstants.cs index de310955..d77aa55c 100644 --- a/IPA.Loader/AntiMalware/AmsiConstants.cs +++ b/IPA.Loader/AntiMalware/AmsiConstants.cs @@ -6,6 +6,9 @@ namespace IPA.AntiMalware internal static class AmsiConstants { public const string AppName = "BSIPA/" + Config.SelfConfig.IPAVersion; + public const string IAntimalwareGuidStr = "82d29c2e-f062-44e6-b5c9-3d9a2f24a2df"; + public static readonly Guid IAntimalwareGuid = new(IAntimalwareGuidStr); public static readonly Guid CAntimalwareGuid = new("fdb00e52-a214-4aa1-8fba-4357bb0072ec"); + public static readonly Guid IUnknownGuid = new("00000000-0000-0000-C000-000000000046"); } } diff --git a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs index 53547f96..109fce79 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/ComAPI/IAntimalware.cs @@ -8,24 +8,27 @@ using System.Threading.Tasks; namespace IPA.AntiMalware.ComAPI { - [Guid("82d29c2e-f062-44e6-b5c9-3d9a2f24a2df")] - [ComVisible(true)] + [ComImport] + [Guid(AmsiConstants.IAntimalwareGuidStr)] + [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAntimalware { void Scan([In] IAmsiStream stream, [Out] out AmsiResult result, [Out] out IAntimalwareProvider provider); void CloseSession([In] ulong session); } + [ComImport] [Guid("3e47f2e5-81d4-4d3b-897f-545096770373")] - [ComVisible(true)] + [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAmsiStream { - unsafe void GetAttribute([In] AmsiAttribute attribute, [In] uint dataSize, [Out] byte* buffer, out uint writtenData); - unsafe void Read([In] ulong position, [In] uint dataSize, [Out] byte* buffer, out uint readSize); + unsafe void GetAttribute([In] AmsiAttribute attribute, [In] uint dataSize, [Out] byte* buffer, [Out] out uint writtenData); + unsafe void Read([In] ulong position, [In] uint dataSize, [Out] byte* buffer, [Out] out uint readSize); } + [ComImport] [Guid("b2cabfe3-fe04-42b1-a5df-08d483d4d125")] - [ComVisible(true)] + [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAntimalwareProvider { [return: MarshalAs(UnmanagedType.LPWStr)] string DisplayName(); diff --git a/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs index 236efcf0..70868bd2 100644 --- a/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs +++ b/IPA.Loader/AntiMalware/_HideInNet3/WindowsCOMAntiMalware.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; @@ -14,6 +15,9 @@ namespace IPA.AntiMalware { internal static WindowsCOMAntiMalware? TryInitialize() { + // Mono's COM interop *fundamentally doesn't work.* + // End of story. +#if false try { return new(); @@ -22,18 +26,39 @@ namespace IPA.AntiMalware { Logger.AntiMalware.Warn("Could not initialize COM-based antimalware engine:"); Logger.AntiMalware.Warn(e); - return null; } +#endif + return null; } private readonly IAntimalware amInterface; private WindowsCOMAntiMalware() { - var amType = Type.GetTypeFromCLSID(AmsiConstants.CAntimalwareGuid, true); - amInterface = (IAntimalware)Activator.CreateInstance(amType); + var hr = CoCreateInstanceAM(AmsiConstants.CAntimalwareGuid, + null, + 0x1 | 0x4 /* inproc server, local server */, + AmsiConstants.IAntimalwareGuid, + out var antimalware); + Marshal.ThrowExceptionForHR(hr); + + amInterface = antimalware; } + [DllImport("ole32", + CallingConvention = CallingConvention.Winapi, + ExactSpelling = true, + PreserveSig = false, + EntryPoint = "CoCreateInstance")] + [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] + private static extern int CoCreateInstanceAM( + [In] in Guid clsid, + [In, MarshalAs(UnmanagedType.Interface)] object? unkOuter, + [In] int dwClsContext, + [In] in Guid iid, + [Out, MarshalAs(UnmanagedType.Interface)] out IAntimalware @interface); + + private static ScanResult ScanResultFromAmsiResult(AmsiResult result) => result switch { From e5f4a8419f77b7eb509aa8e9813ee3685162b77e Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 28 Apr 2021 01:09:34 -0500 Subject: [PATCH 18/88] Add VSCode debugger launch profile --- .vscode/launch.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..5408330e --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,12 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to BSIPA", + "type": "mono", + "request": "attach", + "address": "localhost", + "port": 10000 + } + ] +} \ No newline at end of file From 3cedf36192110e87301990872644ed8a20b54553 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Sat, 1 May 2021 17:26:51 -0500 Subject: [PATCH 19/88] Make config accept any non-private getter and setter in EmitLoad and EmitStore --- .../Stores/GeneratedStoreImpl/Utility.cs | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs index 43b766ed..a5d77664 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Logging; using System; using System.Collections; @@ -22,7 +23,7 @@ namespace IPA.Config.Stores { #region Logs private static readonly MethodInfo LogErrorMethod = typeof(GeneratedStoreImpl).GetMethod(nameof(LogError), BindingFlags.NonPublic | BindingFlags.Static); - internal static void LogError(Type expected, Type found, string message) + internal static void LogError(Type? expected, Type? found, string message) { Logger.config.Notice($"{message}{(expected == null ? "" : $" (expected {expected}, found {found?.ToString() ?? "null"})")}"); } @@ -41,7 +42,7 @@ namespace IPA.Config.Stores //private delegate LocalBuilder LocalAllocator(Type type, int idx = 0); private static LocalAllocator MakeLocalAllocator(ILGenerator il) - => new LocalAllocator(il); + => new(il); private struct AllocatedLocal : IDisposable { @@ -66,7 +67,7 @@ namespace IPA.Config.Stores private sealed class LocalAllocator { private readonly ILGenerator ilSource; - private readonly Dictionary> unallocatedLocals = new Dictionary>(); + private readonly Dictionary> unallocatedLocals = new(); public LocalAllocator(ILGenerator il) => ilSource = il; @@ -81,7 +82,7 @@ namespace IPA.Config.Stores { var list = GetLocalListForType(type); if (list.Count < 1) list.Push(ilSource.DeclareLocal(type)); - return new AllocatedLocal(this, list.Pop()); + return new(this, list.Pop()); } public void Deallocate(AllocatedLocal loc) @@ -97,12 +98,13 @@ namespace IPA.Config.Stores thisarg(il); // load this if (member.IsField) - il.Emit(OpCodes.Ldfld, member.Member as FieldInfo); + il.Emit(OpCodes.Ldfld, (FieldInfo)member.Member); else { // member is a property - var prop = member.Member as PropertyInfo; - var getter = prop.GetGetMethod(); - if (getter == null) throw new InvalidOperationException($"Property {member.Name} does not have a getter and is not ignored"); + var prop = (PropertyInfo)member.Member; + var getter = prop.GetGetMethod(true); + if (getter is null || getter.IsPrivate) + throw new InvalidOperationException($"Property {member.Name} does not have a getter and is not ignored"); il.Emit(OpCodes.Call, getter); } @@ -114,12 +116,13 @@ namespace IPA.Config.Stores value(il); if (member.IsField) - il.Emit(OpCodes.Stfld, member.Member as FieldInfo); + il.Emit(OpCodes.Stfld, (FieldInfo)member.Member); else { // member is a property - var prop = member.Member as PropertyInfo; - var setter = prop.GetSetMethod(); - if (setter == null) throw new InvalidOperationException($"Property {member.Name} does not have a setter and is not ignored"); + var prop = (PropertyInfo)member.Member; + var setter = prop.GetSetMethod(true); + if (setter is null || setter.IsPrivate) + throw new InvalidOperationException($"Property {member.Name} does not have a setter and is not ignored"); il.Emit(OpCodes.Call, setter); } @@ -132,7 +135,7 @@ namespace IPA.Config.Stores il.Emit(OpCodes.Call, LogWarningExceptionMethod); } - private static void EmitLogError(ILGenerator il, string message, bool tailcall = false, Action expected = null, Action found = null) + private static void EmitLogError(ILGenerator il, string message, bool tailcall = false, Action? expected = null, Action? found = null) { if (expected == null) expected = il => il.Emit(OpCodes.Ldnull); if (found == null) found = il => il.Emit(OpCodes.Ldnull); From 29a2c7661aa6a153537aec9b402c38eac4b70924 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 19 May 2021 17:58:38 -0500 Subject: [PATCH 20/88] Fix unicode conversion issue when getting the path of the proxy binary --- Doorstop/Proxy/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Doorstop/Proxy/main.c b/Doorstop/Proxy/main.c index 5d3d51f9..e5bdea1b 100644 --- a/Doorstop/Proxy/main.c +++ b/Doorstop/Proxy/main.c @@ -194,8 +194,9 @@ void *ownMonoJitInitVersion(const char *root_domain_name, const char *runtime_ve wchar_t* dll_path_w; // self path size_t dll_path_len = get_module_path((HINSTANCE)&__ImageBase, &dll_path_w, NULL, 0); - char* self_dll_path = memalloc(dll_path_len + 1); - WideCharToMultiByte(CP_UTF8, 0, dll_path_w, -1, self_dll_path, dll_path_len + 1, NULL, NULL); + size_t multibyte_path_len = WideCharToMultiByte(CP_UTF8, 0, dll_path_w, dll_path_len, NULL, 0, NULL, NULL); + char* self_dll_path = memalloc(multibyte_path_len); + WideCharToMultiByte(CP_UTF8, 0, dll_path_w, dll_path_len, self_dll_path, multibyte_path_len, NULL, NULL); mono_dllmap_insert(NULL, "i:bsipa-doorstop", NULL, self_dll_path, NULL); // remap `bsipa-doorstop` to this assembly From 26a07c61f10da01cb8266b72452c235edadfa231 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 19 May 2021 18:22:16 -0500 Subject: [PATCH 21/88] Null terminate multibyte strings --- Doorstop/Proxy/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Doorstop/Proxy/main.c b/Doorstop/Proxy/main.c index e5bdea1b..e07fe86b 100644 --- a/Doorstop/Proxy/main.c +++ b/Doorstop/Proxy/main.c @@ -195,8 +195,9 @@ void *ownMonoJitInitVersion(const char *root_domain_name, const char *runtime_ve wchar_t* dll_path_w; // self path size_t dll_path_len = get_module_path((HINSTANCE)&__ImageBase, &dll_path_w, NULL, 0); size_t multibyte_path_len = WideCharToMultiByte(CP_UTF8, 0, dll_path_w, dll_path_len, NULL, 0, NULL, NULL); - char* self_dll_path = memalloc(multibyte_path_len); - WideCharToMultiByte(CP_UTF8, 0, dll_path_w, dll_path_len, self_dll_path, multibyte_path_len, NULL, NULL); + char* self_dll_path = memalloc(multibyte_path_len + 1); + WideCharToMultiByte(CP_UTF8, 0, dll_path_w, dll_path_len, self_dll_path, multibyte_path_len + 1, NULL, NULL); + self_dll_path[multibyte_path_len] = 0; mono_dllmap_insert(NULL, "i:bsipa-doorstop", NULL, self_dll_path, NULL); // remap `bsipa-doorstop` to this assembly From 7a5d2f3362610be3c4da2ff08a9000cf4d993317 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 00:59:36 -0500 Subject: [PATCH 22/88] Add trace logging to new loader for debugging issues --- IPA.Injector/PermissionFix.cs | 134 +++++++++++++++--------------- IPA.Loader/Loader/PluginLoader.cs | 26 +++++- IPA.Loader/Loader/manifest.json | 4 +- 3 files changed, 92 insertions(+), 72 deletions(-) diff --git a/IPA.Injector/PermissionFix.cs b/IPA.Injector/PermissionFix.cs index 7b531e52..2cd891b2 100644 --- a/IPA.Injector/PermissionFix.cs +++ b/IPA.Injector/PermissionFix.cs @@ -1,73 +1,73 @@ using IPA.Logging; -using System; +using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Security.AccessControl; -using System.Security.Principal; -using System.Threading.Tasks; -#if NET3 -using Net3_Proxy; -#endif - -namespace IPA.Injector -{ - internal static class PermissionFix +using System.IO; +using System.Security.AccessControl; +using System.Security.Principal; +using System.Threading.Tasks; +#if NET3 +using Net3_Proxy; +#endif + +namespace IPA.Injector +{ + internal static class PermissionFix { [SuppressMessage("Reliability", "CA2008:Do not create tasks without passing a TaskScheduler", Justification = "I very explicitly want the default scheduler")] - public static Task FixPermissions(DirectoryInfo root) - { - if (!root.Exists) return new Task(() => { }); - - return Task.Factory.StartNew(() => - { - var sw = Stopwatch.StartNew(); - try - { - var acl = root.GetAccessControl(); - - var rules = acl.GetAccessRules(true, true, typeof(SecurityIdentifier)); - - var requestedRights = FileSystemRights.Modify; - var requestedInheritance = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; - var requestedPropagation = PropagationFlags.InheritOnly; - - bool hasRule = false; - for (var i = 0; i < rules.Count; i++) - { - var rule = rules[i]; - - if (rule is FileSystemAccessRule fsrule - && fsrule.AccessControlType == AccessControlType.Allow - && fsrule.InheritanceFlags.HasFlag(requestedInheritance) - && fsrule.PropagationFlags == requestedPropagation - && fsrule.FileSystemRights.HasFlag(requestedRights)) - { hasRule = true; break; } - } - - if (!hasRule) - { // this is *sooo* fucking slow on first run - acl.AddAccessRule( - new FileSystemAccessRule( - new SecurityIdentifier(WellKnownSidType.WorldSid, null), - requestedRights, - requestedInheritance, - requestedPropagation, - AccessControlType.Allow - ) - ); - root.SetAccessControl(acl); - } - } - catch (Exception e) - { - Logger.log.Warn("Error configuring permissions in the game install dir"); - Logger.log.Warn(e); - } - sw.Stop(); - Logger.log.Info($"Configuring permissions took {sw.Elapsed}"); - }); - } - } -} + public static Task FixPermissions(DirectoryInfo root) + { + if (!root.Exists) return new Task(() => { }); + + return Task.Factory.StartNew(() => + { + var sw = Stopwatch.StartNew(); + try + { + var acl = root.GetAccessControl(); + + var rules = acl.GetAccessRules(true, true, typeof(SecurityIdentifier)); + + var requestedRights = FileSystemRights.Modify; + var requestedInheritance = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; + var requestedPropagation = PropagationFlags.InheritOnly; + + bool hasRule = false; + for (var i = 0; i < rules.Count; i++) + { + var rule = rules[i]; + + if (rule is FileSystemAccessRule fsrule + && fsrule.AccessControlType == AccessControlType.Allow + && fsrule.InheritanceFlags.HasFlag(requestedInheritance) + && fsrule.PropagationFlags == requestedPropagation + && fsrule.FileSystemRights.HasFlag(requestedRights)) + { hasRule = true; break; } + } + + if (!hasRule) + { // this is *sooo* fucking slow on first run + acl.AddAccessRule( + new FileSystemAccessRule( + new SecurityIdentifier(WellKnownSidType.WorldSid, null), + requestedRights, + requestedInheritance, + requestedPropagation, + AccessControlType.Allow + ) + ); + root.SetAccessControl(acl); + } + } + catch (Exception e) + { + Logger.log.Warn("Error configuring permissions in the game install dir"); + Logger.log.Warn(e); + } + sw.Stop(); + Logger.log.Info($"Configuring permissions took {sw.Elapsed}"); + }); + } + } +} diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 3b93e48c..e34bcb00 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -765,7 +765,17 @@ namespace IPA.Loader internal static void DoOrderResolution() { - PluginsMetadata.Sort((a, b) => a.Version.CompareTo(b.Version)); +#if DEBUG + // print starting order + Logger.loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); +#endif + + PluginsMetadata.Sort((a, b) => b.Version.CompareTo(a.Version)); + +#if DEBUG + // print base resolution order + Logger.loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); +#endif var metadataCache = new Dictionary(PluginsMetadata.Count); var pluginsToProcess = new List(PluginsMetadata.Count); @@ -824,33 +834,40 @@ namespace IPA.Loader meta = null; disabled = false; ignored = true; + Logger.loader.Trace($"Trying to resolve plugin '{id}'"); if (loadedPlugins.TryGetValue(id, out var foundMeta)) { meta = foundMeta.Meta; disabled = foundMeta.Disabled; ignored = foundMeta.Ignored; + Logger.loader.Trace($"- Found already processed"); return true; } if (metadataCache!.TryGetValue(id, out var plugin)) { + Logger.loader.Trace($"- In metadata cache"); disabled = !plugin.Enabled; meta = plugin.Meta; if (!disabled) { Resolve(plugin.Meta, ref disabled, out ignored); } + Logger.loader.Trace($"- '{id}' resolved as ignored:{ignored},disabled:{disabled}"); loadedPlugins.Add(id, (plugin.Meta, disabled, ignored)); return true; } + Logger.loader.Trace($"- Not found"); return false; } void Resolve(PluginMetadata plugin, ref bool disabled, out bool ignored) { + Logger.loader.Trace($">Resolving '{plugin.Name}'"); + // first we need to check for loops in the resolution graph to prevent stack overflows if (isProcessing.Contains(plugin)) { - Logger.loader.Error($"Loop detected while processing {plugin.Name}; flagging as ignored"); + Logger.loader.Error($"Loop detected while processing '{plugin.Name}'; flagging as ignored"); // we can't safely add it to ignoredPlugins, because then when the ignore propagates up the stack, // we may end up ignoring outselves again ignored = true; @@ -873,7 +890,7 @@ namespace IPA.Loader ReasonText = $"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)} does not exist" }); Logger.loader.Warn($"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)}" + - $" (declared by {plugin.Name}) does not exist! Mod installation is incomplete, not loading it."); + $" (declared by '{plugin.Name}') does not exist! Mod installation is incomplete, not loading it."); ignored = true; return; } @@ -960,6 +977,7 @@ namespace IPA.Loader // after we handle dependencies and loadafters, then check conflicts foreach (var conflict in plugin.Manifest.Conflicts) { + Logger.loader.Trace($">- Checking conflict '{conflict.Key}' {conflict.Value}"); if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored) && !conflIgnored && !conflDisabled) { // the conflict is only *actually* a problem if it is both not ignored and not disabled @@ -978,6 +996,8 @@ namespace IPA.Loader outputOrder!.Add(plugin); // loadbefores have already been preprocessed into loadafters + + Logger.loader.Trace($">Processed '{plugin.Name}'"); } // run TryResolveId over every plugin, which recursively calculates load order diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index a864f713..d438446e 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -5,10 +5,10 @@ "#![IPA.Loader.description.md]", "A mod loader specifically for Beat Saber." ], - "gameVersion": "1.14.0", + "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.1.7-pre.2", + "version": "4.1.7-pre.3", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From 49a84c16c564216247520391711619b0f6d79c26 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 01:07:04 -0500 Subject: [PATCH 23/88] Fix conflict checking to only ignore if version matches --- IPA.Loader/Loader/PluginLoader.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index e34bcb00..60bacee6 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -978,9 +978,11 @@ namespace IPA.Loader foreach (var conflict in plugin.Manifest.Conflicts) { Logger.loader.Trace($">- Checking conflict '{conflict.Key}' {conflict.Value}"); - if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored) && !conflIgnored && !conflDisabled) + if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored) + && conflict.Value.IsSatisfied(meta.Version) + && !conflIgnored && !conflDisabled) // the conflict is only *actually* a problem if it is both not ignored and not disabled { - // the conflict is only *actually* a problem if it is both not ignored and not disabled + Logger.loader.Warn($"Plugin '{plugin.Id}' conflicts with {meta.Id}@{meta.Version}; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Conflict) { From 569cc5bd145a4840be37abec69966c87d721be43 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 01:37:42 -0500 Subject: [PATCH 24/88] Dependency loops now don't kill everything --- .../DependencyResolutionLoopException.cs | 21 ++++++++ IPA.Loader/Loader/PluginLoader.cs | 51 +++++++++++++++---- 2 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 IPA.Loader/Loader/DependencyResolutionLoopException.cs diff --git a/IPA.Loader/Loader/DependencyResolutionLoopException.cs b/IPA.Loader/Loader/DependencyResolutionLoopException.cs new file mode 100644 index 00000000..3d7fd89b --- /dev/null +++ b/IPA.Loader/Loader/DependencyResolutionLoopException.cs @@ -0,0 +1,21 @@ +using System; +using System.Diagnostics.CodeAnalysis; + +namespace IPA.Loader +{ + [SuppressMessage("Design", "CA1064:Exceptions should be public", Justification = "This is only thrown and caught in local code")] + internal sealed class DependencyResolutionLoopException : Exception + { + public DependencyResolutionLoopException(string message) : base(message) + { + } + + public DependencyResolutionLoopException(string message, Exception innerException) : base(message, innerException) + { + } + + public DependencyResolutionLoopException() + { + } + } +} diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 60bacee6..64739d8b 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -357,7 +357,7 @@ namespace IPA.Loader public enum Reason { /// - /// An error was thrown either loading plugin information fomr disk, or when initializing the plugin. + /// An error was thrown either loading plugin information from disk, or when initializing the plugin. /// /// /// When this is the set in an structure, the member @@ -850,10 +850,37 @@ namespace IPA.Loader meta = plugin.Meta; if (!disabled) { - Resolve(plugin.Meta, ref disabled, out ignored); + try + { + ignored = false; + Resolve(plugin.Meta, ref disabled, out ignored); + } + catch (Exception e) + { + if (e is not DependencyResolutionLoopException) + { + Logger.loader.Error($"While performing load order resolution for {id}:"); + Logger.loader.Error(e); + } + + if (!ignored) + { + ignoredPlugins.Add(plugin.Meta, new(Reason.Error) + { + Error = e + }); + } + + ignored = true; + } + } + + if (!loadedPlugins.ContainsKey(id)) + { + // this condition is specifically for when we fail resolution because of a graph loop + Logger.loader.Trace($"- '{id}' resolved as ignored:{ignored},disabled:{disabled}"); + loadedPlugins.Add(id, (plugin.Meta, disabled, ignored)); } - Logger.loader.Trace($"- '{id}' resolved as ignored:{ignored},disabled:{disabled}"); - loadedPlugins.Add(id, (plugin.Meta, disabled, ignored)); return true; } Logger.loader.Trace($"- Not found"); @@ -868,12 +895,10 @@ namespace IPA.Loader if (isProcessing.Contains(plugin)) { Logger.loader.Error($"Loop detected while processing '{plugin.Name}'; flagging as ignored"); - // we can't safely add it to ignoredPlugins, because then when the ignore propagates up the stack, - // we may end up ignoring outselves again - ignored = true; - return; + throw new DependencyResolutionLoopException(); } + isProcessing.Add(plugin); using var _removeProcessing = Utils.ScopeGuard(() => isProcessing.Remove(plugin)); // if this method is being called, this is the first and only time that it has been called for this plugin. @@ -994,8 +1019,14 @@ namespace IPA.Loader } } - // we can now load the current plugin - outputOrder!.Add(plugin); + // specifically check if some strange stuff happened (like graph loops) causing this to be ignored + // from some other invocation + if (!ignoredPlugins.ContainsKey(plugin)) + { + // we can now load the current plugin + Logger.loader.Trace($"->'{plugin.Name}' loads here"); + outputOrder!.Add(plugin); + } // loadbefores have already been preprocessed into loadafters From 633c57e161cdecd3567f299d07b1d2870a6bd86f Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 01:41:11 -0500 Subject: [PATCH 25/88] Remove LoadsAfter tracking requirement of not being ignored --- IPA.Loader/Loader/PluginLoader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 64739d8b..354bcf13 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -991,7 +991,7 @@ namespace IPA.Loader // then handle loadafters foreach (var id in plugin.Manifest.LoadAfter) { - if (TryResolveId(id, out var meta, out var depDisabled, out var depIgnored) && !depIgnored) + if (TryResolveId(id, out var meta, out var depDisabled, out var depIgnored)) { // we only want to make sure to loadafter if its not ignored // if its disabled, we still wanna track it where possible From 7e677e730be6bcc4b5bdad586b06cd31fd3b49de Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 02:25:46 -0500 Subject: [PATCH 26/88] Fix loadBefore/conflictsWith to behave correctly --- IPA.Loader/Loader/PluginLoader.cs | 45 +++++++++++++++--- IPA.Loader/Loader/PluginMetadata.cs | 2 +- IPA.Loader/Utilities/Utils.cs | 74 +++++++++++++++++++++-------- 3 files changed, 94 insertions(+), 27 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 354bcf13..bd6dec88 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -811,15 +811,41 @@ namespace IPA.Loader } // preprocess LoadBefore into LoadAfter - foreach (var kvp in metadataCache) + foreach (var (_, (meta, _)) in metadataCache) { // we iterate the metadata cache because it contains both disabled and enabled plugins - var loadBefore = kvp.Value.Meta.Manifest.LoadBefore; + var loadBefore = meta.Manifest.LoadBefore; foreach (var id in loadBefore) { if (metadataCache.TryGetValue(id, out var plugin)) { // if the id exists in our metadata cache, make sure it knows to load after the plugin in kvp - _ = plugin.Meta.LoadsAfter.Add(kvp.Value.Meta); + _ = plugin.Meta.LoadsAfter.Add(meta); + } + } + } + + // preprocess conflicts to be mutual + foreach (var (_, (meta, _)) in metadataCache) + { + foreach (var (id, range) in meta.Manifest.Conflicts) + { + if (metadataCache.TryGetValue(id, out var plugin) + && range.IsSatisfied(plugin.Meta.Version)) + { + // make sure that there's a mutual dependency + var targetRange = new Range($"={meta.Version}", true); + var targetConflicts = plugin.Meta.Manifest.Conflicts; + if (!targetConflicts.TryGetValue(meta.Id, out var realRange)) + { + // there's not already a listed conflict + targetConflicts.Add(meta.Id, targetRange); + } + else if (!realRange.IsSatisfied(meta.Version)) + { + // there is already a listed conflict that isn't mutual + targetRange = new Range($"{realRange} || {targetRange}", true); + targetConflicts[meta.Id] = targetRange; + } } } } @@ -829,12 +855,12 @@ namespace IPA.Loader var isProcessing = new HashSet(); { - bool TryResolveId(string id, [MaybeNullWhen(false)] out PluginMetadata meta, out bool disabled, out bool ignored) + bool TryResolveId(string id, [MaybeNullWhen(false)] out PluginMetadata meta, out bool disabled, out bool ignored, bool partial = false) { meta = null; disabled = false; ignored = true; - Logger.loader.Trace($"Trying to resolve plugin '{id}'"); + Logger.loader.Trace($"Trying to resolve plugin '{id}' partial:{partial}"); if (loadedPlugins.TryGetValue(id, out var foundMeta)) { meta = foundMeta.Meta; @@ -846,6 +872,12 @@ namespace IPA.Loader if (metadataCache!.TryGetValue(id, out var plugin)) { Logger.loader.Trace($"- In metadata cache"); + if (partial) + { + Logger.loader.Trace($" - but requested in a partial lookup"); + return false; + } + disabled = !plugin.Enabled; meta = plugin.Meta; if (!disabled) @@ -1003,7 +1035,8 @@ namespace IPA.Loader foreach (var conflict in plugin.Manifest.Conflicts) { Logger.loader.Trace($">- Checking conflict '{conflict.Key}' {conflict.Value}"); - if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored) + // this lookup must be partial to prevent loadBefore/conflictsWith from creating a recursion loop + if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored, partial: true) && conflict.Value.IsSatisfied(meta.Version) && !conflIgnored && !conflDisabled) // the conflict is only *actually* a problem if it is both not ignored and not disabled { diff --git a/IPA.Loader/Loader/PluginMetadata.cs b/IPA.Loader/Loader/PluginMetadata.cs index d158edc8..6712091b 100644 --- a/IPA.Loader/Loader/PluginMetadata.cs +++ b/IPA.Loader/Loader/PluginMetadata.cs @@ -144,6 +144,6 @@ namespace IPA.Loader /// Gets all of the metadata as a readable string. /// /// the readable printable metadata string - public override string ToString() => $"{Name}({Id}@{Version})({PluginType?.FullName}) from '{Utils.GetRelativePath(File?.FullName, UnityGame.InstallPath)}'"; + public override string ToString() => $"{Name}({Id}@{Version})({PluginType?.FullName}) from '{Utils.GetRelativePath(File?.FullName ?? "", UnityGame.InstallPath)}'"; } } \ No newline at end of file diff --git a/IPA.Loader/Utilities/Utils.cs b/IPA.Loader/Utilities/Utils.cs index 677051a8..f7774005 100644 --- a/IPA.Loader/Utilities/Utils.cs +++ b/IPA.Loader/Utilities/Utils.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.IO; using System.Text; using System.Linq; @@ -6,6 +7,7 @@ using System.Collections.Generic; using Mono.Cecil; using System.Runtime.CompilerServices; using System.Threading; +using System.Diagnostics.CodeAnalysis; #if NET3 using File = Net3_Proxy.File; #endif @@ -24,6 +26,8 @@ namespace IPA.Utilities /// the corresponding byte array public static byte[] StringToByteArray(string hex) { + if (hex is null) + throw new ArgumentNullException(nameof(hex)); int numberChars = hex.Length; byte[] bytes = new byte[numberChars / 2]; for (int i = 0; i < numberChars; i += 2) @@ -38,9 +42,11 @@ namespace IPA.Utilities /// the hex form of the array public static string ByteArrayToString(byte[] ba) { - StringBuilder hex = new StringBuilder(ba.Length * 2); + if (ba is null) + throw new ArgumentNullException(nameof(ba)); + var hex = new StringBuilder(ba.Length * 2); foreach (byte b in ba) - hex.AppendFormat("{0:x2}", b); + _ = hex.AppendFormat("{0:x2}", b); return hex.ToString(); } @@ -64,9 +70,9 @@ namespace IPA.Utilities byte* x1 = p1, x2 = p2; int l = a1.Length; for (int i = 0; i < l / 8; i++, x1 += 8, x2 += 8) - if (*((long*)x1) != *((long*)x2)) return false; - if ((l & 4) != 0) { if (*((int*)x1) != *((int*)x2)) return false; x1 += 4; x2 += 4; } - if ((l & 2) != 0) { if (*((short*)x1) != *((short*)x2)) return false; x1 += 2; x2 += 2; } + if (*(long*)x1 != *(long*)x2) return false; + if ((l & 4) != 0) { if (*(int*)x1 != *(int*)x2) return false; x1 += 4; x2 += 4; } + if ((l & 2) != 0) { if (*(short*)x1 != *(short*)x2) return false; x1 += 2; x2 += 2; } if ((l & 1) != 0) if (*x1 != *x2) return false; return true; } @@ -80,13 +86,18 @@ namespace IPA.Utilities /// a path to get from to public static string GetRelativePath(string file, string folder) { - Uri pathUri = new Uri(file); + if (file is null) + throw new ArgumentNullException(nameof(file)); + if (folder is null) + throw new ArgumentNullException(nameof(folder)); + + var pathUri = new Uri(file); // Folders must end in a slash - if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString())) + if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) { folder += Path.DirectorySeparatorChar; } - Uri folderUri = new Uri(folder); + var folderUri = new Uri(folder); return Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar)); } @@ -98,9 +109,14 @@ namespace IPA.Utilities /// the filename of the file to append together /// a delegate called when there is an error copying. Return true to keep going. public static void CopyAll(DirectoryInfo source, DirectoryInfo target, string appendFileName = "", - Func onCopyException = null) + Func? onCopyException = null) { - if (source.FullName.ToLower() == target.FullName.ToLower()) + if (source is null) + throw new ArgumentNullException(nameof(source)); + if (target is null) + throw new ArgumentNullException(nameof(target)); + + if (source.FullName.ToUpperInvariant() == target.FullName.ToUpperInvariant()) { return; } @@ -108,18 +124,18 @@ namespace IPA.Utilities // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) { - Directory.CreateDirectory(target.FullName); + _ = Directory.CreateDirectory(target.FullName); } // Copy each file into it's new directory. - foreach (FileInfo fi in source.GetFiles()) + foreach (var fi in source.GetFiles()) { try { if (fi.Name == appendFileName) File.AppendAllLines(Path.Combine(target.ToString(), fi.Name), File.ReadAllLines(fi.FullName)); else - fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); + _ = fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); } catch (Exception e) { @@ -130,10 +146,9 @@ namespace IPA.Utilities } // Copy each subdirectory using recursion. - foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) + foreach (var diSourceSubDir in source.GetDirectories()) { - DirectoryInfo nextTargetSubDir = - target.CreateSubdirectory(diSourceSubDir.Name); + var nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name); CopyAll(diSourceSubDir, nextTargetSubDir, appendFileName, onCopyException); } } @@ -153,7 +168,7 @@ namespace IPA.Utilities { if (DateTimeSafetyUnknown) { - DateTime time = DateTime.MinValue; + var time = DateTime.MinValue; try { time = DateTime.Now; @@ -180,6 +195,9 @@ namespace IPA.Utilities /// < 0 if l is less than r, 0 if they are equal in the numeric portion, or > 0 if l is greater than r public static int VersionCompareNoPrerelease(SemVer.Version l, SemVer.Version r) { + if (l is null) throw new ArgumentNullException(nameof(l)); + if (r is null) throw new ArgumentNullException(nameof(r)); + var cmpVal = l.Major - r.Major; if (cmpVal != 0) return cmpVal; cmpVal = l.Minor - r.Minor; @@ -188,6 +206,7 @@ namespace IPA.Utilities return cmpVal; } + /// /// An object used to manage scope guards. /// @@ -197,6 +216,10 @@ namespace IPA.Utilities /// /// /// + [SuppressMessage("Design", "CA1034:Nested types should not be visible", + Justification = "This type needs to be public to avoid allocations")] + [SuppressMessage("Performance", "CA1815:Override equals and operator equals on value types", + Justification = "This type is never supposed to be compared")] public struct ScopeGuardObject : IDisposable { private readonly Action action; @@ -221,9 +244,20 @@ namespace IPA.Utilities /// /// public static ScopeGuardObject ScopeGuard(Action action) - => new ScopeGuardObject(action); + => new(action); + + /// + /// Deconstructs a as its key and value. + /// + /// The type of the key. + /// The type of the value. + /// The to deconstruct. + /// The key in . + /// The value in . + public static void Deconstruct(this KeyValuePair kvp, out TKey key, out TValue value) + => (key, value) = (kvp.Key, kvp.Value); - internal static bool HasInterface(this TypeDefinition type, string interfaceFullName) + internal static bool HasInterface(this TypeDefinition? type, string interfaceFullName) { return (type?.Interfaces?.Any(i => i.InterfaceType.FullName == interfaceFullName) ?? false) || (type?.Interfaces?.Any(t => HasInterface(t?.InterfaceType?.Resolve(), interfaceFullName)) ?? false); From e85cd0752ea39b0e21fa55f2da69dd5949281eb1 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 02:58:12 -0500 Subject: [PATCH 27/88] Upgrade .NET Core version used in builds --- .github/workflows/build.yml | 2 +- .github/workflows/docs.yml | 2 +- Common.props | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5fe15c0..8d5a74e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: uses: actions/setup-dotnet@v1 with: # As usual, obtained from: https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json - dotnet-version: "3.1.404" # since we now use this + dotnet-version: "3.1.409" # since we now use this - name: Clear Nuget Cache run: dotnet nuget locals all --clear - name: Restore diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 868aaeab..c908588e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ jobs: uses: actions/setup-dotnet@v1 with: # As usual, obtained from: https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json - dotnet-version: "3.1.404" # since we now use this + dotnet-version: "3.1.409" # since we now use this - name: Clear Nuget Cache run: dotnet nuget locals all --clear - name: Nuget Restore diff --git a/Common.props b/Common.props index c3f703e4..d76b2ec5 100644 --- a/Common.props +++ b/Common.props @@ -11,5 +11,9 @@ AllEnabledByDefault latest + + + + \ No newline at end of file From e16d96b3f7b22beeb0d4e0876e6e24c2f51d0d4d Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 1 Jun 2021 16:38:10 -0500 Subject: [PATCH 28/88] Fix dependency checks to actually check version --- BuildTools | 2 +- IPA.Loader/Loader/PluginLoader.cs | 17 +++++++++-------- IPA.Loader/Loader/manifest.json | 2 +- docs/docfx.json | 5 ++++- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/BuildTools b/BuildTools index 41c3a12d..b04769a3 160000 --- a/BuildTools +++ b/BuildTools @@ -1 +1 @@ -Subproject commit 41c3a12d56de96a3495893d1fea4a485a98c67af +Subproject commit b04769a3aebdd111b81f5a59d438907310e83207 diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index bd6dec88..7bcd8bc2 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -955,16 +955,17 @@ namespace IPA.Loader // first load dependencies var dependsOnSelf = false; - foreach (var dep in plugin.Manifest.Dependencies) + foreach (var (id, range) in plugin.Manifest.Dependencies) { - if (dep.Key == SelfMeta.Id) + if (id == SelfMeta.Id) dependsOnSelf = true; - if (!TryResolveId(dep.Key, out var depMeta, out var depDisabled, out var depIgnored)) + if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) + || !range.IsSatisfied(depMeta.Version)) { - Logger.loader.Warn($"Dependency '{dep.Key}@{dep.Value}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"Dependency '{id}@{range}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { - ReasonText = $"Dependency '{dep.Key}@{dep.Value}' not found", + ReasonText = $"Dependency '{id}@{range}' not found", }); ignored = true; return; @@ -972,10 +973,10 @@ namespace IPA.Loader // make a point to propagate ignored if (depIgnored) { - Logger.loader.Warn($"Dependency '{dep.Key}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { - ReasonText = $"Dependency '{dep.Key}' ignored", + ReasonText = $"Dependency '{id}' ignored", RelatedTo = depMeta }); ignored = true; @@ -984,7 +985,7 @@ namespace IPA.Loader // make a point to propagate disabled if (depDisabled) { - Logger.loader.Warn($"Dependency '{dep.Key}' for '{plugin.Id}' disabled; disabling"); + Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' disabled; disabling"); disabledPlugins!.Add(plugin); _ = disabledIds!.Add(plugin.Id); disabled = true; diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index d438446e..5b568e6c 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.1.7-pre.3", + "version": "4.1.7-pre.4", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { diff --git a/docs/docfx.json b/docs/docfx.json index 30623cd4..673240cc 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -18,7 +18,10 @@ }], "dest": "api", "disableGitFeatures": false, - "disableDefaultFilter": false + "disableDefaultFilter": false, + "properties": { + "TargetFramework": "net461" + } }], "build": { "content": [{ From 42477bdd601a2723637ee354c78e9e518ea57b0e Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 00:49:48 -0500 Subject: [PATCH 29/88] Add Hive.Versioning as a library (part 1) --- BSIPA-Meta/BSIPA-Meta.csproj | 5 +- IPA.Injector/IPA.Injector.csproj | 10 +- IPA.Injector/Properties/AssemblyInfo.cs | 4 +- IPA.Loader/IPA.Loader.csproj | 2 +- Libs/thirdparty/Hive.Versioning.dll | Bin 0 -> 37888 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 0 -> 18860 bytes Libs/thirdparty/Hive.Versioning.xml | 780 ++++++++++++++++++++++++ 7 files changed, 797 insertions(+), 4 deletions(-) create mode 100644 Libs/thirdparty/Hive.Versioning.dll create mode 100644 Libs/thirdparty/Hive.Versioning.pdb create mode 100644 Libs/thirdparty/Hive.Versioning.xml diff --git a/BSIPA-Meta/BSIPA-Meta.csproj b/BSIPA-Meta/BSIPA-Meta.csproj index cbdb384e..2cf0f46f 100644 --- a/BSIPA-Meta/BSIPA-Meta.csproj +++ b/BSIPA-Meta/BSIPA-Meta.csproj @@ -1,7 +1,7 @@  - net35;net461 + net461 x86;x64 Debug;Release;Verbose;Verbose_Release @@ -59,9 +59,11 @@ + + @@ -87,3 +89,4 @@ + diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index a100bf44..e7f5169a 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -3,7 +3,7 @@ - net461;net35 + net461 IPA.Injector true @@ -56,6 +56,14 @@ Always + + + + Libraries\Thirdparty\%(Filename)%(Extension) + Always + + + Libraries\Mono\I18N.dll diff --git a/IPA.Injector/Properties/AssemblyInfo.cs b/IPA.Injector/Properties/AssemblyInfo.cs index 5f18531f..2ed6471c 100644 --- a/IPA.Injector/Properties/AssemblyInfo.cs +++ b/IPA.Injector/Properties/AssemblyInfo.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -18,6 +19,7 @@ using System.Runtime.InteropServices; // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] +[assembly: CLSCompliant(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("2a1af16b-27f1-46e0-9a95-181516bc1cb7")] diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index c14a9de5..bd4d4609 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -3,7 +3,7 @@ - net461;net35 + net461 IPA true diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll new file mode 100644 index 0000000000000000000000000000000000000000..93ed807e76d01acf366769e4a7f94121bd92c3ec GIT binary patch literal 37888 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 E0EWk(%>V!Z literal 0 HcmV?d00001 diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml new file mode 100644 index 00000000..8143d72c --- /dev/null +++ b/Libs/thirdparty/Hive.Versioning.xml @@ -0,0 +1,780 @@ + + + + Hive.Versioning + + + + + A version that meets the Semantic Versioning specification. + + + + + Gets the zero version (0.0.0). + + + + + Parses and creates a version object from a sequence of characters. + + + This is roughly equivalent to . + + The sequence of characters to parse as a version. + Thrown when the input is not a valid SemVer version. + + + + Creates a version object from the component parts of the version. + + The major version number. + The minor version number. + The patch number. + A sequence of IDs specifying the prerelease. + A sequence of IDs representing the build. + + + + Creates a version object from the component parts of the version. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + A sequence of IDs specifying the prerelease. + A sequence of IDs representing the build. + + + + Creates a version object from the component parts of the version. + + The major version number. + The minor version number. + The patch number. + + + + Creates a version object from the component parts of the version. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + + + + Gets the major version number. + + + + + Gets the minor version number. + + + + + Gets the patch number. + + + + + Gets the sequence of prerelease IDs. + + + + + Gets the sequence of build IDs. + + + + + Vers the version number, as signed integers. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + + + + Appends this to the provided . + + The to append to. + The provided + + + + + + + Compares two versions for equality. + + The first version to compare. + The second version to compare. + if they are equal, otherwise. + + + + Compares two versions for inequality. + + The first version to compare. + The second version to compare. + if they are not equal, otherwise. + + + + Checks if is greater than . + + The first version to compare. + The second version to compare. + if is greater than , + + + + Checks if is less than . + + The first version to compare. + The second version to compare. + if is less than , + + + + Checks if is greater than or equal to . + + The first version to compare. + The second version to compare. + if is greater than or equal to , + + + + Checks if is less than or equal to . + + The first version to compare. + The second version to compare. + if is less than or equal to , + + + + Determines the maximum of two versions. + + The first version. + The second version. + The maximum of and + + + + Determines the minimum of two versions. + + The first version. + The second version. + The minimum of and + + + + Compares version to for equality. + + The object to compare to. + if they are equal, otherwise. + + + + Gets the hash code of this . + + The hash code for this . + + + + Compares this version to another version according to the SemVer specification. + + The version to compare to. + if the versions are equal, otherwise. + + + + Compares this version to another version according to the SemVer specification. + + The version to compare to. + Less than zero if is less than , zero if they are equal, and + more than zero if is greater than + + + + Parses a sequence of characters into a object. + + The sequence of characters to parse. + The parsed version object. + Thrown when is not a valid SemVer version. + + + + Attempts to parse a sequence of characters into a version object. + + The sequence of characters to parse. + The parsed version, if the input is valid. + if the text is valid and could be parsed, otherwise. + + + + Attempts to parse a sequence of characters into a version object, as part of a larger parse. + + + When this method returns, will begin after the end of the parsed version, if it is present, or + what it initially contained if no version is present and this returns + + The sequence of characters to parse. + The parsed version, if the input is valid. + if the text is valid and could be parsed, otherwise. + + + + An arbitrary range of s, capable of matching any possible set of s. + + + + + A is considered matching if it is exactly equivalent to this one, in addition to if its comparison + value matches. + + + + + Converts this to an equivalent . + + + The returned always takes the form >=Version <=Version. + + The that is equivalent to this + + + + Inverts this into either another or a . + + + The only time this produces a is when is . + + The inverted , if any. + The representing this inverted, if any. + if this produces a , or + if it produces a . + + + + Tries to perform a logical conjunction (and) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + A single was produced, and was set. + + + + The conjunction result matches no possible values. + + + + The other to try to perform conjunction with. + The single the operation produced, if any. + The single the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of that handles + the cases where exactly one of the inputs are an comparer. + + + + + Tries to perform a logical disjunction (or) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + A single was produced, and was set. + + + + The disjunction result matches every valid value. For convenience, + is set to . + + + + The disjunction result is not representable with only a and a . + For example, if the inputs are non-equal comparers, this will be returned. + + + + The other to try to perform disjunction with. + The single the operation produced, if any. + The single the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of that handles + the cases where exactly one of the inputs are an comparer. + + + + + This is identical to except that it uses + instead of . + + + + + Tries to perform a logical conjunction (and) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + Two s were produced, and both and were set. + + + + The conjunction result matches no valid values. + + + + The other to try to perform conjunction with. + The single (or first) the operation produced, if any. + The second the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of , handling the cases where exactly one + input is an inward-facing . + + + + + Tries to perform a logical disjunction (or) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + Two s were produced, and both and were set. + + + + The disjunction result matches every valid value. For convenience, + is set to . + + + + The other to try to perform disjunction with. + The single (or first) the operation produced, if any. + The second the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of , handling the cases where exactly one + input is an inward-facing . + + + + + Checks if two s are mutually exclusive, but meet exactly leaving no versions that neither matches. + + + + + Constructs a new that corresponds to the text provided in . + + The textual represenation of the to create. + + Thrown when is not a valid . + + + + Creates a which matches only the provided . + + The to match. + A matching only the provided . + + + + Computes the logical disjunction (or) of this and . + + The other to compute the disjunction of. + The logical disjunction of and . + + + + + Computes the logical disjunction (or) of the two arguments. + + The first argument. + The second argument. + The logical disjunction of and . + + + + + Computes the logical conjunction (and) of this and . + + The other to compute the conjunction of. + The logical conjunction of and . + + + + + Computes the logical conjunction (and) of the two arguments. + + The first argument. + The second argument. + The logical disjunction of and . + + + + + Gets the compliement of this . + + The compliement of this . + + + + + Computes the compliment of the argument. + + The to compute the compliment of. + The compliment of . + + + + + Determines whether or not a given matches this . + + The to check. + if matches, otherwise. + + + + The that matches all s. + + + + + The that matches no s. + + + + + Appends the string representation of this to the provided . + + The to append to. + The that was appended to. + + + + Gets the string representation of this . + + The string representation of this . + + + + + + + Determines whether this is equivalent to another range. + + The to compare to. + if they are equivalent, otherwise. + + + + + + + Compares two s for equality. + + The first argument. + The second argument. + if and are equivalent, otherwise. + + + + Determines if two s are not equivalent. + + The first argument. + The second argument. + if and are not equivalent, otherwise. + + + + Parses a string as a . + + + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The stirng to parse. + The parsed . + + Thrown when is not a valid . +
+ + + Attempts to parse a whole string as a . + + + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The string to try to parse. + The parsed , if any. + if was successfully parsed, otherwise. + +
+ + + Attempts to parse a from the start of the string. + + + When this returns , will begin immediately after the parsed . + When this returns , will remain unchanged. + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The string to try to parse. + The parsed , if any. + if was successfully parsed, otherwise. +
+ + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Gets a resource string for AssertionFailed similar to ''. + + + + + Gets a resource string for Range_InputInvalid similar to 'Input is not a valid VersionRange'. + + + + + Gets a resource string for Version_InputInvalid similar to 'Input was not a valid SemVer version'. + + + + + Gets a resource string for Version_InputTooShort similar to 'Input too short to be a SemVer version'. + + + + + Specifies that when a method returns , + the parameter may be even if the corresponding type disallows it. + + + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this + value, the associated parameter may be null. + + + + Gets the return value condition. + + The return value condition. If the method returns this value, the + associated parameter may be null. + + + + Specifies that when a method returns , + the parameter is not even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this + value, the associated parameter is not null. + + + + Gets the return value condition. + + The return value condition. If the method returns this value, the + associated parameter is not null. + + + + Specifies that an output may be even if the corresponding type disallows it. + + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes the attribute with the specified parameter value. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + + Gets the condition parameter value. + + +
+
From d51bc04d266a08fa537a0355b36676ec73c50ef5 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 00:51:08 -0500 Subject: [PATCH 30/88] Disable .NET 3.5 in builds --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d5a74e6..da74ccbf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,8 +45,8 @@ jobs: with: name: BSIPA-net461-${{ env.Platform }} path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net461/ - - name: Upload net35 - uses: actions/upload-artifact@v2 - with: - name: BSIPA-net35-${{ env.Platform }} - path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net35/ + #- name: Upload net35 + # uses: actions/upload-artifact@v2 + # with: + # name: BSIPA-net35-${{ env.Platform }} + # path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net35/ From 86f1db65b0e4ad0f1f9250eb8f5f426804a8654b Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 02:16:59 -0500 Subject: [PATCH 31/88] Switch over to Hive.Versioning (part 2) Notably, this adds a SemVer shim assembly wrapping Hive.Versioning. --- BSIPA.sln | 26 +++++++++ IPA.Injector/IPA.Injector.csproj | 6 +- IPA.Loader/IPA.Loader.csproj | 8 ++- IPA.Loader/Properties/AssemblyInfo.cs | 4 +- Libs/thirdparty/Hive.Versioning.dll | Bin 37888 -> 37888 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 18860 -> 18860 bytes Libs/thirdparty/Hive.Versioning.xml | 2 +- SemVer/Range.cs | 78 ++++++++++++++++++++++++++ SemVer/SemVer.csproj | 16 ++++++ SemVer/Version.cs | 70 +++++++++++++++++++++++ 10 files changed, 205 insertions(+), 5 deletions(-) create mode 100644 SemVer/Range.cs create mode 100644 SemVer/SemVer.csproj create mode 100644 SemVer/Version.cs diff --git a/BSIPA.sln b/BSIPA.sln index f2a38632..f4997616 100644 --- a/BSIPA.sln +++ b/BSIPA.sln @@ -50,6 +50,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPA.Loader", "IPA.Loader\IP EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Net3-Proxy", "Net3-Proxy\Net3-Proxy.csproj", "{0DEDB099-9A26-4069-A4C1-A76CEB16283B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SemVer", "SemVer\SemVer.csproj", "{B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -224,6 +226,30 @@ Global {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x64.Build.0 = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.ActiveCfg = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x64.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x64.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x86.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x86.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|Any CPU.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x64.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x64.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x86.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x86.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x64.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x64.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x86.ActiveCfg = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x86.Build.0 = Release|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|Any CPU.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|Any CPU.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x64.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x64.Build.0 = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x86.ActiveCfg = Debug|Any CPU + {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index e7f5169a..f44c7342 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -81,8 +81,12 @@ - + + + + $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll + diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index bd4d4609..cfc46967 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -52,9 +52,13 @@ - - + + + + + $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll +
diff --git a/IPA.Loader/Properties/AssemblyInfo.cs b/IPA.Loader/Properties/AssemblyInfo.cs index 456c770b..6f7ebb52 100644 --- a/IPA.Loader/Properties/AssemblyInfo.cs +++ b/IPA.Loader/Properties/AssemblyInfo.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -18,6 +19,7 @@ using System.Runtime.InteropServices; // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] +[assembly: CLSCompliant(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("5ad344f0-01a0-4ca8-92e5-9d095737744d")] diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll index 93ed807e76d01acf366769e4a7f94121bd92c3ec..25631609ef826f28d8b0b47645f64f715ccd28fe 100644 GIT binary patch delta 2783 zcmY+`dvH|M9S895ee8W~Her*E%>za^leEN8z~~N5VYOhkB|t2J1c)J$&}M)*DMmrZ z2XZ%VT#-V}?Zs_n(rF~xMv1!PCK?fKFf^?bw9(KG?L?Z)ASO&iVbFFQJMHhBd%833 zA2;`NzQ1$Mo^v0YXrCPIle-ScPMLl1dg*=pg)P#9jwD&qS*Js?ijv2{KUH*;;X%!I zpmZ%Dxy|@IRV06+X6`3@fNW*4oL82*UVm6h{mS@w`S<&SK=FPcSOm1>(RuCO`&xJJ z+{1czRsaW7YTHx`->rb3+KN|iS`(qa3!K5qTIt!88L@P$>pQGGfs3B^;9jD4WP_l?;`9s>zmG!9jh9X??{A&nc zJ*v54F!fVZSua$e|4G?^#zhtlBiZ>*1`BLn=pZ^`XY5R zf?RRPMyt97XBP9!$THg1dR*g*V?JdK@GWt(g_LbYh%1h;@gMarbd`h6pD-#7*>e~A z%2{a~t;Un`HmEnd9q%=AJx%ZlMY(dhY#cHQC~Fpa#dy@S9gz_0XJg73^R%F98B-iP z)qhAkG08PbnwECqa}v!zijP!D-Ua{nSm{OSBlW+YR*Z8|sV5}gjUe4l?2GPE3$(it z7K)MDQ00p5pdxKI+J%yyQtcibNvmAD7d>3;4qC14!6cJK-!$pjt380J$3I?ri8xqKA|54*dt7p zVdHDi}|=5kl~683Vj73LW)q5clHV>Dx_kwor~ncNk=imLTY?g~?AgJ*g zYSA;A!gHK4oX==7Qb=++#-Q&BV*ryv=Y5Asb3&JV4(XZ@GLIR9@YS&C9V3^kL}(FL zSSZ3($Hnd^D}X^Xx-?$S3dw_L;p#Akvck$B+S8?B|Fk8siGOqBXTpWp!FT=G#c7^?UOa@@w5OGySia)@f9^!~*|-`A0OSb;2A) zo6us){)`9HI$^$xPN7@;qvjZfg(|qNadn{1KTcV&j!oEs9i;aV;Yt_}_|KVtu~5zF zzJ$in$;EEO3+4wnlGd#GA&gCI827fEKr>f|@tA*Fnn3&iGkUX4pqnd>FV!#13G{PK zOHcW~BApcaz%P3zV4dNN(Y9T|1bmy>6cFmvHpqcM9j2=(#^cgI>Ul$c_d+A?4SzERGUw&igSc(vmVRqNSew z{?L^v(Zb3MO73(^Uk`-jS@dza+dYc`A@*A_i(xMJ*}jA`Oj5$g$klz9FvaDdG&h6v zZ?_Wnk>(I;U^CcwD)$E8WmGlL%gi8-Q^(Ix%|i#ub>*aPSNtt-1t*1;UU$s6f-^!J zxF%C8>fSYryvRcg^HB~5h4@r@mR>D+=%tpebfnbz_O|;=%h03rN`)wpUXW_#lrb!^ zs#CmWL@J~95h+8?gY(X|+m^Gkn9RDwLu`3C^x`}eM?F@_TitU UvVQTEB9E^~W&iRs$-YVdAHT_BtpET3 delta 2768 zcmY+`e{dA#83*w1?%wV0?S*j39fpvo$$)Z(@FS9;6i*wPYf*?LkON|Kf|FXuNvD0@ci-NO z_s8Wv@ArA%_uhBk-AnYC96cs?w8=%e)`6R(_pDd8NDa0mnbNS`Dw%~{$H8BB)4L2e zs<#8awSeR_9{bV)*R ze~_18P^icKCwVDSX`Po#aE;4CkNXRGIhHMC{Vb@eOId*qp&T_|2_YlsWJ}aFN*OwZ zR;wG7@1j?znzAs;%-fvO9Ta{a6+#cIJCwT-E^@Nx)xF9(ve;ff=VvKj=IIN3tVwj#t8M@avV>wa{W zfX$!K%XQg(KYB`7X&jCEQ}Q-s-0pOINDsJc5fF-U<#SnR*K;Xr5PDsI%)K2IrL3QY z3;L+L9+fMY;@Ii>tF#j-t`X9t)PS!@H2(-bbxCpq=6;KnUX(s{{ny=y2`(yim&y+y zNXLnN(LJtQ^#O#1Vx%TiI-(O)sP00GP>(yP{uGDPDp4Q8F)nt3)~I`sVlwHQ_PCqX zM{sEso5DiA=b-vCgzwU;pXVIXh#a zj4MHlsL?DO=CW|asMl;vb2*#;9GX{yUe4wx(8d)vX-$u52`npTp>yp!(Vo^-^?6(p z`qJ319fHnoVX6%2GwLBkgw`3oludt+WftanKhR!8{~D+AQOb^>9!=r|XAI}PwR#f$T(;hqv0v{+O6YvXLDIC)eiOGC<=c-9flQT7%- zaVjxN>crQLB`|At)H49z zMm9`be`EHf^e*NKot|APzl#E)QLdmPT2nn$M$+o?yodg@e(gDpf+}asS-#gj<}fN9 zBH!2R`7P?x8t{yuS!gk3XAn(m!1E#6g_iq9Jfk=xw32Ivs}&L7S;~SDHeoAvkUl~M zS3-ZpH{toCi3q3j5IT!?E_M)8o{w=jttrnr_%^X&oMSnL2Ci293E!kNhL-Osz0xmGoecw)lrf^MUhy0(B3aVKa#{%_= z@eh=xC3!ERsha)%(3M%BhLlSvzRxLr%U>!_p@+-a?kSuSV!strIK$=K+m|uUBqelj zK+Cv{OI$XB0WS$PY)lKgNmmdOdM0pl##L0-APk+tv()i(M0jXJnNvdQcEq0o*D)-# zbj}g|I>v=IaHW#VBOiJS^H72q4CKJZJp5C7i5@LEILcd&A`e^b8@D|ioQGWLs8ob5 ztDX*>459p3%4elq8YQYJC3t!;=EpCp9`$Q8>BA# crGr1Q%Oqbi^Xab@dGL;8)-OMotYzB&02d`*wEzGB diff --git a/Libs/thirdparty/Hive.Versioning.pdb b/Libs/thirdparty/Hive.Versioning.pdb index 846207fb47841cb58cca21bca31489838e56c6dd..c74f836c4731c00f207c694b3de6769e1193c84e 100644 GIT binary patch delta 167 zcmV;Y09gO5lL4%g0g!wY;ebuC0y0xfv#BshbXInJ3V7d_k&rL}c(K9L1RZ_>001Wd z3jhcJ0RWKz006@P001Wd3jhfK0RWh@u?30^AdnStmD=L5t|gl=J6T6+-&C33*2EY< z_p)oxvFq(`A(LAZVv$MhJj!rILt@8hbs)OG>Fl#^Q%V<9U^AsK^VM?y}*K5mMcTzI%TrN-UcZ1k!q9h)#R9ibwVksuS3 VfHe%W{u7iV1TO$43$vCt783e^Jf8pn diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml index 8143d72c..8a3c5787 100644 --- a/Libs/thirdparty/Hive.Versioning.xml +++ b/Libs/thirdparty/Hive.Versioning.xml @@ -459,7 +459,7 @@ The first argument. The second argument. - The logical disjunction of and . + The logical conjunction of and . diff --git a/SemVer/Range.cs b/SemVer/Range.cs new file mode 100644 index 00000000..1f7a6f32 --- /dev/null +++ b/SemVer/Range.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Hive.Versioning; +using HVersion = Hive.Versioning.Version; + +namespace SemVer +{ + [Obsolete("Use Hive.Versioning.VersionRange instead.")] + public class Range : IEquatable, IEquatable + { + public VersionRange UnderlyingRange { get; } + + private Range(VersionRange real) => UnderlyingRange = real; + + public Range(string rangeSpec, bool loose = false) : this(new(rangeSpec)) + => _ = loose; // loose is ignored because Hive doesn't have an equivalent + + public static Range ForHiveRange(VersionRange real) => new(real); + + public bool IsSatisfied(Version version) => IsSatisfied(version.UnderlyingVersion); + public bool IsSatisfied(HVersion version) => UnderlyingRange.Matches(version); + public bool IsSatisfied(string versionString, bool loose = false) => IsSatisfied(new Version(versionString, loose)); + + public IEnumerable Satisfying(IEnumerable versions) => versions.Where(IsSatisfied); + public IEnumerable Satisfying(IEnumerable versions, bool loose = false) + => versions.Where(v => IsSatisfied(v, loose)); + public Version? MaxSatisfying(IEnumerable versions) => Satisfying(versions).Max(); + public string? MaxSatisfying(IEnumerable versionStrings, bool loose = false) + => MaxSatisfying(ValidVersions(versionStrings, loose))?.ToString(); + public Range Intersect(Range other) => new(UnderlyingRange & other.UnderlyingRange); // the conjunction is the intersection + public override string ToString() => UnderlyingRange.ToString(); + + public bool Equals(Range? other) => UnderlyingRange.Equals(other?.UnderlyingRange); + public bool Equals(VersionRange? other) => UnderlyingRange.Equals(other); + public override bool Equals(object? obj) + => obj switch + { + Range r => Equals(r), + VersionRange vr => Equals(vr), + _ => false + }; + + public static bool operator ==(Range? a, Range? b) => a?.Equals(b) ?? b is null; + + public static bool operator !=(Range? a, Range? b) => !(a == b); + + public override int GetHashCode() => UnderlyingRange.GetHashCode(); + + public static bool IsSatisfied(string rangeSpec, string versionString, bool loose = false) + => new Range(rangeSpec, loose).IsSatisfied(versionString, loose); + public static IEnumerable Satisfying(string rangeSpec, IEnumerable versions, bool loose = false) + => new Range(rangeSpec, loose).Satisfying(versions, loose); + + public static string? MaxSatisfying(string rangeSpec, IEnumerable versions, bool loose = false) + => new Range(rangeSpec, loose).MaxSatisfying(versions, loose); + + private IEnumerable ValidVersions(IEnumerable versionStrings, bool loose) + { + foreach (string versionString in versionStrings) + { + Version? version = null; + try + { + version = new Version(versionString, loose); + } + catch (ArgumentException) + { + } + + if (version is not null) + { + yield return version; + } + } + } + } +} diff --git a/SemVer/SemVer.csproj b/SemVer/SemVer.csproj new file mode 100644 index 00000000..eb567912 --- /dev/null +++ b/SemVer/SemVer.csproj @@ -0,0 +1,16 @@ + + + + + + net461 + enable + + + + + $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll + + + + diff --git a/SemVer/Version.cs b/SemVer/Version.cs new file mode 100644 index 00000000..6db9b027 --- /dev/null +++ b/SemVer/Version.cs @@ -0,0 +1,70 @@ +using System; +using System.Linq; +using HVersion = Hive.Versioning.Version; + +namespace SemVer +{ + [Obsolete("Use Hive.Versioning.Version instead.")] + public class Version : IComparable, IComparable, IComparable, IEquatable, IEquatable + { + public HVersion UnderlyingVersion { get; } + + private Version(HVersion real) => UnderlyingVersion = real; + + public static Version ForHiveVersion(HVersion real) => new(real); + + public Version(string input, bool loose = false) : this(new HVersion(input)) + => _ = loose; // specifically unused because Hive has no equivalent (by design) + public Version(int major, int minor, int patch, string? preRelease = null, string? build = null) + : this(new HVersion(major, minor, patch, + preRelease is null ? Enumerable.Empty() : preRelease.Split('.'), + build is null ? Enumerable.Empty() : build.Split('.'))) + { + } + + public int Major => (int)UnderlyingVersion.Major; + public int Minor => (int)UnderlyingVersion.Minor; + public int Patch => (int)UnderlyingVersion.Patch; + public string PreRelease => string.Join(".", UnderlyingVersion.PreReleaseIds); + public string Build => string.Join(".", UnderlyingVersion.BuildIds); + + public Version BaseVersion() => new(new(UnderlyingVersion.Major, UnderlyingVersion.Minor, UnderlyingVersion.Patch)); + public override string ToString() => UnderlyingVersion.ToString(); + public string Clean() => ToString(); // normally this is the other way around kek + public override int GetHashCode() => UnderlyingVersion.GetHashCode(); + public bool Equals(Version? other) => UnderlyingVersion.Equals(other?.UnderlyingVersion); + public bool Equals(HVersion? other) => UnderlyingVersion.Equals(other); + public override bool Equals(object? obj) + => obj switch + { + Version v => Equals(v), + HVersion h => Equals(h), + _ => false + }; + + public int CompareTo(Version? other) => UnderlyingVersion.CompareTo(other?.UnderlyingVersion); + public int CompareTo(HVersion? other) => UnderlyingVersion.CompareTo(other); + public int CompareTo(object? obj) + => obj switch + { + null => 1, + Version v => CompareTo(v), + HVersion h => CompareTo(h), + _ => throw new ArgumentException("Object is not a Version") + }; + + public static bool operator ==(Version? a, Version? b) + => a?.UnderlyingVersion == b?.UnderlyingVersion; + public static bool operator !=(Version? a, Version? b) + => a?.UnderlyingVersion != b?.UnderlyingVersion; + + public static bool operator >(Version? a, Version? b) + => a is null ? b is not null && b.CompareTo(a) < 0 : a.CompareTo(b) > 0; + public static bool operator >=(Version? a, Version? b) + => !(a < b); + public static bool operator <(Version? a, Version? b) + => a is null ? b is not null && b.CompareTo(a) > 0 : a.CompareTo(b) < 0; + public static bool operator <=(Version? a, Version? b) + => !(a > b); + } +} From cec187f3616d26baa24a5f10c85ed5b080bb7dcc Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 02:52:43 -0500 Subject: [PATCH 32/88] Switch to Hive.Versioning (part 3) This marks old overloads obsolete and adds new overloads for Hive.Versioning. --- .../JsonConverters/SemverRangeConverter.cs | 31 ++-- .../JsonConverters/SemverVersionConverter.cs | 36 ++-- IPA.Loader/Loader/PluginLoader.cs | 25 +-- IPA.Loader/Loader/PluginManifest.cs | 7 +- IPA.Loader/Loader/PluginMetadata.cs | 14 +- IPA.Loader/Utilities/AlmostVersion.cs | 159 ++++++++++++------ IPA.Loader/Utilities/Utils.cs | 17 +- 7 files changed, 181 insertions(+), 108 deletions(-) diff --git a/IPA.Loader/JsonConverters/SemverRangeConverter.cs b/IPA.Loader/JsonConverters/SemverRangeConverter.cs index f570b4af..edff82b8 100644 --- a/IPA.Loader/JsonConverters/SemverRangeConverter.cs +++ b/IPA.Loader/JsonConverters/SemverRangeConverter.cs @@ -1,15 +1,16 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Newtonsoft.Json; -using SemVer; - -namespace IPA.JsonConverters -{ - [SuppressMessage("ReSharper", "UnusedMember.Global")] - internal class SemverRangeConverter : JsonConverter - { - public override Range ReadJson(JsonReader reader, Type objectType, Range existingValue, bool hasExistingValue, JsonSerializer serializer) => new Range(reader.Value as string); - - public override void WriteJson(JsonWriter writer, Range value, JsonSerializer serializer) => writer.WriteValue(value.ToString()); - } -} +#nullable enable +using System; +using Hive.Versioning; +using Newtonsoft.Json; + +namespace IPA.JsonConverters +{ + internal class SemverRangeConverter : JsonConverter + { + public override VersionRange? ReadJson(JsonReader reader, Type objectType, VersionRange? existingValue, bool hasExistingValue, JsonSerializer serializer) + => reader.Value is string s && VersionRange.TryParse(s, out var range) ? range : existingValue; + + public override void WriteJson(JsonWriter writer, VersionRange? value, JsonSerializer serializer) + => writer.WriteValue(value?.ToString()); + } +} diff --git a/IPA.Loader/JsonConverters/SemverVersionConverter.cs b/IPA.Loader/JsonConverters/SemverVersionConverter.cs index c79d2959..c0c7c10a 100644 --- a/IPA.Loader/JsonConverters/SemverVersionConverter.cs +++ b/IPA.Loader/JsonConverters/SemverVersionConverter.cs @@ -1,17 +1,19 @@ -using System; -using Newtonsoft.Json; -using Version = SemVer.Version; - -namespace IPA.JsonConverters -{ - internal class SemverVersionConverter : JsonConverter - { - public override Version ReadJson(JsonReader reader, Type objectType, Version existingValue, bool hasExistingValue, JsonSerializer serializer) => reader.Value == null ? null : new Version(reader.Value as string, true); - - public override void WriteJson(JsonWriter writer, Version value, JsonSerializer serializer) - { - if (value == null) writer.WriteNull(); - else writer.WriteValue(value.ToString()); - } - } -} +#nullable enable +using System; +using Newtonsoft.Json; +using Version = Hive.Versioning.Version; + +namespace IPA.JsonConverters +{ + internal class SemverVersionConverter : JsonConverter + { + public override Version? ReadJson(JsonReader reader, Type objectType, Version? existingValue, bool hasExistingValue, JsonSerializer serializer) + => reader.Value is string s && Version.TryParse(s, out var version) ? version : existingValue; + + public override void WriteJson(JsonWriter writer, Version? value, JsonSerializer serializer) + { + if (value == null) writer.WriteNull(); + else writer.WriteValue(value.ToString()); + } + } +} diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 7bcd8bc2..56a08cc7 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -18,6 +18,7 @@ using System.Diagnostics.CodeAnalysis; using HarmonyLib; using System.Diagnostics; using IPA.AntiMalware; +using Hive.Versioning; #if NET4 using Task = System.Threading.Tasks.Task; using TaskEx = System.Threading.Tasks.Task; @@ -770,7 +771,7 @@ namespace IPA.Loader Logger.loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); #endif - PluginsMetadata.Sort((a, b) => b.Version.CompareTo(a.Version)); + PluginsMetadata.Sort((a, b) => b.HVersion.CompareTo(a.HVersion)); #if DEBUG // print base resolution order @@ -830,20 +831,20 @@ namespace IPA.Loader foreach (var (id, range) in meta.Manifest.Conflicts) { if (metadataCache.TryGetValue(id, out var plugin) - && range.IsSatisfied(plugin.Meta.Version)) + && range.Matches(plugin.Meta.HVersion)) { // make sure that there's a mutual dependency - var targetRange = new Range($"={meta.Version}", true); + var targetRange = VersionRange.ForVersion(meta.HVersion); var targetConflicts = plugin.Meta.Manifest.Conflicts; if (!targetConflicts.TryGetValue(meta.Id, out var realRange)) { // there's not already a listed conflict targetConflicts.Add(meta.Id, targetRange); } - else if (!realRange.IsSatisfied(meta.Version)) + else if (!realRange.Matches(meta.HVersion)) { // there is already a listed conflict that isn't mutual - targetRange = new Range($"{realRange} || {targetRange}", true); + targetRange = realRange | targetRange; targetConflicts[meta.Id] = targetRange; } } @@ -960,7 +961,7 @@ namespace IPA.Loader if (id == SelfMeta.Id) dependsOnSelf = true; if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) - || !range.IsSatisfied(depMeta.Version)) + || !range.Matches(depMeta.HVersion)) { Logger.loader.Warn($"Dependency '{id}@{range}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) @@ -1033,19 +1034,19 @@ namespace IPA.Loader } // after we handle dependencies and loadafters, then check conflicts - foreach (var conflict in plugin.Manifest.Conflicts) + foreach (var (id, range) in plugin.Manifest.Conflicts) { - Logger.loader.Trace($">- Checking conflict '{conflict.Key}' {conflict.Value}"); + Logger.loader.Trace($">- Checking conflict '{id}' {range}"); // this lookup must be partial to prevent loadBefore/conflictsWith from creating a recursion loop - if (TryResolveId(conflict.Key, out var meta, out var conflDisabled, out var conflIgnored, partial: true) - && conflict.Value.IsSatisfied(meta.Version) + if (TryResolveId(id, out var meta, out var conflDisabled, out var conflIgnored, partial: true) + && range.Matches(meta.HVersion) && !conflIgnored && !conflDisabled) // the conflict is only *actually* a problem if it is both not ignored and not disabled { - Logger.loader.Warn($"Plugin '{plugin.Id}' conflicts with {meta.Id}@{meta.Version}; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"Plugin '{plugin.Id}' conflicts with {meta.Id}@{meta.HVersion}; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Conflict) { - ReasonText = $"Conflicts with {meta.Id}@{meta.Version}", + ReasonText = $"Conflicts with {meta.Id}@{meta.HVersion}", RelatedTo = meta }); ignored = true; diff --git a/IPA.Loader/Loader/PluginManifest.cs b/IPA.Loader/Loader/PluginManifest.cs index 104b9234..6a394f2a 100644 --- a/IPA.Loader/Loader/PluginManifest.cs +++ b/IPA.Loader/Loader/PluginManifest.cs @@ -1,4 +1,5 @@ #nullable enable +using Hive.Versioning; using IPA.JsonConverters; using IPA.Utilities; using Newtonsoft.Json; @@ -7,7 +8,7 @@ using SemVer; using System; using System.Collections.Generic; using AlmostVersionConverter = IPA.JsonConverters.AlmostVersionConverter; -using Version = SemVer.Version; +using Version = Hive.Versioning.Version; #if NET3 using Net3_Proxy; using Array = Net3_Proxy.Array; @@ -36,10 +37,10 @@ namespace IPA.Loader public string Author = null!; [JsonProperty("dependsOn", Required = Required.DisallowNull, ItemConverterType = typeof(SemverRangeConverter))] - public Dictionary Dependencies = new(); + public Dictionary Dependencies = new(); [JsonProperty("conflictsWith", Required = Required.DisallowNull, ItemConverterType = typeof(SemverRangeConverter))] - public Dictionary Conflicts = new(); + public Dictionary Conflicts = new(); [JsonProperty("features", Required = Required.DisallowNull), JsonConverter(typeof(FeaturesFieldConverter))] public Dictionary Features = new(); diff --git a/IPA.Loader/Loader/PluginMetadata.cs b/IPA.Loader/Loader/PluginMetadata.cs index 6712091b..0bb89f9c 100644 --- a/IPA.Loader/Loader/PluginMetadata.cs +++ b/IPA.Loader/Loader/PluginMetadata.cs @@ -7,7 +7,8 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using Version = SemVer.Version; +using SVersion = SemVer.Version; +using Version = Hive.Versioning.Version; #if NET3 using Net3_Proxy; using Path = Net3_Proxy.Path; @@ -60,7 +61,14 @@ namespace IPA.Loader /// The version of the plugin. /// /// the version of the plugin - public Version Version => manifest.Version; + [Obsolete("Use HVersion instead.")] + public SVersion Version => SVersion.ForHiveVersion(manifest.Version); + + /// + /// The version of the plugin. + /// + /// the version of the plugin + public Version HVersion => manifest.Version; /// /// The file the plugin was loaded from. @@ -144,6 +152,6 @@ namespace IPA.Loader /// Gets all of the metadata as a readable string. /// /// the readable printable metadata string - public override string ToString() => $"{Name}({Id}@{Version})({PluginType?.FullName}) from '{Utils.GetRelativePath(File?.FullName ?? "", UnityGame.InstallPath)}'"; + public override string ToString() => $"{Name}({Id}@{HVersion})({PluginType?.FullName}) from '{Utils.GetRelativePath(File?.FullName ?? "", UnityGame.InstallPath)}'"; } } \ No newline at end of file diff --git a/IPA.Loader/Utilities/AlmostVersion.cs b/IPA.Loader/Utilities/AlmostVersion.cs index 182c1371..22ec7c19 100644 --- a/IPA.Loader/Utilities/AlmostVersion.cs +++ b/IPA.Loader/Utilities/AlmostVersion.cs @@ -1,9 +1,11 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Config.Stores; using IPA.Config.Stores.Converters; using System; using System.Collections.Generic; -using Version = SemVer.Version; +using SVersion = SemVer.Version; +using Version = Hive.Versioning.Version; namespace IPA.Utilities { @@ -11,7 +13,10 @@ namespace IPA.Utilities /// A type that wraps so that the string of the version is stored when the string is /// not a valid . /// - public class AlmostVersion : IComparable, IComparable + public class AlmostVersion : IComparable, IComparable, +#pragma warning disable CS0618 // Type or member is obsolete + IComparable +#pragma warning restore CS0618 // Type or member is obsolete { /// /// Represents a storage type of either parsed object or raw . @@ -19,7 +24,7 @@ namespace IPA.Utilities public enum StoredAs { /// - /// The version was stored as a . + /// The version was stored as a . /// SemVer, /// @@ -35,7 +40,7 @@ namespace IPA.Utilities public AlmostVersion(string vertext) { if (!TryParseFrom(vertext, StoredAs.SemVer)) - TryParseFrom(vertext, StoredAs.String); + _ = TryParseFrom(vertext, StoredAs.String); } /// @@ -46,7 +51,14 @@ namespace IPA.Utilities { SemverValue = ver; StorageMode = StoredAs.SemVer; - } + } + + /// + /// Creates an from the provided in . + /// + /// the to store + [Obsolete("Use Hive.Versioning.Version constructor instead.")] + public AlmostVersion(SVersion ver) : this(ver?.UnderlyingVersion ?? throw new ArgumentNullException(nameof(ver))) { } /// /// Creates an from the version string in stored using @@ -68,26 +80,22 @@ namespace IPA.Utilities /// an to copy the storage mode of public AlmostVersion(string vertext, AlmostVersion copyMode) { - if (copyMode == null) + if (copyMode is null) throw new ArgumentNullException(nameof(copyMode)); if (!TryParseFrom(vertext, copyMode.StorageMode)) - TryParseFrom(vertext, StoredAs.String); // silently parse differently + _ = TryParseFrom(vertext, StoredAs.String); // silently parse differently } private bool TryParseFrom(string str, StoredAs mode) { - if (mode == StoredAs.SemVer) - try - { - SemverValue = new Version(str, true); - StorageMode = StoredAs.SemVer; - return true; - } - catch - { - return false; - } + if (mode == StoredAs.SemVer) + { + StorageMode = StoredAs.SemVer; + var result = Version.TryParse(str, out var version); + SemverValue = version; + return result; + } else { StringValue = str; @@ -100,13 +108,13 @@ namespace IPA.Utilities /// The value of the if it was stored as a . /// /// the stored value as a , or if not stored as a string. - public string StringValue { get; private set; } = null; + public string? StringValue { get; private set; } /// /// The value of the if it was stored as a . /// /// the stored value as a , or if not stored as a version. - public Version SemverValue { get; private set; } = null; + public Version? SemverValue { get; private set; } /// /// The way the value is stored, whether it be as a or a . @@ -114,15 +122,14 @@ namespace IPA.Utilities /// the storage mode used to store this value public StoredAs StorageMode { get; private set; } - // can I just this? /// /// Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is - /// stored as a , it is equivalent to calling . + /// stored as a , it is equivalent to calling . /// /// a string representation of the current version /// public override string ToString() => - StorageMode == StoredAs.SemVer ? SemverValue.ToString() : StringValue; + StorageMode == StoredAs.SemVer ? SemverValue!.ToString() : StringValue!; /// /// Compares to the in using @@ -136,14 +143,11 @@ namespace IPA.Utilities /// public int CompareTo(AlmostVersion other) { - if (other == null) return -1; - if (StorageMode != other.StorageMode) - throw new InvalidOperationException("Cannot compare AlmostVersions with different stores!"); + if (other is null) return 1; - if (StorageMode == StoredAs.SemVer) - return SemverValue.CompareTo(other.SemverValue); - else - return StringValue.CompareTo(other.StringValue); + return StorageMode == StoredAs.SemVer && other.StorageMode == StoredAs.SemVer + ? SemverValue!.CompareTo(other.SemverValue!) + : string.Compare(ToString(), other.ToString(), StringComparison.Ordinal); } /// @@ -161,8 +165,21 @@ namespace IPA.Utilities if (StorageMode != StoredAs.SemVer) throw new InvalidOperationException("Cannot compare a SemVer version with an AlmostVersion stored as a string!"); - return SemverValue.CompareTo(other); - } + return SemverValue!.CompareTo(other); + } + + /// + /// Compares to the in using . + /// + /// + /// The storage method of must be , else an will + /// be thrown. + /// + /// the to compare to + /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller + /// + [Obsolete("Use the Hive.Versioning.Version overload instead.")] + public int CompareTo(SVersion other) => CompareTo(other.UnderlyingVersion); /// /// Performs a strict equality check between and . @@ -189,12 +206,12 @@ namespace IPA.Utilities public override int GetHashCode() { var hashCode = -126402897; - hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(SemverValue); - hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(StringValue); - hashCode = hashCode * -1521134295 + StorageMode.GetHashCode(); + hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(SemverValue); + hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(StringValue); + hashCode = (hashCode * -1521134295) + StorageMode.GetHashCode(); return hashCode; - } - + } + /// /// Compares two versions, only taking into account the numeric part of the version if they are stored as s, /// or strict equality if they are stored as s. @@ -212,10 +229,9 @@ namespace IPA.Utilities if (l is null && r is null) return true; if (l is null || r is null) return false; if (l.StorageMode != r.StorageMode) return false; - if (l.StorageMode == StoredAs.SemVer) - return Utils.VersionCompareNoPrerelease(l.SemverValue, r.SemverValue) == 0; - else - return l.StringValue == r.StringValue; + return l.StorageMode == StoredAs.SemVer + ? Utils.VersionCompareNoPrerelease(l.SemverValue!, r.SemverValue!) == 0 + : l.StringValue == r.StringValue; } /// @@ -225,24 +241,57 @@ namespace IPA.Utilities /// the second value to compare /// if they are not mostly equal, otherwise /// - public static bool operator!=(AlmostVersion l, AlmostVersion r) => !(l == r); - - // implicitly convertible from Version + public static bool operator!=(AlmostVersion l, AlmostVersion r) => !(l == r); + + // implicitly convertible from Version +#pragma warning disable CS0618 // Type or member is obsolete +#pragma warning disable CA2225 // Operator overloads have named alternates /// - /// Implicitly converts a to using . + /// Implicitly converts a to using . /// - /// the to convert - /// - public static implicit operator AlmostVersion(Version ver) => new AlmostVersion(ver); - - // implicitly convertible to Version + /// the to convert + /// + [Obsolete("Use Hive.Versioning.Version instead of SemVer.Version")] + public static implicit operator AlmostVersion?(SVersion? ver) => ver is null ? null : new(ver); + + // implicitly convertible to Version + /// + /// Implicitly converts an to , if applicable, using . + /// If not applicable, returns + /// + /// the to convert to a + /// + [Obsolete("Use Hive.Versioning.Version instead of SemVer.Version")] + public static implicit operator SVersion?(AlmostVersion? av) => av?.SemverValue is not null ? SVersion.ForHiveVersion(av.SemverValue) : null; +#pragma warning restore CS0618 // Type or member is obsolete + /// + /// Implicitly converts a to using . + /// + /// the to convert + /// + public static implicit operator AlmostVersion?(Version? ver) => ver is null ? null : new(ver); + + // implicitly convertible to Version /// - /// Implicitly converts an to , if applicable, using . + /// Implicitly converts an to , if applicable, using . /// If not applicable, returns /// - /// the to convert to a + /// the to convert to a /// - public static implicit operator Version(AlmostVersion av) => av?.SemverValue; + public static implicit operator Version?(AlmostVersion av) => av?.SemverValue; +#pragma warning restore CA2225 // Operator overloads have named alternates + + public static bool operator <(AlmostVersion left, AlmostVersion right) + => left is null ? right is not null : left.CompareTo(right) < 0; + + public static bool operator <=(AlmostVersion left, AlmostVersion right) + => left is null || left.CompareTo(right) <= 0; + + public static bool operator >(AlmostVersion left, AlmostVersion right) + => left is not null && left.CompareTo(right) > 0; + + public static bool operator >=(AlmostVersion left, AlmostVersion right) + => left is null ? right is null : left.CompareTo(right) >= 0; } /// @@ -257,7 +306,7 @@ namespace IPA.Utilities /// the owner of the new object /// public override AlmostVersion FromValue(Value value, object parent) - => new AlmostVersion(Converter.Default.FromValue(value, parent)); + => new(Converter.Default.FromValue(value, parent)); /// /// Converts an to a node. /// diff --git a/IPA.Loader/Utilities/Utils.cs b/IPA.Loader/Utilities/Utils.cs index f7774005..75ae9ce2 100644 --- a/IPA.Loader/Utilities/Utils.cs +++ b/IPA.Loader/Utilities/Utils.cs @@ -8,6 +8,7 @@ using Mono.Cecil; using System.Runtime.CompilerServices; using System.Threading; using System.Diagnostics.CodeAnalysis; +using Version = Hive.Versioning.Version; #if NET3 using File = Net3_Proxy.File; #endif @@ -193,16 +194,26 @@ namespace IPA.Utilities /// the left value /// the right value /// < 0 if l is less than r, 0 if they are equal in the numeric portion, or > 0 if l is greater than r + [Obsolete("Use Hive.Versioning.Version overload instead.")] public static int VersionCompareNoPrerelease(SemVer.Version l, SemVer.Version r) + => VersionCompareNoPrerelease(l?.UnderlyingVersion!, r?.UnderlyingVersion!); + + /// + /// Compares a pair of s ignoring both the prerelease and build fields. + /// + /// the left value + /// the right value + /// < 0 if l is less than r, 0 if they are equal in the numeric portion, or > 0 if l is greater than r + public static int VersionCompareNoPrerelease(Version l, Version r) { if (l is null) throw new ArgumentNullException(nameof(l)); if (r is null) throw new ArgumentNullException(nameof(r)); - var cmpVal = l.Major - r.Major; + var cmpVal = l.Major.CompareTo(r.Major); if (cmpVal != 0) return cmpVal; - cmpVal = l.Minor - r.Minor; + cmpVal = l.Minor.CompareTo(r.Minor); if (cmpVal != 0) return cmpVal; - cmpVal = l.Patch - r.Patch; + cmpVal = l.Patch.CompareTo(r.Patch); return cmpVal; } From 3f0a62ebea4301f72c413690bc15e056ec72703b Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 03:23:55 -0500 Subject: [PATCH 33/88] Upgrade to Framework 4.7.2 for less pain --- .github/workflows/build.yml | 6 +- BSIPA-Meta/BSIPA-Meta.csproj | 4 +- BSIPA.sln | 64 +---------------- IPA.Injector/IPA.Injector.csproj | 10 +-- IPA.Injector/Properties/AssemblyInfo.cs | 74 ++++++++++---------- IPA.Loader/Config/SelfConfig.cs | 2 +- IPA.Loader/IPA.Loader.csproj | 12 ++-- IPA.Loader/Loader/LibLoader.cs | 4 +- IPA.Loader/Loader/manifest.json | 2 +- IPA.Loader/Utilities/EnumerableExtensions.cs | 2 + IPA/IPA.csproj | 2 +- IPA/Program.cs | 2 +- IPA/_Attributes.cs | 2 +- 13 files changed, 64 insertions(+), 122 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index da74ccbf..3561b26d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,11 +40,11 @@ jobs: run: msbuild -t:Restore -m - name: Build run: msbuild -t:Build -m - - name: Upload net461 + - name: Upload net472 uses: actions/upload-artifact@v2 with: - name: BSIPA-net461-${{ env.Platform }} - path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net461/ + name: BSIPA-net472-${{ env.Platform }} + path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net472/ #- name: Upload net35 # uses: actions/upload-artifact@v2 # with: diff --git a/BSIPA-Meta/BSIPA-Meta.csproj b/BSIPA-Meta/BSIPA-Meta.csproj index 2cf0f46f..794a1291 100644 --- a/BSIPA-Meta/BSIPA-Meta.csproj +++ b/BSIPA-Meta/BSIPA-Meta.csproj @@ -1,7 +1,7 @@  - net461 + net472 x86;x64 Debug;Release;Verbose;Verbose_Release @@ -71,7 +71,7 @@ - + diff --git a/BSIPA.sln b/BSIPA.sln index f4997616..93a8e3aa 100644 --- a/BSIPA.sln +++ b/BSIPA.sln @@ -50,202 +50,140 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPA.Loader", "IPA.Loader\IP EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Net3-Proxy", "Net3-Proxy\Net3-Proxy.csproj", "{0DEDB099-9A26-4069-A4C1-A76CEB16283B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SemVer", "SemVer\SemVer.csproj", "{B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SemVer", "SemVer\SemVer.csproj", "{B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 - Verbose_Release|Any CPU = Verbose_Release|Any CPU Verbose_Release|x64 = Verbose_Release|x64 Verbose_Release|x86 = Verbose_Release|x86 - Verbose|Any CPU = Verbose|Any CPU Verbose|x64 = Verbose|x64 Verbose|x86 = Verbose|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.Build.0 = Debug|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.ActiveCfg = Debug|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.Build.0 = Debug|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.ActiveCfg = Debug|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.Build.0 = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.Build.0 = Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.ActiveCfg = Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.Build.0 = Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.ActiveCfg = Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.Build.0 = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.Build.0 = Verbose_Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.ActiveCfg = Verbose_Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.Build.0 = Verbose_Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.ActiveCfg = Verbose_Release|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.Build.0 = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.ActiveCfg = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.Build.0 = Verbose|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.ActiveCfg = Verbose|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.Build.0 = Verbose|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.ActiveCfg = Verbose|Any CPU {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.Build.0 = Verbose|Any CPU - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|Any CPU.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|Any CPU.Build.0 = Verbose_Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.ActiveCfg = Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.Build.0 = Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.ActiveCfg = Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|Any CPU.ActiveCfg = Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.ActiveCfg = Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.Build.0 = Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.ActiveCfg = Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.Build.0 = Verbose_Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.ActiveCfg = Verbose_Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.Build.0 = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|Any CPU.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|Any CPU.Build.0 = Verbose_Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.ActiveCfg = Verbose_Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.Build.0 = Verbose_Release|x64 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.ActiveCfg = Verbose_Release|Win32 {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.Build.0 = Verbose_Release|Win32 - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.ActiveCfg = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.Build.0 = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.ActiveCfg = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.Build.0 = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.Build.0 = Release|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64.ActiveCfg = Release|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.ActiveCfg = Release|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.Build.0 = Release|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.ActiveCfg = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.Build.0 = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.ActiveCfg = Debug|Any CPU {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.Build.0 = Debug|Any CPU - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|Any CPU.ActiveCfg = Debug|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64.ActiveCfg = Debug|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64.Build.0 = Debug|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86.ActiveCfg = Debug|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86.Build.0 = Debug|x86 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|Any CPU.ActiveCfg = Release|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64.ActiveCfg = Release|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64.Build.0 = Release|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86.ActiveCfg = Release|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86.Build.0 = Release|x86 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64.Build.0 = Verbose_Release|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86.ActiveCfg = Verbose_Release|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86.Build.0 = Verbose_Release|x86 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|Any CPU.ActiveCfg = Verbose|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64.ActiveCfg = Verbose|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64.Build.0 = Verbose|x64 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86.ActiveCfg = Verbose|x86 {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86.Build.0 = Verbose|x86 - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|Any CPU.Build.0 = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x64.ActiveCfg = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x64.Build.0 = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x86.ActiveCfg = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x86.Build.0 = Debug|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|Any CPU.Build.0 = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x64.ActiveCfg = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x64.Build.0 = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x86.ActiveCfg = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x86.Build.0 = Release|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x64.ActiveCfg = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x64.Build.0 = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x86.ActiveCfg = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x86.Build.0 = Release|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|Any CPU.ActiveCfg = Release|Any CPU - {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|Any CPU.Build.0 = Release|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x64.ActiveCfg = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x64.Build.0 = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x86.ActiveCfg = Debug|Any CPU {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x86.Build.0 = Debug|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|Any CPU.Build.0 = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x64.ActiveCfg = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x64.Build.0 = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x86.ActiveCfg = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x86.Build.0 = Debug|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|Any CPU.Build.0 = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x64.ActiveCfg = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x64.Build.0 = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x86.ActiveCfg = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x86.Build.0 = Release|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x64.ActiveCfg = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x64.Build.0 = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x86.ActiveCfg = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x86.Build.0 = Release|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|Any CPU.ActiveCfg = Release|Any CPU - {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|Any CPU.Build.0 = Release|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x64.ActiveCfg = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x64.Build.0 = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x86.ActiveCfg = Debug|Any CPU {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x86.Build.0 = Debug|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|Any CPU.Build.0 = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x64.ActiveCfg = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x64.Build.0 = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x86.ActiveCfg = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x86.Build.0 = Debug|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|Any CPU.Build.0 = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x64.ActiveCfg = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x64.Build.0 = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x86.ActiveCfg = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x86.Build.0 = Release|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x64.ActiveCfg = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x64.Build.0 = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x86.ActiveCfg = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x86.Build.0 = Release|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|Any CPU.ActiveCfg = Release|Any CPU - {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|Any CPU.Build.0 = Release|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x64.ActiveCfg = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x64.Build.0 = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.ActiveCfg = Debug|Any CPU {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.Build.0 = Debug|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|Any CPU.Build.0 = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x64.ActiveCfg = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x64.Build.0 = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x86.ActiveCfg = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Debug|x86.Build.0 = Debug|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|Any CPU.Build.0 = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x64.ActiveCfg = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x64.Build.0 = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x86.ActiveCfg = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Release|x86.Build.0 = Release|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x64.ActiveCfg = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x64.Build.0 = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x86.ActiveCfg = Release|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose_Release|x86.Build.0 = Release|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|Any CPU.ActiveCfg = Debug|Any CPU - {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|Any CPU.Build.0 = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x64.ActiveCfg = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x64.Build.0 = Debug|Any CPU {B25EEC48-A5D0-4A63-BA73-5DD43F7F592A}.Verbose|x86.ActiveCfg = Debug|Any CPU diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index f44c7342..127ba0cb 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -3,16 +3,16 @@ - net461 + net472 IPA.Injector true false false - true + true - + $(DefineConstants);NET4 @@ -28,7 +28,7 @@ - + ..\Refs\UnityEngine.CoreModule.Net4.dll False @@ -38,7 +38,7 @@ - + Libraries\Mono\I18N.dll Always diff --git a/IPA.Injector/Properties/AssemblyInfo.cs b/IPA.Injector/Properties/AssemblyInfo.cs index 2ed6471c..bdafdad9 100644 --- a/IPA.Injector/Properties/AssemblyInfo.cs +++ b/IPA.Injector/Properties/AssemblyInfo.cs @@ -1,39 +1,39 @@ using System; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("IPA.Injector")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("IPA.Injector")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] -[assembly: CLSCompliant(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2a1af16b-27f1-46e0-9a95-181516bc1cb7")] -[assembly: InternalsVisibleTo("IPA.Loader")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion(IPA.Config.SelfConfig.IPAVersion)] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("IPA.Injector")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("IPA.Injector")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] +[assembly: CLSCompliant(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2a1af16b-27f1-46e0-9a95-181516bc1cb7")] +[assembly: InternalsVisibleTo("IPA.Loader")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion(IPA.Config.SelfConfig.IPAVersion)] [assembly: AssemblyFileVersion(IPA.Config.SelfConfig.IPAVersion)] \ No newline at end of file diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index a6a66e43..f3284244 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -73,7 +73,7 @@ namespace IPA.Config } internal const string IPAName = "Beat Saber IPA"; - internal const string IPAVersion = "4.1.7.0"; + internal const string IPAVersion = "4.2.0.0"; // uses Updates.AutoUpdate, Updates.AutoCheckUpdates, YeetMods, Debug.ShowCallSource, Debug.ShowDebug, // Debug.CondenseModLogs diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index cfc46967..082a7fe4 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -3,16 +3,16 @@ - net461 + net472 IPA true true false - true + true - + $(DefineConstants);NET4 @@ -22,7 +22,7 @@ $(DefineConstants);BeatSaber - + ..\Refs\UnityEngine.CoreModule.Net4.dll False @@ -53,7 +53,9 @@ - + diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 710375b4..a197115a 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -247,7 +247,7 @@ namespace IPA.Loader } [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] -#if NET461 +#if NET4 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] #endif private static extern IntPtr AddDllDirectory(string lpPathName); @@ -263,7 +263,7 @@ namespace IPA.Loader } [DllImport("kernel32.dll", SetLastError = true)] -#if NET461 +#if NET4 [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] #endif private static extern bool SetDefaultDllDirectories(LoadLibraryFlags dwFlags); diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 5b568e6c..13e313e5 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.1.7-pre.4", + "version": "4.2.0-pre.1", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { diff --git a/IPA.Loader/Utilities/EnumerableExtensions.cs b/IPA.Loader/Utilities/EnumerableExtensions.cs index bf74bc63..e6c84779 100644 --- a/IPA.Loader/Utilities/EnumerableExtensions.cs +++ b/IPA.Loader/Utilities/EnumerableExtensions.cs @@ -13,6 +13,7 @@ namespace IPA.Utilities /// public static class EnumerableExtensions { + /* /// /// Adds a value to the beginning of the sequence. /// @@ -164,6 +165,7 @@ namespace IPA.Utilities IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } + */ /// /// LINQ-style extension method that filters elements out of an enumeration. diff --git a/IPA/IPA.csproj b/IPA/IPA.csproj index 6e178844..66ec625a 100644 --- a/IPA/IPA.csproj +++ b/IPA/IPA.csproj @@ -4,7 +4,7 @@ Exe - net461;netcoreapp3.1 + net472;netcoreapp3.1 win7-x64;win7-x86;linux-x64 IPA IPA diff --git a/IPA/Program.cs b/IPA/Program.cs index c33365c4..dcf43131 100644 --- a/IPA/Program.cs +++ b/IPA/Program.cs @@ -21,7 +21,7 @@ namespace IPA Unknown } - public const string FileVersion = "4.1.7.0"; + public const string FileVersion = "4.2.0.0"; public static Version Version => Assembly.GetEntryAssembly()!.GetName().Version!; diff --git a/IPA/_Attributes.cs b/IPA/_Attributes.cs index 72f7b779..b56d00af 100644 --- a/IPA/_Attributes.cs +++ b/IPA/_Attributes.cs @@ -1,4 +1,4 @@ -#if NET461 +#if NET472 namespace System.Diagnostics.CodeAnalysis { [AttributeUsage(AttributeTargets.Method, Inherited = false)] From 44903e94b0bc9262b7e829b9614d9ebf5ea756aa Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 03:25:25 -0500 Subject: [PATCH 34/88] Fix Actions build yaml --- .github/workflows/build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3561b26d..7e554650 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,8 +45,3 @@ jobs: with: name: BSIPA-net472-${{ env.Platform }} path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net472/ - #- name: Upload net35 - # uses: actions/upload-artifact@v2 - # with: - # name: BSIPA-net35-${{ env.Platform }} - # path: BSIPA-Meta/bin/${{ env.Platform }}/${{ env.Configuration }}/net35/ From eaab81db0b2c96e5a4a92cc9e64693d4256d0141 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 04:23:37 -0500 Subject: [PATCH 35/88] Fix SemVer converters to throw when the value is not valid --- IPA.Loader/JsonConverters/SemverRangeConverter.cs | 8 ++++++-- IPA.Loader/JsonConverters/SemverVersionConverter.cs | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/JsonConverters/SemverRangeConverter.cs b/IPA.Loader/JsonConverters/SemverRangeConverter.cs index edff82b8..71e84983 100644 --- a/IPA.Loader/JsonConverters/SemverRangeConverter.cs +++ b/IPA.Loader/JsonConverters/SemverRangeConverter.cs @@ -1,5 +1,6 @@ #nullable enable using System; +using System.Runtime.Remoting.Messaging; using Hive.Versioning; using Newtonsoft.Json; @@ -8,9 +9,12 @@ namespace IPA.JsonConverters internal class SemverRangeConverter : JsonConverter { public override VersionRange? ReadJson(JsonReader reader, Type objectType, VersionRange? existingValue, bool hasExistingValue, JsonSerializer serializer) - => reader.Value is string s && VersionRange.TryParse(s, out var range) ? range : existingValue; + => reader.Value is not string s ? existingValue : new VersionRange(s); public override void WriteJson(JsonWriter writer, VersionRange? value, JsonSerializer serializer) - => writer.WriteValue(value?.ToString()); + { + if (value is null) writer.WriteNull(); + else writer.WriteValue(value.ToString()); + } } } diff --git a/IPA.Loader/JsonConverters/SemverVersionConverter.cs b/IPA.Loader/JsonConverters/SemverVersionConverter.cs index c0c7c10a..40683f03 100644 --- a/IPA.Loader/JsonConverters/SemverVersionConverter.cs +++ b/IPA.Loader/JsonConverters/SemverVersionConverter.cs @@ -8,7 +8,7 @@ namespace IPA.JsonConverters internal class SemverVersionConverter : JsonConverter { public override Version? ReadJson(JsonReader reader, Type objectType, Version? existingValue, bool hasExistingValue, JsonSerializer serializer) - => reader.Value is string s && Version.TryParse(s, out var version) ? version : existingValue; + => reader.Value is not string s ? existingValue : new Version(s); public override void WriteJson(JsonWriter writer, Version? value, JsonSerializer serializer) { From ed09c417221e90a09e05463a080e976125fcb10d Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 04:25:18 -0500 Subject: [PATCH 36/88] Bump prerelease version --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 13e313e5..336c7e56 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.1", + "version": "4.2.0-pre.2", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From 8b17eca4f311b7f39e3937f8b8ad101fdc989ed1 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 08:27:20 -0500 Subject: [PATCH 37/88] Update Hive.Versioning to include star ranges --- IPA.Loader/Loader/manifest.json | 2 +- Libs/thirdparty/Hive.Versioning.dll | Bin 37888 -> 38400 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 18860 -> 19180 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 336c7e56..0681debd 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.2", + "version": "4.2.0-pre.3", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll index 25631609ef826f28d8b0b47645f64f715ccd28fe..4a46b38f418576646aee5222de901c8aad679837 100644 GIT binary patch delta 6242 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 NjCfXmLBcuqe*(hVoLK+> diff --git a/Libs/thirdparty/Hive.Versioning.pdb b/Libs/thirdparty/Hive.Versioning.pdb index c74f836c4731c00f207c694b3de6769e1193c84e..900bb65728f9c507c9fa708523403d12a3b1a0d6 100644 GIT binary patch delta 1840 zcmZ`(ZERCj7=F&Vx3^u_(RKx<4&1V#)dA~ZUm2LOF$0@XqFaU%H?slDHrNJP2eDzJ zbtQn{2jdQd8PWI=;Rn&d0?~v-BUvCprv?o~R02ax2muU#{Grq5oVLsO;Z2_RzVGwA z=Y8LE&TWs|;`SkNprq-r7s%fU?D7E}l72&9Z)ZKoMFxUI39*;B zLp-s>fK7Z${6zdpWGywYjs#tRwIlE%1s|_9`Kx zxTAdBA_V48HgJQ!i4s}|9Aqr0-8kW$4VkpSu(mhp3FOn4n4~rE9T^j=R0>*j zGi3#87)z8*^8(SCR5b;m+souAf3Tc|W3-7vi4rMaJs(2SwiLho3hmP4e*tjIp^K`z{jG-9^_At-l=dHdT{#v=QGxXDNpZRY6sYlZ>N-ELp!Nn@oN~(u-n+95k z-k&qM%fwh}2$>w>|Csx%Ch<3|!2#4s%%yeA#znp?tYV4j-Po7Bt3|}l@y+Eu^tOe! zb@eU5_O{+|=a!z8t>Lz%si1M|*0$cI_EWymq8TzeTEiXaM0e{ZY;WyCXJ1>l3bypF z*+!?cM>+PCuf~&Hq|1y|`5zMY+RWc`uU{_sYsbKe=6|nzajNfhW%oyy2X5`$Cx6+v zV_{v(`jI8}%Yk6?iD2cEcVB-d)PMG1!T2ZdTwgf)>T{*Lr_Nm4_r0T}d*B1_+Qhu| ztv&5+g&V@|CSkgLS@ZK^w{o*LwXP_=JO0SoH-qaM)1$RGLb4Q!R8wJSdj%BKC$veqz9SSA??lz~XtS#WM<)DQ>ys q?>Y9CL|(dDy^Q~&&GA!qQ{A$_H?v*Ykg?r^H!__3MBK4URsR7ei!U1h delta 1490 zcmZuwYiyHM7=F(AzJ9&X(smncIKa6%YQU|#(ZMigW0h0DJ72BVyLFI$q$t50crw3k)++++0p*&Gdsa=Qx0HqEoo`SX4-Aaj<&=$aQ%S( zwFv$7@f};~f1A92Tvj#Tmp)w4)cJ7NZqEyIBf~>W9leZA43FoE6~iYR-O3vwlIfsG ziNxA+6aKJ?SlEp%L>JLR3=%`c2=Q8&`}HUBW>{h@Y+#Z&L&ypPZelU9jW|PiDh=!+ z-Xl&BQ^XBoT@`hrhqy*q)kY%S zna{+PNIGtKtz~5t9zqb!5IS^$i}D|#-;z$bFG(?LcYAM5gc#V3g-9?^%&o_X9{Ro6 z#321WH~As@y(}~zchOg02kQv5>uv>nHa-X;aY~t(CIl{!IX>CM60!rQ6I?8mke&E~ z?7~^H8|TQt1G?N4ErB1%68otbn4oQ96&biiH&ZNd2YrdcfAs$x*DA?b^ zR^8^`5}Bd`DnaT5Lni>Q=$-eF1(G_tR}XZR%pWG%f#uYJGQFppoEgZ#T~tj}k{wt^ z-NJ+5wR_M{X#q}9^1?;-;dv?xwc^)GKr2D56cPe}SeAj84NO6w? zYspqNS5**tXy~ZGMefYniL8^k{6WeRzvyu0U0Zc>J~@*hp%ep3aUf3B!V_dCu26B| zAZ<6sXnPQ)y#Oil|K+Nk7Gjz3MkWaO$PRrzXZDntu~bW`Th9M7ZdS4*+NFW$^2fp< zRxqs)OFLZ=VZv*$PsdX`cf~s^?Y9EQ>?ebH_F%9fJsZpy_OCgYiiQ?FmpcF5_|ei= zE7m<4-8Q#rbnfhD1@(U%-##<`VyLE(}@SZg?e Date: Wed, 2 Jun 2021 08:30:49 -0500 Subject: [PATCH 38/88] Add Hive.Versioning to manifest files --- IPA.Loader/Loader/manifest.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 0681debd..f9aba5d3 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -28,6 +28,7 @@ "Libs/Ionic.Zip.dll", "Libs/Newtonsoft.Json.dll", "Libs/Mono.Cecil.dll", - "Libs/SemVer.dll" + "Libs/SemVer.dll", + "Libs/Hive.Versioning.dll" ] } \ No newline at end of file From 5a79cf29f9c32bd64a58070460c4d6b435de57d7 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 2 Jun 2021 08:42:39 -0500 Subject: [PATCH 39/88] Add star range documentation for Hive.Versioning --- Libs/thirdparty/Hive.Versioning.dll | Bin 38400 -> 38400 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 19180 -> 19180 bytes Libs/thirdparty/Hive.Versioning.xml | 24 +++++++++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll index 4a46b38f418576646aee5222de901c8aad679837..02f9570fc0028aa58e2ae95534ad2f087a02a910 100644 GIT binary patch delta 37 vcmV+=0NVe6tO9_n0+5ITv5K*ZQh^Wzq%8Z6&b&&T%L!mW|K~@u?12;%LRArl delta 37 tcmZoz!_=^bX+j6ng|>}dL5%|E*?)?5Ts-BxLC?>GQTl+w<~NNZA^zLP0g!wYB@_X>XIp+kpzLP0g!wYFoR@mPH8nsh~}JYB%hHg2ZN{Hv5*uS7$C>}f&c&k0Dfkl VUGw?pO113%-xUkpd9%D5FfVx>9H{^R diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml index 8a3c5787..e502d7d3 100644 --- a/Libs/thirdparty/Hive.Versioning.xml +++ b/Libs/thirdparty/Hive.Versioning.xml @@ -577,7 +577,13 @@ to >=0.4.2 <0.5.0. - + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, + or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must + either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, + * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + The stirng to parse. The parsed . @@ -625,7 +631,13 @@ to >=0.4.2 <0.5.0. - + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, + or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must + either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, + * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + The string to try to parse. The parsed , if any. @@ -675,7 +687,13 @@ to >=0.4.2 <0.5.0. - + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, + or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must + either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, + * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + The string to try to parse. The parsed , if any. From 1a9a341c17b7bc3bc6c56f4bdeb18dc905e49b04 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Thu, 3 Jun 2021 13:59:04 -0500 Subject: [PATCH 40/88] Substitute Harmony with HarmonyX/MonoMod.RuntimeDetour --- IPA.Injector/IPA.Injector.csproj | 2 +- IPA.Loader/IPA.Loader.csproj | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index 127ba0cb..2716330b 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -80,7 +80,7 @@ - + diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 082a7fe4..5a3b36df 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -49,13 +49,16 @@ - - + - - + + + + From bbc7bef2ff7bce12c5da9e64aeee2bfb57dd7102 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Thu, 3 Jun 2021 17:46:45 -0500 Subject: [PATCH 41/88] Bump version --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index f9aba5d3..4be80dd0 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.3", + "version": "4.2.0-pre.4", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From 6d00fcd2b9ce2ce60a666de1eb028dc5ea4c01fc Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Sun, 6 Jun 2021 22:23:23 -0500 Subject: [PATCH 42/88] Add the ability for init injectors to themselves request injected parameters --- IPA.Loader/Loader/PluginInitInjector.cs | 152 +++++++++++++++++------- IPA.Loader/Loader/manifest.json | 2 +- 2 files changed, 112 insertions(+), 42 deletions(-) diff --git a/IPA.Loader/Loader/PluginInitInjector.cs b/IPA.Loader/Loader/PluginInitInjector.cs index 9272239d..3c669515 100644 --- a/IPA.Loader/Loader/PluginInitInjector.cs +++ b/IPA.Loader/Loader/PluginInitInjector.cs @@ -3,10 +3,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using IPA.Config; using IPA.Logging; using IPA.Utilities; -using System.Linq.Expressions; using IPA.AntiMalware; #if NET4 using Expression = System.Linq.Expressions.Expression; @@ -61,12 +59,53 @@ namespace IPA.Loader /// the value to inject into that parameter. public delegate object? InjectParameter(object? previous, ParameterInfo param, PluginMetadata meta); + /// + /// A provider for parameter injectors to request injected values themselves. + /// + /// + /// Some injectors may look at attributes on the parameter to gain additional information about what it should provide. + /// If an injector wants to allow end users to affect the things it requests, it may pass the parameter it is currently + /// injecting for to this delegate along with a type override to select some other type. + /// + /// the parameter that this is providing for. + /// an optional override for the parameter type. + /// the value that would otherwise be injected. + public delegate object? InjectedValueProvider(ParameterInfo forParam, Type? typeOverride = null); + + /// + /// A typed injector for a plugin's Init method. When registered, called for all associated types. If it returns null, the default for the type will be used. + /// + /// the previous return value of the function, or if never called for plugin. + /// the of the parameter being injected. + /// the for the plugin being loaded. + /// an to allow the injector to request injected values. + /// the value to inject into that parameter. + public delegate object? InjectParameterNested(object? previous, ParameterInfo param, PluginMetadata meta, InjectedValueProvider provider); + + /// + /// Invokes the provider with and and casts the result to . + /// + /// the type of object to be injected + /// the provider to invoke. + /// the parameter to provide for + /// the value requested, or . + public static T? Inject(this InjectedValueProvider provider, ParameterInfo param) + => (T?)provider?.Invoke(param, typeof(T)); + /// /// Adds an injector to be used when calling future plugins' Init methods. /// /// the type of the parameter. /// the function to call for injection. public static void AddInjector(Type type, InjectParameter injector) + => AddInjector(type, (pre, par, met, pro) => injector(pre, par, met)); + + /// + /// Adds an injector to be used when calling future plugins' Init methods. + /// + /// the type of the parameter. + /// the function to call for injection. + public static void AddInjector(Type type, InjectParameterNested injector) { injectors.Add(new TypedInjector(type, injector)); } @@ -74,13 +113,13 @@ namespace IPA.Loader private struct TypedInjector : IEquatable { public Type Type; - public InjectParameter Injector; + public InjectParameterNested Injector; - public TypedInjector(Type t, InjectParameter i) + public TypedInjector(Type t, InjectParameterNested i) { Type = t; Injector = i; } - public object? Inject(object? prev, ParameterInfo info, PluginMetadata meta) - => Injector(prev, info, meta); + public object? Inject(object? prev, ParameterInfo info, PluginMetadata meta, InjectedValueProvider provider) + => Injector(prev, info, meta, provider); public bool Equals(TypedInjector other) => Type == other.Type && Injector == other.Injector; @@ -98,10 +137,10 @@ namespace IPA.Loader private static readonly List injectors = new() { - new TypedInjector(typeof(Logger), (prev, param, meta) => prev ?? new StandardLogger(meta.Name)), - new TypedInjector(typeof(PluginMetadata), (prev, param, meta) => prev ?? meta), - new TypedInjector(typeof(Config.Config), (prev, param, meta) => prev ?? Config.Config.GetConfigFor(meta.Name, param)), - new TypedInjector(typeof(IAntiMalware), (prev, param, meta) => prev ?? AntiMalwareEngine.Engine) + new TypedInjector(typeof(Logger), (prev, param, meta, _) => prev ?? new StandardLogger(meta.Name)), + new TypedInjector(typeof(PluginMetadata), (prev, param, meta, _) => prev ?? meta), + new TypedInjector(typeof(Config.Config), (prev, param, meta, _) => prev ?? Config.Config.GetConfigFor(meta.Name, param)), + new TypedInjector(typeof(IAntiMalware), (prev, param, meta, _) => prev ?? AntiMalwareEngine.Engine) }; private static int? MatchPriority(Type target, Type source) @@ -138,52 +177,83 @@ namespace IPA.Loader Expression.ArrayIndex(arr, Expression.Constant(i)), t)))); } - internal static object?[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object? persist) + private static object? InjectForParameter( + Dictionary previousValues, + PluginMetadata meta, + ParameterInfo param, + Type paramType, + InjectedValueProvider provider) { - var initArgs = new List(); + var value = paramType.GetDefault(); + + var toUse = injectors + .Select(i => (inject: i, priority: MatchPriority(paramType, i.Type))) // check match priority, combine it + .NonNull(t => t.priority) // filter null priorities + .Select(t => (t.inject, priority: t.priority!.Value)) // remove nullable + .OrderByDescending(t => t.priority) // sort by value + .Select(t => t.inject); // remove priority value - var previousValues = persist as Dictionary; - if (previousValues == null) + // this tries injectors in order of closest match by type provided + foreach (var pair in toUse) { - previousValues = new(injectors.Count); - persist = previousValues; + object? prev = null; + if (previousValues.ContainsKey(pair)) + prev = previousValues[pair]; + + var val = pair.Inject(prev, param, meta, provider); + + if (previousValues.ContainsKey(pair)) + previousValues[pair] = val; + else + previousValues.Add(pair, val); + + if (val == null) continue; + value = val; + break; } - foreach (var param in initParams) - { - var paramType = param.ParameterType; + return value; + } - var value = paramType.GetDefault(); + private class InjectedValueProviderWrapperImplementation + { + public Dictionary PreviousValues { get; } - var toUse = injectors.Select(i => (inject: i, priority: MatchPriority(paramType, i.Type))) // check match priority, combine it - .NonNull(t => t.priority) // filter null priorities - .Select(t => (t.inject, priority: t.priority!.Value)) // remove nullable - .OrderByDescending(t => t.priority) // sort by value - .Select(t => t.inject); // remove priority value + public PluginMetadata Meta { get; } - // this tries injectors in order of closest match by type provided - foreach (var pair in toUse) - { - object? prev = null; - if (previousValues.ContainsKey(pair)) - prev = previousValues[pair]; + public InjectedValueProvider Provider { get; } + + public InjectedValueProviderWrapperImplementation(PluginMetadata meta) + { + Meta = meta; + PreviousValues = new(); + Provider = Inject; + } - var val = pair.Inject(prev, param, meta); + private object? Inject(ParameterInfo param, Type? typeOverride = null) + => InjectForParameter(PreviousValues, Meta, param, typeOverride ?? param.ParameterType, Provider); + } - if (previousValues.ContainsKey(pair)) - previousValues[pair] = val; - else - previousValues.Add(pair, val); + internal static object?[] Inject(ParameterInfo[] initParams, PluginMetadata meta, ref object? persist) + { + var initArgs = new List(); - if (val == null) continue; - value = val; - break; - } + var impl = persist as InjectedValueProviderWrapperImplementation; + if (impl == null || impl.Meta != meta) + { + impl = new(meta); + persist = impl; + } + + foreach (var param in initParams) + { + var paramType = param.ParameterType; + + var value = InjectForParameter(impl.PreviousValues, meta, param, paramType, impl.Provider); initArgs.Add(value); } - //init.Invoke(instance, initArgs.ToArray()); return initArgs.ToArray(); } } diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 4be80dd0..83f2fc3d 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.4", + "version": "4.2.0-pre.5", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From 247c82b28155c69f899889e090267573f7f7e271 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 23 Jun 2021 16:38:19 -0500 Subject: [PATCH 43/88] Remove old loader code --- IPA.Loader/Loader/PluginLoader.cs | 278 +----------------------------- 1 file changed, 1 insertion(+), 277 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 56a08cc7..2de08d7e 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -53,17 +53,6 @@ namespace IPA.Loader Logger.loader.Info($"Loading metadata took {sw.Elapsed}"); sw.Reset(); - // old loader system -#if false - Resolve(); - InitFeatures(); - ComputeLoadOrder(); - FilterDisabled(); - FilterWithoutFiles(); - - ResolveDependencies(); -#endif - sw.Start(); // Features contribute to load order considerations @@ -499,271 +488,6 @@ namespace IPA.Loader // the thing -> the reason internal static Dictionary ignoredPlugins = new(); -#if false - internal static void Resolve() - { // resolves duplicates and conflicts, etc - PluginsMetadata.Sort((a, b) => b.Version.CompareTo(a.Version)); - - var ids = new HashSet(); - var ignore = new Dictionary(); - var resolved = new List(PluginsMetadata.Count); - foreach (var meta in PluginsMetadata) - { - if (meta.Id != null) - { - if (ids.Contains(meta.Id)) - { - Logger.loader.Warn($"Found duplicates of {meta.Id}, using newest"); - var ireason = new IgnoreReason(Reason.Duplicate) - { - ReasonText = $"Duplicate entry of same ID ({meta.Id})", - RelatedTo = resolved.First(p => p.Id == meta.Id) - }; - ignore.Add(meta, ireason); - ignoredPlugins.Add(meta, ireason); - continue; // because of sorted order, hightest order will always be the first one - } - - bool processedLater = false; - foreach (var meta2 in PluginsMetadata) - { - if (ignore.ContainsKey(meta2)) continue; - if (meta == meta2) - { - processedLater = true; - continue; - } - - if (!meta2.Manifest.Conflicts.ContainsKey(meta.Id)) continue; - - var range = meta2.Manifest.Conflicts[meta.Id]; - if (!range.IsSatisfied(meta.Version)) continue; - - Logger.loader.Warn($"{meta.Id}@{meta.Version} conflicts with {meta2.Id}"); - - if (processedLater) - { - Logger.loader.Warn($"Ignoring {meta2.Name}"); - ignore.Add(meta2, new IgnoreReason(Reason.Conflict) - { - ReasonText = $"{meta.Id}@{meta.Version} conflicts with {meta2.Id}", - RelatedTo = meta - }); - } - else - { - Logger.loader.Warn($"Ignoring {meta.Name}"); - ignore.Add(meta, new IgnoreReason(Reason.Conflict) - { - ReasonText = $"{meta2.Id}@{meta2.Version} conflicts with {meta.Id}", - RelatedTo = meta2 - }); - break; - } - } - } - - if (ignore.TryGetValue(meta, out var reason)) - { - ignoredPlugins.Add(meta, reason); - continue; - } - if (meta.Id != null) - ids.Add(meta.Id); - - resolved.Add(meta); - } - - PluginsMetadata = resolved; - } - - private static void FilterDisabled() - { - var enabled = new List(PluginsMetadata.Count); - - var disabled = DisabledConfig.Instance.DisabledModIds; - foreach (var meta in PluginsMetadata) - { - if (disabled.Contains(meta.Id ?? meta.Name)) - DisabledPlugins.Add(meta); - else - enabled.Add(meta); - } - - PluginsMetadata = enabled; - } - - private static void FilterWithoutFiles() - { - var enabled = new List(PluginsMetadata.Count); - - foreach (var meta in PluginsMetadata) - { - var passed = true; - foreach (var file in meta.AssociatedFiles) - { - if (!file.Exists) - { - passed = false; - ignoredPlugins.Add(meta, new IgnoreReason(Reason.MissingFiles) - { - ReasonText = $"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)} (declared by {meta.Name}) does not exist" - }); - Logger.loader.Warn($"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)}" + - $" (declared by {meta.Name}) does not exist! Mod installation is incomplete, not loading it."); - break; - } - } - - if (passed) - enabled.Add(meta); - } - - PluginsMetadata = enabled; - } - - internal static void ComputeLoadOrder() - { -#if DEBUG - Logger.loader.Debug(string.Join(", ", PluginsMetadata.Select(p => p.ToString()).StrJP())); -#endif - - static bool InsertInto(HashSet root, PluginMetadata meta, bool isRoot = false) - { // this is slow, and hella recursive - bool inserted = false; - foreach (var sr in root) - { - inserted = inserted || InsertInto(sr.Dependencies, meta); - - if (meta.Id != null) - { - if (sr.Manifest.Dependencies.ContainsKey(meta.Id)) - inserted = inserted || sr.Dependencies.Add(meta); - else if (sr.Manifest.LoadAfter.Contains(meta.Id)) - inserted = inserted || sr.LoadsAfter.Add(meta); - } - if (sr.Id != null) - if (meta.Manifest.LoadBefore.Contains(sr.Id)) - inserted = inserted || sr.LoadsAfter.Add(meta); - } - - if (isRoot) - { - foreach (var sr in root) - { - InsertInto(meta.Dependencies, sr); - - if (sr.Id != null) - { - if (meta.Manifest.Dependencies.ContainsKey(sr.Id)) - meta.Dependencies.Add(sr); - else if (meta.Manifest.LoadAfter.Contains(sr.Id)) - meta.LoadsAfter.Add(sr); - } - if (meta.Id != null) - if (sr.Manifest.LoadBefore.Contains(meta.Id)) - meta.LoadsAfter.Add(sr); - } - - root.Add(meta); - } - - return inserted; - } - - var pluginTree = new HashSet(); - foreach (var meta in PluginsMetadata) - InsertInto(pluginTree, meta, true); - - static void DeTree(List into, HashSet tree) - { - foreach (var st in tree) - if (!into.Contains(st)) - { - DeTree(into, st.Dependencies); - DeTree(into, st.LoadsAfter); - into.Add(st); - } - } - - PluginsMetadata = new List(); - DeTree(PluginsMetadata, pluginTree); - -#if DEBUG - Logger.loader.Debug(string.Join(", ", PluginsMetadata.Select(p => p.ToString()).StrJP())); -#endif - } - - internal static void ResolveDependencies() - { - var metadata = new List(); - var pluginsToLoad = new Dictionary(); - var disabledLookup = DisabledPlugins.NonNull(m => m.Id).ToDictionary(m => m.Id, m => m.Version); - foreach (var meta in PluginsMetadata) - { - bool ignoreBcNoLoader = true; - var missingDeps = new List<(string id, Range version, bool disabled)>(); - foreach (var dep in meta.Manifest.Dependencies) - { -#if DEBUG - Logger.loader.Debug($"Looking for dependency {dep.Key} with version range {dep.Value.Intersect(new SemVer.Range("*.*.*"))}"); -#endif - if (dep.Key == SelfMeta.Id) - ignoreBcNoLoader = false; - - if (pluginsToLoad.ContainsKey(dep.Key) && dep.Value.IsSatisfied(pluginsToLoad[dep.Key])) - continue; - - if (disabledLookup.ContainsKey(dep.Key) && dep.Value.IsSatisfied(disabledLookup[dep.Key])) - { - Logger.loader.Warn($"Dependency {dep.Key} was found, but disabled. Disabling {meta.Name} too."); - missingDeps.Add((dep.Key, dep.Value, true)); - } - else - { - Logger.loader.Warn($"{meta.Name} is missing dependency {dep.Key}@{dep.Value}"); - missingDeps.Add((dep.Key, dep.Value, false)); - } - } - - if (meta.PluginType != null && !meta.IsSelf && !meta.IsBare && ignoreBcNoLoader) - { - ignoredPlugins.Add(meta, new IgnoreReason(Reason.Dependency) - { - ReasonText = "BSIPA Plugin does not reference BSIPA!" - }); - for (int i = 0; i < 20; i++) - { - Logger.loader.Warn($"HEY {meta.Id} YOU DEPEND ON BSIPA SO DEPEND ON BSIPA"); - } - continue; - } - - if (missingDeps.Count == 0) - { - metadata.Add(meta); - if (meta.Id != null) - pluginsToLoad.Add(meta.Id, meta.Version); - } - else if (missingDeps.Any(t => !t.disabled)) - { // missing deps - ignoredPlugins.Add(meta, new IgnoreReason(Reason.Dependency) - { - ReasonText = $"Missing dependencies {string.Join(", ", missingDeps.Where(t => !t.disabled).Select(t => $"{t.id}@{t.version}").StrJP())}" - }); - } - else - { - DisabledPlugins.Add(meta); - DisabledConfig.Instance.DisabledModIds.Add(meta.Id ?? meta.Name); - } - } - - DisabledConfig.Instance.Changed(); - PluginsMetadata = metadata; - } -#endif - internal static void DoOrderResolution() { #if DEBUG @@ -963,7 +687,7 @@ namespace IPA.Loader if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) || !range.Matches(depMeta.HVersion)) { - Logger.loader.Warn($"Dependency '{id}@{range}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"'{plugin.Id}' is missing depencency '{id}@{range}'; ignoring"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { ReasonText = $"Dependency '{id}@{range}' not found", From 5abcc6d118dd9e73f5951f73dc4ec34a05b10e88 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 23 Jun 2021 16:39:20 -0500 Subject: [PATCH 44/88] Upgrade Hive.Versioning --- Libs/thirdparty/Hive.Versioning.dll | Bin 38400 -> 38400 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 19180 -> 19460 bytes Libs/thirdparty/Hive.Versioning.xml | 137 ++++++++++++++++++++++++---- 3 files changed, 118 insertions(+), 19 deletions(-) diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll index 02f9570fc0028aa58e2ae95534ad2f087a02a910..a5a1e8fc9314a364b334d67712099eea131eafa4 100644 GIT binary patch delta 6713 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 Jhu^M6^9#oJ!`}b^ delta 2270 zcmZ{l3s6*L6vxl^-Mh;!?85R8L@;Rq!3VoMmStB(9vXt=q#~vxCd;zmCinny)P%(q zUpY>~HAPL!ou&iTG? zzkBX(TPN##iEXr0bcPWnwh*-$h~{$mWlat4`L&INt1p5`#67XRjBdcMl>G_iCF60Q z97*(Y4#tIb3#u?qj$$9x&T1*#HD}D$JG*LsotD|XrhQ}l054)602QbK;b2MoClj=C zU@KT7g|kxCPh6lsBnON2{PnnsLX0Yk0FN1wfYN068Ae9)jGWekj6_bAU=?TwJHT6D zFE{``1}DI2@HJpboU|Yrq=6FP0`=fI&CT9zu%wp5Wm1wR9Em`EXDCpZL-gYUu3;UWnmM6!S}U_7V<#*rQr zjua_9O(Yx02U|cF=ml579iTRe6bgz#npvb;vzD5{Ca@j60rr6X;ILUfMfu{?W#)9! zEYMkS4J4!slmaYZEx6`^NzD*Q0$+f0;5!hLDbP$Hf$bn7OQ0lR1>-7ERUbYc&>kk_A+Oeq!qd$o^S+~Qz*3|kc}d_Ih!$F-Cvl3_=BvUZt=tsG@`^ia}Ar6(xcS zr1sDlM=|E-6xd0=vep1t6=`7A%IZPb5s`+Hl=(-(>Zlx1QmRNo;PhTY1}FL12hNblr_|1Vn9mhOAX!n- z8sw?bM?^tn_F%gjI*fsqZXq13G*t-gg%Vi!-^FsKxRg!f!jyZ>c#2 z-%M1eU~@qlD-%g4;DtM67{>f}!wZ?;9+}2wzn3z0*!6W2&C9zwhIhZd`O=8JOD1Kn zzJK`Q3ty@%_07A&rn?#%-3#VVb)@n4E+W-Ljnj5hk)qK63OY;j;l${^>0`i1T~ zS3}wZDa&LxrKed|#-{mu|pLJwi!F^vz=Vbk{gGTE(pZR*2?+51V6H=M)9)f-$r%aXayT^RUKo~I_l7v*mrpQkw zWT0Lk8`p#oj6$HQqQIr#N1sMpwX#+mlbH%A@wB3^sLN^^J+rK$1u=%|8|Nlcb*mv~r}v}EGcwAK|v6eQ&E~Y;;pN_SM>6?3U2)- F|8G&!qP_qC diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml index e502d7d3..7e42b5c5 100644 --- a/Libs/thirdparty/Hive.Versioning.xml +++ b/Libs/thirdparty/Hive.Versioning.xml @@ -550,23 +550,33 @@ >= - The unbounded range matches any greater than or equal to its specified . + + The unbounded range matches any greater than or equal to its specified. + <= - The unbounded range matches any less than or equal to its specified . + + The unbounded range matches any less than or equal to its specified . + > - The unbounded range matches any greater than its specified . + + The unbounded range matches any greater than its specified . + < - The unbounded range matches any less than its specified . + + The unbounded range matches any less than its specified . + = - The range matches only the that it is specified with. + + The range matches only the that it is specified with. + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: @@ -577,15 +587,38 @@ to >=0.4.2 <0.5.0. + There are also a few special ranges: + + * + + The range. This range matches every possible version. + + + + z or Z + + The range. This range matches nothing. + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases + except the singular *, any * may also be an x or X. + + A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader + what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 + and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, + before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser + to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the + range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it + is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts + to parse a first version, fails, and tries other forms a range can take before eventually failing out. - The stirng to parse. + The string to parse. The parsed . Thrown when is not a valid . @@ -604,23 +637,33 @@ >= - The unbounded range matches any greater than or equal to its specified . + + The unbounded range matches any greater than or equal to its specified. + <= - The unbounded range matches any less than or equal to its specified . + + The unbounded range matches any less than or equal to its specified . + > - The unbounded range matches any greater than its specified . + + The unbounded range matches any greater than its specified . + < - The unbounded range matches any less than its specified . + + The unbounded range matches any less than its specified . + = - The range matches only the that it is specified with. + + The range matches only the that it is specified with. + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: @@ -631,12 +674,35 @@ to >=0.4.2 <0.5.0. + There are also a few special ranges: + + * + + The range. This range matches every possible version. + + + + z or Z + + The range. This range matches nothing. + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases + except the singular *, any * may also be an x or X. + + A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader + what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 + and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, + before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser + to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the + range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it + is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts + to parse a first version, fails, and tries other forms a range can take before eventually failing out. The string to try to parse. @@ -660,23 +726,33 @@ >= - The unbounded range matches any greater than or equal to its specified . + + The unbounded range matches any greater than or equal to its specified. + <= - The unbounded range matches any less than or equal to its specified . + + The unbounded range matches any less than or equal to its specified . + > - The unbounded range matches any greater than its specified . + + The unbounded range matches any greater than its specified . + < - The unbounded range matches any less than its specified . + + The unbounded range matches any less than its specified . + = - The range matches only the that it is specified with. + + The range matches only the that it is specified with. + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: @@ -687,12 +763,35 @@ to >=0.4.2 <0.5.0. + There are also a few special ranges: + + * + + The range. This range matches every possible version. + + + + z or Z + + The range. This range matches nothing. + + A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. + valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases + except the singular *, any * may also be an x or X. + + A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader + what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 + and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, + before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser + to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the + range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it + is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts + to parse a first version, fails, and tries other forms a range can take before eventually failing out. The string to try to parse. From 7af2e903aa847f0bff252b6b7d94ede250874866 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 23 Jun 2021 16:40:42 -0500 Subject: [PATCH 45/88] Bump version --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 83f2fc3d..10bfd4a6 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.5", + "version": "4.2.0-pre.6", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From f66e300e9b53a8c257d77e599e9806da8bbf4851 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Thu, 15 Jul 2021 14:17:26 -0500 Subject: [PATCH 46/88] Update HarmonyX, MonoMod, and Cecil --- IPA.Injector/IPA.Injector.csproj | 6 +++--- IPA.Loader/IPA.Loader.csproj | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index 2716330b..34d63e86 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -1,6 +1,6 @@  - + net472 @@ -80,7 +80,7 @@ - + @@ -114,6 +114,6 @@ - + diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 5a3b36df..b8803f76 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -56,9 +56,9 @@ buildtransitive --> - - - + + + From a5c613e66ba92f78d5d1afab5d318b84664bace9 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Thu, 15 Jul 2021 14:17:54 -0500 Subject: [PATCH 47/88] Bump version --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 10bfd4a6..48b063c8 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.6", + "version": "4.2.0-pre.7", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From 7b6a755dcc8549f0e6f8e36b9ebdb2e7fc1647ff Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 20 Jul 2021 16:02:54 -0500 Subject: [PATCH 48/88] Bump version to release --- IPA.Loader/Loader/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 48b063c8..52d8da8a 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0-pre.7", + "version": "4.2.0", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { From f2df61aec157454756d91b525cbef850b6b26253 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 20 Jul 2021 17:17:45 -0500 Subject: [PATCH 49/88] Fix documentation builds to actually behave --- docs/build.ps1 | 43 ++++++++++++++++++++++++++++++++++--------- docs/docfx.json | 3 +++ 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/docs/build.ps1 b/docs/build.ps1 index 903a0a29..e8b95d6b 100644 --- a/docs/build.ps1 +++ b/docs/build.ps1 @@ -1,22 +1,44 @@ +if ($PSEdition -eq "Core") { + Write-Error "Build must be run with Windows PowerShell due to the use of CodeDOM" + Write-Output "Running with Windows PowerShell" + powershell.exe "$(Get-Location)\build.ps1" + return +} + # read SelfConfig, remove wierd bits, load it, load Newtonsoft, and turn it into a schema -$newtonsoftLoc = "$(Get-Location)/nuget/Newtonsoft.Json.12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll" -$newtonsoftSchemaLoc = "$(Get-Location)/nuget/Newtonsoft.Json.Schema.3.0.11/lib/netstandard2.0/Newtonsoft.Json.Schema.dll" -$roslynCodeDomBase = "$(Get-Location)/nuget/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1" + +$newtonsoftVer = "12.0.2" +$newtonsoftSchemaVer = "3.0.11" +$codeDomProviderVer = "3.6.0" +$roslynVer = "3.10.0" +$nugetBase = "$(Get-Location)/nuget" +$newtonsoftLoc = "$nugetBase/Newtonsoft.Json.$newtonsoftVer/lib/netstandard2.0/Newtonsoft.Json.dll" +$newtonsoftSchemaLoc = "$nugetBase/Newtonsoft.Json.Schema.$newtonsoftSchemaVer/lib/netstandard2.0/Newtonsoft.Json.Schema.dll" +$roslynCodeDomBase = "$nugetBase/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.$codeDomProviderVer" $roslynCodeDom = "$roslynCodeDomBase/lib/net45/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll" +$roslynBase = "$nugetBase/Microsoft.Net.Compilers.Toolset.$roslynVer" +$roslynInstall = "$roslynBase/tasks/net472/" $selfConfigLoc = "../IPA.Loader/Config/SelfConfig.cs" $ipaRoot = "../IPA" if (!(Test-Path "nuget" -PathType Container)) { - nuget install Newtonsoft.Json -Version 12.0.2 -source https://api.nuget.org/v3/index.json -o "$(Get-Location)/nuget" - nuget install Newtonsoft.Json.Schema -Version 3.0.11 -source https://api.nuget.org/v3/index.json -o "$(Get-Location)/nuget" - nuget install Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 2.0.1 -source https://api.nuget.org/v3/index.json -o "$(Get-Location)/nuget" + $nugetExe = "nuget/nuget.exe" + mkdir "nuget" + Invoke-WebRequest "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -OutFile $nugetExe + + &$nugetExe install Newtonsoft.Json -Version $newtonsoftVer -source https://api.nuget.org/v3/index.json -o $nugetBase + &$nugetExe install Newtonsoft.Json.Schema -Version $newtonsoftSchemaVer -source https://api.nuget.org/v3/index.json -o $nugetBase + &$nugetExe install Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version $codeDomProviderVer -source https://api.nuget.org/v3/index.json -o $nugetBase + &$nugetExe install Microsoft.Net.Compilers.Toolset -Version $roslynVer -source https://api.nuget.org/v3/index.json -o $nugetBase } & docfx metadata -if ((Test-Path $newtonsoftLoc -PathType Leaf) -and (Test-Path $selfConfigLoc -PathType Leaf) -and (Test-Path $roslynCodeDom -PathType Leaf)) { +if ((Test-Path $roslynCodeDom -PathType Leaf) -and (Test-Path $roslynInstall -PathType Container)) { # The files we need exist, lets do this! + Write-Output "Generating Schema JSON" + # Add the Roslyn CodeDom Add-Type -Path $roslynCodeDom @@ -68,7 +90,7 @@ class RoslynCompilerSettings : Microsoft.CodeDom.Providers.DotNetCompilerPlatfor { [string] get_CompilerFullPath() { - return "$roslynCodeDomBase\tools\RoslynLatest\csc.exe" + return "$roslynInstall\csc.exe" } [int] get_CompilerServerTimeToLive() { @@ -88,11 +110,14 @@ class RoslynCompilerSettings : Microsoft.CodeDom.Providers.DotNetCompilerPlatfor $schema = $schemagen.Generate([IPA.Config.SelfConfig]) $schema.ToString() | Out-File "other_api/config/_schema.json" +} else { + Write-Output "Cannot generate schema JSON" } -$ipaExe = "$ipaRoot/bin/Release/net461/IPA.exe" +$ipaExe = "$ipaRoot/bin/Release/net472/IPA.exe" # generate IPA.exe args file if (-not (Test-Path $ipaExe -PathType Leaf)) { + msbuild -t:Restore -p:Configuration=Release -p:Platform=AnyCPU -p:SolutionDir=.. "$ipaRoot/IPA.csproj" msbuild -p:Configuration=Release -p:Platform=AnyCPU -p:SolutionDir=.. "$ipaRoot/IPA.csproj" } diff --git a/docs/docfx.json b/docs/docfx.json index 673240cc..afe2c5b6 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -39,6 +39,9 @@ "other_api/**.yml", "toc.yml", "*.md" + ], + "exclude": [ + "articles/dev-resources/**.md" ] } ], From 1a496b732b2f83387e5c1740ee764fe25b6ac625 Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 12 Oct 2021 18:30:25 +0200 Subject: [PATCH 50/88] Fixed some typos in PluginLoader --- IPA.Loader/Loader/PluginLoader.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 2de08d7e..cc7f25f7 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -261,7 +261,7 @@ namespace IPA.Loader Logger.loader.Error(e); ignoredPlugins.Add(metadata, new IgnoreReason(Reason.Error) { - ReasonText = "An error ocurred loading the data", + ReasonText = "An error occurred loading the data", Error = e }); } @@ -372,7 +372,7 @@ namespace IPA.Loader /// Conflict, /// - /// The plugin this reason is assiciated with is missing a dependency. + /// The plugin this reason is associated with is missing a dependency. /// /// /// Since this is only given when a dependency is missing, will @@ -390,7 +390,7 @@ namespace IPA.Loader /// Feature, /// - /// The plugin this reason is assoicated with is unsupported. + /// The plugin this reason is associated with is unsupported. /// /// /// Currently, there is no path in the loader that emits this , however there may @@ -687,7 +687,7 @@ namespace IPA.Loader if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) || !range.Matches(depMeta.HVersion)) { - Logger.loader.Warn($"'{plugin.Id}' is missing depencency '{id}@{range}'; ignoring"); + Logger.loader.Warn($"'{plugin.Id}' is missing dependency '{id}@{range}'; ignoring"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { ReasonText = $"Dependency '{id}@{range}' not found", @@ -958,7 +958,7 @@ namespace IPA.Loader Logger.loader.Error(e); ignoredPlugins.Add(meta, new IgnoreReason(Reason.Error) { - ReasonText = "Error ocurred while initializing", + ReasonText = "Error occurred while initializing", Error = e }); return null; @@ -1014,7 +1014,7 @@ namespace IPA.Loader } catch (Exception e) { - Logger.log.Critical($"Uncaught exception while loading pluign {meta.Name}:"); + Logger.log.Critical($"Uncaught exception while loading plugin {meta.Name}:"); Logger.log.Critical(e); } } From 091a09d816fc281b6145432ae25ebeb6adfa7881 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 25 Oct 2021 15:13:49 -0500 Subject: [PATCH 51/88] Bump version number --- IPA.Loader/Config/SelfConfig.cs | 2 +- IPA.Loader/Loader/manifest.json | 2 +- IPA/Program.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index f3284244..1bc877b8 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -73,7 +73,7 @@ namespace IPA.Config } internal const string IPAName = "Beat Saber IPA"; - internal const string IPAVersion = "4.2.0.0"; + internal const string IPAVersion = "4.2.1.0"; // uses Updates.AutoUpdate, Updates.AutoCheckUpdates, YeetMods, Debug.ShowCallSource, Debug.ShowDebug, // Debug.CondenseModLogs diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 52d8da8a..1ff25d94 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.0", + "version": "4.2.1", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { diff --git a/IPA/Program.cs b/IPA/Program.cs index dcf43131..0116a585 100644 --- a/IPA/Program.cs +++ b/IPA/Program.cs @@ -21,7 +21,7 @@ namespace IPA Unknown } - public const string FileVersion = "4.2.0.0"; + public const string FileVersion = "4.2.1.0"; public static Version Version => Assembly.GetEntryAssembly()!.GetName().Version!; From c3515aabf495bc057bb0d9726a43fd4745ca1f14 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 25 Oct 2021 15:32:08 -0500 Subject: [PATCH 52/88] Features can now have multiple definitions of each by way of an array of objects --- .../JsonConverters/FeaturesFieldConverter.cs | 31 ++++++++++++++++--- .../Loader/Features/ConfigProviderFeature.cs | 7 +++-- IPA.Loader/Loader/Features/DefineFeature.cs | 11 ++++--- IPA.Loader/Loader/PluginLoader.cs | 4 ++- IPA.Loader/Loader/PluginManifest.cs | 2 +- 5 files changed, 41 insertions(+), 14 deletions(-) diff --git a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs index 97cccb18..8dc3c635 100644 --- a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs +++ b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs @@ -3,15 +3,24 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace IPA.JsonConverters { - internal class FeaturesFieldConverter : JsonConverter> + internal class FeaturesFieldConverter : JsonConverter>> { - public override Dictionary ReadJson(JsonReader reader, Type objectType, Dictionary existingValue, bool hasExistingValue, JsonSerializer serializer) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void Assert([DoesNotReturnIf(false)] bool condition) + { + if (!condition) + throw new InvalidOperationException(); + } + + public override Dictionary> ReadJson(JsonReader reader, Type objectType, Dictionary> existingValue, bool hasExistingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartArray) { @@ -20,10 +29,24 @@ namespace IPA.JsonConverters return existingValue; } - return serializer.Deserialize>(reader); + var dict = new Dictionary>(); + Assert(reader.TokenType == JsonToken.StartObject && reader.Read()); + + while (reader.TokenType == JsonToken.PropertyName) + { + var name = reader.ReadAsString(); + var list = reader.TokenType == JsonToken.StartObject + ? (new() { serializer.Deserialize(reader) }) + : serializer.Deserialize>(reader); + dict.Add(name, list); + } + + Assert(reader.TokenType == JsonToken.EndObject && reader.Read()); + + return dict; } - public override void WriteJson(JsonWriter writer, Dictionary value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, Dictionary> value, JsonSerializer serializer) { serializer.Serialize(writer, value); } diff --git a/IPA.Loader/Loader/Features/ConfigProviderFeature.cs b/IPA.Loader/Loader/Features/ConfigProviderFeature.cs index 61ab95f9..cd8e9cce 100644 --- a/IPA.Loader/Loader/Features/ConfigProviderFeature.cs +++ b/IPA.Loader/Loader/Features/ConfigProviderFeature.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +#nullable enable +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.IO; @@ -18,7 +19,7 @@ namespace IPA.Loader.Features DataModel data; try { - data = featureData.ToObject(); + data = featureData.ToObject() ?? throw new InvalidOperationException("Feature data is null"); } catch (Exception e) { @@ -36,7 +37,7 @@ namespace IPA.Loader.Features InvalidMessage = $"Invalid type name {data.TypeName}"; return false; } - catch (Exception e) when (e is FileNotFoundException || e is FileLoadException || e is BadImageFormatException) + catch (Exception e) when (e is FileNotFoundException or FileLoadException or BadImageFormatException) { string filename; diff --git a/IPA.Loader/Loader/Features/DefineFeature.cs b/IPA.Loader/Loader/Features/DefineFeature.cs index 9cba0a8c..6590df1a 100644 --- a/IPA.Loader/Loader/Features/DefineFeature.cs +++ b/IPA.Loader/Loader/Features/DefineFeature.cs @@ -1,4 +1,5 @@ -using IPA.Logging; +#nullable enable +using IPA.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; @@ -15,12 +16,12 @@ namespace IPA.Loader.Features [JsonProperty("type", Required = Required.Always)] public string TypeName = ""; [JsonProperty("name", Required = Required.DisallowNull)] - public string ActualName = null; + public string? ActualName = null; public string Name => ActualName ?? TypeName; } - private DataModel data; + private DataModel data = null!; protected override bool Initialize(PluginMetadata meta, JObject featureData) { @@ -28,7 +29,7 @@ namespace IPA.Loader.Features try { - data = featureData.ToObject(); + data = featureData.ToObject() ?? throw new InvalidOperationException("Feature data is null"); } catch (Exception e) { @@ -54,7 +55,7 @@ namespace IPA.Loader.Features Logger.features.Error($"Invalid type name {data.TypeName}"); return; } - catch (Exception e) when (e is FileNotFoundException || e is FileLoadException || e is BadImageFormatException) + catch (Exception e) when (e is FileNotFoundException or FileLoadException or BadImageFormatException) { var filename = ""; diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 2de08d7e..b9b05d65 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -809,7 +809,9 @@ namespace IPA.Loader { foreach (var meta in PluginsMetadata) { - foreach (var feature in meta.Manifest.Features.Select(f => new Feature.Instance(meta, f.Key, f.Value))) + foreach (var feature in meta.Manifest.Features + .SelectMany(f => f.Value.Select(o => (f.Key, o))) + .Select(t => new Feature.Instance(meta, t.Key, t.o))) { if (feature.TryGetDefiningPlugin(out var plugin) && plugin == null) { // this is a DefineFeature, so we want to initialize it early diff --git a/IPA.Loader/Loader/PluginManifest.cs b/IPA.Loader/Loader/PluginManifest.cs index 6a394f2a..a8da82f4 100644 --- a/IPA.Loader/Loader/PluginManifest.cs +++ b/IPA.Loader/Loader/PluginManifest.cs @@ -43,7 +43,7 @@ namespace IPA.Loader public Dictionary Conflicts = new(); [JsonProperty("features", Required = Required.DisallowNull), JsonConverter(typeof(FeaturesFieldConverter))] - public Dictionary Features = new(); + public Dictionary> Features = new(); [JsonProperty("loadBefore", Required = Required.DisallowNull)] public string[] LoadBefore = Array.Empty(); From b3994aeb2dd5aff96ccf9b0c3567d41a01b4dd1d Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 25 Oct 2021 15:41:12 -0500 Subject: [PATCH 53/88] Add NoEnableDisableAttribute to indicate that a plugin does not need an OnEnable and OnDisable method --- IPA.Loader/Loader/PluginExecutor.cs | 8 ++++++-- .../Attributes/LifecycleAttributes.cs | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/IPA.Loader/Loader/PluginExecutor.cs b/IPA.Loader/Loader/PluginExecutor.cs index 90b54582..8073c4fd 100644 --- a/IPA.Loader/Loader/PluginExecutor.cs +++ b/IPA.Loader/Loader/PluginExecutor.cs @@ -122,6 +122,7 @@ namespace IPA.Loader // TODO: make enable and disable able to take a bool indicating which it is private static Action MakeLifecycleEnableFunc(Type type, string name) { + var noEnableDisable = type.GetCustomAttribute() is not null; var enableMethods = type.GetMethods(BindingFlags.Public | BindingFlags.Instance) .Select(m => (m, attrs: m.GetCustomAttributes(typeof(IEdgeLifecycleAttribute), false))) .Select(t => (t.m, attrs: t.attrs.Cast())) @@ -129,7 +130,8 @@ namespace IPA.Loader .Select(t => t.m).ToArray(); if (enableMethods.Length == 0) { - Logger.loader.Notice($"Plugin {name} has no methods marked [OnStart] or [OnEnable]. Is this intentional?"); + if (!noEnableDisable) + Logger.loader.Notice($"Plugin {name} has no methods marked [OnStart] or [OnEnable]. Is this intentional?"); return o => { }; } @@ -153,6 +155,7 @@ namespace IPA.Loader } private static Func MakeLifecycleDisableFunc(Type type, string name) { + var noEnableDisable = type.GetCustomAttribute() is not null; var disableMethods = type.GetMethods(BindingFlags.Public | BindingFlags.Instance) .Select(m => (m, attrs: m.GetCustomAttributes(typeof(IEdgeLifecycleAttribute), false))) .Select(t => (t.m, attrs: t.attrs.Cast())) @@ -160,7 +163,8 @@ namespace IPA.Loader .Select(t => t.m).ToArray(); if (disableMethods.Length == 0) { - Logger.loader.Notice($"Plugin {name} has no methods marked [OnExit] or [OnDisable]. Is this intentional?"); + if (!noEnableDisable) + Logger.loader.Notice($"Plugin {name} has no methods marked [OnExit] or [OnDisable]. Is this intentional?"); return o => TaskEx.WhenAll(); } diff --git a/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs b/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs index 3cd4ca6f..a525eee4 100644 --- a/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs +++ b/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs @@ -109,4 +109,20 @@ namespace IPA { EdgeLifecycleType IEdgeLifecycleAttribute.Type => EdgeLifecycleType.Disable; } + + /// + /// Indicates that the applied plugin class does not need or + /// methods. + /// + /// + /// This is typically only the ccase when some other utility mod handles their lifecycle for + /// them, such as with SiraUtil and Zenject. + /// + /// + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public sealed class NoEnableDisableAttribute : Attribute + { + + } } From cba705d31a1a1974ab18fab9c770adab517182d0 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 25 Oct 2021 16:18:51 -0500 Subject: [PATCH 54/88] typo --- IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs b/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs index a525eee4..7394b1a6 100644 --- a/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs +++ b/IPA.Loader/PluginInterfaces/Attributes/LifecycleAttributes.cs @@ -115,7 +115,7 @@ namespace IPA /// methods. /// /// - /// This is typically only the ccase when some other utility mod handles their lifecycle for + /// This is typically only the case when some other utility mod handles their lifecycle for /// them, such as with SiraUtil and Zenject. /// /// From 83e491dbad631cddb656aaa670e05ce0d7e4009c Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Fri, 10 Dec 2021 00:39:47 -0600 Subject: [PATCH 55/88] Fix feature parsing --- IPA.Injector/Updates.cs | 3 ++- .../JsonConverters/FeaturesFieldConverter.cs | 11 +++++------ IPA.Loader/Loader/manifest.json | 10 ++++++---- Refs/UnityEngine.CoreModule.Net4.dll | Bin 723968 -> 726016 bytes Refs/UnityEngine.CoreModule.net3.dll | Bin 462848 -> 730112 bytes Refs/UnityEngine.Net4.dll | Bin 84480 -> 84992 bytes ...UnityEngine.UnityWebRequestModule.Net4.dll | Bin 24576 -> 24576 bytes ...UnityEngine.UnityWebRequestModule.net3.dll | Bin 17920 -> 24576 bytes Refs/UnityEngine.net3.dll | Bin 51712 -> 85504 bytes 9 files changed, 13 insertions(+), 11 deletions(-) diff --git a/IPA.Injector/Updates.cs b/IPA.Injector/Updates.cs index ee9ec1de..bfe9658d 100644 --- a/IPA.Injector/Updates.cs +++ b/IPA.Injector/Updates.cs @@ -54,7 +54,8 @@ namespace IPA.Injector _ = Process.Start(new ProcessStartInfo { FileName = path, - Arguments = $"\"-nw={Process.GetCurrentProcess().Id},s={string.Join(" ", Environment.GetCommandLineArgs().Skip(1).StrJP()).Replace("\\", "\\\\").Replace(",", "\\,")}\"", + Arguments = $"\"-nw={Process.GetCurrentProcess().Id}," + + $"s={string.Join(" ", Environment.GetCommandLineArgs().Skip(1).StrJP()).Replace("\\", "\\\\").Replace(",", "\\,")}\"", UseShellExecute = false }); diff --git a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs index 8dc3c635..c5f00090 100644 --- a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs +++ b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs @@ -4,10 +4,7 @@ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace IPA.JsonConverters { @@ -34,15 +31,17 @@ namespace IPA.JsonConverters while (reader.TokenType == JsonToken.PropertyName) { - var name = reader.ReadAsString(); + var name = (string)reader.Value; + Assert(reader.Read()); + var list = reader.TokenType == JsonToken.StartObject ? (new() { serializer.Deserialize(reader) }) : serializer.Deserialize>(reader); + dict.Add(name, list); + Assert(reader.Read()); } - Assert(reader.TokenType == JsonToken.EndObject && reader.Read()); - return dict; } diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 1ff25d94..fdc66190 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -11,10 +11,12 @@ "version": "4.2.1", "icon": "IPA.icon_white.png", "features": { - "IPA.DefineFeature": { - "type": "IPA.Loader.Features.ConfigProviderFeature", - "name": "IPA.ConfigProvider" - } + "IPA.DefineFeature": [ + { + "type": "IPA.Loader.Features.ConfigProviderFeature", + "name": "IPA.ConfigProvider" + } + ] }, "links": { "project-home": "https://bsmg.github.io/BeatSaber-IPA-Reloaded/index.html", diff --git a/Refs/UnityEngine.CoreModule.Net4.dll b/Refs/UnityEngine.CoreModule.Net4.dll index 17925d3a0a2e5c7675b73b0011e344d7b84da0ef..a971cd1a46428131a324f912e31b6207e278884c 100644 GIT binary patch literal 726016 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"?sMEyTLzSfw9Z5sG;MoVb8E{I4~RJ8x9PIh9kqV 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

-<+D?atcIaZeg@Aon~QIeGh}KR2bTE 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⋙&OPVxb}x)G0~;0ClMpGOdue5QjNJf9|y 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

j!8^<5i-W#7{B=<3z9&pu;G-b1bU* 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 diff --git a/Refs/UnityEngine.CoreModule.net3.dll b/Refs/UnityEngine.CoreModule.net3.dll index 477584ab954e5908409046040f274209d6a7eb45..7e4b2a8e1388aae17a08dae2f7e85851cb28be10 100644 GIT binary patch literal 730112 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%0D9EimF!vsUPD{Ep@rd?f>ScC^k` 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≷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�je1 zN)f2^6Ys?Q(&-bn^CJH`jZ&P>g?B+ z%p&m~VjptEagR1RgPzbEvB{kSqZM*)NjapLPsTB^F& z-_K_d7pI^@XJ=UrwHd|)0*Rmz6+tVumFM(91pApP`Y;jU9Pe~tj)AISV2D=*Yffwv z4A18VN3NI{WJYw_DTC`$bcxY0sLqxxjJ^|R3!6gb7u&Jjw-GbN@iCpiEVbwHSgsJnTRB@&~b1yl_L{bpBBT%a!27^->@ zi7R7-*q-BS&%@v?##@M~C@`#baPqmkSPoD{S+=?ZRIqT7BNTxV7F^*nXz(SNmA9Au zM#&py7s5*dV{U0S0#t$$fP5IEQX`8foLEvX2&p%oI48?s6-!ECF%ior@k^~ah6%Tw z_=TJLxspQa5&LGS%7PBp8doxa%+XP#6dE1!D8bpnV6efIXeZ44unA$~8xFZlaN%R+ zjX5+{#+S}3EvlTArWDC7%JuFQ3~jLt;ep7&;?( z5q&(nU&Sl=#Vv!oq3h;E4FqolsDgpwjUXk^0g^WcuY{yxcgaw&)*Md2fO;*;76hh! zO~f(9Lxs+y0Q7%g zib^q1ErbNolmwHi=wuWKk0LZzUdZu3mRZIkArpp+L*YtJ45K29ldY-e6cANsI?s~k z28aI3 zH?-lo)0Z%yw>0ZYzX2*h;xsL^;HQYox=~?XixdO6zri*#-jcPqRWUq501_XG{Z`zB z2<6r}2}Vi?CV$&of|o(_oM|ty7~8wV7~6%}I~+&NP&Fa}WuWFcsdUkK}T zpjbX1bjDU@Q%M{dW_~h)G|gZs%OYh2#WQyFE2nt6jxgKXqelocSlEny zTL=@smbn;aiG|__uN~a!6c3htI2&GFjqZ!uOrs|bewx1^n(1)5%1o|{Hi?K7e9ZKMBa*j8~-hk0Bh3e9)AxoTh5g&g;K%)%Yy z2bKxW##ZGtf*U6{%uH-)>z4+Rxt?P-Ogq$pmYWzlFTC&UNi)UBS zq?ww-ff5&~w8u}KI`y>|o_8_>|0LFfgGXg5eBTNk1Q*Y=udor%#T0stpR+7K1N5QY$Q$I->AGS!Y)QNG>mWQ&IsSb$hc`aC9O|t3$asJiq?tn0k z5^HN(rd~PPD9zwPSUt^&BKU&hdLCzz3g(_mg~wYaMiQN1$&R;ey%66qK(PE zd?9y_xob?TuUd-m@C~2mo<05Cv&Wx%cI>%lFHd&B%7Da|JD+*+G|S~PFOEI)Vi&9o zNPM~T^zqBbPrP`h%YVts0YlCm8Y`yk?cT|0S|^C4!5QVRpyyz0rYKIML!#^zI36+XQ%XkavX zjhxD3aF~I*%A+LSQ>MW<>1II<0m?+mMky$&@xkSVNhf7W!-QUi?lxz*Wq$gEbB$Ds zT!AitXqrxtG>%pAfT6m2O9X(bR{}%imdjq%eNy=R=2*^^jpivgBe28bLapCwq1y$vB>^s z6m0;tJWozft(&Koj4=dh?yOywi%ZKamM~l){;h1fFBX)4f+oTrvd~j##=CtPQRHGy z7l@9T5zR~j#NdRl0;4Q|sl~KAH2{KBbz4!Yf|7f|sw^K*QaHTTd?PB5Zd>gXIt-63Jn z0zz?KvaoeVZ<+hZ8D9!uHH`F3FbCmy)@Uh!(Wc9Kwvqr8y#mbDi zoJf}RK}ZqrV-@OM3J5yiVaqFrsX&!>)w)adn8|bg>9b?v+H{7GW{mL$U0goo-_)I9-MxJP7zT$HY7g5arKeUxKwO zVDzb9QV#K`Zx>siBLm~UwSb*1cv)0Ck5mRL&y^CQax6oL8W=uFL1!GOwIV>ni^qY0 z_FR>`v2IIHWzh|F`Gk|&9=l7hAh~KOrMNnuj*2V!d;~L;i?BjBIjO;_XVQ`637uk% zAlCj`iDLJGi%@u**1|fZqn#s1-O$rHeH73pI{}W-TnORw(ZL942UwAasFwg#DH2jEK(#VAZzU+LqBg;apj{n` z$}hh`E-5*h=?u9)k*;O=OF_ozC@j>v*QZX28DcBdicPvQoIL0|9iKbk2sqH%MJaxM z8Gi8+yR3?{T=GE%*liB6XDrzHNA6ZnxXa0!Q;W;1>kd#eOm=qV&u`M+e0vXuh+k z*-y^R6Ry(0fCxUvjy|R2ShfVXQ)&}&`e8DmJ!4Z1J3cFJx+zNqkrL)e@Ur0c?xe@; zvJc&@GR07!M8k|N0 zQW4c|L_bP{;zbF5q*>-Q#~Ee8?$Ua0+^}fCi_a3pPx-K9P#qgA*yWr(>Tt!<_ zht0M*gcejNt+vta{KT`M@@AJ5CnT)OuFkKtSIt#gWM#V#j=@K|7fTyXV1cpAg+ln=A58H*J4vFx z99O~B1SR@WY5XW9loREUYfAm1k)!p30E(IXT6c z)c4|P`?a4EOR@yHEY59q(GYTXaFke)h87_yLhcTZmrlQQ{H3v%+;<$`#oTw%!V0_; zCqUDZijN$M20Qg~;?3Q`5z8f}siQ?m>doE35ld<@@{)RdFKO=f7>?s^I~|&YkX79n z7G}m#hZX66txT_%;NC&q@N=@Ia;t#*!P(S>LbA@Mm1iMpi0OXb#^26!(H=@tjz`rWL(Ua}!Y(=G8b9E% zB}R`@WfzQIEmw(`^rd%{UE);CCs71ai`w}bxyh_lg)B=u<>wG3R)(}NYpLW|wAP(( zI%?u!SM`)q5sjyVN?4;=yMqR`^n;@laYJ-+q@A@95CN`ItuYiK)2XNF`q?h{cRiKi2Q8k~%*t~23_1lQT7 zyiWmfuw;P}gB3o%NL%<}s>cD~<@KXyfuMXCIol(}l@mT5YB@5GUQS>-FOB-L@Hwad z)Y6T4G+eB-&BTp*7O3=#>xP*f#hj;)r6_;kAPrY zaEO{hQ(y?5lt!uLp&~E4Q!N{u6n?R_WGAcu5grtBupq*I;ZKH8)p#>Gf1nOxVKnef z9)zY;b5t|S>--j9D}x)#1ZkiSQBeP@ZPS?NNZ(cyiIPW@61{I;l#+b(xgwvm11)wM zax~$jX2j{gdYOCLx}J_!n3Ubxv&xwudhBZiqmrsjjrK}z8g^_N zFP22sQZX$7sl0Y}9kKG&wx|VcBQ;wFw3NHMs-DwNG0*ta1OxTWcC<*aqJHSe!0xT;Wc4avVK)o_bWTq-W$y5gD z=@XPtLQ@!*!lqo|VoRKMA9s?cXW^l`59u&lzMcguaBpZnxmP(RUg$+IU3}{Zlg(8i zrc+FyZrI572$IV=GGsqm^MM(07*E$B_LD$WmbHZ2-B1GI6c7wgNyb`~Do1h!@Jq`Q zw|X$5Ta(=t`JI@p@Yqlp4eIG~K&g3Yd{?8V?`~5d-2K<^WxcD+5D4ilm{CIBEss z;(5dlE^mQuj9&L%*DZozppYpTwy6YWPc5nYyMq>eTyzJhwllurB`Mh;?}7@qo!dyX zhNALZa29vk%XooxbpX_g9^8g0XS{kRLpqfU^ zEytaQbXn0`qsDNi7|acSHZ7gq3k+5ZUns(o;vrMIXMznbH?dS;)50b;afr%ZhN%B$&_zN}T|`@gC zhw@za_k%of`oioZ6uH|)Aom)ZCdV_)Bs~CL;6nWB3P%Ky7$#dbssOWZm?@Dbldz*0oluqIU&{*0Vwv5v;xm%tp9mk_jxt z6i>*Av)4^KAwl4(rKiY^lIT=r0`Jko0<+9L*5h1M5Q$=^@f=*{2PEK5#Nr@nCk)3- z_sMisHp0DiPHdkj`RK^Q2N zj$JG>k#!HS&vQAvke?qLwl z&X^(6nR!-FES9c&kdm1zgJg`#1G$HAhKD zZDuDBW$M$y5LC#-JB8dzhGi|xjFoVx$^i=1W9d17>43S4rl>75x;j5&JE{3;8T%?j zjo(bd-;6@F^+g1mP0ZimSK-U%Qd!*P`ZREMT8k7NnW|winb}TLs5NmH)Oe$`l9{>> z@yCKmr3qL_0d)GTh=B<$9xhA?@V4iuV*z}e6>4Vs*Y3u)wYWP#^DB?WvvPjEhuHe; z&I?P%0&ow8!ourc?q_ssV{i}S)3jlN*VlLtlG3WXXj7Xo?o-Rz3~{d-Bk>yN-$U3& zt;i^4P;eNI`UE?9C@J9yTCH{*r>FEPB5V!KAf7ysm|O>H*F(4E$3T ztGTdJgWjbDQK9n_7pB4nrTQgy=OR>bFe9{{OJvLln~laLhH*q&%J~lv0Fe_QAyMwW z5tu94^;663d35QWWik033i%p^B7e7=c2=IC=&Kjpv8KtsqYE#*7s>4=b1mw90jGUf z1dOoJOH3A~B4fd?N2mr#?@)E06-VDF9_eOOh&L__##OkJ;eIN739U;_Sc(;~OfHT= z(2JabuW&Yxa8b30om`khjV(tsr;}-kQ%kCOVI$kZ$7EQBlrbxX3c-YKkIEu#{!$+T>lK*F8ZWcD zWR>}uP_9$cZLWRGMHQU|Vq_9`PJn5Eq7VXKBmqw9RdgN@&@0%6Vb7#TfJSWzu$VlP z9g(y&$Jh*UF7q=n1PEik0O-*$Z~1_Ml*pDVw@=0RFsg|r4j!r=T%M(u zG=NUBnqVX+_>^hOtKPh!{mLwIvZ$X&;WkR0R1F&_t8%DV<`5SVVhfO;>AgS^7LHrd z>m!!RML_bfL2kgnHnWIeVgYdk-MB$1%xk12!`I#zXC@Q~dm)K1@?3Li&B`wxrX48^ z5+a#kStG=x}0U9@d73j2UevK75RmTB+Bl;=^W<&k-VAZQZasuifxT zc|!|?bXYG=-wZVD6pE|z1v#G)SK=`;31>-u&LNnoN;@2=w{WOvYi_9bp=2DDBt~o83PxyuJO!LYL$f(s7jj5)! z9!f8Jod+ZGb>+^RzKp$1kWs0{t+DMf;knOX`jS59kM6k0XVO37FX1!Rm&7}6E<&#Y zh#zCd6i|(Y>IF$RJDG!swF2N|i#t@-|2F8>VYPv#7Fyyv-oCW7=mu3e2E&C1W+#W7 zp(yPGP6qH|+BwF_*3BjMd~h!<``7dW4Pr{#4m>wGHumhTOrPid^U^KL`IZg*TbWs; zpjz478hPCEcdX>_=aS^IcPr3zk(=fSuC|^Bv~@@DD`wtSE;r*Tmnw+7j-e)>hCty{ zm|w_qRapS_jM^XE52S-Y8p zHb$~PYh7^%Do*aOP7tx^Ui4Zxb_S1fWBZ9-RW9|4Cmw7h!N$;7vRQw8y#hGF3ooSr zOIxoEdA@dZI<*vhY;dtS;dY>V$-?#QI-w>1b-z&PQADLlp6WiQpxtd+f$lWj?nH$tK6@Y=MLB5%B0N?4Epap%~0-W2G1qJ@U>w&?wzDXfS$=;qH+T zukjw7yN&VgPI5BB%hla=&~P|OSHiFGYzgPtSUKqK(oHfCQ7x-O$j&G$cEtU}H>bcA2SPDMCv+rRlY~F91tptxG-U)K)gx4y_6`*<*;8@t zRm$PswHwxOY94x)L>wG0;yXk zsF7LN8cRSy7sTZ~0TEUNcW_!O3(U+?fC_!H0{B!haPUC0W0IUz)8&Q!p4 z8yjk}j7*zXK$V1P>XeaHstPcgVH}@WUN5j!a0bX*Cmj0HMks@+QlrnY-diMOb-v1>~jb3ZbET#8Dy9bgW8F z8$-%EfMSCupuDLQSl-A9tZ3c@STt+`BzEGvQRL3X&8wNK(A&2BD8)s0DxKgw-nx|; ziAQT)vGa+Gkb)WN;4$S^aR7tgPSe4yvs`dmp-lp1$Az{#S8io!;jh_hpDXC;tz)C` z)(v$%*d#Q0CHM5F*SYBAYJ>^MNIcnYR=D!j_rlWg=G?S;eMS5#UJD*WHnJIEXm1{$iy8a>W<_drt3~S*m8)MG1GuqJs%iOGl2t} z8L1LIipk#1Cqh)RGDKvWk`XQxzcsT*-0{?0u5}=tL*>KdDvWbb={#nvxSvo~`P`rNTlxB9>-Zug-MAL1!x2slXBG z^)f($pE5+7z{T8>uPUbHE01nM!!p#yI5*cx+$bj}<%Fa2g~v>AoI0sOGX1@!wzOeA z7P`f$*IPw=LWpIq+PDHnn`?-W^-Z+)Ol&840LB%q7t*)topj^qmfSashIfn|?@?&8 z#7CVHA7OS5Om3#d6nwKz13>Nul3q9Plw1Glh@5(fmU>CrTQO(Yv_pgO5Uabcvbcmt zb{r5G&G~ZX&q;)6*3RlIdr=}JK`yY6M6vp5F@Qs9y&B;jO_*z4u)MknUWlJS$SCm< zr|e_wcrn2%)6WH1M{>q-ycbyRl{A1fyp$<0FJ=l11l14{~zd=o*Rai(dq(81Q>`q5ki8Zv+KhAmCI2-$6p<}{2FT5 zgpzj9VCRKzyBQS%)L=R*)2$sLS3TxDt1=>cjU!o+v|4E>nTL}^oE6mV*Eb}(J&B=Apcts&&6!N@p z?$tf|^=x)+agkBXvbc=Om`F93UdkQ!G(^fK!(*66@neKUl;}ruCOWx#d19FaX%%Vu z;-t0hec%&oD-sX`3A!ofmShhtSD%Pl`70}sOw2`IcH*8%q@k2e z;W5_6tm%rxs%10M9LasCFZeA{8x1Q#gz3bF-5#~Rg)sp~4vvEElNx8ZhZyV zNZ4+87>DHm#J3l&h8!hg4^BITME5kx6kNCT7MjM&0V0{;3-%2Pz@lS?X9%N$jJ=I1 z?q&|qcx$eR3T9;8m~Q6*)tsa}Sj|<I1pkma6EJMV0RaEEOfX zRg&liXM72nv!@kSXjW9rint!8^@ul^Z0aQe;#~UuC}hF;fYtF zSE#t8fT#xNNp!-52l*SWVV7~M;KDZ=y3IzU@xx=Er3`uoDrQhRF30EsE+PF(hFD_y~dfD5i}bXnaii*6L^j|-j>4E1vVN*^X%O{ z8IMy=lriT`f&$gyN#=k{ODmlqDE~az(_|?neVJifSZKS44BTi^5zZ@vEb^B?_SXQNgd-mTxEp?WPl zmg&E~{=P>VS#3uRw*`HkAph?XLU&}fTHhn}tZ!$duQu4X@o#I{#@{iz8h%CE>_3mf znu8#hJZ*Ym)Q^_q3k&K`JM)aLp^(Z9m)LvE&GJ#{E6s+k!$1&^HV#>8ZZ%mdR8Kd) z`pu7(gRcoRl!)O4Vn+}svGnSt4&o(jlG+|y^%?m>Ejt*iat^J=Bjs|8QtZC|0hPL8rEc`o z7W;=9irlcGhyCRwjQ$yxO^Q)8NB_{q5BD-SLEg7>_t0CPumR9FFy8ikc5?b^v!*`SH}q`==*Z(cv%Zm$$8pve zR(&InKi;1`0^sq1Z0FGI-o1N==17WJUK^Ulu{YaU8wtQc-1~->hZgqj+(pn()-Ufq z`FHOVWOvp#bjzYy*WapVj|{ytbZhr+4TpCg#kaAc1l|Fc8HR5ld!*(-K>H}c#t((C zx?A-bq*?~pxFhdgQs4NI0p29u(8iB(m+|h(>uD+-JgPZpgOoMaZU4|L1!YXCenNKF z{-IkwRBzFoz$o_qp?4hg&VE272!J^IDe*2F)f*dB3S6reA)!e^`GNm%A9b+rkXK^B zD&deftwnw;kIJ2(T0KJ2p&}u}A6}|u6Y%2f;?j{T&aXIfMcPX3BPYc5UOr+gsBYP^ zjvR?QV40;ciXp2wfiz{$)v`0cPpZD0bf)%ZEt~v(Qj6PUzVmh_{QFjZ(rzb625f6= zN98AK*&qHs#Wi~71j}e=F~3#I&i>vB8iCZAB2#~YN#vVzO}kZ1yH!oQRZY89O}kZ1 zyA|7zHfwEg!s`EE}L6=>h7^JB-)p1M47@xp84XHQ+svi=4H z$M;6GmhET#WA6X8R-eILyO@e2gw&Z~BfIMRw2Kaoe6yB)J?;e%2zGKh;%AsJu-iu> z{M@vxC&ba*)^OIQJ3<+oB$j1lF|_gi;Nac{-@obmr?S3JQ{k-diLCE)Ssy!9R@*hG2>W){?ehp93iXR!yR#iM z3A>xF2yhaYqL0TAJ&FJ9qA3aT}?FmpdQ9xr>zvC~JS;pu)7?eyDYQ7YoiW z!gBKAPPXNZ4^Ke?K5TQB&Z(oZH+PR^{&aWl{=Nhh!d<7qzCthdx z_A^bOEGrpG( z@}d&j%+VZ5&HIjmWwky&r~eyde~fM%k20{{&0^BIZ&gqRDZjBuLl!am z^kvBKOZse@A%n+kgDfHm4Vp`ZkduN~x#VVY^u6RXY5y4r{N~D+<3OWX+MRP+uwqEn z`>n{2WzkU^Vmt(xe`sG)R0lD&+ZvNtPky?V4abWUZo5$?V;I`85udErMK5>bB%>qCpmQj` z5@fpWt7+_R8^a{L#xv4uff-F7dhp4Suhgd)Hr35XU4s$r!Gqvn+f^2+x&MVu*;AnFwiIF4^Ggu~BQgb^Q z#QD<+wy7>{lX#fKPille>f?#7mT$k7uh^3UIDz@@lUmO*PS5p&wQQs`1@e4t=VF{@ z0}ZIn+6b;Nat~|Ae3wHxzlZA@e}{+OJ<5UUOSwjck3Tg1m!_{ZXRSTqfzFDWSZi}6 z>=?vG7r%S-pVhK2_e>(lN|cOqG%J%~>}{Wn%TGN8V-t5LV^yMVM_*?D=vf}`!(K(P zX?d7dJ{s0XeKom{hTb}=9^hCNe-H20G(9@FueSSHCTY)XRsZfH+Z-qI(7T6r>%gF7 zl$l0S>|Q;^d!$FYW6SgEZ>>^xbeDsFzFbXcxth9oDO<|sv(;=p8_iB+t!#n+oA~E( zFJ*0@=d)?^-vEA=zv=9HcG7T~*-VZ(nw=xYEO1c)?@oE=PigOecS>2kwd<3^8}HQ~ z%Le%V*Kvj2!?wx>I6?Ss*4=}Tfj;qQu>#}M4kncSVNqt+V$UX_x|kJpz76d${Of01 zCWSqG0xqK&!0v|jr8%O=HN5e!a1k=R@!x~m7f{*L`wk4TtptDg0EvkO2%DL5NqoTx zaG0_NU-;D7CKGh?7Wnl~Fqb1{{MI$WNvvK1M2`aMJC8!l)cg5`XxMcW;-UUTwimBq z0o%h0AKZ|nF>al$vcB_>+D>bi6B%&nbIY5FtRV1>nm0vA?S@Fj0MKHVK`#vX?XkwI zjsMbJe-8Z{nsqO2A3KVD@-fjE2iPld9Lf$bGbsKLlo%yirR<@I!;n8^Nc}O0r4CTN z98vMh5e4apXrOvNqg)0m(0mJB$Gi175FPPk?)C)$Ucon>rzFM}YxFu|dOzQNv)Tgh0K((S=(8N?{ zXlr3N?Vu|Etr~wf)X#2`0r2iGpQ>eFh^4bD_ebnkN<@0%!n8HCPe7x6)@%z@6^SYSu0|idv7a;Wj^TAVI5r7}W1Ug@i_5AYjt?FWj*oN{ z&K`$*3g27X-=kxxePm9-;0Kgrd@E3Pu-^26_aFa-@NkGNY-#FS5#dTL`_mv`%O}O* z#v)heSJ28i+(2BUgXF8vjvm$jhZ|fkkaEMTOU*TuBNq-gCf2xf+XuD&yP(?kJ|4W|nOP0|~mc>h?@sVQc$a4Fn zBf$P8_mhTjl8xglT1NgvTAzAMV{8eAwlTF1J@x808*|)8d+O;wEiEJmcEl9lQnKIH z&#ZptUV-8MM)Qg@@Ec8&OE{0bfn5?F8*T*sF<9jDOD=?IyfFIwSH#M`P|Lzc!X;dpn0)SGV}0}0 z7e-$Q(aukwSa{fYFN_{lZm-s|mv~&At3oD!`IxbH>{IU!@uOpay7G<5F;D5umtHLT ztvmF^=ZnxCk5wfwcJW++qIJb@Kern^FS68Zywtck-A1e-qd3-|FN{7%Sw2Zp$7|WE z$B}kiKaS?``p2yp*ovl`655pYgtpGB@~!>c-M`sC|y)txiByF zvBM4QJs=B^ILky-Le*?ymzZz1tA(mD$pTLqKB=ES(9f6j!#c6BF1DsbY9u< zW&IGkte;i=AU??s4&8o-_2yt*7l1b@$0@SQi-#6N%dr#B%l@QFVwQ5 z4?uoh);y&^4_(Ziv+EHDVjC#3~q0TQ#vrP3(mm+|Ltz{ z+jn398h=0=vF~UbzNu_L@cXv5vGKQT@&8&Y(b$r7W7%ILMFfL|om6HGru+dEiHr~T z!ZV`>+auBh-3c~YE8R&tW@nOddDD8sfct*kPOHPW@3JT#%8PFbqmhaD^2<_US>ZlL z)JxTVT;^i!g0aiMy~BR^)B{s-jnD2xXyd*SHpK_0V47}iaT@ob^8rZ;#WK%Ptu02L_PS9PU+CS45vr|u=#YoYj=@nUhtJlseov#jn$V1O z;hctN*em~__x?~d9Is`c@0CujH~&y6QFzJ)zaiV}qvwQdD0bIiyOR5ef4Ihat(HB} ztK?pQhbs1V#qnewt~i?i^?~zZ3C4NcF%f=`0l|@u*`@U)+u;shM!x?=PHvQr8yQgn zu)CpssWDXAbz4+UH~W+vHW_=TCnP1bEfSgbQBo!g>{ty4hHG#*q#rg10sV(;v=~|a zeR0j>GRqZ~xg+H!EFBGZ^bgl&l>daYJK55*pGj{)<@XJzwbvE1w1(C z(!{aL>BVNK*XE>DA0DU6GV#N^(N0KH%HFgqA&=FvSBjuAF)-TDYR z3cYpIu%CA_%S4-Kcv!Jw=FFn;rQ^9auVZP_ZjW`S zmVGg%9+UEVNGtNdlCvSAoAZ0YUey5Y76Ig({?j`j*9o0nvtWo%!c65!0*;)4VS%eeGE158-dCLd zM?mydGOa{Sfu?tiVYU@bJNPz#6GnE5lNTi9A*wo{|8zU_Nfu0wbW$etHtaC~(2JQx z$HEJ~%|H<+ae8Up@#11%F`#(DW=+;&WF2FimB&`4+dqm$okjK9WpXRDZ@lO&s7bzj z&T(&U$p)m(YucWy`@-9Yg_+d$sLmekQIqf5HLNU?ke!-N*##t1P`${J*Ws)cU2vVX zlIBiE4cJ^E)7a9D0;K4u#Zw>asGl5>B(&FHLy8)%e~^H80IdK8u}w5`tB58^=k1?x zY!2&A1&WjtK>$rS)yYWGL!+>|G1=KeuKDt0Rk;=Wa)oO;>Bg;AG_gZ|&p~}jUOi)| zeLG^POyljOr7+FAMnh(qG##o!#%}O>kW{(FFs==M_w3N^_j~Vszn+p<3H zh}yfOSlBC~iMZ=AQ@BUNU9m9^hwEIKv8|FhJ4fN3Xq#HXJag4W>8>8kdbpE#Mlt%+6w=SC9k-XPlOQ_PSCEsE#S9KIK%{Vn z9==!;2avDS1`i(Sz0zyc|L0%nDb^sxvXXyq1S!Rnn*088uHkRz>+q{v} zk>s3}Y{7p2S|^pYj>$9M_E#Z_c-mLGhM5fmVx{oaHlN}Ft0uv84;`m7@NFygs<-zV)epzc_Jb> zn-=!|5h$z3vjs=sqex|J<=PE}ie!wT$sjv2mQZ@a6PZzoS5Q$R zx`iroJfiACLgZunsg_y_Ns^n06a@99?2BYe44JPZIE>L;;i^E4$E)r$m@-Vo<$ z3!!!!*iJ*Ye{LD51dpPdGv4+%K5&yXb^BsWba&6>Uaw`}>f-H1qRn=^n>^ysD6#h% zUwy_2k;j^qq zpfvA&@{v(c9nNDWM;pdcZI9+CJH$3x<^O_ntp_H1k(}@<&-Hr zL-14f*s3j0pA4a)(xt(vVpK;yzV5jM!u0RC2xFc7fp(r4#pN!R{Tu+0`yGONM_ul2#~54Q71ic+|t*4wlNt$#1@vVM?F1FC}z8 zZeE&udA*i;)NJFw<&^ke{io!G=@)yVH}WYadE1^-m8}iRUiOaKZEKr=+L(^GjkY6m za?owzw8`JDWo!Q_#X@^#J~4mUQIaB*0}NcdQr1TIe!z;Ri{fE&<*TEeAdFknwSg6j zs7M3}xc)C~s&`yj?aoVLt;0#cVlON>zi3aCz1NT$*OFTuh~l7Bifm!jHFk_ zdj&>KRdzBJ+4P6e~EN@fiPCKRnD3SDzjbXl!k8q25OTO zwN3YW!RE5;5M;LMB=6er$W3b|zIYQ*#3d}=%&B~FCtyN94B!6nF~oGTXRlWTyqUN~ z8dknY18NFPtV$@utop$(5JEiO)uODF#!jm2Pn(B5A~Mo?N0e&Y*h=&Di<5}Jnl1H~ zH7`4g%rVa|O|qQuUODT^6kJR!kIv9cD(0PImg${i^4z}9Wv?$*mf6yE%YdiWo0X*x z!}|6|Jtua#aJMQ`vEtnR=s0|m-UaC#MU^SJvh_y{M+uRt5<}PA!Qo-zY!`Zh2kC96 zE4!DpB7)8@nNV42`-Zn(sqf;B!;8;l8P`xDoI0ZVCWaY7e+s*@xSr6NIt@UAXWaW% z@V><@DWGqm6m?&M`i=y%48GE*dt_UgTjgrzscOWyWueNL@ZrADBPa3Nxzxz=P(4CK zKGS4QXm>Ob<9ls6P}0td1haAq$rhuQjmpy5@VWa#>-)Pu9DeV44%YkKhRPz6O<$&w z7Q#^&vhbnz2E?K1LZDQG9wLa+2-VBwF1mXE(0jMgAJSds z_ipK;Fx7V8DKz_iBNngK`(|Q(8PlOl%|za)tejrZb>BtU%qwkd*zrN)lw~N8jYSG9 z@H@&$h0D?1d6ZZn6jkdn!`;63!uS2~{k4BL&*%o#e)c;3$*p}ax`}^ZyTc%jue2D; z`goMB59OvMY6Cca9dNXJ5&hUcHY>jQZuP0S(Fj+6zSVdse(($JxI?!;BH-R`u1=iC zE}7q*cufvMSwZ+G^~YQuRu@{yNta&y#k+ty41CsDbpYPLcc8h{NBDVRbT>AZlbRN zT%I@6uOih`zOXL=M|>;=s$V!MU-$IYTW(6}NbZtY+l*(VoWW>!DWn#NFQvv-^0hd6 zbF9+L3US!qN?=7!voP*iVL2&bK5F(S0=ZFZE>5Z3bQEP6a}V|Pk5U(x@t6Afm4282 z8gjp~TR$HOa-Ss|?&a+domHu+1IE^eXxegk*}5;Bf2eKL{)G-ezcbp~r}1e_6fP$d zobw3Q4XamF5wf>`rxf{^$7U$Hhri|88nopsmjDGky&Y;=Z5jTrZ$4Blh?yJ-(iR2Ig%;d}q2?TyU4A|?Y1rY9Zt zPa}2sc_RmmD^^{9-Tkv$P*3$JAv7tPi9AH|8tM-yJU)~*uvQL+i+(?pGC>^UVSk82 zJt@#@<)bt-#zy=-nZ=d&qpC!_qBfIXN@x_FP?19p!Z}N zcN{8+S7*u8mas(S>~vQjx_ciO_7z0N@oxa1NURf1t6_@y_yV>*%PU*nL|2-al?NwT zP&hD95*-`1UKz|xNFSSEuY3PpjYbfw(;KEAs8M{{S~m}eE%p8`!0cf6wLstf54%N<;7Lj(t`6f$BiWu{S_B>P_tX*K`&;2GvQqp%iX%e#%3}`S#kNUFz~5F zufP*i`Y_kj5^OW3*2qIJZVp7{!E@p2)pnC1sy$UihuIbl_Pkv|jnZ!(HZjCP>k7uG z$BrNOy_oI^d#i1N^t3Aak^QRD>Qo?G_q9T^5HJJ7Ep=;$wpgKJLD52NYFn@DO~#re zGSR``!rJIr|zr1CIMe=^0ik;0+6q zU3ouZzomTGDYt%X6YIy8rSm?v-XAbye9@B<)iV8A z2)N;U)m;eEfJyh)a@NB^GHL6&zZ26ihFzF1p&573ch(0bjX9t@)(5B)EO^--Q&pAi z?PV^kxqqkT_cpo_=7@|U0pH8Ln(vK_41M>d{e4h(FKTunw_)`Zn{9ncN50rh zFTc#ey|r+Ib7r7(V#~1Zdpi3qp_HgDv^rv%QuEb%3Q6}uTz1`7du!#0u8W#s+Rj3B zOmgy}UW|H~cp2V21Q|~E`YO9WR3a~?o%Fx^66hTI__abBf$-gzf?R&{uw=`;xg{HM z>{S-U76|a*l47CA0b53OZaE3M^^q>Ua)jbPA4ea7;KSyq50j64I2|3@bin3O(WaZv z8!=<#&F1q;|6j2;fh!itD-hzr1~E7~DEwt5z~MW;{isgFH}t$PX+pCNCpPJ_wb z*KsWgeK`^vHPFWSfN4&C-6{9gS24DP7UF92717~KEUb;GZ#HIhH@hK(sc#s8KHI$N-dC=o-L?8n^IZK# zF@(?B$>=vWM7Mt9P4}Cjt>5Spw??rAY@W3`ZwZb1S)5H-hX&Ewe3(EV^YvT z4zAknKArBnS}8-0Cd#zeA-7W(<5X&xw^h!8xVRs10v4`=rAbye}t3}8Fmmt z9%5|sA2pR z`}-<1F^=It5LM^zf#tJ`@pguru|kse*XV2|EJf`ClHBiyFerXfNJT_If4q-982n9z+ucE%P z$QpcV5IIA`3@Rlrnw`(AkQ5N(ok@wc=ZJ>TUp=@7FwSQwg@9k`t8Dd^a?{rPLna?i z>%EJ*C?tH@BK;(xdTOm^0nqQgPq8tco_~9>6}Kzjj#9POa11r9_7VS-XjEfm=}ClW9#YG`u4H*3copaf(J!sf)#5upVIKGHtkc8lV zHx!7AD+JTN9SVT#eB( zgzbK!)moV)6WFq~15*iO;e|YMMLkHnoItEth5F1cQdXHz#?QGHU)?ToIH~2tD-wM( zN$l$%E3sHod%v_>*(YgC*pX_?Ux$lcc`n_JS@hNUq+Cbx7}YHpW5p6xR5P^QuU|`& zeQLX8X}g$gMRFIDWS)D-WMb)hv=>rQAAGxZ&|15~6~R31?zRd-g-lNa=&@$~WTSa!s@D^BC)s)`m*X8Gt1KZR#X<&x?c!4P0e5X%HTGlF&l-%aeMQ>p9ANFP2vD(h*XcmYH(fJk#J-0LgQ0EoTv!M(&BV z)z;c7fH(V$lkCW)m%c6)_+@4JsX_3Xv$jME#<%6<>sYO()@X*~^gyQ)yd(u}1Ur~q< z6`tu|T>#TWYb{mmBc9Y8%*;HgKj@v5blICd)6!c0aHXR9+m^~wdZ(1R-`<>HT@po7mG+>x zEd+OU^r_C&*I_$)`Uvvtf7>D3`)?6hjNuAo2A|$Glx~%Y=uE%5K6K~j^$W6Z8(95M zRL8tHWlxkhyI+N%OSm(Rd6-kT^mH@>yCzW_Q&Rfdmi|PN{^zRGKliaRIEd^e&EO#Y z$=@6wei>kSbq@B-POIoc)kX(vDKPwTlI+vf$zDX+v9f+QxWnoL`@b}*8 zdsen+0?n9=M7pjk>Db$7fyk6muIm*SFXt#ow*n>}64>SST)kdg4zVuuC%%Bb=E11{ zfcr#`7#M~-%vYTJ)5#b?=MCgoX<7<3WNE5Zls?X&^R1hD&?Is$?uEtv7u!V3v-!Lg zOzfU}P}+5`lq40za75w8|`P?WS(V>kOc8LQr<(wz!Feep2E{;r*D%& zTmWXX>~lp@FzLHf>an22hR9RmP%+b-UBkR}mVE)vwfHy`k2Dz!-N_nDp?h?6C97lA z3e4)j*t+xMdVQO^6@{=4G8WjK9}nMw#uTC6qeY5X&S>ocVzhR58><)+oyF|x zb!U<)3JK_6UNraH;x#h#-jhS`HDJ8tyF%3{aCRU{Wv@x!@S&D%?F^*;z@*=po?pGN z^s$l_Nr9$2Jhr^hRn)?%TRc|HQv#{h`$HAo8XHae_Xhqn$>MND=T~K6dioEQk8!2% z&gxP$1lgRfB*Vb{z&nwP6;K~iVhd`2uW`?kbNcnA)=f_RBIm*`FVW&vBt%W;FuZqY z=sNI~iDb&Uy3bqzSaJ_d(0!1R)V6bAmcSx-u*xh5F zW}-URoL_BzaIQ7Hb;0DTJjC(|D2`IN0*BCtcc5YjVoR9u$D@xW-54Uj)Qb^X;I;Mm zP?z&Fn$;0Saad}!@N+dGY%(4@2@1O&PY$xqS$atz@xoSF?38gM$+t?0q!)D&jGIcM z{*;V8Y48atowshDm~KmZQRl|d3-p6_*0T~3(xz9qQLi>O?M(A?di$bRLM;%O;P<*V zSC?Oe`Oa%R5;a60PqnFOg4f&W6;&$Eb)5O~!1h>*thFNugNmkl%oc*s@}YS?f$*ZM zsXt8@b^$5;2>o3J@3Y;dvco>pBMSXx+dxGmb)~KAJ;LZQZ#NAURU@yc`9!(Iibeo0 z8-;4-5UTUZSj`m3yOp7mB`5gw%B!s!Yv_+$d_(8Bycs?r)}icpIXsvKv$*nj^<`_|e z5__==vi03sf4#M^=9-r}!baRAx%|v+d_sB-skk=Z@x{gF>^#g#2@0Fipb}ZM_2J_( zz!}3h`#rhVxS}^;99Gg0Be)CC+0b>8F$Sz-OAfDNdyZ{&bRjof1+z&FY0sVT zEW2FG{%E}2UTaP)tYMz)l&p#$YU+3VWQV#)G~m;L%+)@#zk1kBl3TRgjG$S2<>*V5 zPpolWbk$07NjhE6X--Y>IGy zr?{^%UoOt+vlDCWId1^xw>X;{cx$-~R^OaHD@N&fP$VfwP{@T9^pPUiPB9k22-0$D z#-sBKzaploXxyQdgsbZZzE7s4%C5EH)#q&gbz>L&C zhfVC$XOB1OPARW;aq2`@pFVp^7j4AumqyI3I=Wm>9? znn9&W+kMMXC^}TfG;)?0mu;ubO0DzE5_uA*`6nv_O%xLOG?AqyjiANLCnhdQ9AVsD z8KJ_GG|ku7|ET7f1slUxIBu{!k795wMKWpXb8zvpj)h_nJHA?Y@v@7k%p?a#7bHfD zmrb-4AfA!VJ|^>Kgmmco=4}&GX4a^6Q1#ipo89LpDC+HfMGO`h+s2B}%=P9h$|(zZ zlevaU61_t-g3Ng9*iNL-TgN1{kOwLB*0B?{>{Ur&7Ia?Vl9nwu#q_JZk5IxzB$F=S z`C@8IF9}MU!BuR{C0aS!K^ortsqOEZKUE{LxD-n|2N~UY zLN0|d@TJ+Yn@Im9H`B!SGvwxdp9i{THgxAFp4(6SE|2Ls-T4(;5Lwtpbf58T_EKa0 zblZWeUBwC{v^zg}Ub1PL3{^E49P5;_jw#-~cZ}L_W$+)P2J*q7_l`m0-v2B}fo}ZJzwaFj{`=zmfb(HJ zB8%t8gqSfKLN+#+TT-T-wd`rs3o|ndYf{dPM@QH1`A{>9v1n)(#7iLaTF&T{*qa!$ zL#v{AP{*Racg)sh^sMMD+NyaKi~ADLN~p-dRLO)v165#vNMpOWukMB z^y4K`*}Ut{IdiJ|F4cLoAu~3S=pAgJ+nD?6Y9`_HuP%Ex(M?%Ysx$m-$#A4@V{_`~ z$Mq-gEclGVz#;R(6#Mv?XW2uR&2!5=x6Jd7d)|=;69I~O*Fksj41d?w1U~Y-_jd~M z4)uxOaoW0Q1~S_)%1wK%J` zbsKvp1c!iS3%;ct*||T3Ts~mDV=JXaU7T)TchXF;&}N0aID6sb@%d?*!xFkHZXQqU zv|BvQu{=K$1UMc{n=7qyds{>r+M@puhUY~tNG;8VRxV%SQl;BP7sR>Jt;pT@>NitF z=AkA3Bgn3ij&(K{v$;m<4zvmE;gAkA-Law;rexs;vm~z<0>!D7kiZlBQi0KisC#}m69Z?)cfjcbS>hP=M{~?<*+;1cCq~^ETJ+R zH34FAqX8tTBG7&M<&|)Cl76>7sMJ3xHG_uQ3k)Wk7`kZIapzC zlxPpXlJY()@k_Pr**v~2Iu_q4H{#FOsdxng>1?a9vQnLi^i8RXDMG3HbgTE{kEVx7 z;sJxG2RT`kMvW+C$H9SbaDh@yL5i;}aIYs;rh0*iSUeCwYiPn@QTP6<7*7dl_#J}> zCgNyCD$H-2=cM+2QX=n=Km+zHkztk6dOwuxUQ#kYYCf=Jj#f(To~6dN%?Ysza=^O_6e4t$Bt+;gLLg2n^47|YTE$yK?~QPb{|wpr^r=8qpNQ)ia`9ts zTHf7|VM3^LHw?8u5f>aoctWllb(gX|I8YC|jMgP%+)*;?Uy--5+mO^X;zHyt(G%}p z#PbH|!b5dDWJxzyXUV?8w&EG)W1%Y{$MWpJ>XDssU($?hAx|6Z3-AZax%5IwvgktT zSHBz_P@9Kaq1AP>4Mw$7!2+g_t*#12)O!hPQiQY)k4pBi`42j1z}9BIz8sWyIEYCf zX!1;QUb2kZQ!P#*c29kBu1NzWDyVsC^npL?t2FG;lAr1C1i@~UpKs^9FCJ1~$t>7LYc&$bMs zvoIDRQ-QTXpRJl~0@dqE$IZ46XebOGwB({8cdUmB7SfH-dl7n1E8`$P^+Cuqu>AAB zf9~nS;)StUrp{oP9pQU#u((6>-Z7oQ;?bS1+ha#E8xuu{b*hJ$(}o!&kCjoh&-)Q# zb{*rXl;)p1GPyiQN5Wz|Grh8iEPkea_F3(z(r}E3Ij!t0cwa~2T`(c*)=ETPaND8X*{R|)MK02Vx4g4E)iGN1&N9H%83_k4)X`EFLx+HOJr@=b&O<(qgAl8RvBp&AZO7q0reKd#qD zEu-P@{#3YpSYqo#hlEQN;=*7Z1M5#00N5=&oL=k>XO6It4jl@7oro|w1w)>wc~}xz zVQK;Liydd99kxA1vc;T9m%E4Vx`}~9TCsJq(|70)C!Z(mWY?+I6Df6_;vzF?u_b=1 zQysznhr~%8EbA{opeV_OvOZ9npw6*$j!v_gxqoZFA7Z$3w_Jburim}x;aay553_oR zgFw2(SYoyWTUT7zBdwB#$F71GQ1>3 zSwCHd<(w4fH|?S<7@xgjFwEIrKUmgQvQAvSsJ|GQ_rd-NH`CVwFLz4g!8 zYd^@iWL(^-43xS#WRb6oUD0`BgRWtY_7xBQrdtgdZ%?i*%dVV6eqUsId1&6JFTd<} z!v3(iev?bxF3ak|;a;1pK;=l%OYTA%Z-?;wmf6>IlZvTa;u+>GW$$&H*sD`eqIK_k zv(W!fRmBd4vB`#*P~A|OiXHSibLSQ6sg_=ht_&SNIn@Fq)6Lj?^E=p8h`6sPrB1S( z6zf_CVUhJ5eD%Z!H}6NC;ewIXwvHmp~cB*%@7Xvp^-fE?RU zs{JxY~FDV0k47+tl_QH%1}+%<#xU+#^b6y~Aulad7de$Cv2 z1C>KG@LiID7g`pr3Gc(o%9NrdB{Xddi+AtA@sg6d-h1ReDC;P0*CTMzb5Co~;DD9@ zF`dH~bqG*6tOx%+`!c|#uNb%!4uWB!sLtb1tB5y|Lo{9uh9iaEi_m*MBc;wyZsAk+ znI|7v4%&bm48tsZ@A2iS!Oh?GoStzrki5+nM09L_SC`nWYFwn)dcS-(+EIUT_+ir5 zKIbfo?b3yPwGO!MN6=&)whEZ4wzniGd}C(mm5;B>@4AOgzI4%PG;ok*FV?My2frno-RM znCLXy1L4K_ipY?`I!uM9`@EuvtzA3I=X-aUjw;`q)k+`F8Xhs4=2t8D%gZZfyzpgY zN1d3bm)Gd5YqIDX4En!5jiocR##(5NnZDltN8J0s$8}|SUQcq_F4=Nfr8pfWvD4Mv z>9o`B$c~+)6Hj_N{+C$O{@1pgxO*~d%Tn3WL{_O)Qf$v;cI=M)kC7%}>4hw0p;;OT z;DroiAPd>W170v-z(4>G8$U>G45FjksPw)44?!B+xt9n%`rMo{k%B}bAyZ7Ax z=bn51UD2x|BtuqnnIDMHgr=Gn)ofH4=bkrXj6$lFPI(S$wRA!r(5kj0l^osb9m*p8 z7zfRopew=7svi%=FAuxK`WcgXSquSHl5AM?EFhCIwA&ABq3UKiB~c!JHi{n#n7x=}4PwjQ#XvM4fN z{KHLV2?;}dYzoJoo<*)1Ffg+HY`l7t>~bk+C3q&uPpp_uQ!!vIW9yCDm!r6hg7=0v z(g~4{Y{M7wWPG8n#aZXOefG8}{fzE}K5=aob?XlmnUsE${FK~Ye*DK23Y`V-QNs=Z z5Z*+YE&}suHtNQ!$~_r%+*6*K%&gO94rdwZX_H!$nFSW<*E6zssfEAuO5>85n-j-_ z8M)(5@Q1VPqMKxnN1$b9IC0<1F4-gQv|zmsjCZ8!rvvmyNk$^mTy!AY;2 z?cqZ<>khv?xJPOm6!mEdEcSU-h@T|kiVumUjFRa78o`-ytV^8>v-2nDy9@w9D*9GC zRWW8tGZuCmRiT2M0-FI?s4tkuzffP0zja?MhX#<;sEvyJLOnr6TK5FYAf6Rj_#o92 z%~%M#5o*vnn%Dps~?aGbhHf~B6P`F=q${9X=V>;b859&$6 zOM*$tl;6@z5CogVRpQ~d{8~b|Yo|T!^OVbtmX4Cv6&_G3B3Nf{ixKBGcW=D_;pB-< z4i`B%=mk|ckehBtuWk%eK;$S^AAQAH7-gdR0y*vYJSjh#V_tj2F~>3B(lMuLdM}9& z{37`ywnB`iJNHK`H+6Wy21cRwTs(iQ1LHWP)xGEbh}sl3b$B`U1DFH*SC@#_JUYnc zMeSHZJs|e#lTmxOQ!y~k(U9y4GA092_1>Qil-DtkK*$!gZfKp<4iC*_dM3C7FnX4lv}nq8x{ zFuNu>#eH(9CYea#8jLKe@G+g@O^$_GiHrjz>*`NNI39u0jtD6vKUvySV>tQPBS{z? z;q;=#qO7YYOAJ}QB@4zY0{NiP?0Z!0;;gy;o;~1R4%nBHdnwt=gYL!UIpPJ0TDz6g zu9EKi5ybH8tfa(3^;D-z$yV6N&(4_SaO}U*6wsmRsq)0h>CsFwPxYOaW+#9IphF`EK3#=zs$f=O8*mEd~ba!j#8(Fi8@k_Zc$v%g`twi*@o|TfxG>AU zxMgCI2Ud4PD=d;ZBQBuDx(pB6^AUw}SK-^5B%^W~rpk$Fu5*ArQcbc_jPX=@ynhp0 zp93=p;@)$52$$n9Xw0t16a{MjQUfCfBfueeT{HYoGE(oKnZ`!Bf2=B8G!pY+04#={ z_+oVu)BZ{D&$uC&qEWzLJh|VSp#(H%xoW-fL*`;E; zj{Shy-j|M>vsiKBPM1!=|Kw+Sl*wNn9eQ~TJA+Bgy2tQWJASsr^%|%tjFgU_B?&9e zwNfm}9EUmEz4xde4k#E@a74k23S{FpJ3a!7@KCvN$xO(MXG6nE0^9q=WtLPM%#^Br zxiKq}iCjG{NZ6_^>`>+rRH+q~v@%O+gwl(%#HK%<3I!ji0( z$XShM4^&1577xq#RI0$i(-jqHI4pgoSQ0=jRl7xo9F+NTM>Lr#^I4QA+9))Utld)M zEEIbLtFdIUE&H_fq)&7OfHizS$^BdtkEb^jys6-)3Vx>GEo~CX72(}iWv&Mg=c+Qk zt>7II-1`pfAM|P^{rfZ{Mk)-_L}eNnlaSM;$^`TAY)SXh=!#sO4rNZ3?z4 z*r8yjf?W!pRq&jG-3oA_9OZsP!4nF;t>8%oPbt`{fU9z>5!cj`>k4kkW-K!?udRXIhpoUP^-?IN+l5l*n&+|H6?!7dQ#WY(e2h1Z@Sj=gG$|{ z&qOrocOY@<{HB%ySXi5uBU9@YkF0jO{ww25VV&`&Y3yD4tP7740^{|BYH;@^ln$BJ zNrUIWNU%+FV@6%HbIW=Lw0vmhxWJoAn~_^?s)x-r4Jz3l!N}aMjd0+|c)V;k94lQf zGITGBzu9dM_}Z$E!bmWY?sj839|iwLURu_6uiXZ5Cj~rzUsvMb7T?0Ai{voP_+Gg@ zxdj$iy^hr4AZ*Tn08epK>pGbC-?0;8n5kQBvg)yTC|PyclDNm9k>-p0DMk5d?X1PZ z9sdPligoLu2d}p}7VO_?#Ic+A7uMRmzpxgP`d(*lO9C6>#6oX!n33gviP<7!ZgN$_ zP-P~!6-9c@P%TxRC&?4mDYT3r`Pi0_U@5G^5O}yuexpt@%hP(hu-31K(58gb4)}sv zDH&ft36WSK4XcH;8~NW)Of7*26RwrwMdg#l>qK0@X0R+#g22^T&Q@-{*^k2(%cM!N z-qbDXQt4GBxo2`Bhjjxy=NKw;dmMLmZVv|;PS)-k%dgb|q4y12c&3@%yqbZ^R+g4I z)?#t)z;7lveh=4y3j(V&*!Ed|t0>1a7AXk|Hs&pEZo4G)Ni&&H2Ajuo-{;#7v5w0*#>`ie~w_|GOL z&o}A-vzS~>WAT5L(@teLV*-H-5OK`Cw^(qpy37EF+P_x=n|lwO8&B_t7Or8FyKxp- zv1URga4W6MKbNS}`UUH>{j9CQjCP_Y(Ungbdo=>HyteOW0B9#~v$lLU(TGxGxr0*U zIXPZ#s&u?S+1ug$xapHo?`5UVbzGokzs3{EfV8>>2?WrYPpfb@z;WV>W~fU>$?B3;)7^_3 zpue7R>t6X9ln$GWEQ__cnL8M`FdM`77s*KsU9d#IV8|*PZuK#rE=eyH(Kq0 z9@izB$myf$#@q&xAU_89bSg__u_+ucv>&MI5?Go4Imfqb!fp?)%{^zR$((mBHk@O+ z>KyzXZW0H=^Stb93YFIl15+oNG^78`(M)mfU5;psXFa)C%g;zR5(q@qE6CU};9cpT z*2Ah*yIojvP-{3fTt5dt)VY^*E*{K1WG^?fhv`OAb%g+Lh(O$eu zjt$G%hTDJwRUa$nUE<@a;{)+uvUDMnCuOKf{Izl8O4_;Rp} zk!o03?sV@OI(J0IJfhrIZR%LE?g6CXMlyAwndRP08_UNMvtm<+)Dn*HxMouaS53S0 z#wL}zR*#goh)hR>H$LR=+SIYs@mEQ&2uL)ysHOjA%B1e~s(-y&Gk@ovY7Phn4J6N9 z5jrl|ldA6!qiT^zg%cZ}il+pmw-RaIiqr6vNOLuj=4zaVr`2jh-W|?WUQ)O3cJk$> zJg)>>uG=WHC0?n2@|EgIClO(3`xe>EmL|vx{w_&dG}&$=$7?$=e?A zKxD%fUg!{YPh4N?-?{gCHGn=nqYq^!HB%QRE zFU#GteF2JlOSag>Fz=VwdfUaVCcmqh&js{Q)4CMClwwE`mz0>VHxkdA{HzDvXbLe! zp6v7s>PeeZJ+N>zM%ZQ9mJlM}6^9x2syx?TxFPHsZ+pqD%YDD&er~&;x7^QFX`klZ z^Ck>HzS+Pf7IHIrk2}Js0HkuJVu%6|tl)LUOFt=a7~RqwImVPB&Qoh{BmmGgT7^7K~}cWg`f!l|PU6?It@IU)a>e<#@dD7rs2^zC7l>JO(8u>BJ3DkL(Y7 z$0p4yHZ*l?>EkTW%xUT#?H(X$$>?4iR5&LKBrxaadYOG&?iv82ONym5cG%fO@xeYj zwY%A?-gU^n$%@pD%j3>{@k1SvNe#*G&O=@$nX^zrED`)5xLYWF64Sc&zG$tapW0Cg z5oyx&?(o2_@vrk1kXqda=VpQzM5b&^a7oB30YZO|cERnf7tnoBa@N-kD&14phAhzw#L=ZE#HB z@Hm<2t%>6*WAy$XvB7cEsL-1fl1hV@#EeLPfNqIhETz$>|Nkf z?O@JM;%z<8UbXP2OY+gmFDHy5V$r6rmPDUP)r5FLgnGvj3DKsZ$#*>__JAB$lIoyM zaN!wl9%4^>2I|9VzuVk=X7z;Y15PfHuJ%e~fau~%4V{s;O-_#ExX`FD)5J%)+71Hd z`O~hm(*c2Tw9823d1{HwvmgP9X6B@$yX}gO5WRhD+`I;1-doB+SfP8=nc{h8RoYcR zw!uw#v8tP0y40CEz-B`m8nG&7anwX&iH3tPp+zZXOct!r30a`jfqm&iUKR);k%L30 zn}{c&f;-nOg=+6~G<*Jqgmm@mS@1%Y1h5&0Bjcov(F?WZ9}>`5d|O(mfQ(~l25jAH zMTc@Y!GHg5Xos(4!3{bp+os3m1O8BgAGF|Z>hF>_Tm(^Mx(yk1Yab@P*e1;HC+fK% zfwFgOV(iq+DYx}Dt7ZETsbyObF};m>Yu{Q3w`)SOkqE12bYc6Ts9bAMgNa%#NIL8Y zTp4XQErz)L&Z8eZ-SbbwK=noB%rpYO2vu% z(M-821^3$MxSD6oq4t-dRky7v4*m9U7FKbZS@3Din%t*=T4-cH>U0X0x|-jMfmRkM zCN%59Z5>-Sx65|yhBY9(YM_~&4>bX8jzjmKSS+P%rq!2zVX4b%)XoN>~mZ;Xq$Ye zxTn4jj(F)m_}unwThOSE6Loev%1X4*sz|qCIl74bSj-bSVe$!}NfOiPEn^P(xn(B4 z*5jzF8S&zNySp8E#;-`cK5^7K)-8qm3SZNhW0YZ(6PF~?0otXFKSZ2(PhsjBZxH4y zpzX1{J3Mmh;%=B^M*r&S73zN%H1l!i{BXK_#(AgwO2R~?o+{qFQ*`me2?sfGia-^F z!+9_gy|9zZ!=ZU8+LOHNFjw}MKPOHOf#4-I1aB=h+Vb(1cu!+CBZ4!K1SjloG^TDJ z$t>fjf=ay(70-^HnVH-*a#F`VynAcxbcZ$AC#JvdZ!9Wah#8e5s$PI1gEL%VLGr8ayTu8wY?b>* zEpl6fTFSQa-CTp;4@OXAUwHD1Rcm-xIXkXTuhSnq(fg7#}fz+>-I7Rvy zU`nbD3{Bryk4v;(yoRoiF%whIig2hUU=G0M`A1Fl#4Vogw75r+u01-jdN7!B)HII5 z;&G?NL`#ne*l1EkE^>aep~mweY%baGwrp;1LM&LrFo(0K=ak@8T}r0YUyi`;ou zl$Lw?E|Y+)pM%L#+U+*&B%XMS6$2dUl~f$Cm`tmqWP|+z(#nw%&H&0HYBNCY95OgIo~17&B?g9Z z-O`k%-NK;6LCE5kED`(uwLv3*wZl82SW)4L-5l9&?8GKM)1}H(FPdE138`nV+so{A z6MEcoFSqPPLK?{BYbNq|QO7+eg7h6~_iQ^+v$sM+$XA|f>~5w{NS4xHO+iZx59r2( z)=sM_qc7Tpva>unJ=zq?11Py2NE+u!(^ z*)*pDAQv{}so>r*qt5dEqC2L3e8*fTHR-B=?U(6B=L;_yX_ZRqt}v(`!VY|RjJv~a zh%Sr@Cf%IsQ8_?Ps&{BiFO2#_OhZcf4zmhg81>?Gm&A2nTI%nFf>n3X_+a_eq)QY< ztUd{r+sS#bY)({?xy4pW)hj(GY&0|3O06=|E6p>ywWP%qKMe*Vm}M0R=-F$<*_$O@ zU6LFN&tCGboV_dHWCCf6zA!a5UG9(5gkol|g<@u}NnH=Ml+l%Vk46+~h20g&-M^y` zAUJMeXy4f|8JxxihD=rSJ>c{vpFikl>EY_o$+G{@8!fK~2R)IB0*lt(?L_U1|5DWD zKUmE|ZSIb1n2fF!6vx&Ia#4l2AbYPBMNdRaTv2!$w+AGZ-(fz{qVl-&&KKOxOqG#K zPgG04Q=Y2GEy)HsLzt9(Gx{)i=0Q!MG&U`_Bhrw9Wj5!2FN}8CH0R(lDl=n4G(om2 zH)!zF_YO_Ejph)n!*~##BzpFGH@D3_f6#i@N8J*4sWuos_L{NgUKE?|!ss_)waJt? zHG%p^f*bFo4i9VS+v#NG3F#c;Rw#D16B;~GCVIMJo`_s)Gxt&lF13SMfKen*3_dE}o4JZj4$4!)ht}X3Y6tL#(i=x3 z+sP0bH^YQd+%b(S8}_k9lmkv^uN>P3KXu#Sr}pxhd-=>>oPO8r=blIH=C@-ZGnw53 z`?P;B9fsLYjc@yzg`a1RRz@Fbv`|HRZE(r5b$K4<w^x(#2fY8N1aj;jeq{%SM#z9kr1rFw` zQJP?Z4OXzJ7=3gz=(pal0cpA0U|eZ^n!$?8)R^`W@sXXQA)nTEEi0liHI;$gK8^uW zey!8f8|PIn>I}m4f{ZV&E zvv12(xs`cvW1K|ym#pr{uUxWh^>Y62;{TNrEv#OC5AIcVSJ-sNkz8)wdSI#y*$V-~ z7~mMB>q{L`G4Yu@a>nG%gO1|rt6uok(fx_fZiU-jn%m@5USt7;%cZ_`6qZT}d0{@~ zA;Nu1^@dXB*V$FI38)9lNRVsx{xINIIjGFMF34I@t%>B+(TID4Yc(=V0_MiiNgsdW zpC;0SH`wE~^+FVhy-(xTac6Fy$f9(*eR49GO6!%GmhF~?)6^q@5A6L{#JM-dPYL%G zBBpllA3S<+*Pi{`b{^gK{I-ET+qUo7#Z35nnht1>%8k^8In5sAG`x1Jlk{|(7bt5! zYM}U8<-Rb*>{DK!k_f`rXkY?Ya~n}-tl|$7vw~R7Rt5be_xmchL;jCC6)aJZQ?OJ4 z;*cn}TtQwzmx2`v*!rRzTU(SvsVK_fdoRkdtwlLD$tYJ;0NRgoNSdPD8U?6FML8x{ zlw$%$xjqH-N0ehPh;sKUSgU|@LzIKoj&h7z#JVMbl!aE%hKzE|o+!t(k8(2#URH2g!5IbUX+^o;QSiG8UQzIS3jVBu z4XQKfEXv_o3a3sA*j;hzq+qjxEeak}@PvYID|lQ1NE9ba3Yd`ia8dv%fDb1Hh{5pO zq+q844nTNrQhaMEb|j8_6mXD zLy8pT;F?7__=r*Nh=Ly|fCs@SD1dv(C@AZ1qBxsTvBjZ!4(Dnkb*x@FsEQ%!5=DkO~LC5{$T}wPQgE-;3o?H zyn=sJ!9S+p4F!Ke!9T9xpHT3og1@NXpH%QqDfp>^e_Fv`Qt;0x_?d!#R>41~;Gb9U zmV$pl!M~{BUs7;Y!CzMJFDv+06uhnAj}-i?3jQ?(?E&e?!5$3jT_Me^bG~ zrQkgUe^tR>Q}AyqxTfGw6#P31{#^yv75sGt|DJ+>U%?Fp|AB)4P{Dts;HHBASiygy z;6GJxOTmAp;6GRJUnqEA!GEdXzf$mDE4Z!TPZj((3jT(I4;1{j3jU^o|4zY&3jUUY z|6alWpx};z|53sJq~L#6@R5SQt>AxA@V_efSi#>>@V_bey9z#0@V_hgKNS3*3O-fv ze<}FC75qO6K2z}jD)@T}{yznuEBN~aP=>u1aLy&#`c09EKc3W!`|0FIBp5$yCG*rT z`;XW_7_(N&dt<|>QyBFF`1wg@3!0$$zqTh>p+|Smi6#Z`W zC=of%c&bD1`67t7V~P1v2qfse7R6G{_GP zohWx?gNo&C_h-P|^)lBvqPpKkt;`Va!aL6)KFk0FrD$W%EiUcVY&pw@(`7SwoFo?q z&sFc;=GEIaJ~=wH*y=TdNA(s5Px$J>dxozrU`l4H8t>5lcNdyAl%z_xH9%r*ay-V_ z8*9TGn7!j{%gj>k!h0Lg`pH@!VMJ4OZ$L;l3OI~DbyT8|-`oVfn0S3O{kl2*x+VSk zSo-zx^y?Gp*Kem^pG?0##jB8!uhpZfR`Ol-O1`UN$#>N(`L3!Z-&HpoGGo|ZxDI*& z*WM@yH{HO9ws_$d;lrRm&yd(%ifr6BZs?&)aC|r5<~sQ^eZEf;tlNz-QC~fu7QTU z`=_QyD~en9;TCTGGBEiR=R)oR4OlRn{F&Ovp1fd z;?A&{Q;n%ZCtf%I?%EptpSE8tgx!8~!?s`bHGlR@DxUASZCA0{VqbllzX0)Ocwq8y z#aDNN3vw&*d~-Rn2u%WhwO|EaoD)rq>vyp^^DA!2E&r?UmY(-y+8bf-Hmwo9EOk3M zsS;2GN&g#z>cTCNHy5riT`zwn4>>-iKdAQw{6N2Bcxs*h*qO)rN3}lUS2q8E9&YBY z{`GHsJNJ9*UVq5;ZjBp%Hf7v>NQu>PXx!gsmfpG^V^_&edw61aeCX6Dt8y7rSY3OOe$uz?-tXmRpHy{l62pN9jkilME}49 zD|T#})2!kKVMF(il*hS6g(qW;#aWp@-R^}>^H01J?PDFv@exYkW}Hf9&Hc8R-mb^C z^ly{bwV2give)h9>Ce#5~ZCl<_q_3@I>z zBl0QdVjSDFsyNN-xv?Typ1(F^|HOguAvx=I?x~Rp&{=WkcB^yf&sv1Vdjj<`AxoXEB9BweerP?l0)Fs zP&iy{(ZLFS%tc_q5i@G4VdmJXzC}ix<$BPwkZK}lO_i$2On;KTY@WWwZ0|>^nwc@& z513w2--d{6n!H6Zp_Mnm3dLO*EKenSrg1%4dM4#9;rh%12P+1qF)RJZ0mPxVZta9k zvTr*xR<$|Z2*Q@jEv*hn_6IWaTTX#!%q@%-X4DMqswXh$%7mdE=O8B861+5mF=nGM zyPFb(_N-2!VmYup=O}IYnlL<3T|L<$>lS-!7Ze+3Fw(j`=hjPHXsR_*t4qIiVZ72x zgSr9W#LR?Ums-DmkF$eg*B#_0bgmT1kTu|3@xW#gbw z$V}t)t7vV&oQaoN5d{p;c(NY#FasvNHTX9O>v7-0{`!AjdiWmL}0TDko54w{2(g zH5b_#H^Z>BJ~;H_pWJ8lKPc(8(LRZ0d)g-%W3*2)LfxrSl%FSGU?|NI!r;N%h9Ym< zq`6(&x;H1N$PZl2J}6%Jz$&f>{sJiX@L`DI({1~tG**QV^6`@rxytCP75xEhBPM_* z?FXT^K6E7l^Fu395BwQe>g*nX;2!wonxiyUq9t}ul&v_LuShHLLo4jVP#D}cj*k9> z;fBV)IGlgSidB@Wm7d(VD8l7*eSL?%_NNae3i;x`j$>R0FM=&6 zgyshF$LXoc*#odE8}~YGnNF0c?~WG$?`NR86U_q5e=xh(>wzeOUU@jI63>d;2TfX; z(!EX_l{>|3FfQ!*b?cU*bGM|kXis!a2Tzq;lgv2$4O_Hy7QcxB zVXL&UexvhV&?2e3$Gkihv?Zcwb4T<@iwuV+rphO|W-XaT!sP;OTA&Gs5V7LDM~X#~ zu`cOU9(7=g;s&SArm~5((<1o+ZWpRGcX~(F1~^#W&b1td~N!rXMke^n6^Q0K17er`BMR`GSylcR?7wqfj6$6bkpD8nY8+ zx9KvKluv~nL*wJev6RFm19xj2Iy->~^Fa=lq3Sgh>?(^u|AhCWWb$=H0|ij_eUf@l z!JU{0T8FWc9Xp-bXU3<;xcjWlWF4G2zUe5yvGTa7FV!xrf$(!DIBv(`o+wtCJX9>hB?enu_wRH> zGuzQH8g&=9>F`%R1NUcUs$4?30q3erUk-)5wgPD`lWf;Bb*7ln0y@kx&vFFpyH>*U?==fx*^GK^^PN(S=kWkg~g!a*v% z9(elKjmns23ffwlCsFa@GeGO$XE{IGyVt=X6WOI)l~euvoQw~wT56zH1I)}R zQIZe-t%|_w{<*u`L5v~a`d&x$ED8_)&>Suk8)MpXj9mY4jXLKv?Mtuf6L)%5Ch^pI zHl}Z>Ivdl)XEKv@OqHW6FA;|RX{k#a zcZS03?mr>VjJDL5^6I0!WabmKR@ zI4io&zBwtJXuabVs`i3+<76J|BxuF1Wf(O737xwKittO;bzChwWyjLs7tRg35N+6# z8BtyO0-A#3Q>Bt|1UJkXuSyXtBm8vwh_$d?$zsUq&~SO8Y-;9S?@%8}o&C`(5LzX* z!tDWG#OAtQiTi(Jx*4gi`6_cU1+OABJvMD6PBvdN%do3OoIce4R7_eHe9wWo-C|ag z8!|30F=<}!?UHB6-mX5TT)Xg>ZsH8X2GZHt+tmY%<(oQST7w`AqORLEz@5v8e;~sC zpY^MfaHPoc)RS_sK0D3jW~W)?lO3=^GghCqtL(=c@n;ba>{8r;^B4O# z#;#pkSPOl)7BsgOmDK_={N9T{T~|Ogu+XVV&n!$&dR&J_+||dv(0lRi;*XEf0bi@l zmVh;=7tG%2a_p)%ihh`oXRpu7!L*B8Y#h{V@4gw6c5$E?r~@$9Gp2P0=)r{K{_%Kd z%%UcKlcPw`=Kd3L_4l8sH87)`7ZY9a&05M@=Ow#hU}DGU*!aj)c_IT+MvWKM83Pjs zpv^LU&u4(f#Rf)iEJpsV{mn!p9$u&st#rgQ3i_=C>~Cek=CG3Nqs2{^MMGcIjL{Bq z@$CXMH8{~J>-PvfyNjaT!p|5<5O$otuRgs_BTbxL!~ZX3^$^_?BmYcRCXj1yIQX@N_hN)`_h;Af@I)OIedT*K5;VMF8Z~T8z}H8s;^+w@v~5`uwT>H zq1NhL%d-CA4W-kgW5c8F&dk$LwEk$LTWW{>GT;Ehh7(s)=2Q(O)(B~~$~fuWbP82B zkF`xw0IV?u=ro2=44=0TO%IRC-UA$dU#&H%MLalUERTl$vso5OZCELp~F8}oelrP8GvY}-351VG(oCg!xvx#EM6jn|2xso~MHEPG^f{ekTDr=fUUHYV~O zPbk~#K?L6Xdx+S__JQq-jQfJBpd_i*|82TOMoE zuu>-i6cH{;)XS{CxfH!XLbP!%-efa>hOQSPs5@TjfWB*=3}BA#-M??YyPsEVEysoo zea3dQb1cDGa*ezAKE2N%yx-fk6hIG%%lMVJ?*rxUBD6ocbEJ+8j2M|Z#fV-oeIR)p z!zq!RzGlOp7%`t2-d;CYEV0Hp2-a)t#+f(9Pkv2$R;rHLp#Q|tzLAxRbiHG3Poby4 z#3}Tie?x`2OplgJL(^W5x;ctaGPw5+xtS`@&~#~f=p~eW^vTO7 zP4Q>Q7_{gma|X4(SywQMGIJ8D&1;??j7Fn!REqXT$D`loX*inZ?QB$uX81iF4Mh_c zGfhk>8sn|XyNey;ciM7~5nJNhOf=4a{n7c}fhH+WkY|iELDaw6D!D zDJnov%~S_LAK^`9Px0j}&&oeS&MB+aN#2HeE?b?(EO$R~YM-m!FkdE!8Rd79|H}3@ z7M&n&XA1T}bc+8}LVXJbLoIZrt2au~UMs5-Z6{W+UnZA&Z;F1{X0?BbFa3Uc$tn+} zNJ9RQK_Yd>zhUx~E6R1cw*&|>-2;(G9OLIs#~3r5x#R(GfP>W2(~+yakq1t4ry_U+ z(^^U%J8gMf>g$$VWmEsAXQSx(#EI|g@gmu})e8?D4oR_72RjSgRgccuvtDf_i=E{Q z>O7hN-`^Jafm5f-D7i_My^V6TO(bqciL-{q=JY&Z=w*&i6guP$@ z3FxWgsGDVsUs|>8xdg;}!}Sy9NPnQZcW7+FnM5oMN4x5dad5M%mAg&LRRdnw(_}*VImUk>PK4H_H5#`-<=ffIFKFluWF7uR8}ru^#{r#Jc5uDS#>A9S znyp+H5`Z-vavBtsBWEfDeS0-=z$Rno;gcfC`AyoF5N~KZLlbUt;qzyp%(g;g=8^Rgh00%d92@##QG`r#!Nu zgujsCve6yZ6{Q!-$4ibBYLZ2qBTL#(`Ea~D3po5_+u5>d(QZ5|| zhVpivD^(_}q)CML612WN#D&xlw4!?;fzDQD(3HfF3FoWhbXKcNT7mmv;qHD1R1>7KI9a~s9BvovdicN=R@H| zMk)^{W@G(|H7`?Dje)AsEc?mt!c00;J`vp770r_Qgl!Mf|qnyhd zZVt+~HTfAx@7O3~KD9OZ9S)R(s^Wa#cw)h=Z!zR4mrh@_%|+plA>0p6-hl z==K1xQCkb1u63J7MsX`jcth;z(tk6FRy^9Q%Rsswc^Jw39DK(~nPg{i>DwB$`=p0A zR-Kf5B~>UaB*+rn#k|-B$sVJ%rh^%P4B&bNwW_QOwzcRGcFTgFDG5c}9}?08-z zgx!#6PIw zP3vvi9Udo5wf83Pdbl(VS!)lIJWFAj82j^IFHOUb((&Zdw9_xv6Yr+mY-|Hd;q$rb zO^b0w8ne12js0DkG?M1x+t{f}hvRMjauIHK?%M&M;uJg>@i81nV=uo|xEK@-|LpDF zOS5vV#FIEu9_NK^3ATNYlm@NI>2 z7S6BL^Ss0boxKlR|8S|Ax@q=ZPF$Vbz>6*_-o4%_akj4-BYkY*M8(du+hNa@r_S1a zNRes%WG9eFa|Y(8&KGqlyh7K+Nynpimr1lv^DH+g>Y_7g8P%oaM1j^H4vi#@&V&`G zfHlL-Hxt8W_wL3Ik9eTXV0qvC529LIpJeoGb!>QO-1+R=yWQzy*CpCnewm9zq46m$ z>8Tvi%)OaO-SJgM5SgEK=O;?a55d(=em~?rdg>-|?3pU2+Uoc?S;_WPFn&b8h$Drn z*VqFA-t%L}oyJ`h)z>&A*#`Fn7fAJ=MebVL-C&3Z6%$h!;7@W4tL_+@L^qR^A;NW~ z5Ofr^m&29eI!zL|h0Aa`o`+vu;Xs2X#5dc`Gq5v?9>?2ByXjpS%C(rbxc(B^zHm8* zpEnU%bsKl6g4Ns06gt2xcN|l0;gZ}w;MaP4<(Q(kV^2wAxpmJu!Ui^+%fN$Xy4|R` zrAh5L80;QH_i(~H+r>Rx1rHzlC!RaNt+)`;&o8x=tDN*@)^nowq6lCDwAh@ z&3xG{=V_>4iXdyR8=fl*S7Kcf=p2c)7HH8Rn@o8e(U&l2$k)aQdB&fObsHVG8*LJ} zj8{&w@3mM)p&PbrK8{9#&F8>{5$An@R;Ao~(|O{9x6V=?@zY^w>ZH^o zk#tAVce%{CbvD$qWPO26NHTkM`#2~$ihhmDj9cd?pV>E?ncVPdZFS1UPA-%mO6!U_u4gLSkuR9<2VXGX51lGVlX`|(UJj6^E=$z5#|#f_6o=;$^5@HJ+tHLC7HZI2^5%I`Ozg9n@DOlor_+a_m5GJvD?`p)QfZlg(rm^RwDf zsur(|OJQxD`#bQvR`8?IJNI|c2wO8yJ*=A_xakv8247Z81P<5TnBSs*;hbCDgPpE@ zlEl{p=}sT!ZrG!)3@Aj2(2XWug&ruLRjRi!-EVwY~oD5ij)h$VeJ#Y@);1)T@7 z00l9t;bG|uSEih1shq69+`e7|CXQGJ2(d3v{W&p&nKv?ZSm9s&DxMR#IwX-<_vO}J zb!kZa21_-5L5vxm;ko)phD%Qx4)r3p$i$}6?nTUN>E|NMcKiY7pNzdI6{kT7mL*is znc+KI4L1@QjXO$-&i8`^=1mg3Fa%?ZX#pY36f1!_Z+r>&Qe+L|6*!_kddDcop<#Hb zd&W))BPv=uXI=CfRKfua95m9MCUX?|NRlTaRp`YVaEej7#o-WP8s^J7(QRF0B>ZHjU+M%*Ll4+#m?6tx`&VTXss8}LMAXf)1*B1Y(s zh4X^{Ol`$H_g%E`(k)1zKCcnHf8U`U2Y2n-cl3L^ez1N2wu3ths`a3kT*_4b>m5;i zca>X2q1*RQxMic2gj{r6SZZF8C1W@@X2higIt(jAty`e271I$r|3`OCo%Gd}x zHq~;ilKW?-t79YB%7Ao)PY&$aHu&uRgL{u|+qd)Jez6mqfn;D81}WLVE$uNcjE$8J zH`|m@o7DU=jEqu?CDhmoF^DCkzO zTEQj-*FX}ILrHP;PVv$QqFknQ5Olf$)tW;H^#}wfP;?l=*O$4YrHvc~m z5;#1tb*oM9Df}6pfbjG;qSiU=w=P!AkpApf94d9To7$2ZEX+cg zKQ_6f`I5rUZXB09l4;_MqWI$xp9X+Fj;A6f8CGa{8-iSMi_H5u4#&vgA8A#$@+$d- zo1p2{VNW|+bEVo)Bc!Fu*xl_L9IRUX29CI;u(Lcpgv{65`DM1t_N&h*xgar}enltH ze;hW)u@@T}FYl>Tt8no&v-u9Q@yl`b2C4>p{}deIay*)u1&wt?!&1Mo3|WMov!79t zFkiEYH>Jq1mEl+f0VLBHF%Xg}yK%kx-9QBJU74rYTKR_9um z2e8?-u2rIzgSxU!tfA!CC<|(lqw4h8%vvZhbGW_454-)lmRNLMCRhlo`v!0VKjB3S zHt2DEGqbF)<^QR)Hub1q7T|K$EswY4K07FM=KXWGp@>gKt8(mxPC$)u1YyEd*?gKh zab7^wap4=|Ct-*rE{{KWky9Y9YdIQ;Zb@^Y5>JesoN*FDhyO!V*^(_wsr}SC`id30>BV>fpy-a_%K(FOr}0#b}z#CHGPi zN_%w!>2ab%M>{)V5j%&_k(@4X7sjYsXJ6(nrdK!6i4>@=qzHvM3-cD1lD1pn(6SNx z%F&GuoTKu~=FdV6>rt>qL7xI)*~_KX5VM!p7hm0tbDnPQ>v>9yJgZGL^l@yGWYJPW z#(6?uwFL*OQFIT~_vQ7v^2Y(|qC}jXbxL&I5~9P_^n#s5tAiEo*sug7VUGJ|+cc(s zaiO3oM_BURTpRf>2~aOrAf_EeN8?`Rq6xZiEtbGvclD7dx?0^+J~=de*106G7V2b+ z$hn%i6d-IKY?&LOM$^n314}J4AAUZ&REe(DK_<_ya^{>YAJ83u9{Hn~oOf1ujG`1d z7>M}2R%l{G>wsBP>$Ot5nZYP^{6O~t+!l>4sK!64pC9|7Ql=mXllAjeL(N9{1VVS# z`kqhJBr9)bb+ly)%(~^w(XTYjr~oGjFEU3@HaPKY{}Ly@j0uY^X+v}m=f6}^w`^*Y zT_!<^1Ts;$yq+bznb|f#;z+FzTOhWYLSUR^5V0SJ=BAR$enOk3Uo5%?-#)G<{Zg*gUNR94Qz z@6HM@zY%!w-7p zVy_O3_aEN8GfiUFDjOFu=_}TS{@nzWiu0<7TQx3Imj7&>tEasCV5*OWGlIR7(=

S>t2mRT|XF+eEzozYlYl7(Yqaqy0{$MIhnfBj(b)06?kVH);{f` zD<@7=brGE^gk2Kr2`af1t?rP8^Xd+!#_A5)jdc{~j$kR)d3W*rG-kK-F%d<~!?e(N zB>tGpaib1 zcf$G_?aNQ|0RKjrbb%jCXNw}2M*^1LgYDs?T?A)f_2#P4Z8co#s_R~$HtgJSSq?XW z-p$VF%IT&Y2MV43^ ze#J8b?FCouNgUFor2bJ60S6F%#pxROUGehA&W%E?{sTGvJpoN(h}zupJ}+IL|X&m>@cwGjs6hNKUXgRI#qQ)e41 zu>b%nu>b(L!Er0@N_L*V&bG101-gzRLqnQ&-JwLGkB8LB-Zztb)BlhaKise3mpE*2 zmvFf$%)tcACmLZ=tuFvnbOST2Qxr_xIo0y?QLyaLQQt*|M?e<`#H@-_Y5t`Wv14d@ z=cG&5EpE0He34z0A43%lWi0%pSLOcGrlR)A>{Vde*=G(SPyfP7j4- zwK3U_H(GBC={^FnacQ~0KrYLAw&fiC*^WqF(gvXv$35l?+sH52)+~?> zZH8)(v7P9TtW4*wAX0rbe007~5s#xY{mZOr7TkvFV#FI)cWtX0z0wh#4&Q(IbxlKT zs3pvZxRzhau0?%Ag5&Y>$aBvgF^|$yZo0rr?Z6$n+~BMh^{r=UM!CYNy*pamyCouJ zK7Syw<~BFtikR8D3(RE4v%Ro&b=){=O2Cb4ksB1`^9W1X?o~sT(K2^k7?`LLH$p^Rn6>Gm zlo;Kofs_qMGwfZD`I2xn3qnb7fqU>XkT_pPQ7IwR4vmc|29XM&$yj_JCrC3KYw3@} zux4vFPv)?2aPFlGgI>kgprxU9$LH z2@(EWKEeh?SXhA6W+fn?sYrGb=3nDHJDk|#zY)5jM&C$!gp|41X65qO$s8CKJWP>on1-WP4mO zVsbm58;!$|AuX&ga3oRS*D|^>RiH@tFVd>z%N(nuOKe(gGrE$uqd5C+etqQLb+#Wp zcMTHZub|HXQyVmRnwG^rr=ALKtg0~PxF%p)cg>+YSb`Kpc}Fqzmk+=lo378ry#h1j z@jCM*9lxp$*_(^3$w`zmu-inxY!J6sVgg!O6}ZOOyN}2L1Q+O5O2h7enk*f39pyb+ zr*oxj42PB!I4O?Ayq)nCF>j|6mX|ozK1qVbGrk;S$F9yo=M!iZQ5~vi=ebkH6tHuh zL!hB@bsV0%kgi%6#{S)R`o2vR&ZMpp+b_l(^#cULGf#fskkm82` z{Bzk5A5nNd<8+iF*r)2jDT_hWFso}% zT`iagF>u^L)O-389}iuz&r-~%I722xoT$eM8UgM}RIPsU)K$$aS+FTaTC!$8FqZ>*SHy!OG3UCe|`PVq*F%hpRp zEr0F!Jg%3yfVn*3?=;!q)Jk_b`7`PkXj+DIS=G^B8%n5& zh&=iZ4mkDSh7vx%C13f@M0sW!dTK+-$sSOf9mF~F#CIkzaV(?@lHdTe^qod8wJ(h6 zHfQeG+ZgJ&amUn9b@X6)lBELi8luBV|0g=`z9C6SCa@ZqLzCt5@MtpoQdC(lzsC^} zR)O;^efbT&6)(%v20!mftCbWbi$jgE_blH~)O0cL`Iz@ib+h;KPr<-_Yu6Qum)~Vh z^sUu{Qu1Y0X(`(Nm)}LId~?N$6;VzPeSLjiUFw#Hbjw4+S4i(=e1-I0mgAAj@4#~F zTTAxhVD*-gmT}34G=fL>H-AQ-!xd-CqgBQmrbSn z@_TtTvp_{~3&#Vc^6cw(gGZD;iOyS1`KZIzdkU^8xUS&F(q(EMkLSz9M8h%SAcpf> z@45L7+~CM%HV<}?^HFSNDp5x{ixIdFbdXQZ-XjP5UpTa_A0K|$l%V89X|KMAjJ$aH zqvGW|E3Ah;qLUpAzDdbreXOkg!oa@LE3cH2?*|7TmJIAGaomyZ`;YA3w=0U)dLejl zC1^%iGt#F(Q%gG$3IZQ%w(!GipI*gia~9?1ztg27zR!C8%45BkKZy@kIAxx$u(Z&5 z5Hvoma6|WLulbIzOg5zWbOocKar>b6@@My;#_9!}mT<5FKZ>gd9k9kiB{t)*K@Fu>?W~nNp=fR! zYLi0~C~LNKJDN`p-y}=v!jlu1*8)@G-NTbQ^P2^nnA(GtSar|O|3B?mD$PGRSilWM zoDlq52^N~tmAbP2aSp?6_g1Xvr1f!y0m<9?xYDyisxVq(sFi>NJJ)sR^J1}zC<&9@ zG9QG2A=}E@%r~pWuh`7+!x*rt^dB5g5=_mhyHUa1EtxB8Y{^_%W7G7?nm$*--t;&&(yw$CkMQzR1kI zib)|9;${VlXiXL@he9N(Xt^k|vU*fr; z*&zH(kGfsRVQ`TPS2nO+-R)wH!4{kf2l1-(_FLA}CgP~fZUM;?p(a1AZK!hmx3N*#Hg%GFH>8q>h~R;AocwQ}IzE0@ zCTZf;J5kcuL?V+q!<=~5;0U(V`S9Nz!`4b#+k5Vhmx8F*t>qesj*hip0vrU7@u^dv z469$6R&}qu!UZQQNa`Qq5V|ORo9(iQQ!S7cZ1vr^72QRH2n+{h_N;T803 zsqgAsnTRbY$4_!D$6ZT$T%KBleC39Zt5Qi-yFGkc30xU7o%>@vKhw#_q+BV}Bv~F} ztcfNeqlCj_*OguH%um_=uMvAjif=e=v9W-{(CewAUUkWByRq(&XuB&7r_(t6cqs` z(fJjgXye%p)ClCFsiG9ji?9j-vRI=DMsNq?#) zsAJ^8@XDw(8crRpc^^+ykXF&<1<2D*vS=o${pbFens&4G>l3}DyC>Cnb7P&S$ubN& z_s44sT)@OdhHFviv_6|=cJ!XTD`LraTNHz<*=RJe#-9&`@WD+*NPOkcOygru_!y?! zYA(U^pYK{ig5HpzHn$LjM*P7hsk?ZED+&_VhZd;X`5*Omac@XZ@A*^KU*}J00-QfZ zFP;Ap_)52TJWc|rp0)mwuWB6^@tvRXQiS4_cVb}y&xY6D(ay|^x*GI`6aJ~P(?O1B zA!m=yl_JXh#XX5M{!T-Pa-qU^90Q++hZCyZu|Sx+m!^)RdE&uTg2l#_cOb(4{ypyY zk3_?lGplstwpP`9d964n&CC5Og-m>(-Uxl^eRXyCW}`<-9B_aYOON zxBU&VOt6b@LmNRHUFXl%!HuM$d+bZS=8_%m94{$ZqpEa62GSSz6qr^YAd*>X&%nLY z(`ol(@`c^(gHCN^2Ehwk()CWt+?$piG-Zz`WbWM#D_T3=*8nqNc}YfJXHaGBoGd+T zOMW}EPu_;1gnj_2QFX9bM6}zv!*~SVg%08%1)DHBk*fEstFOBrzYa4}afRZQ597|g z1H+a+u?pTHR<+|#PmF<5GxMnStQ(8>-PClgNPnWNXdM|KF^|L4Dka;~U)A7P3+!&0 z)VI*~ZPV-7zR-<;8TPQ`aN~$|%xOFFAmngBh;613#feI#DevnPCH+eW6QtdLh>nm= zPTbrNl$IIrzKhXZ;E87YIQQh^1k-)x>4S5B35n&K4efFFJ6nr0%O zFk(nfZE6V$Af*vJ}~yki4_j@D@Z1%O2cDQ!!xJcj)cULd&}v+qMF#AsNPwVL(L;1-&q+Qy%(M?zBVYc4j=@GJ&eWN zV|aiL5xr5)MVL98m0FCJC<-6aA<-I_h#2JM8Ii9IhRA!OE}u7V|3dtI(TY@j0#3uH z8Z?C5RQ|~xQ?7U*x>qvqxyQn5q80b|bSzDOsWs<5u6Rm*OSEfUUAA-sv%c2q_O+gl zm33fUlM_vAo~8x|yapKBBF2_(_U48pcvx->xT_%#LUIXK(-pXob}#w7UKwY-Qg6_i ze=5E(vnd<{o0^ji&2-ox|%9xO|&8rO_|yr!!Yvf8)xhA!IU=g zbC%0&!meH~D#x+hNAj9+YdOK6>mq<)igNF+B>1VEXpn@nQE_fk!L))i3SLogPQk2# z%L?Wcyl&*$-0OONL&2N5YbxO9DuCCY=05-V&wrl#`vg-R(J2`Pm(T3kd+@pKdrJqn zg;Y!c(HymFnG>EkLh4$|>B>nCyXs6SVC_WNa)b*nPmWIGfv|)%rHGP1%0OSJ1_(cj zb5|9-EkYdCqlxGCY<6@`xERR0&`LYodi-0?=^tJ^;Am{wS$b;0OgK>acK>GbVScgx zz@aS*W_Y|`rKnyR82>7i!n>)pCIf2-PkVR}m5u(xs?1+!+^ z6F$ebP(ksC_d(*KZ(AvC*?B0q0#o*xiP*f&YZW^;GOqXEq2piOV5fTanKwi%&Ay>c zSTAg*vu|ia`tzX6_w;SQQGyx$C_ULpuh165wE*e5%l%Wa z4LCl{zLz%!f;~Bi*W+hHH>9xmSLZC=u=jQ5uFfEH?hG<_J@2BG!J><=&bcb-$U&9J za9xDcoCw7^>cE*|?)q|?s$XlCubBTf;=hf!q@(_Iw6CcA=DGMZpH4^5UW-{1}EW* z)5y+9&mqgph@Fyrlu|SgIC5jiDN0F{>+I8v9<%IeH#+aoAR-tiesp4gUrQ9&sEEg| zEWDrM17nkA6dO%U;SMsgtRvI>y8vSdKB0^H zzWTYiBGN8!nyi*E0fq#C@tl*aG~$ZPKCJ})zCefZL;anjaqpt7{?oF&HAviLDjB*l z9LB>jUI&XnqdK;5?4mCubsY}v%PLdnXdT3>jAbJOK@?_Q7#dSw+m;uYE^q+Q^$%FKu0%)wti(( z$I6V)iEe9_qEZ-UeDX&^z zD_+s}riLt;VQs07Tugq{f~1;ET<-LS5b?Lmd%?(jk3?ND%_Mgbcpu+xP6kq!SMRZm`oN)b+$7z`DyHnnQLXpksO5w%j=+ z{m%9~!htre!{+d7HNUaQnmY}J=8zLLzp==gJJ1W%TtYYX`MU0d@>sY~zXV!CYd1Ml zs+qGS1}4={BBGva=AFW0}J1HfBf)_csZk;v< zy}}SXp!0dORG(_U`V#Rcu2pM-2^!3vL{z9Lw4`fXUOn3$?z#d|TD2oxy9L|&cR_|1-J#}_PS!5Lx5k8--PV_8HWrrOdDex-;!RuJF) zg6&us*HQoo@fR48w(u^c2=5;4h@Sg`EomPITZ?Y|0xfC_AG;Ra_ytMr`@?SX%o=d1-=p4W>=tL_gm;A}4nVmD-%>@(FV_X>lMTv*WsS`s|hjFBg z?nCbK)V>rTO?+FPdR~_UBQ0{8Rt_J#D@YV&Zht*#NvTCO{la>={hE!~K41OhH##sJ zZhz028agd6l9}UeTNxKY3bJqWPSQK*Qi!#7xCGXGd+aSO$1R-IM|?BY32lWUJ)+DQ z$PSkg)ehlL>~6fl_s-_(5+i}^Ye;Ms9MZ5|lY&kU3jX5gl5{n~Hk;W4_te+W7q~dA z)KFjRVNxj6ixGBvP45sw9%agsqlCoV^2{8mS_Yw?pOE~7TM znWbrFgjV^ETpS6}(5RN3xcCm+KRi4>BRh|#OCrxIH`<34v+yb0@E*+QQ;EC5j(XCk zU1VcSX?m*@y^p6C9GlD%TOMT_2-x9vjuD228ty%78-qe|ZD^-0&yST)%LJy~&SL&9 zjQpHR*P-Dt-OY-oaof=UOgrarHWZ1*z5w_yl~zdv4+~%a;-|Kl3W*yETeCpEB#d_9 zX+alq!C|SKwdS#Udt|`@**-ot9j0&Q0vEazn zoZ{?Nm~DCP1-{k!917|S0*84#SU$y6!b{=7!A#h_@LlU*uckf8r~(Kq@h-Zf_WC85 zdf{#MT5)bAsHY*6Fwe9L-{f%@ zZb0R7>RgyR>f2CP8Xnx+El+|-&KL0nv|Eq2b3h9cmNjir5#-->raWv`kz)#Ao@XmHlJLd7s`B}>Zg6Dv5E{H641=qWoAeJ$>efc(}ICTx=A}?9+wrr=k z34LAR0MONixOHLtHc%_bDUaxs(XtrPQhl6Zx;ooq!_*hxXR5yu%d7lkc9=>Mqr&`n zE-YJ%u^g&8vNQ0P%w~daYxj?Bj9gufL6`}x-K82hHFi7p&<+iyS_Uv@yZp6A| zsp5m`88FE2wa-RSJ-d(NgM*!{tpQxeCtp}PkA0Qi+dQuI(Fx|=PEFL?odp*uWShxA@LRzMWvg~|nqWsFa1(Kiy&H@xV!u#OwTOhQ~(XPp3q ze1UcZQ6d`E*SqPg5T6e(`j9ssp3fm6ZFskjyay4$b1mj$XtC0T7F)Dyv5UT;$&g@IYo^p*HS6LxwIazFwrN!3DjO>? z%{n$#cq&RUH5gjRJ(`R$6k^0qPO+es>MrutN17}=$&uCU4a`ijXsz3Q0s-+&H5M-K z?f^Y^T}OD0n)NUxb-On^$16H-`e|S{60NrG(UW7-xDL`gtQ*&N{)I^p)?6*A^2JHx z7r)H(iAuQI=%Z%@)s`z|;GdA?s;Q`Xp@Nhit4s65F!XuE z8|RC%?rK2uDJ=Z_W?6Af;WQuH+o@9O8=fM^$8{rk%{Z;3YYtr0X>Kzv9WQfVqVzON zT%m}G+rZ9h=_S)uk9SNw9NI?hFsU!V_FT%w5>ryBKEK)gT!L%nc7kintM`vn%0m5VWvMLB$j$`7r)&RmWS7AiBqVdK|0b?G zBGdledG0b6dFTKCu8`{ErdP90N-KUf?p9@QT0D|q#rF!sTv%_9T4sn|B=QOGvD^&46^N)l`tEd6VH*JSH6->Qq_NG7 zIeRQYjr9xE+xkDBzn7eWYSXH(eeuTuV=S(q#WGcdhsFMAb>-!TgFbitF7Tm%BzN9> zXl4MMjK7z7ZN~bR-i_C?O=sn>UHSpPhc{-k&)>kxBxnIU@o;rxy}(#%z`rg6pNp8d zWon~0HV%r#O&G~3Q$}tP_|ic2&?HyX`FpRqwQ{UFD(R%`!yO@?_#D(SrJjwh_x#h6 za7vVwgi%W*iLj0=2?)A&+nG0nddC&6hXbAd0^9-|`%b;&U1Ct8w>g-9M#x(iIx>iu zVbRs|&$w3&Dcjgh{(noC%IQmZXUanlJ%d8HlFvWW?Vh@Ml!2wi5fbZPh&2G3ECCqL zH}(Ex!o9lhea@-6#t?%Ue8-Ptjl>OTW5d-wn^XOcF{B(H7hiokJk9U)ZjmvuEYAOI zEfX{(ali9B?H8)(XX`Qd44vmy#J5Yk%WV+lspq)C6`N9!;Ih>ep>TfZl4Yv_-8*lF z9{k*2>duEfACn!Li_r*6PnPw05SIR()8=O@8na7R4dl0wz4qLlFK~aKkG_+9xsfl_ z5<%hB5+z=4xE&c+CL7q9xe%)d3)Ch27QzEDnm{o4t$Fe)Iy7Zm9Cry@_>f>eq(3B> z1~y^)dgl+AjothK<^gc*|(0yESKQNKNAg^xFEDt?yBkUmKC`#Qd68n4v?Be`x za4DAo+ao?AKq&fhHq6;0>QE3xXQw?dbGveM^LIrA7vcHqi|)5&?j3Pc@CZ*Kx6H}r zZ+0$QCToj%d5GuL(e(Nu(~B@>qG(lTRJ9iKWuU z6-*+b{h=?*>3088ODn~tsp+f*BLbOn^14D#jJTc{;Yqcb4&8A^Z?F6+`{Ac?&CaQ; zw-t=oi2jVKfmwfMFVpU2+Fr~jAZhId8zv>w4-Glv8ghmw8}gr7IBntE7LJ6r%^E(q zycPbQvwV?=*P)JJ#u5-XwnMBjv-UHk74KF89?*B&%X+YUV%+i3;c*`?CxOV#07iP6l3KJHp z7u=o9O3(~gBI%dW?3bpFA8WhI`+%cpxhP!?j zoDeNFI2Ue+m;t-pfuVh%4R~HN`_N>?a~BQ0(d~?fH`zGAMV8z``Lc%M?r6FBe1Fe; z0~vws&3vl77dxUC+Aq(Ulp@d>8gHl66}U;V9r_Qu zYmaMIZL-TNbx9@rlolWpIBbpi;`swzL|HyLQ|PoI#jr{bwJ}*!T83kX*>vaKQ|jU- z+{Q+_)jjK0_iS-~_Fmr|K&4Hu<3N9;>ws{E%yFdrAT` zPhYxR@SJ^8Zx>RTaGI7_y+J#gW6eN&{9(6n%^$7_sAsNoSxPIwv+%9ZCvOV+H3jDWWB$#8BmK?; z>RP@lFTCdv!S`p%GiCIYPL}&&8Mq_v{54nfHLKJo?nOUz1f?1x-eU9PJ<3H00WC$lNa-94 z#cAEKd61b{-FUGqHbD6=Z|z!8Fw$^_A=>S^h4=4U6XI}WKF(l z!}*GZ;}%Y;v9~SL{OwSO+bg2wh+^`($LkR+eCv^myv~--OmE$4he^MunXYqJ1fvZh zPQFtv6c)V{hm0Vy0Odg3xt&I^N_LiZZ zP8__%FZoVC>_STUIQx%p#@Vf#MeT+yu-zTh%`HFkwHu<1^h^NaIR$?HdCT|2_M6U} z^bn`hFalq@F81)i#vMZwFAo`GM6_tbhu~w5;<37XHWc4(8^n!qRlx&U@Ph@cu?4=-j!Sw6=!*R~r1?a;BFmO7DMib2l;_UPes}!D<@tntcggx_nPEKJ z6+aER-QNDOtK7#{(@))teyHJR4#a1o351+KwlL2BxgqDzCEn>=ieIH^{JFTlj-Nk( zf@NJ~G66MSsv7@;_O2#4uH!h*f*`RVKp5CiG8Kc&TB01tp_Tw8S+vYjxWbPJg#Z!! zkaUVMvA{k6TUzYGy8uO`bRZ*If@9WOBt;+WLZzH49h52`a?~NI(lG}ga?nAC9DMM> zhg8J}9h@qalke-9c{}^|?=6H}5<}wK_tVqUGt<*E)7{gfPsV!uK&15po$D7m*Dp92 z#5p8@{Nv2|F;HQQ?^*B7TU%?-u&~Zh2rm#|VZmkGMXD3SwCvKGhGO zvH*{=Kmg~|EQeJ5oY9ZV`f=GjeySfom5BCn8FrB+h(cbx#(4#HUOzPz?Dvz(LFAZt zG=dzvFmsi%`Te*9C|+C8(}a4Dz320(u^a4e+_ye6j)YEgeUQUXm2S;!xr zkExj|DjRet>un*l50tv*P|cdQNCCd4!gVV6A9$H83{ABtNgbo%bcRx=3Q)r7W)`{f zEsjUtKn$N1oFDh)aP~m-4Wf2?r5$;PH!wE%NsKY9dEPP{nbayD$VpZ_>l!Ivtf?8R z{q{#3ec95{FM0-K(Ibj=KRMVt$Y8tVEBt^b@q>srev&=w0xzRa;WPkFaKQSabk>nu z5rzhy9RnulVGzya(!@mrYk!TRny9Yu@*0NaM4w{K9TEV$hlK+XT0UDtx>0R z&w~vT7Sah1A(qGpHlWpaB!p%rxhgSUOkhmLVdC1Bw%Hu~|0EBDE|E&>;un=+1XmV5uF$ZDrRBFOlA;Cj7CuMn zkpg7Yh2-1b?h6v|)}ROhmk}pZICty8KcF6diummfTcUjh{BMy?$6tzb5Q;uynh<_H zINJklX>2C`lf*7L>fI9vUDqH}FxCa_+mQd5yoSM>IS(HRBo*$*lc5N_rn7l`PW9+)PBHsa!DAP5M^6MjfIJ2|;{CmYUA#FL>t~vN zygE79)y+@mV)4GguH)vmpReNtjQ7JU^UrMlM*Qd*ZkbUzgq^qga zepV_gO4{^Yr%m70ukJXn?vM)}LB^um<0nVEy2%Wv!=6#$gZPP2oIr3+QD#zpf}QwD zenq_QVfsbBn#P$3wyVej$nlnNw92-9?#Szs)TiVJSUXPZ!kx-S;I zsEDRu*Jy%>ua5xD!gg^hDjIAH`lBY)Oy0weaP-!wsAPD~rREpson`NhDx5o?%z&br7JH<>*GW+gc zkD>-zez|Pl(<)|v585g83aG^WJ*_SF_wb095X|mNJOTxoV-Ly`L52H$Xt@QQ$Oo(_f+o?6RgNS!Oh;2c@iVocfMT0Ebn}MlEUQq^mhWQe;y6x%xOmOh zy9gz!zTAMLO<)Oj0b@lQl$zHGOdE;?HtOyGbu9sAMHDDF9z)Wcu`rDRko?M?t1pv3X@onUjjX&4)Zem$JnJuy*9 zY*lJl7sfYeZJsV*B^-H6s5?@J=>$rUddtfpe0XGpt*Q|SJDk4XfLD%f%rJSTon<*0 zwFa@Td$<`szK@E>T?&Nhl4WaDMDF?|j0gqfA-dV9xM+en)e0dQuM>ps%Af&poNh;@ ztraSe)d?zhaTunmvvpV-qB>d9VH@0Y%@_;qIDxQJ^tFjvU9Hfex;jPYPV>W6#%@$9 zZe`Z7&g-xxTA>B1!=jZ{wrl3@a1(Vw_t+w!b)QC!JtF{J4nP40RF7`y)AEM$y)Qzt<>(zm}Eh@5B zqqlTIk6Qk6C!(;8n79tj?NOlvg`J|4e*CVxXbf`;kS>-o(5sX)`OdXLEm4DQ4u!ha z`~~D<8c35#)HatYxYMTP*+e|ZvGW>eiJ3KU2+XZ!uBd>+&0JfF3?LPGshJ~c&9PVNR`;Yg47-rnnbGrM4AnTYfDvJ4TJQE7z9$@Iy!-0s?Pj5xYMu z>)*$GWtPbNJ>`O&vas;2(uweu3u?VcHSg?V6+T>87TYBK0E36O4~JPSv)|>NS!VC! z5g*|(XFlTSEcfFbd>rO0vk2BpVz||FMZ6zp4uUu?_SF4vK{wZKb*h`IX495kNIs!W z;y_lD#$f$K@IImW0%pj-e8FRC#mGU6(O?%1SLb4Z!6<$TC#vBUEE}{Y!?qMVoA9qy zQ~THM#nje}95tL|M-iK*aP}N*?p1FESiyrMt}K{lSAlDM(p5d+m8IA9-dXq<{H4hj zT-r3-I>!qOYX`VMXAjF82o5Z5H0x$#>U-fl9GaVZVsw&;Z86f%QnRS)h(rN}BOh!Z&6 zTw}kCbq9>Yrdu-WGVWR4O8N`irp7w}rixDHY%wp^rtZYu%ts z7sH5Z8utX)Y2fVfSB-VmD;eV#ikDhIj8W{}Y<9vTJ&q7$>n||I=-4Kc1w=gaQnTJR z;#$59(!`irgOZ)C<^_F)G8n8=xw6SwJlCv;D)M;277gx>)_ooU0ZO@Tv&q)kpWla8 z)!QZfkJ-$h$m;GBap3xdFaDL6U-0s8yvUj4KB63d)Gs{q8DDH;>9L(f&ZevkLc$DHK*An2XYgJ+ zB{ynF-@_-~5MUY7m!OnW+<;SE7~m1R{k7Rle{tK#L{0#|@vu?a$1sU5WvqOq8LQPo zAq4H(v9KHC>DteBLaF^@Z5dBvxiVCN8~Yw3mGD6ql2KGlDNjo&0b)uC*LO6Hsww3o z1=*@gDFILXeRtDm*!+gwwunuU$xn(GZBSa5ez(}x9XY6_Ch1XI@U=hJ_-o_hpOLbi zLGh)u`}Sses1kfK#pZY;C1k-{jSeP8(M;~XS87-`xLOZ40;(m^wO@)}7{a#7D2>vS zT|}aboQDVWHw=`eLeL;`lUHC+{&H=8@ZU;Xxe;!#)_7{9qwv#t)Z+k-?x2LIoR_M7 zVs0w<_JkbtgFC3m>bMJFI2u>ZyA9v8*tS4=0A{(lYds?MCXvf+us@#-l~F_0R?&lx z^tqX#{q*G#?6Y57dhk%fRT+_PQ>JLj%dPU17RJZt+U-J(><4$l9oaexl%X%f-l}Sp zi_xf2E(+KK*iH0wvliJmLTPqcZZBw=ctIX6e-j#Dt@5H)$W&XkPSuC`d%HYDQ$h80{PCn1{gfMK8uV+`&wepKjrU%3k6a7#+@BM(>g!&PC8 zD{{R`&}+P0=Vh+@I*Qvp!^%d}WfGMMT;76fp zX%<8tf+(FXB2@wmvbrC#(*By4_jq~4%MW;YpO+7K+2iGhy!;I>KjP&vFKD9MB4Za5 zh%n0WbP?x{cJbAtkMUq%ebR-d=2s1DZV-;9vWO48`ey(?&q8=kBPaxp_u0fg9!9A% zJy$mz2quchOc__ldJ)ioxpd=(cjpjM%JQ&nyNjmD!K&^qnBa2_elj$RZ*k6f`9Sc?KOVWU3ktFYZj`ePU zI~^UjraVAj$`s0L=u!>xfl)NbU@UqD)RkiAbpwPwqC~Fb;kEIGK=Y21;Y+PEY$)~*n}6BK*BPlA@v|Lg zAqPwh{Q8k4Qswd_p8<^bSbU#lY)EtRY`E0eMvcm0@aE)_npM+kQGHk4RcW<=|0dNu zo~P9fd|6Pi(tLMH?+c_-maC^^aZS(TlbF9Jz582O!9x*)t$CUJJ2?FiyYry>!Uv=J zD$9<;LXk$Zd)Nai+dgw%p1X>VV`(`&jETfWt@=t$et##EFDJ_z#hrXM$wVt2x0Gg+ z7^adMh(utvgN62GlPa*abda1;$@=>TdY~HZ$1jY9Vk6`(H`!FC1_rf_@SGZWD)I1d zVJ$S9sGu|KieZ;O5OjCT!|~&MIDT9njveE}v19UZ;shT~oREi}9zOK+AV32{JIcG> zUOx2p%EQT%d^mYh9{T$D(APJRm{j-Gmh#l9+Qv1jUQ_4Os*L|URl=*BDyo7?sx_6t zeO~S0t*257$p?mqyFl&0a91}rMt4ERPS0RxE*i(Kg{2Y0lY4hPSFQ7uzOC-rL!2Pg zOFx%6j~VTOA&R=X`upL!81F~!xW&hzig^Fx%60Dkr3{G8g2W<-&4NsptfV&a#3Jd! zq|`XraYmRitzM6oWFFw-;M;jMA>6!#U*Y3u$MY(|2g(IJv*>B{Cf`Rxcnb;G`$MwKBWgQ+65|%zoVHXh@ntxUQs0L@#WM%;K5aEVMbCDhr5~ z!)5^O&e@^L&rlA`uh)+=Y5cbN~TH#OU^QKjG1z^HZ z+zb*ltON*p6HE&8+nUk?S^MNNp?>%iOrbw~8t2Cbd09+4@MIKL!s>y+eq8BjRkK=q zr8jiA-^XzdD0IHo7-7MlgSxf>nE01i7<9O=x-jXTY_4cOCb8+X=A+%fZUMdybwMqF zbjP=5r!55ImDE6prY^UV!?`KD7O1Yg3v;qqv)>tS%SFO{F7_KYx47Rh^{H3*8KuI* ze}o|DVaH_bYqG)9bfTLr76KERo=L`@K} zIsi1bSPm^fn5*I2z6RrE$$k%ay}5;#Z_e9~;evAZuKTw`!XH9mUQ?wDuh{fqHocWA z1T7KH_+~Ea1${n@^XAlTi!)rHo8AWbAYg79iCuE!{+72g&ylr^BTetStrX_;5VXxS zOze2RxV>RNj$jK#U5<;$3w6C+TrJW=82Wx4LAVak*mo^VIH#q}l~Trj3=4#%Kp=!G zZ1MVnO+*WOU9Qy%sgbo|rhOB-$8iL|Y0fV-ay;C-7Qtzo;vX#K4-*MqvqXkVc01s~ zaC@@>UC|pRd1-o5N8JfHBFu$Lvy+Q9-*AVQib^AT?=Br5EYuig60NEb8fqL|#SPpx zMO{s3L1I6{m~_4c!dtg)S;#OyOwYVoZS^qq;*&A&ZRt=+7Dbo=Fh9i#bCdoBb+F-f zsLBGavR#rF-pS!C0Gmg+yth}1_iq$}>IkDv2hAI9oT{6IGs8$((^-0MTHD^yvz!jq$P4^h9BIvrDAk+P+NrdKM=t-PVfmrdU`+Mtw{Pr}%J7-_YD^`Z z7pci?4vqzmd`V4sTlwPdCVDQ>mu*R1(xgt;_3kbK(vw4tm-X#_OUY}e27-~H4o!-_ z`+0c0DD?+1HK6fL;^>g=9D{lXEL)#&ssw369~q^BPHopcx)=>1mZno;^YBWhB1~!O zhQ=+_XC_Y@4!v;1k>FWPo|zGcGD#UkFCqSchI4w3hIJC^HneG~_2Yn)Q<%k17w8l& z&0VdZYMrs0k%2c?^1CmNa~`?%;x^ilR$Qexs~1v?1zPx6mn58MEeBrN%9P7a@+#xF zROvHVbO|{^!oZ@J z`W^3+!DG$MZyY%N;V#%;hJUwl2H7L+`^8td2eYf2Vhp$`s`dqA6}u~@fhnll`S&l~|M@$mYTKIc z|CAT}b>p9dR^CnE8UyYO3?EZsv+;nl01Hl0zMq#=i}*@Cei=5MOkn2`0QFDZze1LX zD2n$bU?`~d2ADn(m{Dc_ds(gE9`R&A5u%ctoF`y_DZ{u#JX{rWk9i znTE8C!h}=(#~S+@;8_|Pt4jFIfc{xrH}S0065izSZ5MS)s!2PoRpTf-?N&4R&BBJ2 zm$zB`YR(=Jny=&Sx?m*y7O;@&b+rMEO1jYZB>x-cJ+U)?TUI`OIXYgJ`j`WLO(%_V x;aaKI2kS^9K~c~G8gn+{2T|JSYtM*CDhU-Wj?oHH|L=FZHWnR|Ds+hP{Ei6{vF z{r4ZyULb!etN;Js|6d}^8FTK-NIOH$#O<}}oQZ4PwcCK$zWw`j>EEtbY=?Hed-oX_ z+rCq5|3STDyY-H(R=-hfuRa|+70r+#T^`B$gX%%Uz(ZdN&d^+|*ubpE)h@irKm66V5B1VR`UJ4DM|G)o? zMfd^EKJc0Wyy(DALkEJd@=Cq9t`fKHh9qr^_8-u{0}C9R9b-E927D^RQnY`ko_*k` zVnxgd!=OS9~}&7X{M?u|&^3Ub0yHzxY&XRJ)2LsX3OxC5jd+TC!N_ z5~Vq_AZm;M&on%Ua*rk&2pqcGqTG!J_V3oa%K-LxP|U+ujB?j#QmY#9U+{k~gIDR< zr#(C1<030v(;K_eheU(?W4%SuM^%ZfK|etoo(&q{$`E+xXCNwzn}5nTKtD-?rRHo%Z5EI>i3lYIy;KwuOGJB zf6-k1R|NgGh3M!Jq6oUS9@l#&r#QYrr;VTu(AessS6W+X9Ll}lKj_S ztL?wCj@Q-*`q-o$w9!smdlS*H9h_pyDqFia%#L*8Ia?c#%Kci5%gytI=uvL|Yv2Og zdI45lw_l4`G^mk9>8Pb>5tN9ibUotHYMe_19ffwcwuQeop}zXBs`Kr?lF=?&dsnO; zDr_SCWSU*tcc$E-8SI!l!jIb^BXvO;Q||D!3t6N8ilC0$?3_1kw*PXWUAVM#^gYsY zOGZ#Gv=D0^Du@U=c=)fmxO%#lA0rq2*Gr_;e{E@FM{uE`t@Yn*N!mP8a}V`5*ZfQ# zOIotVL82A&xr`8$tFPr=^b&5#2s$S5!D@2(34K;yj~KsQ#_UzP+z4ui9-*Ue(b4V) z&qD3^rXt0UZZ7Q*%G7^7#a|0kxvjRKO?A#A&XdwSRA{2MdgzI!7iJah-KaBFyI#^1Je z8m`Q2)$co_Zu+m@-E8Z+td_LtOI&H)re)A0ID$Ub*?07e<)QZwpSBJ_JM&oJPYKKi z`opu6g*m27cT4r+V8vOv+)^t(%!7HzZ-rC$9lEFcq2wbAN;%Yk`+hK5Rx2-aX&+W9 z!w2)zcI^`n0Hupk!UL2Z7U#Sq$j&)4>dZ=q zzB=c4$|_1IMlnYiPjOH}5c2|D30CS*UQs3nDE*O7IQ^KYQ-!+o(jcWY7avx(Ss`ej zJ6IoZKCw{tDxbFKdAc?7(@|Acrczpobr+yl$|vVaJ5@pYPbuxEI10JOBIlgx?0gCm zs*ZTVG0SnzZK)u6lydH#trQ}ki|e&$mYq*wO6TGTf0Sz)>MlYVTs|n@_Ru-A5`|_C zr+RN`B?b3|Xq9uvevVI8rCgD#9BUP!a=6`u)8B=4S;0v4j`Hb>F|O-gl-^TH5AhjF zMQN;yuc>FZy2!W|#i@y#6*9`(q6|K#eX3I#C|vgg(tm=XG{?9`%O~0qmZ8?l=Vpwf zOjSxs4y|yi%}N=TWGiLqn44?Sq@Jx*qVsNU!*UCCE&RCCU4#$rz>T#}JiSYomCt7r zwBko^)ymS$c0RS~x~kXtGIlNM&{LF7)Cc!-Zl8GcyML6D)AZH)N(rYkxVz{!Yy^cP zydUc*t{`rWImhgFZbV+CKixj<>1XBhXoOu>Cn#KtOwDYiGySRJne@I^LfxI|sZxg2 zag?&b+*^WiAL5*2tOu>Z&r;0C`kHp383k*Q@YItqi5^G)$!mTB1|cvAR>DQu3N>+MPaD%JepN&fRI2mwU_M zPWV53;*rl9_~5S;?GsOZL^;vVRtAaEcAl*agTg&(%W$&PRhmGN=uM+Ru0p;*yYQp(3NmWR?hny8d%({(CVKJsyk`TBEvaf_{^)k=vS zWGfp)nSvJMPdsfA6izikB21xF z+M;|Kh1ou-bW|ysUfRl66cWPy=X@1iQ$Kx8wL&=OSrN9+6;bY$wteo>1mzR9-}bpr z>y(mjs;&GACdn2kcZeEN}X;PzsB*7{B!(0?mzRaM=HWKL+qUAS^p~KFRajX z&Wl8uS->tUMU?htjlEWsOJ>Avhr(?*U3y(G9a28w^wl>y=Yg(M)=L%7vZY$N3Z+O! zHE;CSWrey=S#K*Pak=(krEErS`6e>HI91DxXi)kN{h2@UbjnInKBF_~e6G6AiE`Sc zI%lm?K9$!xK0B0B>r+QLqLkxH>4`pl^j|)Cg;g%1kA6P*?UuDr{`RS&$L#6s6Su64Mvy~dg zBjup1TdvVxP`LC`W-R|@9Z@;QoBhRK)(Mq!&qSOSOD<@;QjWSqUbW>$%G3_Zc`(#Ja=}#T|}LNfmK6!Jl|?yK;teO~;}4vQIpD zSwT(jyn+9R5{!LI&hW8_xhHz2Rx-F6hI8E?OeXs9FpszluEt84huKCe8C^}odE^dv zsiNQ$?P{fbGAyutGK*3kcYK{Hi)*yne2^Z!x#QeGODd9Sye9D=8 zO1thWrC)&ZP$^eTKBZlclu{!OL8*93yPm0-pB%xNVrOpE(ykY(tWNOp9^zV*cKxfA zyV)Hj2ktoGG{g9mb>;JOgdd5rz+K)|+|M)Z)ogZOt>7xFQk{FI`(X-Ih2lo40!4K^ z!BEy9ADkUlvQt%et@raaJsPVOKed6vWsR47R=L}_Hv74qKSU~BuePphN}*v&K>um$ z`d%sT*V8`n)Cmgb^A`3y)iJ_@sjK*OHm3(YT(^}^Y1}#4C)C};bx$dKu(GOgm}n^V za6N*8b5NX8@ffTQ<)!lB`v@yZP%NyV!s*&R?GsErU2di1#wjlQ{Os=S@B1 z3JPBx_a&Vwo><{sNm8O#{4^N~#}kH=zzX>YE66FXb*iixh*!@xQ(T{-tZ-VHsB>nY zElNoZP_`zI+xHjAQ%y)eSAENeV|32S!S}EyF8!i%M zO9x$6JgpEV_PMRB66KiW98bqZNyW~W>mE;EiBjF%yPt{jWVY?|Qk1o3mFsfrcrwXK zCZ2q(;OaEpqEn?(1}J=$`rvpRF!!Yh9!=Ya>$>~N4~6H$$5=n} z$4`;&f0WOGM4dBcNVgTqsnQL%l`L+LQfe%<^NDfCM{@u9HOThK4u#_xhFMGZmN%eq zKC27csorqsjpWn9%|1I-F82qKJW?jj(h5!w-AyC8ug*1hy?pMLs;tRo7g-Prr|Kaq z;b1D^ZWYOQ*uEy7QtsA~+*eO+x8o_}ZliMMV;FsP%D8(fpV9MdpLaxQoZF74lDk*r zSmcw#oRd^@uTb?mfccX1@l!ST8s(GD_`DB=>s}4wh3LWtT^9EE?(<4HhI-XF%>8+QQo`xY+d5SW4H0E&AxF8Wa$c}NE1~Wo?(0gK zE6Px$`d%q(i|Mjh`Bl}u{CvBnL)?EWpW&-*pOKTuRw0b4xsp6J`BH+h?*U;bv4$7bUM*ug(@_x=|L1a;3kW&vH?6PK$JE^ zY@eQ@tT!`KUs0yWPAZ;;i*m1(UDjw(CYqSXi*n55Gf9-A-R!cai&E6=2WN`1qrL4j zN0epe>LiP@++4v$qUai$eFez)vgQ#G9` zRFqD5mZX(1QEHF3OOF(#!bDpsBFeayw(_wqWHS_9ZD15(Y7^_qHX`1-l#7a-6njIXa=CLIvpZTH`#aPxpi$u9- zuEkO)obx^Gr`X3&E5zqp6Z1+@Mxoc~eAbGR+4yV_B_GCx_SquJwPah_ATo)w;BUdZGh|(4(fm(SW${Eud525fn;WSE@y(jx%RS+t7hgj=5 z`#{OoMvuy1dLEo5(+aG6&dXho=;F3xy ziczUk{TEzDDb+UGish*cg(w^57WToO+EY_0Dd-zo2~kQo6*4(z6lJ!lMVP0K%DI%u zIm}a6wQ4I<_b^XANNB=QGN9boE-2q^;1J{bCplJlR8zXyNS0&Cfow)TRdauPdqj8-cw2n*4SEU4TV>y zEo5!%r*=?y6kHyx%VOn$QZ9DUIs2)bm!derqH+4{qB`~Vrc+9K?6Nr?Rx(C$AIplp zl|J9-?Tv`yKK645yB58@nWA_dzQm8r@bS}NZ`LR--I`&SHPo9Uir1?bQ*33pw|LZ8 z61|m_QWq_+m9gH+N~vLd#(Art7T6Es zDr=wd-l|G@YLtoIYD%e(zM*|4dEZk?l=1n}t8lM^7+N$n8v(ud6eP7iy!xWv5 zpJsULDW!?ogUs|cS4x33_O(dzwp7XnIeGKb9B&7ul<02z%=7k8$^nzlLhsV3w0oJQ z-c&?LR2DNN*CL)$yhl}Qd?zs<2w4e*d)@U$_VrrjJsHI-{94s)WepU*%B?X9IGe@L%Or7yi%qpdicm|!Jy6ulg~T5tAfLd-7g5LpSP zi%=4gD)GLpT=N!+=6IHilH$GQEv}SQ?9n(?iuYS@8KvwAv6b(m3|D z7WGP9uJZ||-@Kz$&P_1oaH{I`r*}@Y1)myNIk0lt`=@ul@;M{%RHwhZ%Tzv@gLOWq zy?=Q>Q9dW6rq$_@_fzF_S(MY>N8U}!XOq;uIz9I8R6hGfIqiMy-K%^ssYpCeyoZ!e zMo~_CpLmZ%^PcEWdnaW*^?r#5JmIu$HW~>ZKmF}JAI&q;+VuLm`{`fr1*K#*)x*msY_C*HS6`5ew|Q5oD1a1P*0QTdd_-7MWaRtot(RX%^=Uil$LZz_~jrDVgL zX)6bn@-6O7wsJ@*r!kgo<*-uj7^Sf9a}`gbNmbbQh4Sf-SyZPg>^q{AAX8RhANM89 z8v&_~Ddk9jay&El%u7XZZj6}Ysj%;aYQy}ai3(Qc^Y9X)94u^~w7=!Ml$q~w*KqIV zPdt_P-N@_$NtdhyD3zhC00~DvnUD`rRZ$AQWf|qB^4XE>D8H)Gcbd|x`tB;_C&>q= z8NPp%Qt+T1&wD;s7A|W*KRcf~zVummqzn|LFV*p7R7xQ!Js3)+EZh^WH_)kAiOs^T zQKz@g8E?G!sww68JX>i1g?rr-oc3_N{FER*)7IKP&3xmO&$BVMPb*O#OHKXM+ILx% zUJd<+^9iQ5zUwO0GK^E5b6ejXrTlJEwf8+$N|I@x4!(c0@cqJ#eE50=Q%7G=3`ckb zsq_`>=nIbFIf38(J9L%r7oB`zN@Z$QW+JR#@}%-GQjHFOyPk#5ziTysd;; zRD6QrQ!s{GtY1If596tauWAgp>O}0MxJLz3Zzvp33(PjG_^FStdJNwg?UQyt_4l=i z;W?qI_yp5HUt5*WaaViH6uuUR zJUSmg9q^r0%5coR{P9z&C~t(>%0Vc6O&?({)MXtKpIFSj{K4BAzMoY-wXw(1$^|H# zsx|I|I@Lue+F8l5&pIo?J+UJ@m&&*S^8@>n1=Y~;!^8K!q#qI1=Kl>i3 z-g^Rlne)LDeNo0?POz0HD%Cbqi(h=tlu`s^S(kp#XJzFG=ioG+m3VsSORtm(khSs{ z%2UGOnEvy{X64q%Jj^c33W--r)~{{F9g<%u zg^@zX6B1HVmEHlT5W4jAA?1}%s=4kFq68PUQ)LZ#KPzA51gt3dP0POl zh2vRmu1^Ci}G|9zo-7AU1W=BQV0zMobOS*Dbu#Vn-+)4L%l zDxU+Zv=1w*lrk6V7ETpRRYE>RO~Yx;c0G@=vQhag3sAOX4Msc{ZBc%{Md{--Y>mwvJE6>lL zZqWOH(>&yJbp;>%s-N)UJ;sm=N*T~eKfR5o)}o}t z{hglz$5VSz8e)B@m0qG8TVdzZ4+{5$bBDCzr{SV(#i-;|ej2G#;f)u03f$K{HsqqJ z>1Csg3%R0Veuz0-??%Ume3zBbG}&GdUBRj;p2mlKuYA76$Ymv%ra)nzLO6lZK2t+} zP|A4B&szCdlp8~BpE;uZxyV+Qin7yZr%DlJ%O+b{4TW2^BkpLr^bJsWCG(`XzRJ~U zW5`WadilF{&KpC1R?15FaH{IGU6fh9Y@h8RzpDPzY>-xhX*U$Ur&KVr`hk#g*|?^; z7uoTohEz~WVXUKcO+Oc9Eao4r9EHNC2jg~YA3vQGpNlvN(LP^_@)PdDI>Ixophvmq zYbBV@gjCMPbw9Y%j_^!K^=y8si@R4keCMipPYd6$anr}G82#h}Mv#XF?Pj}&mcB_e z99Zlv+(CiayI7P6On;VWJg^9G67ax&eB%H(r7h8P;LFEEGs)u_Ux@t@63dLldoS*U z#D*6%mQ?7cOIt0v>yD&c7z6*h{S*_2rV8>?qf)psz$=viK~6sZA>ZiGgv1Y%7#)31 zxJ6l^|G5x5U0}JE8ef&rI3`77HeC_;Z*G8Z9s#!rHv5OUn-0Q%CNAGE=kWGp zSVCf4tVL1bZhBtQLVYcI@Cn`+@!RP5>vYjHdc@hJ?8CQfth$*>dHj?h80hKjHFH zY%ULd7-~^#U@puWxK8G}WWh?Yf3AeYH!UZ2lLJK4$o>6GWl*5=C{hx7GY0Wv^(*S>N#}}|~K|03t z7-ug6?DzQsS4H|>8sA2FRMn!Z7_WT&>ZHSL3r@KHj0G^B8TVn;!2Ng3G<}_OV0=8S zVo}I!j62weFVgmjg6UMhv8YKWt!Emmv8F<&emoAVBAzBgH5L@UqQB_NFLS_eHmp3zCi`E7zuQ#F2z71X9cJNlJXGa<1}ca0-Z zU#q5vb`RqEdMM*p+zuWZidC)$ehFw-=DJ-yq}x@`>r?Rk7Edvr4~kRqH#Pc&zYtzQ zcn!haqL&w(CHgRh|5G_08orq0C{CdmkJW2Cad`&l`1TCZSP$*Q@p^G~!FVW(#uP#H zV5Q@Bq7d#1UkEnD{g%`95{$t9k$JS>IFX*iPO+;j z>RGoqJyVD=n}^#C{k8*RLZUA>`(u3W;J6bKuWi>@>}{=gJ-}Fsnuf7%Q88R+#%kL& zb|0bj*$SP0Q61y$oB9cfhtTgC|3Uv{{A!ryf1@8UZ=&q>yyc{i$%nDgAR%#4Q;mfx zlH$GZYs{&*<39~+$fEGCjPb(w?Qx9<1%Dry*Bb=JljU&7>q;a^O|dWU6jxKOkT}z3x;DpV!f33ecM~xKaup0>uLM#xmxe0 zbf^4USY4h#`Yed|L<2|9Hxca$z0Mqs+fg3#dZjh5(ty$N=Xv-$*q35`!q{>oqhsg% zZ$jtxXLOC!SRCW}W`G~(^9$_VuWCH?fYD8Nmh1Vh=bL)|;dL0#L%a?fA8_C8i}e`m z?;`G~aEr2|9*pDAKCCxHKT-BPSYIVr^z%&3TOvNz6S03||A{$tx|TA(PQ^MUC;H63 zSbY1jsok&8-(5Q0LyyMo={2?vV|41z{j+L|gv1A}a617WL%*)t!p_G{BTjO8Zgs!O z+RjP0AO+*0J?2NOR~ZYXGJ0qQc1le$s0HmKELt_fzIo zh1V0@B7TL17ZN|dAGx|X`3{2~iu9gwSRw@IyiW5&Pu_xiZGir7H;ba7bGqmNea3jK zJE89@sj&mbUA6#wjZPND!oGAD0iE)>oOtNoiyC7TI`;D)5asWVe6e0*ERXTR$n#hJ z?vCFg#96#YLgG8mN#XCiG_Q?*$U2u(yhnilL84O7o2}N^GRjiC9p)p}`MpENNPgdYp5P-Zc zXG|Ha^)VO^%sa$r{&K6vf*)!e_e$HJqy5+~shGxCW%tlKQ+T|2Xuutf&vBn+K52o9 zgSw!eyx*&aIQhO;M{pV1h54YyJl;ICt-eCDf8cigyH`SDW3&fjNz5~h2jVo|D9Grc z|J41`LzVa7tvKvMX1R5~el^c|s20jW`DyYk+aLWMyLd)^1D7$kV9;nhVFfSPQe(Y- z+MXTl#CnuMJRO7oO#Dv7tR8ya!!nP)#oD70)&-0cF)kVBVO)MYz$yP{+|RuO6B6If zt}$aSjb-y`oPheVy@cr5^J+dq(v``t`4Qn`vT0sa{M`!O^y?Vj&zSv+ssDo`ST7Ah zJEC7O^7Ut|-AUu(ZCd}UtmZ?}U)X-XgT_6V1SNe{NqUMI?h8a zI_va4AnzaF^5}k}^Reht$*+1_?8lMrL&3PRIJ*RI-VEPa8sVmy?YQ6h>20ico{q%( z%(zZ3Mg~z5&dvBdA+8~wK#jt4Na3H?#r_}s1=?mOu=F~j&wvR?e{ht2-;AV7*)3`| z&f&e|ur3`JNn?Q1$2r&OF~;43aS4fk70~z#`XlrEqTdz$y3#HB4fU@$!J@%>Jeq#U zN3cL^{SM$cM31A&ng|o|(JE9wv56?C*$PTl5pcFA4t(ad7(oL|-MiP3(`c zk7fHe7>|q_M`-N+LgTr`+U{+k@i_Lk?6-CXb9`5~63&?>1hfzCkF_T1a~H;4SobiN z!Tqt;M8_}cHc>t3$(I@Z^c44_M!>dMH#Y7w{cDb{oy)|;VU$*7ak=1)&h(p_@xS77d)oW zOCmd7J2VncP_8s07yYQjw?3 z^HTImZm+!57yG91l$$O+4)nush^TZ*YmHEha zn)6#v%;%P5bkg0#ypan1ll_d29)tVF7toWierL>%amu(@_$k4?g71p|b>aVEU&{V7 za9?5Ei}B7FiGIX*SNz_QeCtd4L83Q_(tb4s*N1DqRB&r<%~uNckaV>qKeu4>5Gha6 z9TNZDSWj^rVuq%j9@dY_u2pCF^#QHYFvQwS+6fVpZK>G|6Zb>m2{KEe&K7K?w^G^ zj&CK7YGQweb&bkb^0_Izuh@Npzlq*d%IPZp|Jmuquf1TovpU~M;hiL1CBYxgXnPIe zImEA;7ETNv{k#`zMkHrj!ae~D>j!1dsK)S(h#s{Mt>%Voc`E7#U=pfFWfUN{S5afAfQ-HsPry1Mf7m0WodA-W`8Lr!QOb&XS z`)O@Gi}p-)(*xYMc;CA7JoeqN^SR_{;MCoCdvR1U(;QKY{%L z&MJAm#P?-;JzE>|E%T&moIlQgF#n`Z^I&tJ=1FS%mR@IWK>P5zfcMdiyszf{*fiXq zI34@(a}M@nw4ZyhA9$Mk;ppi&7eM=up6e=Or1?8^(n14M$ z<3OyZ`MFCd)>{hmYRr~L5;&ov) z%vY?FVD+3jze8BJaXZ`V$o1IA@OpBp>aQM}C)il9h9Eyz_zdMm*VXGsdQantR=S)8 z%kf)Ruz%Loq9b#h>&ENnlXDUhE8W(Zf^l;)!2TmbJOlfZ^cvp{WAsoBy)L7TXm74Z z>>Q%~b3N3(51vZ_|G@kaxPSWWeY|l!591zdamJK3cuN~t<%q`hSl{2D=fuV5HGi;u z7b$FCOyl3E-yZ>fyxw>MKYnh-$j_}9i{rXI3GmB40YCN!{R7OyjNb_EMZaUd#>0Br z^8bUL6Ml??THy@=U@F$7jMIB*ywhG|ovn;c`l(pw4H|)ZqCFW~PS$)4#y9p0X8iK= zl$Xhf_Z}$>OJVNVxqhzsnE%jTjIrpyuKAALAA@fsLqB%~`#Iq4cNiUe8QfR*&&9eM z*Mo6g19hED`EOyJb_e=@7zd2`(cZXz#@=f-&SQ|TOOVf1m^VZ`j8CvWVw_Q&(Mfj# z*Lg7XRE3Uy9P7^!&|N5(kLpMU4Dw1B@Bb{)|0@ z|BUM}Hy|C?cOmRG1Vq0<2$f3&x`#5W2KIa zjz9OObQ z^f`2XzQ8!Yh{j@_2;A}G>v|maUG+8cdf|A0{r4HQu8I5 zG}a5!m>~KDNjG2oi(=i*`Q;Og5`2t#m-PpNR|ONX9%lWt@Sh~V`jY?NT-shLv&ME9 z$Lv2wFo&e~3to}*p9!87JSO;q)cY!~8|O1LhsJGEPIuuKvS~f5)c2yK8y}(diP9b) zMQeTv{e<(oiGIO2O4?(P_zw~P;o`qv{LhPjFY&)6as44UThiT^@_S3Yrz>=>H}|{z zxK9-+!1rf7=MXGcQ1iStV*X`&ghD4hU+=dU=y`zg4O}-GS^R#&b!E=ioss(mBlibJ?k|j7KgJ@%wO&%Nydd{4wx>$E)xzs1X@71f zw(pnnzf$PbkHRCje)%#19sS)XtP`N8 z!?+$4pmVzphu-KM_5r}kxcq2QdDa zpA-E*;m-s|tk(9OiaYslN1SVsZge-S-+@B}|9GMGCQGz_2K8Y31+3E;?_#~dnD+zi zcNG1X`Kg&2Z@1KXI2Ot`BpU_&>&cygwixUhf@-eHzx8 zj7zXSVC3hDhhOtMCi<}eeOD!-FQKm&WE^<;-%e2mEKjZitilD1}bC+_;}!gB~VW4EIy!*=#@jlj%?6(}(i*c?X?~|BwKe-mr{`{TEU!nh80%t8i{{1k<-Agp`eSrC6 z%=e5HdTT$vpD^e3JYy;0%iq*`;sC907v9gM_1zwg{nBfU3e(sC?aKM^zJM`vgx259 zq>;aU$9ncGj841pIaI68*w0{J$G9lB=3@j?mTSHN<;o%dOcyw76feHJ6{vpNO%R|p~M z4t;c1jji1pdu7z<{Y?2u?}Lp7Ud{&Cx!+ub&h=zmfw(RP*!f)MD)hYQ|BMw-KI1o?H0SZf zockkVC(NIW{Hr!s1M=bf(f807|EqD|Q${Dw3E)4$K0UX_SX_VR3-fCHC{E*G;Zt&H zexZQIbon%XC-!*kTR44w^hd@9=#PxalJ9XTr?lkrQuul)C%yQUm3&%DK7AyguGw^c zKZ}1)$)~QPSW@vGG1BdJF= zTrSS1n_J^i%;U^cLN#8)yv=+O?yHRDq#e6TJ3f^1PfGdt%82sg-#lagE>iwGQa+#W zus%)7ABy>fdDN#GYoE~ADn{3{hSWb^>=XXc_8EfdE^Gd#w0Hi(n!hXjeYsBUB;PjD zPdW+m`kTvNDc6VB-OP_<(AW#>R_0~;XzU{SR1@An@Hp<1>=!3-eu9Q&UIOz7V^zUP zahiu>K4QJF;BLV)g84D;vAv*RVZmX7M+NT*z7Wig`Hj=PA$VOdKA+a3@@p(5xLxp~ z;Q0dD{yo-@oX=RS8yWY0t?~JJjlT&-4bbh9Ua-h-+8!r(5c345-z}I^uIIe*+V3Om zXV_jy^yQ+@6@93T?=sjIvfr@D8k>p!HlC-lz8Gr?#@W(8H%R|1jrA?-|4IKWDgCpL z^v@B}Kij#q-%5|h)>vn9I+yhSAnE_bF<-O(PPE2Q>CZD`G|wg1{g8|+OU7v{pSG8g zIC{xAEh=#olQ`mKoa~c)d&xMtCiTiD@qHup8jkfI$Aedg6n-lC?UMW^NPb?4Z;|AO z=~Malb89^9)woW^{r6JuWm4}HsrNjocR`8od&&2n#8+72yCd;UllVTC`1VPB$0fdb z5?>a{XM@D|uEaN9;`>43+b8iol=!wveA^|ywGv+iiSME0`$FP-N8)=f@hy?~mPveH zNqko%zBLkG0m zFNeg}M&ipV@g0=-4oiH$Nqm1xd?zKo_a#1jcT>eNMB@8Q;>#rQ{UPziOMJH_zF#H2 z?%>PU35+;)|viSMUoYE2F98RgKrnr+tpi`}nO}^!p`@ ze16S{*Gd$Q!To@FdW?I<9}x%Rt`Y3#tT*|6?Oo70{jM$8TcTa~{g3Bp7sg#^7shs& ze;Cie&imMk82^lKp#L(ift~St+27v8TAKNgXZ-#t&W5pWSc0-=DQu9KJ~#U}NGytd z1LI(<7slhg(6=gaJ&V%=>_2C0El%eJZz%LrcRYWbyVXO*kmxT(F#=4{`AOdi>rjW6KYcI!+jTx06}r{;Qu%#_MKkq# z5eHA}_Vc1VuE#8|{vH)`{$3(;#zHUjbtoao@0aj(;rB}z+0O0GcE+^tpXm3A7Hy9s zexGR3cKqhgI7X*GWG_jyd^_HcQHbl_MEFpSGa-=_`sqYgZl4B;LBsWRZqkwWG5@E$ zI9)!*-^;~!s}gj)-!#?urSR&4Z|BweSlHjj+UI3kF4s>Pv4>ke9q-z~?+*5mwHx!f zfTzL*{r)k|#9pP{*G0dB_a=5?KiE(sKd)i_9omnP#~~ws|A8_4Z;Ut# z8G|v1`h7Z4_KS(Sy_ZAh>m3i|_ey&Md4J3Q+8)10#<&9M8IK75CYWDdJE^6Tz=vNU4HK#I<6J%(QjbCw1)lh?C%47$7**RwF1rq zRuFt&p+yZ=>U}r+ZP|_X0qz7QNxi;A9vuI&wfO$bp8qdwkQlR#+aZpwZNvNad*bMG zHIKy6g>!h{9=s^x;_rV~PbAvB=k@Pl>hF05SJmJ1WaRI8GV=F48TosjjQl-MM*dzW zBY&?m7~hxG-y^l?_x!qFzQ8_WJm#$lIComKy*S=YBZV!nk7a%$Ok;!o8c$*Wz~e7% zdi3jpPClon>U6Kqj_u^@TZ%sKg#NJ4iKmL1*PMQ~ z0sa3z?0n9_I5ryZVF8og)V$Jo<~Z9PgYU=ebJL!j{GOegN>AnY?%cF?Fqh{hpPHxL zv~LZ6@7YZm%W&Lox>{P}&v>r<<9?^y^K0=hI_}3gOht|Sy;0`1S~5@T_Yd^c^LQU? zza58-#cAAV{3=>%DdPBB0lQfGd)LPsb9-2H1@mS5RJ>!2`G&{MJn+Ep@vZzC@8ulC zdlP79#vy{$ZZmh{DEc4glaTm>A9EX!zaPcO<+e}#pT8gTMJ1xR!`Me3)tK6V@pXS) zpIe8E)3s#$eK>9X-u>LR+q%O;cJR2uJdfx9+#mk#qUWEvn19b6#rbt3JUM~i*{ZfcJ2Gy)%^ozmfcvb77* zz2k0bgLM8A4wh1O58X_#D9;HG&6!|P5#TI^_;*O*&+oaOoyPHc=nKq49|WXNn;-nK zPHT4p?+RlcW~`V_qX+9x<`w)J2S;ig7p1X5W{s8J!^o8ToHMpzns8@=l5>2oz>sV>VR?1{)=(_RX=?#zU}4o^<5o;_n%KV z^8?QVp5Y0JeGh89c7V}CcT;r!pR0KEd)N6-;(KRO&vD9*d%NI_c0B&@p0^rj9*V~} zDFXkfVfb}tV14v29;c&}pVMAVrM@jtACCWvJ-QxuaJ~6^ZM?qfi}bg9^YeL&svteL z+g?$b^_n4!~KIX@-vN#k?&`()!Rb7U$({XJOBrj!A{YzrVqL9=iWbkLPrKc^&1U3w<=&{=Y+KzfO`aXqo1Ax*R?9es*0~ z^c$2@5AEIjv{Ua76Y=coG@g%OozI9Jh{7rg6uyzDI?8nxNenFIt#G0?Mtt4*MABoIfM~{tqMP&&cI5ayg7#4kMRy;*5tDZsO~v zzd!PCLSD*%ak}G7UMloH))qkhJ5YJahk1j47wRTqoSeZmz&hqG@Db*Nz~^%OK2E-~ zcO3aVtq3?{x_soGquzMB}J@B0`3`WW<%D>UXrzhORJaVLImhhfmU9T>SC7%Tpxah>AP>eo_72jtJ+ z(^>|?-2K0k8u`7IOXdHCTM+<^@eCr;vi<)>4P@Y^KVWAJBE zmP$pj>qTw!XT0Khan}vxIq>aS{kd(0<7zm365YeqjW+g4^e$>2jcD{|5}oRWI~d_e zQhg@THSiJ?Vt5z$7ozlr_XjUQp@u)k>{Jf_4!r(MqQR}waxTAOfSt>)h~L}Op9wS& zvwRJF&o_|Q!LJYK&sZwmo$H@j_))royMGSCEn9t#s`@rDd;+~lVS84wPoVy){%Ltd z%5Ll@RsAtltIq^Fqw0^TSa@aCUU6x7MSSblws%(TgQ2QE6R4kRpS;57(DHqRU$@0k zfcng#MDVtRBLVf9K#x@W6*PR1YCoILrB^NS)-L{yc>S5{%L02(ToL_A$`bJ=esRli z-Ct@LZughM;y)Iva&GS;Hdp;A2mU>G^$Ab*EyQS>9l%$DC)*r44>8(bFw?KJ*3rh&~(do1Bt0%&_zPYUChI4)eEli2(Gghw0hnj{b)AP3p|9-K< ze}0WWeHmcK_2K?f*7zsUAK(?O){=iR1tY7)=z;2k_Iie*t6S}iJp-z;m^v8yf2eA8 ztD~{!L;5;aXJd~6Z)D*Xsy^r`NMFb5W$dxwjjX=Lz6$+!F%2~KWbo=1rfmM8zKfsY z^u!usc>TpV<*U991nqrP|1ReD(?#hygpf%h{!nWnV`$M0~e5Awf-U1lJU zE`lc!mSZ0{g=nNTTKgmaB=E(ATLOR3UgN>5TZxMD$QXd}yqLym4tpo?>ehJS$_t@iO~(EM{5R7!V?VFb?=<$fTsXbA_8NO6cts00 z1^%GDvYo~$n6=;VB?;J(SqBV%^dY`wW~FM5_B+=acUkMO*pujU@R`;TEJ(D-xxjv{&%cvhR4AEhjrcXda(a( z-7tI$b|o&?PnskC+%2&CaQ!UyB#Hvh=(=tE%VMf&W!*J=6UJk-3pYjnpuNVxp567E z;d_uim+PV7oxtucUczKge$= z@*jhLdd%k6(Z1`f%$lP;*Q5O>Sy{!NL`%SDS~!Z7^f$q`S#gHv2j6GqG2Es4Lq5Yd ztNu{X@P_ceY+=%o{04*nU==fbi0Th-86E`tA66;D%c}l>qYX(vQT2xknj`-EsISk3 zBPC@|qVK^ox+)w04B)LSJT8>Kk53^@j$AFH-#hOI*nhizD<03{v5_k-na*x#5dcf54<9_MRNS3rCj1 zS0a4}S9`-7fp>RxGW;gW>*wlf_$H(u>cXTd=^Ly5&|7n~U#3qnU%L8?GWO@|aq{6BZS0Lv-f35&vA+j?!G*1k`Xtkb@c-6@M>Qlx2 ziLo~Uui;*4>^YTvwXyq^eT}jAR^{XWB>%Rmd=#QS$ut-BtKvo?u}=c8;ofNMx6vL| z+?$R4DtHYyw#1VDI{fRow;B6c@Fwn^!jtL2NSt)J_Zq$gyrX-c;aSlYySon5 z`=H@#zz4ez8-5h&N4mc-ybA2&+(!*>4f{v#Ds3-Vb_m{@s4Zg&E z#_+93ztVl)@S?D`9wo`MEB{EXsv#hygl!28iXli#*sY59iNcpq$)0{ngXaqFIK z(kIczk8m3ca`M{`dsNVUJ04;l9`wL2&-dGV7WNOn2~VQFNS`&x=E*dr6j9Eg-%Wbv zS%V&$^m&eQ`F|LGs#041c5%E(5MW=IFD)(KC$hzErtDU zK8Kd2<-YmYssz}5tHT1*&+*-UD-EYQ`MEuv{3?Jy4SH(ItAp$PBIudTeG5-={hu2? z>r`4k?lt?G*LcGAwEk^!2XIQF#-H>4Rq{tm9K%wuaPZ%{JlMa&t@KFn3*pHWb%(G& zdMWWF(E<1mv0e#J_SJmF`Tu8l^VfJ5Y;6MV-D1%n1N?_$YuLi$q|d#8s7(N`@KM_I zFJI#x-VfXP(HzQ-rFTasJx#??M0bznQqv*MH?mdW>*q53+sB;VaQwUMTtA2R!_vR6 z$8G#Ge*%B}Gsbp)g~0oI9DaHz(JW7}wxfRqH$Z<2;Mo=T82fcx|74HX@E3~vgeTE+ zJpEYW3DF$;H+qNrZwBGXzL#_HuM>JQ8Xh?h--huhg z6Jhwf;HLw4^me>y|~TbEqhIKgw*UCm*hNvd7`2F@Gg{vWPuN*$;SQY=2+HX*?fh zGyM9md_5iB1zYoyL59gFZA20m4HDNe@EjxWa!v}!hNngA{aX5x#-GzuXlcVaeMo3I!*zOo2be$lyfO!Nh>C_! z^8J>GUmXs$`FI*y&q6%H|6lxTU};|7_)qecZi~}%oBuEV$uzYxp8lKslBpkflhAji z{5kaPcX-Rv@MH?Y_33DHq+~uIw3@`P`S8&9Bz-cajKkX&p*4)1`A4C()9{(0bu`C* z^d9n?7h2cYnJ*2kZ|t97{je&O-$~|AGBMv6+R*S;@ZS;IC=K5q+9VDCA~eD9h$nbz z652cszZlvw4gWT@mFD4d=*;(c3K!Z&?3(WgZEx&tZsIM9(2mB={HxF|VxQ!TRoADR z;b#*u9zqSL)CPDn$L4sCq66l?2cg|1Kg|nK4?DfGuglQW@PCS9|DBxKNk5jns{F~uUOo*1qsiT6_8GY3(U3(sKNp>uK^Eh5iwk|H5i%dEeLad*d}e{WZQL3GElq z9`2@T^UIW)Hr}VNl{e$eql(_UCF$8-v4FYpXG(&oPc^J#!To#=x5u@euiP<+1K zAL$l&mGA{N_kD@@YlSZ~ymT!02Z!HM{l($K?x4H?`@B3Hk7Iv?@fgToc1+7Z!BKOd z{enMjdTb%6en323_i+83{L`!cZSy(4`mfnjwx!MgcGmzd^VuN3q&M>$|63gVvDZU3 zpCIGe=EpPi#iNN^p*FuA^2Rv4E#)`dT7aXl0K3(?56>UAUFSc=_#gM_{1&Gve~RDc zwtb1%?dOxi!^ct=><4m?ZMWw~o7?rV{gdcIceJjFiP&lU!&Lse z49{N)Z|+9y*4&KGy>@zEUp()r8sYHK;5BVddc5SN&+PP6WE0M3X`kWztF4V9_8ZRc z-!zIyHJsniX&!M%coOm3LaieXYmWZM={rSyZaAm!6misWPTw=)grv8}!zr=Pp%o4B zuNX!+{JWp- zM_e4dHW${c}d%H1j`hl|k!kJi1_#*T|Ehgjp1lK6^Gr^DeekFO z=f5WZ@!)+u!qMIzBc8-eze_xG6rY^wp>RC^$NhRmrauk;3g?lDnf@~TZXNu(Z`32h zcOk#Y3(CQ^lGfk0-S;QbPm6MRBJOvAd@=YH$4-~w zKb!uM{F3Om>iD;vqaFUd7JdaW`d?#T{VvXHqW?4epyDpKnyxUO+E+pUj}A7xdTpW! z(LTcqA^(q~(-}Sx{>jn!XHWTq^uJWaTZ+*c46jmyd6><8Q{cZo+Hd&5YRn@H|4H#k z&CPt1$>zQX3;6!w@W}yIJ{)|I-{I4hJ;vCVD!apbqW`pt$!hGQ!P^J$#>$?}*qg=k{nz20 zz?+c6dm{c@q1lc9K=3By@NvsHeGX$^3f_bqUOpS!-!S%C;7#y^QeV$WzS9{vfBZAD z>iSOd-2rbxHXlzF-sk;itg$EU=Js*;8t_4WhxaMQ<;5BQMDQl$@Tmidy2aqNR4H#M zc%J}%41915{@GWt{{TMH<}}F{h4ZrUF?qBdyfpX}n`6Be3O*|)Ueb@HqKfA=`F(kY zJF+7M0e&u~gh_u*@wbfsm2RB=ZNq;DKWTHM zKMQ^?rld*#i{hn(PxA4rRaat48y*S%eE|Pu3ERt<^!%#M&jGyLZ+L$srku88{WAso z!+&Ecq~V^d6;1w2zU20-Z1_8aczx;c$*5xrcdtzi;?g z;7v$4;ya?^t7FpdQ}GDL^;rd;gX)SsiT)q1?mI54>W>5Xp^zSxL>wt9@;u-GxAu?= zTxcK)I6#!42!e~{z?lQF$DKZo$30R@%{2GSG&4&pM?XiJmPM9XX^Mq8f1h*DIp6yn z`HT1KbIx7Q9p~PA?!7L!UJYsF?_vG&#~ppKeL2}uxLyru~_Ip1HHo(C8Bnyx*R=e?=C z9WL-ST@%-HZq|sWyaD`&o4btS<4d4C2~I!{1~LB*7Sk3z`)l+O#{93q@7b@WG>*q} z;q;n`s=TE;_Q&}(lgMfC7&p(&rUQ{_%p2Trepz?FSw=pO@`*~OD$hnE4_7(v&ky~RVS8RL z$M0m7YVz%S13BC9MmatQD}w#md*s(@pntHx>Ar?H$@&g95%y0{-~>iyAO6eOWdDyTKbC{9 zg!msJUxeql*(;g1KR=;77*1fyMXXIbod5VARXK~s_1WeA$H@7HkCU5X``_Syg4`MQ zXP=W(;1B%CmOHp#UgC37L#$ zhXH@8;Te9WjQYnO;VnVdzot5W?jM*V7(bFZ-SZ>aD; zv>)L}R!j3btG}|m9}yso>6wN8DF>{k7sJ1KTPdH4{(VQRHdUYH^79`nfA=x|P@nsZ zwLax%CZNBiHH32RtJa2;`~AgOd(Xz2Z&;g>TQtM#`3GBZe78l&+`+h8+qzI5i~E0_ zY>}F~+Pcc}g{%wmuC{KJe>>2F^{~ZgPPD~Q`BTUfZ9OUf7sspqHvX+(QFEbnA@mfL;A*>HHE>9=uzwzFyGhyI^tc?bJ?FJGRr zJeKzq)NkNvx>FOzqE&t5*%)38&-c~%<@2kXq}BZiY4nd;5`;IZc$j|A@Mf)iM&K6B z!vnV}8}~0td_E*6P2ue`)7@ThqZhpD1^<)9*AKJ)1>JK0sB*RbN>^0tugV>k{jC_A z8ff}7>`)_jkH8_g9~krt`FrFegKkNy?d`U-%Q7|q+glKs1><__j2C=3=&mYnIl_xiKH|q1R z`rZ$cxpZleHw}+3k49xGXnr14k<1^>yB}0pb7@c&@&Kd$Ynq=2RTswe)h*)FS5w*Y zU^4%`O;)|2@jqsYS!%P7d-X+m7-13D8^`WF`9=(-Wxqc~BiP|LU=e)z@6F zPO#=CbsA{4*J-4=O`Rs1BkD9K=VJWb>)18N*J(-K_bOkWZ8et$g^?Q>)89_>^PmpG zxIgHZ%$Hw;^ddHH8ehJqtF%LVx{m4mljt8=r!$qG4(HYBLc{0FqkEkwWy=g>eeWi% z-lw1}+9UogyUE zEv~;l_Iz6yozbFy!2R=j4$8ye&h_{=tN5Q5F8#{nWwtzed!X zFNd$LH!P4=*BhLwzHxowVZb8Fug_%cnKF*w{CdT+fW${qpS=VcR z(`TdRFso^C{o*~!xocbB*WApyS#z-U1I=&xY!ycP>fK`WPpGF{#8Q9Z%YUcL)%7I) z?nwNhy_git_eZ7&!KH2%`LB^X>ompEU%{=kmX(MF{bBHy@SFy(tT(65aqwX z9`z5a;mhkUAItLMddv#zQO%L;Q_btF$Em)!{&IqHasA~B&5`Vs=5^N7R9{?w`I>TZ z{pGCYNOoTHI_tNxej%H-gkQhAK>2jz`rt*)4+AdA@=kVt7}^*0mGS&b3SVB|sq*sv z`xRMU-EWu1^?Y$X@~SE?&u^4Pdu?WY-Is#Cm*rhX`|wiGbvb;|9-LqQN6H)Gdj87# zKT+-vZ>V2P`D!D-N%?#u|Bdq0fw91<>q|T@SO1>o zgY_S1{;dALnorj+)%;rUW6kx0)eE*9r75UL4=8A^p|(jqNcwBu%qFOQ-1(=fkGos>aWcrJ1@uq3mG% zZP>4esPayB9BvbmA&2L%+{p4^Z-!)%@4zu`J^?3$45s{BIK|Cx7vOoikRg=60}nIJ zJkcH<5i(Td)ZQ8{%cKA3LcGm4#56@)DUT` zpVi;N{n3i1o57bjfQH`(cDcFiVE%m17|LtImqOf}#q+V0H-|5Um_DAz z*!LmhC_e-Lq>SlX-+*s_<3$dC1b?oK>H7rFGX+${>xKCr{0)35#B?nBr`-y{Yfoj~ zAHJiE;T0L%_ggglrN;Jc`dULi{z;TSfIoM0ZDaZ-QyywepERZ?cMqSwDK!2f_)>^8 z#=mJ4AO2LTe*pg6%`wLG6;eLLm_BI?zYzP2e?q3w@aMvh-Mrri_ZJ!zQGOJ*xY^T~ zzUh?LGN#Y;NZelz^>~}|nQ*?B>9!*n^J(CqJOQri<~W@Hg?h}OJP*$IGW|QYmw<{h zDSrfC3Nih;kU@Iy2Hgai{r z4R0`S_%7wk;GxQxzKfXN{D$jA4*v>|QO5SNW-cH82CBac&i68%g5$-ch8rm#0vEZt zq>Klf-S9oiE!f{KaPwwkdwHMo!^ZYvy0fvr+(dbzvA;B30o&)&hMOr5f>*maJfE?R z4YyF<1OC9xwe$J@<^#%G!IwfzZ@}*nP;o2ehv7>hreC%5{6ot9;7cK*FAW?lk&e|mz#IY z5SWWqR8np6{XjB%JSM+J1oNdnu2F^Sw;BZq27}ALV^u zmz#%_m%}e)_YI#^<>mS37czISh3C<~k$-N3|5bFbLc?ED z{d+(0=f6&=`fMK7haVfCR<<<5{-xOaD{==oftfyUET69_FE*Bs>CG5kvG+HWABGc{ z=|{%=o{@PWJ69k5%L1h_zg_V>-WA`oB8R;%=}tiYqg%djGv4Rg^cj8pzqw5Lr*I@Q-Nnk!pT48KFI?*8 zedrHa;&X-aFW^#gktM*We^us1mKH{R(@%{0-&0s0?^_(q`VW2^b}{h)FdY~q$p4`H3_Lv0 zw0QpYPs+vfucm7o+uL81H-~@pRmSrj*uKs;y+gTo9N+%#l54={-FzXI=YLav3qG%0 zvCy)kE8oA}6FIhbYe)1CZhl|cQWV4Rd_f60!|(%T7LM|*n*T$Nha;Mo3gbw29OKJu z@t@2WvHEqmAIV(Zzj!Qjhvk2`-kaUR^w01}H-9$~Z}D&Ogv#HBr`bi>GS% zmg;bc&oe4teJ=0+Z`uYI_?mWn#q;M>ehFOQYr4g0p0igN|HJy*9xm`TJ7wfNSv3>?nF4j-eV*RvIF4j-eq3L}6uu&cf<9S2!x!3si5lFrQCopMRe}hC$ z>#u3C{??&ftiRG&9%B8iOT*8>`dsQG%^d6j*5|vg*HiW7`W;N=#rhpW7VEcZv3@t8 zT&&-w#roZlaQ^XpeXP8`s;cE#>%}>!<8+}R#U<&z$u zf08|#Tn6rIk0I}b)9pRTqcQz2HSR5p=?}*AX4~Usj{8T(^e0fh9pf8i?@ReQWBmOn z?~3`EU{9gEtucS8(uFJv<1e(Qk?$j)VIN3dgM7X{oxE=mt`FEV$VG-T$-f&OOx}p) zx7t2b80)*}|2$0d8EZCK^k2@^e8-wku8QNwM*B$3VfN8v(O-Ft=32IKWZs|mL;D2H z%WQ9vd4J(O_Q{&<_NnA?AE1A&eVXQz_UW2C*&Ld?+Ga`@GG4!jeKzI1zx6r$Jk8ha z^EJO@b80ScTO?g*^w;idUqU(WZ+*+YO!EW#3eC-It2DQ^t&uJ?`fI1#*HNB6)B_hB zHfVmS@kVluW_Z6z=zE&8?eCMl@q2lPZqhu;zL^}l5nrYb-J*Gd{R8qaV|j1YeA2#6 zbB)lCG#A=;kbg9m?@rCv?7KBvL-%T)Vc$nyX)MqEnjhE?Y7P!Pta-luWAYzZpPGdp z(Y)IJ3Hk95{ye}@&1bBilKq~jmyI5zq1kju~)Jy zGRO10a2JoOGFR>KYtrKW@LO-_cD?bdmVfldUCm#-QL6dc8_zWV{f4K-Xg}lpfZu=i zXjxWst(H|Zw{01qIk9Dk=8-L1XkOT|o#rhqBQ+mw8K?O|%RZWaZJDCEwBPa*}}L!egWslGg>W?xs&mhM*ZLwl=GI~%2sPAw|FzQwbgpc zAC+fpU#s_|U3mBm@5gMlS(X?6w$)b33vj-1wbeGtxo@`GA#*&BGRwGLO8MzfoKLjc zrTLZChc(x3{h4Na>(iPeTc6XM*!rU8tkzdF?`U1D`E=_)G#9tNulaH7hng$4d8#?E zjYnB=zJ~9qV1BY%mlMYNR~GZ%zD*U){o2&lJhDxF&9mDy)x5UN8=7~v3DbPMO-E@b z|2Pmk-ln@Se*gQ~xc=8Bk;><<#qmElUGv!BOwCW*4A%Tk@Nms*gGXwv+;*Jix^1Uw zZrygK=IFNbH4kXJO!Jtw?`odic8f6fPlGZ2>)Y<8{L3M@AJKM?<{f18r$=7gcCW0D z=QH8kZTC_6%Wz5C1DYSTJxJv*p?^cuu*1?WmhA7rT814V=eNN3c)~s*ufhF|sIX(g z`2D$ig&mi4=ZVaNxBR~N?pv}m;7^27bf=dt|BnBP$3 zV^j`*jC@RZZB?F)$i?$r;Q^W*;Wo|hga-+uf9TQyy#GQyY5ZQ8{>kB{H(-44ga@ng zmhaG?dTDq=@^A2JHxFHc<8^o=k>mIn+Y9Tfn={~D;Y}$25a$Dj!kcOSG`zXybK!4j zz82m_8qZ^3e*X+_uel_=gXYKKoiv{d@1ohOU02N&+jY}ivt6v_Ps4j@4r!OD`A~R2 z@>|$`e+o;|{6|=d=F+e<&1J%~$bC`YFMOotpzzVsc>WFNAH!OWBOixnw=JUbWme#P zp#D6~_I3+2cWSp-bN6;GX`GK?cv-ENYYuF)f&31BzvFE_RF=VA7vNYnuhlu zwUfsByBZ$b?vN;t>k09={^DqNg#1q{4>r%uWpMvxv75#7eVEF>_8vC1{E8vUl%J@C5z(>d~_7(hj`%`N8hQDe54Gr&m+`nAN&XI4!E;sY{ zWrlj3r<}hZ)7@px@ct!c-s2^FpR|MNG`OFe=V1R5>hUcNZxx*HrR-#D+v59Q9sVbC zC))#W=x{+8^VHlBF{~a8p-qTD0jl>l}!E%{fic|D`fA{ zJU6|dA--?f;VR{88uRj|x4|yuicZULT>n4Q;d@zL{hrsP#q$AI%PWg~f$ay8S5(i- z{Y)191CpJG|xVc89ry14|`6H9!4q5Lsi>Sq4F(-NPX zl=JtUmb%%B_H~KRuavL7=w@uMyU@Oz*iq$9wj7?`@i$Q(Ie$KNV#nLEKKh5k(>wkl zbJhRxj`T^^0{sz^t;%Y7l3DkKc%HJO?$sUtrs20kzOmyyIXnleJPcnP?)X6Sale14 zd>Q12J4(~_!H256(f@UupK0Fzb+cKkl%lDc!fs)*F%1fq#c%-I6j=}_?WyH zKC6uDx#dUj_me%L@dd$ODr5NkQ)p-Xp3?AZ7=A{>`vmttFLiuQJ_TP>ruk7H5Ox^L zuX`tH>`(aeO6cT)vnu|lmiNojE|!D-4(XkA=XWZr<&!#9&^)VCCC!UFRn@$vQ#H-+ zb*e7yuxwk3=kKfmDh85zkZDsJ?if!gM@NNpQWL^4?*( zzrg+UE1gvCv}|q2_XnoM^P|cx%d#GP|Elb;bVPqB_u(hNKhp3Vmg3j>_G6a+8!mNo zgg2g_iU^|V>jzhKa|I)>LwRi@H+`-guV0t)pW%vbt~7_=FRMqn6)x~Kz128A*Qfjd zTZ^4eamc%PaWsLn!|RF7P$I*2o)Be%Q!Ok6(uGRYf$Ud>Y)q&2k ze{2lD4ds6s!*5IZ6AUjkBAoI&@SuoxQW$+O`f2JqC;FiYx$Q-{{3a*zI`Kj`S z=nKT(Kd9`mi23cV#xLK`Zd&{v(lk9Wvb>YMe~q^%O<$aV{(PRM7vuO|!!y<_Z{%_0 z&PLvYJkH2_l6{T5mo&cr6N~+uXK!-#<=pY)$!IUu@Jvv)bV}mKk3QtSu*=OAC-MDx zqR7!6U0VtFTOy=!KHd-Q%^IGjS5@ZjtID$(+qnB_J|2-o9&FT4)_go7g}m7qUaIEf z5&eZR{+BxO{?7x*d6>TdH@}JD2Y9AYJ_o}K@El0)AH}aHqzhyIa?11m%+lCD4T58p zk-yRu?U#rQS>MT?VSPSJc3C2(@#Q&44d2qBo$g53<(9vL<+G4wQu&dXUUyH&?;GkV zbBv$wZ#yP`N@HAMhvF${WF)JpA1#yErT$9 zcOuB_!;|Q*sf_w-;3pBosQ$y*ynZ(M*dRXrrf{2$L4;MMc*B|G5fn7#v z4(T#l+F|Llo420|$Z2q?GPaLD9Jt@rWsJz-0rl~{`pRR~@R;KQ=C{i@RbTGU$IJ5A zKcfF>+b*Vg|M!k=F8>YR-%gJCpnM(P;aI!Lv564#V^Tk4u z!)M`AWt@*3n~3i>`%jbg@qAi1zn)q|ehtSPGS2__`w-K+s9ZR^%iC)FjK3c-y~|88 ze?Q{*F0;wv{fKkO{QZbiyO8Dk5$DQWJ>OtjJl{ZOz0>ggLYH}>Jm&9XJO4fAlm7=7 z_?m8NE??@dvy`z#YTHo8q>$0 zzue}xn1(OTKcz9ey({_pu!QQLh6{X6FWbZC&qewBaDlJsYrA>Al=8pf0$ttSNnP~W3 z@|y1Wo@bZ!mW2S)i1sD1_H3;ec9 zJ1ou6zU~$IA-OZ$*Ui$6S~K3yrEK~8ZGL`W+SkF~2PTd6;Wy+9{LYHmz*s`ade)1IF_XWO2TDfh^8X$Sl1j zKYzNYa(3)>v@fEhaeVTu$5@Cm&bPiq9ujql%D-;ozxQQnm*p-)d%EIx#b3LQ*Jk0B6An}62H&<`u}R481;}Gg!?&jq8?NIs_^ot=ahel?R#sK zr#HV^$Xlif#{77ZvyJI5OKy((sZrkKXq?a9i1N{VKdOr6m%CP%c35g+|MODg+T=R$ z8Eb$t$qPJ^B7v*~Q}C@n8{MO=lRxYf8iGg5%xRsODrg4bKyF zeVuGUdmyH3D0$vsp0^@j!tasPwGH_{cu?0cX@}+IF?@Rrr~IaoD`R_w@A|Z({O`wn zdQ2yv{kJu$gUT&)a6a6zVJC8TCqF+ky?KD{oU^)fvA(#MFU0wuyZQYNck}xj?tZ>Y z_w5(_2CjE*jWVZaZ5i&)G`+q!e>_t6P4eK6@cq}Wk(!5h?Me=K%9n39^0}R8zjTcu zKQJ68t?pm+l*ac3a6a3wk}{sRPvgs@m#WXYJ>tKovU*=uysB@UpTtEgyV%_rJg*ns zSL8T9y$BDCPEzIBUvO@8DhseCxRIC>D3zmD_AanV_tw?_}5 z`bUvZj~+@n-=FP|&ZeC2&rU?=QO@^g`=duu&i7|0qQ_9q_aFPCCs5wjs6UBvzCYO? zT}XLh=s8s01^*B|SLS&Bt|LFby+e+LXOUfOqs@cej-F4$ z?+ppS$?NA zFOL3-%JcoRJ?0x}T<_S+_a|qi)$!yUSsYJHi~F1BWv=!Q%4+-nR^`U_KO#mMPkO(L z{&F#wM2_Xl*YDXemt}but7qg_D6ekhS7pA4otuyAFEQ6B-vhrJ^MlMCmV+pd=NZY( zUho*Kf1@H~j`m*;ye-BozX8YFBEO&H@C(@rcmdhLzCwGe*!yRhJ1kf6dy>(f=z{0l z_Qt5($y&l6#}w1_^n~yF{G!Y*V0b5Dl+hCaJ|FX&9KMqsgm1*$mgVuKL|+f~Am$F` zdtes(fbvfGJuAdMrrZu!k9|)0P`n?fPORsvy!FH1AD9fk9{Y+g&d2uScoP|0Ugmh8 z5FDe7`P=jm?=On+mgR*LVk=2I+4LJcuPp03*%+9``pI0hhx*4_$$Wbm6dOnu?WMY8 zu|3t3R_kXlS*)MRE(_nDhR24;TzG73Lo(l@Ywmsp`i!>)!U4idk z+FOwKBggyT$+eK*v4)a+&%p2D-;zA266W8(6?s@Qp0_5yF%Qqv#6gm1(~Q+c2F@&4u5ZdBgGa4eOt z4*wI|Q}dJ9UR1vgmUo%Bc>Bt{m5g%D-v+9{r@%`jbQ!>yNU-l2Ml*50X`V%UF1p zoB8=+kzWes{QPj1n?KCp^;0Q70MBxBKGvTizy6eugJ-$9AKI%$egh~U2+tzBEPVY9 zic6C@?jIOVSLNCMl}3Ar9EkO2mS2|U#Kwck9a8xD?GVkg{DzX}qW@;&xM9+2eHu== zXdg=BdUfr}9_%fTY>~rl&|fSjE{7bL&Ydgk<9<*rTz`qnlR4fuQxomYxO^&q7wz=` z&ynP2#_&gxN3BEuj=0fe`(eh0#El_G4fS9-abtzC|9bG4kAEC_Ag=ev#EmEK!u~BL zZUT8WexI1QiR3Lt`M1bR|Ks^2GVl489ygi%)X9fGmAo9+7h~cIHNWLCjm*zq(&LIW zkBoa;^SC&N=E-q0$^3jLJ#Lofk#Tc0kBghDd2-x4WMAyh(&OfnzaSq{ZQp2-Ug>NY1 z`W^qi_k*~{DmVNn?x}Pk`|%pyzZ&;Uj^D}7!yY}JQ~B)x#iH;e0f-;3yt?F-iVWCh3qNDXYEl|=1z7OuHT~^m4A}O z=kHZDJXSWHzwbvH``>|B{;&7&5jpJZ=fT2yR3g_~!u^`6Zwbfs_BVUfAjiPn-JE0O zH7TELW#Qsa`>u$pua4S?|ota1>mXmM-Q!Zk!&E)-Io6GuQ`Cm}R`ne<(-#hB^x~%VHyB6^F1HbAk z*586U{QiC@`8DLB9;OGrkpGMGLHGQ>HM)2B^ZV;&{S|Pi=NoeRMEmM?Pt&}8b-QOP znXC3=8?tCWDmyIKF+a)Hwlc^2vvK?{@iBe57hfLAsy(Ibu*}8$n7PB!6!UA=Uu3x! zhV!eQsyyE32mAJt#`63hTum9z$F!f1{&Bs+#PlF<4%h1yE~jr1^AGZ1O?tJX+y`#m zs{`c&as97LFMd^C{2smG?!6)?zlr;m@x3}zei`oH>rI)9mY=fPzNIn0t!m->)>Pif0&;PD?$uKa54kVw>Xo2| z&pM*~#$Nq2zuG%RmUmbN;`(^C-UGn) zeq?qV*S~xAmd5h92KVbdRF)U-`_Am0Er;)9Z>3;=)H_EFPaY3*W$t3{)R~ z?+@ao@x4>-_VE)bKZfluDtSo;l;=*4pDyiUV{yMDGk%8VocLLq$HdRo zJSF}e&9ma2nxoX?!o^eDXxRG{*POM!b(K z{$0wi;`+XxQ3B;GaUHKOjrPmh zj~Q!`uus-^GAGY=O?cIg!Je4nmU2ZtTA5 zas2-u<%{8bFEVTMiU;eTa6#l4GIwUeMOB{FuaD!CGIH+Bgi9*7tTe`NdY3VN)7^~m zU#9YdjPaA%RviEF{1)Xid-LUCdL^9iWxB)|-xVtV+!&wfI%q$HdR(Qv1)T3?I&2>w z-}jVvh4ED=vL%f#&uiow@K_IN>fdo)=7nrL)`!eKroV)T_xXYH6}49`RLxkdR#cvYX$Wjea)GDN;Dtr^FZ_1KL2Rm7E`Kua-WBq7x+EWyr|D( z&ENESs=0aZXTmss&pE=|H_yrYaDHLB(3roAePm9*7xQ7ppK9-rEqwdJ-3FCg`1X~6 zSA5Izmcfg7`_h9v8jfV9JH5^Gmne^eBbn)A{djxhWy&wYc;6j4Z9LCC$@y@pn|I>+ zh{LB0XUd5j#|Pe?5A`(t2RzopG@ss3kMdNWPj9{#nH4SO<-JwThQQ?$UnQT0D=A~k z<@QUgNcm-W1gk_Y&~3@X@gmfNa?4~m-^=uPw6_+r%BsF)9*m=gFxrRWd5J3IMKyW* z+VuYA=uea=jqgWq(k#|Ld@ooI-@&%x_~y^5%HgT!Bc-vvzlQc@vA1b{{inpoG+#fG zt*XAuQZ9}k|5T3tEYmQ*i7G!?<_NZbe^yP7?_`-lIDdCH|Gv(JL^JRBC(mn8`My8l z{(7S6MTToq{#`7e-dfUXdsF_&qj)SIzUgYl@B?J|pFElv!!te9u$A&f#`N3B+l}#= zZez@kG}?oFdKNO%eEvtcna|Hy4>RZUGu9(e3?KFR^0=88MDBHi*RMzB%a1JgH<2o* z{ZD;a-pRhg_1J5bOb;K5>pzJhl#f1+-#4+LFxEW&J?7S)jcI%*;QtbvQqDcNa&t0& z-`VrT7F3?UPpeE{JLTLJJ>MWt!1(+UTT=O9aMix8Dd+yzvn}OQaXqYtXBgQIkM#&A z`xwik9of2vFCS@I9+X=mTk-ADbPqV+i_9`{|1RIFy%-+a-|xXS`*t87fNjcXU$26L z`*xJ$ce0NRccSSTHJ)FujZpO&_qez&R6Y*Nb6i}cDsMc05KytJDsM?!&inI7V|oMV?j6%zjvvpnz|HzfWBxPHAJ;o3hVmr1 zSzl?aFTKX|`HNNKGdwP?2RSvE;rkoCH23MNyMNz!Eg#aiujbKx`%A0sJ4+b*E8hS8 zLSNIo|NB)pXZ!Kv?O-ZD8ctx+*uRSVg+tWvE#iKmbVXbbILP}K43+f@*<-`QsJyrz zIh-u+M@pl967Ekf@XMz9xrTG39hM>U`1SK#@&vfR*YsQ?&!c>`k(=&3nAgvzJP|JN zHQmaGAMZy{9toGaS@cgINxA5sZaOL&-%sj0it@)5YH7DQ^lVFlkJWct86D znHREqEph(QSlMCW-z&P)cOup2-z$3H=6^Ez@$W6lJu&`LH}n4EkNZxdocAC1=x2IW zF8XKnn@sr*xPqIft}>pdq1*}Mc^YyrBcDnhYUHNH^Z$h+$NWx?#PzJ^(pdfla5J)l zT~5RPw%;^W-f)Reks3amdW?V1S=q%pR`Fo9`c0R)%QC+LZ%@r6Z*w>H7rpuT`>EW? zqWSpAE=!lSc)xYOS!(>UJtvLh-znT5xTbRWF#K!3IkLRVa%BXrU-X+xz6bxKjQ3?M zg`f1BC#TP8IRG#8Rd%tKH9VL{(mOK8`6XOFX@T@2_Ek6j{U)c%EuZ6lQ}0*};CPg@ROCn|&*xsQxna^uX|?}cC9T?j%If>&%7v`ryS)7_jrsYaHh&-3YFQue zqqu_WbxCW4k?(-xlGaKWGX6fXES#{aOt3d+Iv z-;yoDcz&Xw558aE=S_KY!>>v^*dM!azdgBvvZekketzsrZU#p()6d`J$HPi0m+x1W z#`yUAGdCye-k)4el$ZJE$u%{9n_OEO_g}xj_mY$A$l>GuEBs4x11jIIjt6^`++1^+ z6uV}hls9DkLe>N2eNx)UT=-FPJI!TMI#PZ9zRH>@5tkY2yG7;s`|3KS>i#VC zww9kwy`%Yh>I3pECx5>X^A+2(lU;@HrFuvgvISJdp^zmn$0 z{a@4EroW$bA!~#AkLvF)jPKcRn1 zVGRFe_(1<~X$SkXK4bsu-nimX6*SvnfFwMIMjL`h)fU%kv*xu4S z);3l1*8_?)UmoBP#`N#T^!+$srnG}i-Gu(J1LjhB?w8Y+YOa>{uI2`5A7~Cs+oic% z+Cj~UX-73Lu$>S_f0}ieo>HGLDL;VqJ1y;$=Fw^2$nsA10rE*{=P0j?>kD66FUlP6 z)H*Kcj}qrB^CoNuMo)Vw9tUzRUqlm6oS(*Vl7 z(BA#fZj(9M2kt9+3<;#A-`Ak|vX$R|%{d**9 zOpZ6)gzC>}#Mqx{O{xCq>)b6UpNIWtNm?l7?J<0hfo;i|KjQxIz>ZYD#Rl%q%JTdx zQrQwY67Q$*Ccls`Vk2??xAs7p`(Q#p?&`0 zz_b_Yr%U60^@sd=t?tI@gDB73j^{_y2Wu`&ANs=Zh6!W*{Cn{4q$@9C^Pg}Jm$}1u zzg)3*HkA*>{%EX+=?KF)l()zI=Ng{5R6oncuaD%B3*b_+%Mu2MdgQD6mY#6Fm+8Oe zBljFZxz_?der1Q{-<^E;BV}G>aiD+Rl5}Of|M?z&Uzq8D`*{CF`e;!e_tU-pX6)Vc zF|xjsJ-o}~euMMx4cCkuUw3jMxlwQQj8GeuK`!Vki_&$}doyhOEZ4$=y z4t~6Uo~Sz~VhiQNaeckD=T^-t)3=d%`=D9IN1ESF-$~}}fmRv2HSbE_OXkP_4jKD3 zf0llb%#Sxw8HY7rNIyd6zkiR6qhx+O?VItb=JbruG-qdgu6b0(7t(0|qW-n?Q4c20H9IoSXkM6cPV>r)Z>62a@%WeY3zYNY>Bfx9ns;Pe(fo17_nJS?xGwE9j>mV> zf27D&eFPh)-xJiB!zu%dRUo}5W|Bd`He!q(uw=_Rb|DF62 ze!puOw>5iZ{6TJo->*31PtC7p{6(&A{9bo7r)T`F`F6&A%~di=$a{_7=YeKN#=n~X z&UmP~M#g{S5ytQFNb`=2Cz>B-JkuPQ@m$%mCcpy^__4~&_;Xnf!(L=@d_(^OnG0VT z^pfTueP0&F{g{Qgo_b@DCwVn|MH$zp#ruZJsQMQ1z9G{)u)I%o^rHM2eAdmq^7;Em zU!i;mT+z*ECotp|%71|?D&u@xd_SwK$l?7| z@x84|l)r)F%l$!BC>P(`szy2g-qy20e$wiDTeZkNF#Kh<+GO!PEh|}kPb-KlzNb}> zyuAeTn;AkD-`8qHZie|g7uZ;s;dxPvZ%$;nVF@H@d7vJM*K{@{(*Zo1SQ!c)@ z^#|e1+ylp#rS>kunBOxvo@U!4W$t9h;QNE3DE|+xmD!E*Kj1oO@e*DTzr1IP?Gm|L)1pTpkS4ts!g`q#JXMgg&w*2{o zG%|l4Dm-(bvSq|vem!%LGW$B&1NU!Cmz#;>Pi7|NPm^%{!kVQl+gF3hUb}evO&Z77 zl{jCB$s8hcJU{#?W5+UwlAqvy>X(_r$sbuUkT*-7|Q>E z6PPs4cg6SI#)@3}jCDMj_m{X}ov8V$brM;8&uxn4Fnb|cd=IWj^BwEkWbwVX8JcU^ zW|77B+~#Pu+vkzR_u%GhUS@NW=VSl*d*&j|wKA8G%T8p-mujw+xtuJ%7q?RLN&9Ne zoos70ceTAMT`0d7w}J9aI3C{1d|&g^%*~q1W__T!Qr3skg^brPm${vC@%_1-n(=)! z%`e&ZYA$cvFRi{mcaU=N{ke}dKd^tIxtZ;l=GM03((3zjCny)+pZh}dOO3xI^Zqsm ztfw@e3p`C0-=F(R^CCS4NU_VC|-={mT`K0}Snrnn!)Ldx4 zL>AwtyR7+|{R(+Gey^HY-)pXtc}?@Z%i5r zJWJVO`C$&mSPb`vE#EOyQ zi{az?hliEhll(LCW?jmVr(k*lJiXNP$oYLm+R6UA!PwytX^j65!xk#PbQJIJQkKfs z$Mv_lS>=RL-Va`yuFzs{Ko64_K)== zi}!QXlvdAc)h3JQwUovCHonUWkh$>BSvE3%ztx{vL1g|ugNIpl$^7}ShgtQd)%C9s zVf4pc+nV=RATy6Ayg#1lpymAhU7GsmDU0?-gTcBd3~sK*Z?s38gIj5SZ*V)!`vym7 zJ~=p27{A8=Y+n}#N6TFG59%dz)jvoY>*qN<&vV?bH|1ZzXUXFG8-EXum$}1I7x&M| zsQ<}OUSH*fY%hFP8Tog{`Ah=Ue~9H*>}~o|F1i2=Hof&F^lu?M*&)<_X^6_5Y~?%L ziDGyd{yw-|L_aeBo=1b`(m4Ow3pXR<{iR_zpQ@BZ)3dcB?iaZE$uccxH+OijSBIG8 z=Z@#^&q-1B**mlO{!1GBtLF1?e;`oh`2MfqR5g9y#HWDWh`IbfAHkcY&ks9fAHkc92$OXveEyKJOoDnKhrsQ zAK}nEashmST*#UP@%hP@c_Hfv?^4F^FV43|h#VH@+tQdm@qL+*RR5DkyuaQk8sD@K zzCMm7&xI41>G=(e_BG|pVYIKwW6OB3?}v^d&w+nZW<_io`s2OQc&yBE{DW@|m8Si} zc#-3LWOOjzCpJtP+jACNW!MDD=Nb81G`uNBK8f;sM|k}ylz$CZ88(&j{rhn|7&eXa z?eI%Oie#?#cW+CJ?{WAuY1|L1nBc+UhMTq<=ZB{EJ>=&%4mo@W8#0A^2Kg)G?LB9b z1F^qgp|i=M@R!y(!q}ds;rdsZ(0MY)@`L*fe~0po@UK=UM1`DDLJ z?~!-Gy(_&>eiQq{-@G@IYhih|_uNAMbv*AswpH2Uh2Lw^aMM-bA~&~R&)XLtQu#!< z)HM6GGjGpqQ#qT6`z>y^TtCj&ca`IP@S*&8rtGj3z2%Q&}+w*=oJeQ>w zj$ff3reBBiy-WvU{p{250F`eGr| zH{dF69`QRL|8dHv!liDWKN9`RvOlAI6>M{JHSBL|W}l$EE^Kr2G9&+-^7oD0^d2KW zN%?UjH@(Kr+ZSI@z6~z$mB#UHI=1(65nsx@kWGY74wc6K@}(9YtPMLQbG*;0Iodbb z%4l!ne4@nXE0N3f?W$Gx(Clxtd{p*%X>mN5oP9|S-(gv4oWEU@7Uy@fv!!u7%g6q3 zd3LcX&ywJJ?003kJ=~UdSuSAv-IQ&*KFX6Ze*kaSA{!7$H9u0q%eNPV0 z$-<1hg!1NoxPF*jN_i0czwG}ge-?-BEBmSDTiMTKc?aY9y=+#M8Gpjhvb}`S-Z*8! z?~_xWybrFN^D3491-9l?)?6;9iss;)*ECnosVR)%f4A9#*>h~n7du&c?nHRDnf!uAWel7GjNMPYIcd`ob zq?~p%Jl`%J?CqQmRGxcvPG`*@6JuZG#8COOSRUWz^wfMU zC&4U_{ANyHl^gBzXE~|TV*7a|H%;Zn`s|xKi0bq8**|v(<$Qf^oSQ>AU!VPR^QFb_ z(<--s%JbhVB6lq1e0`0{9Y;BLzubu`m)q|oW#ji5oFh%Y*A%KRey^#jyxe}J<@P=( zSLI@Vke@qUm1oz(`Tl$s4UgNO%~m#+*Q8u&?7vTc!}nM7sXm{-Dw)!lKC%8Tpj@nv z(#Xa7=%k#_|E+9ktx zO3VH4q}+9?zA^u<-1n%ynE$P0(S9Jy-%A?PE2d|g8lGW)wq4d2<6obvEarb_?p`V{ zmd^n-K4bn5=N_V5ET1Ek^X30}?orCc@AE0;eEFZrJx;m!eNHGF^E)*AbIqf&PpSHr z*~anZ3|Y)SS?-le44NS56K5c^Y)SH z=|=lfSgc@;E| zwN;XS+n9blZ>{BT<>|ie_nOFYKHF&x`uBxbljZTe9NH&utNC7DJI(*)b&z(ln%B`k zFu$uX=I>RwMSirji#5UY{Tbd(mPh~3f&6@QN>WryV`&fogyC(GPn`3fGSO#AZ`k;50Te=qeh{RHoSEA~#M{8e0kPhh44Yw`1| z{*?3m!SH<3yWkOSK7snh-UF!ox5n^H_r>!z#olR@=fDX}*~$3%%eef3GRO5*xG+Cm z7|TnXj|?J<^ATyx->@ot_?a~Pac}}NJ!CGQpDfA?-~?v6r*ZrnO!+`#d70ji^P4&O zLnuEDJKg*)&gV;fhEl!@E_HKQJwEA?MxL3$+YkAa zC&GV*D~o(^&IpmCe7iV4zEM=Z8T@CsG;;ntmOmR!`D^f>;nFz&%0qv)nRN@)@GSrO zyBXVW8uGRIGKYUdzBYf1D$gbx=VxPS`1$ard}W-!?B&-t#>?Dge2;lY{si)?d-?R5 z=HKsG$R<+Gzu)6h#{8_q_49HOZ>gL)(SBT(uk2)t$1wI^{v?s3{5QD%wcAfw>`z1T zC#&4D&e$JMA%6tFm8a}vm0!pEszyvzxp92hKcZ0cXCvO$eAPNrnBTv^@!{(cv!xxz z_n}IC=Bo1Ydr|W!7w_LNy&;1Ceq_tu%Zy#|HGLfZ(an{O{2etsOA{kEeQq`HuQi|Y z+wfUs^uOuR2Jg!nu|Q5=AzQ-t-y@u|d=bn48P`927s=eg_F(#Mj#w;nJb!@v?-5HV z{|x!xBV00fSpFP}`XiQ-%M3$*BxS6Rz3_W&^IN9sTSghbpETCLuJ9qh<+47WPcXcK zhBpBBU&@SJNzR4KySX%<=c_2MFoNf%FQqe9Y2<3kZ^PByya4@mN_^H(z7{TZ^XhML zJ$mF?%6G#5+D!i!&i5bdDEDs1_b;X=VtEyNzf1XiIDtvi^|bXecNy;s3#e#1G?c&p z%ygwWx)WY-=NH`M1^1t=*N=F?qhIh0_)>^D{#!=Afu{GVk(<6?oW5u@A3ZbrX%2dFVj=1^5?xbiQ&=m zm&W$pd>Z;&jWqpaDz4{`+$_sGSv>NLkz3{T;Qfj4$dTJA4=F_ZaO6(PYr;!L?j_F~ z&ZqyNbRj!!=lgqQ7vt{-+%i%cdrI!do`+?57yD%+o{t&%u`qJ($DW^1-f1y^9^|OB zy1##nES|?zcCqeQzaD#jN_k{ge1C4_@&9vo=Ycs~ec!;(btU1lHHp&NQnA*)*Vdva zDOwa!`%+qKt%(pxNWx`Fs7QrUT1#oQB4iarQpCP>p{0~6U9_c^rbYGro;m0Do0+S$ zz3=CK-}iZ*_+xyo-#KT_%$(WIZ0ulo7aQAKTz`FU(ry*U_@(c7@73v(L@#6f`Rwa> zUZdvFeVkrBud-jqsekx@cB1&;b@@JfZEWwujsC!cIzL@sH?6L(lhyZS`%XTj(ubO<`=FOA8wmEz9WwuPPsi!{fp}D%FD8lRd*$;h+GwA1 zaQ$GSaHu$rhuh=&akUV(xQgS&+8)OH+;n;>-%C45Ou_o{i?`{jThSlr@Ydr`5RbqU z$-I5>(fMP=%DPy7#ZA8lHw_^tiV<+DkV0HuU&DoU{zNek4hnH`e7fPHI-cY@`UAcf z5mH<`RzzU=_hHleLvb~K2Xb6}FJoZHLpp!HP|L?pJ5hXt^NWEY{#?Gif9GQHhuPbg z;(nhH)AL8m=h;lJgqvF8&7yFBa7Zc6-wB>%@$N-(|6H2mC*cB%>tSJE^?iin&EZgg zZM45jZSj7JkVjP<&To(NqmVM}zMbX#F3S#ugF?!&*S5p=mqIGAa|}PmF7h0XXF~$n z)!o!S#WVD(q+B%^_8lxqVdE@g&!1-0xY@&vXQQvZm=6+@Da9o9^OYET1Oe_?{>xeKO5Dx`Hpuznx7@bBith8BVgeI<6lt7EkE%XnoT5OA@`&-#wAyaI074{YqxMgoo?f?dk$^`MCe7 zf`@M|#rs>sxIC9whUXnki^1sMolvMLO^=xPf^;)o-&ohWnezO!IlIexwEr-&Td4NW zc6lF^@4qmu?yn=qy43#H^eL=A{R3O*^6|Z_rgD8UU2COm|E6E%o@+`W_ngls0W2TC>&quZ{Jm$T_q>?=~t9fBU7ppYLh*LBtz$ zXv;ng&j@SB{^TwA?WZaesXn#S_FpIG>F8T=;0%^E|$A_|veidVERZ z+XFbi3hT!4)9}|}-8sH;u8jBK_-pXjVLds1_f5PXFf5qkKfyP{dUL$l2pR9g@tW|> zu)Z9xit~%#!}_yJpnhQvyT?u)V2e*EG|1+KQwOsjX@u+5uAw$3O?}Dci-m{V{MOW$ zmC-()!t#1|>IjavLVeDLjp2BG`0KE-9Dfu(8a7TF&x@k{91R=K>A#0R4Vz#~U(tJ_ z&E>o&v8$o}7Yk3e`5{+`&B4<`wedYKw8!9SQ!(#<@{wZzb8zK z;CN9ud|DL8_hNe7(`Ir!6J9hehT^VFtnVwP&0_B}JX;o!;5r!wfznf z2|AANBjWgK#KVhqJk~YJ*j^>t(iaP7i&swK`P%R$6c^vk!TC@4QZBF9a}H50{0$wa ziT4Lp^g57IbX>0r#E#xS`>vFgll8@-8~~j>+rWYzT`BHkHXg~BR&Tn7QTVw zPb2;G@DDiN2#ycmq8%*;qx`kune3H_zaO5({uN3)+Y#RpzMVY_jtbbx9*FTr z1>~@U4DVv^#Q35Da+Ptv-mgagT%L~Od3S8@_Jo_R0)HF6kK@hZXvZO)AN`qFUIF4T zdvqTx?{K?&gdelT%TNE9-Tf8ZKOKIG-9G@|-wpqaJpt?6*6`2S-?qm4tpm>3yd(Sz zwzIs9pJTVqkkk7myP@Ip>?!Za^cS>aMSJW&1H@MpcSYm)Z`O2eEZ;*o-=0rKf0TM( z-$j)k@#hdPF-#lr4(K0SJ^gErPsH)+1~U57WP1+~m-P6Ogl}KmuQA>3lheQ9{FSi$ zzMB5MPM;|H5*;} zagXEO9{szzD``{5pI4(Udq6Ehs@XUyk9G6}aQHJA(aX;Dn5f!x)g!Jx+8k{}{ z{vx80Hr>DX6uZaE4&0E)7Rz3f$D5|-`&o?l2Ueq&%-=ThIkw8*%`oo7)Yn71YtIs?%^l)}NNu#Aci?`JJve>@{aYg= zdn+Tp3!V_!hrJZ-JK8aTJq6phXvaWy$Z6cKP<;?v_Gd*q2D2w%e--T*qKx&=3+r=a z+2+D(T+&Aoc?G>6kE;j8EiGbXR=pf{kRz!&A!kS{dtiw?0c|?ieLH(}!n%)hE`kSs|#1lCEGe(?D?QJo|b$c_d+8deL8yWixtp7p6bT(Wg zDp8k*=M&%tQA^l`X3OVUlMI{fZ<)4ge?ek7TeiPeQ7hQ0{jKuI{}#uM?M>8bw#?r# zYAsvk-{6t|U5?BA4Wc%(W&R#f@3U3@WRLutIWF^m61ase^AC(lWvl#|h6T>&KP`vz zGw&>A5v|uJZNxw9F3&&BqM(Ut$xY%kge#`oXSzNCjj(1}Y@c2}J(m}3&;R|RlF=X8D1BY4M z=PM!R#2ixTxqgSWseWYj{9i(hHug91=#NQ=IYQ$%o+k_tM|FO;;ie(let3Tyj;EW3 z9OLwb2FUq)T&Jh`L!PDAXR_PXzPS9pv+2I@JTl5}2`?&pLYI&0+lD`)`ncv6llebp zuZ8E4k$(ofsO%@4f4SjLb^2J5_cZRmjX9~~cwZyDKIRn1FT!atr#b#9oD=hfj=Np0 z@w{Ga*)Q2$;dvGpAbo7v^Bga3#7)14^OxAN7dV~@&$D>kqcZ*#$3x+H7QZ`Ken0yn z$J5|>7R&DqOm6=*$K&C{G1{0v^7{jup1-8xaIE3Woc;!$f1KR@8}>s+er=@x9`Q}j zf6MuOjQrnm`nuC){k~^+faj5szbd?_>=n-cl;IyZ{oA;ndbZ+^?DygGm9_n1U6Z~> z|5C-DbpBY^Z1{X-ZJe*f8|km=xbnv_*SNeEYaGJA+;ts~77gG>$vD1gxLU?iBPVfxR++|+S=pAEhg^9z+P^~3}0S!3)&qn%&w)lwHChRNqW%_2EJ`3&>+uRl(5&I;v-@^v3nWmpX2l$jr7mk;v-_a>$uw$jpvQeR_w|CX|CKq zvBev=F?wP8Y>wTBJ)DC6yaG%9w~hY2UR1vEe!~f|+E_o<8tZqkjz^2-#`;Tki&ELx zKgIT@{I0Xj<^J|X_78Bd&_?_IxF3#pV*9ALxa_E25BJB%_SJR^+1`d#)<%0tgX_fh z=lFq7Wqgn>AMcZb>%B20`@Au~hLc@&alIMu_hGk(3oJgpK*nEIaeaP$ zzB2i8k;h`tAMF2%j$d{xTPm;Lm>x7>4&g?F4}$)$Lqj;WR&j%=Z~7q_BmZ$Yf7BGt|Bc}=POqNdpUOUf^~N*g1QKwp(0y5zhxS zp2rX}7$8!48u%Bu1%~X6ZVfHMF<69v3 zUfb+B+R{>$p(tM zKEU;w{(+|R;2>eTL!i7~{w}BQ0~c7FQC`;fJ&x~#3)r!)ibnp8Iv(q~Yos@Q@hzEO z*__{GHNOMI2S$D`q2~9m#Z2q|301z{UiU1ySv%i#8|z2^z%ANpc~lopIpCF!m4DTy)=V&L1 zcgs4&+aix02d9hO>4AGhgYkwWap8(pwD!C#W7 zf%Baq?&Iv~@8bAde9YeVzC(<1f5L9`j`XMOdhmGnN%jKd|52P`kK5o7Uy9G!{a}B` zY4++s`N^0w?0C$d-|@tZtevc%bQ#A5b~(7R;}UyyAl|PczGchw>Ee5Byf5;&^iLd@ z`P0R9_Dd`9eqqNiHWzag*j&r;t2WKw-#Gp)&Zj2|)4|!Yf8KP8;oF?PQe}M4*>Q*c zW^Y^{blhdXG62uxi{II@y(Ei!Y&m_&!ck7n9XWsG^dt*!_Bk96B#XjqpMkhuE{d{C z^pq~fzSke`8+H_D`(l6Vc9dX?e%M|){n*R<;Cu4UhuLHM;(Y?nN7%hk{tRbX_9n!q zIxDcxBmYEaMfTc$INo$tW-mwnU}rUU73A;gtikSy^rM}%*;f#EIqR`!qkN~c0lP2a z6`YOOZBTwoXA|}th&ORIWgkKQdd}wT*ZQHoIa{*lApaxIr`RQse}JPkyDie!a6Zj$ zf%*TNqaAzWAYA2ebYOph_`8m0**y^d)X{|XBd8}*aRdl);%Sl+L&PC}kA1^f-f`^AesXy)U~e*(_iOAH$Unf5zxwzF{oy z73>j+f9hDpUT7@u)$Dl0&pFny%fi)Boz?B4G=L>aG4_6OKrH}%S5KaKPaytc8MV|!oAE1O*#`-{iCwzF>`e@U+$rjfq5 z*G~2olvmX&hn))-^4ewdFV0-{B-C$>^F#JQl>e=BH+vxRpLXtH_rmxNJNL4mMg3Bo z`D}m0Uw7_fmqPh&=YDn}q|b34V24NI`Bkrj?Dr4jd!mlRZ25fLEcX$1>9=t|EE)az zrz6on>^`dEaLIep$2fg;c)t5M`{%c$PiQBK21{^%hWjJ-bA~@Q(=V6tPuLY!NPo)y z(ukjA7ct_e*li7eri}i9cF)NAea^0I_%wT6M;SlEzSmy*3wF=vq|dUa8a~JV$ncl! z8-~v->+_X!?h7{K{uS*6k%;;AquX?iVK^UjU*x#|Yk2>#`)hX9ns^_b`x3h*?)P@i zxvWk5_it=I=e9d=&bPLBjXB@j93+0U`IEq($gY@W^8H8G*i9l}X{F7Ra=;|mfuC~mlo_f4B8&-umX0P)*jI>?N> zUaTVPciWb}z?bb(^}D0v(Joa#vRWQN;x6TP)pN`8e&_TZ;UGb#<#&(L8`D$Z%hu!j zgY&ELkrTv*@(z(ZUz9fvuW)?T4#$s|3OU$44LjMh!sYcxFKs#=C#(9Lm~Z!)`9*Yk zw<`kc+YR4h>=?Mf;&dEe-|#KY@$GPd#V_Od{)TS}j*o#0ELPw9eTd@|?qYi8o1O|^ zvAFM>IR2mS%jt*0S1iuCBhQ!oIKB@qu=uzU_viTMM%?sQM!Y1)uNZODRWQCAz7KP} z4qRaI6Gprg$6Fh5(?LeOG{?Ieantg8*`@i9a9mz5yJGS6ZF2rR%5m>(Ie*w96U*n! z{4x|5Tbnt=_4(!4^8K{G%`dM_&-+x+R`-*OIMed^91-^zr&srn2eQ@kJ(aZGuD)1a zMdR2;`#v+DEo6Uh(YPu)J@ucOR{f`JqrdgieDZ}Nf8csgxIf!*9{aBVL00X#7MD-Y z%T?q0sr&U!ciV^eC&X3fcptbqo1PbVT*uY?=@4gH&Yuo(HFccsx3A4s^NZ|ut;YRN z7mL?Xar8e;gDZM#qrbhxCfPq!m*anYAfKPpM*LQ?jMw9Mm(4P+jktPVp+3jo#r?hw zI%p%V`db=sygd3}A{^R?51oSdC&V=5cvrYvoHpVUUy|`gDh@A(d&OyEdR9ir^o==x zF5EY+38z2TLgsJE@xpCndTo?9e!X13nsNGAxPXlETfq^I=A6GbyyB%6lwMq(Cg<;y z96t|N^w!4p2N^$9`6-TX6Am#ru9eQO?th*r+E95$`|Z}*?%vO~*Kt~ZI#PPk2>mmC zOOmNQ1aW%R9>_^9`F`NMxMy`7@B8(U?#v#6<(n7xoXtn#y4rjyt~u7FScy27vg%8h5Y`(mAF3av8}K@iR-T&D{`^C8rK}eK5BR{TgHEl8$$VA*~q`E z#!z;X+jdV(wY$^1cAv!l%bI^0jt8xN^EZ3^rTTU^!|}E?{YtD)R$s^U7SnFm*6H$n zu~c8Ts|@keaAMSt7Tz~MB1 zM6VinUt9bu+6kgd6^96nAIgF*m8OIkB`=-_B>15t=lu(SRe3yR?fe8sY8s6H@yP$Z+!e5jyG;7#FY5?+6kic z>v(@f`~oUpmzSiSD0=;h`|;z+Zjp@s%Ix^%9_d$TCy9OS(0>>rCPSk3+t`>#h9tkq5sKcM`|3*O;)4*u6~!3K_ZGV;HtjPsGtI^lZEg7?|3 zwpiW^HnA5XetN-Xou7^ex8C14|B_#-zPfU0#y7P(sEtbp9l<7w6kS zwYRa06~*(h3$r=>7f4@w;SP@HB7NtDx$Htn-(%s2Iz7%`YT^BD3-@yTojQ2`R*eHX zp5!VvU*3OrkX;r|vbZPK@5SN}$A`kW%ZwemOU4hg=fFv(Md*Hc{Cb4q;{8C`pQ(-S zw@q7z`zvdhmf!n4%}#Qidqc*Ls{FX#_5*y{v>0ckKgQ+D?@LZ7bex^JL)Pa6`v=?~ zGEscQu8sUwA4#)&zrWqx*I0~_XTqmznB_f&=Mg80k5&1Ik3ziOB5ky z{yB>-b9wT5b;6?W*;f)AV)>#Uxx9Wj{!d%_g$GD z5+;v-9I8CT)%&hYr>v3ZH%^Y{!Ub&FetS_|Z(rH20r+0RwGpPr!5=I(9ame%y(zzI zCH%o+)4$e`aUYJm&|mSvV$=IRk?-p-#PO5x2aCzE;$v?d&n+&jQjO)vjaJ+@{3soLG9S;6e z`E_Z0E_MEGI;@(!|IoBN-;6C=kJHQZ&3R2a{84< z-1HpmpRW2o$?>IdsK4o!C1w06j(3Jb{Y{T=AeVnDj?aYgzFKxdhOA#}_Ifzf-*j+a zx&3Lw@mJsii_=fZ_gg*9@ekoI$$bAtTaK&rrd4`vPT!8xC*l12Rvpvtz;`V6#qq$c zI_)`q8TbyF%X>z}wOcQ@J4ke}#XBtTXmf#YXPdh%?_%?@w%u&*yS%&2FE8(O&*ZC90z%l60USWEy;a52R)L^+k9jQ(Ik>q@z zd0X-Qr4^>b;I1o1>-70P!{ELv#%fc2U;Rr5368t^&5`}H<8=CH*CaSdkg2@!9_85` zB-pN|MtKvsyl0K_$f~>`G0|3D8}CVE*PKzZzdeNWzYYfpvfH(=qwMbq<@g#H-vgoi zdiyiQW_)jt>{``YZV$pZ|NC&TAk*|trSwL5=iF@9yNUAsFVi@GI(*Jeru^Zy{6$yV z?Z0xmEna421ljf5vpBz68O7xn?S%e8w%aum$6qy8&fxeW*q=?~pGoBz^)I^8ZvU0h zws@J9F=RddSzNvvKbgiqo8xNyWE#Jl$}`3vB-pO`c)v>jz&V^h2@Vou%0JhZKS2Do zgUq?d#gKJ|}sMPaDVE@_TH%A15b@DiyJQuU)FrV|z1aq(e+!yNtaQj%G)TKG*U5 z)7m$5JX&-#yqtZ>@Cx?YYj}Qk-J9&mhF7s;;KS?QW*_-c2>*B1voj38$A0-+JWu}4 z2imcsAAJ3tO&l+E75&NUli6SXgyX06sqDM(N9!}R-7cSaxxdXOi%)U69h6^uKTm!yY9~8oibD+Qn#0a`67LUs zFPGhJ9=_N1-d^o!k#E%ZAjMr-LmZ;>M$`M@rR->N*r@LzPQSYYu1AzJeF6@ApBydz z!2CW|=`fG)vf(3~-#0>T&yH%xx=sv`+eb2v|BU;$O&5-n^UHJ@xPXk~!`tY;DO~rM zDi8K)?hr4MaX)ZJEYDzZT#qkW3`Bbg5GUAsJ^bj;_V{|#-Y zmw@t~-}JGrPpo+B8zElbbV@r>T!U9^`b-<|Z-&=w`rPJ}O<%COmcy?`u>@_^>6GkPs#h4O^0^F z{S2*db37V;zOm^iU&8&3{&zV3Ed0C0>icPTIqrqy~m`kG6ApTfcM-{C;hq9f)< zm1HNyMGwPX?7^5HRg%5gqYeA8t6+Xy_AkV)Z@4hK4C+%a*~PAGxCmRuTO=1{%Xo|A zV%pK7KHBp$$;CNds0rRLknC&oz+``$zi9F>=kI~`JSw>~$Ny+7^Ov!CU~)N|zi3i{ z^S5g$w{MTJEA2;raEvGQ3~bLYC--H)hyB6N$^F>sd6)h+2Z#aem#{sy`U$jmt8WdpdwB!7eKqs9tSh&# zruX6cPvK1ix%?S;f6eoo2HAW!`6ZhRZGPEi-_0Y~=g}V$AVw;q|04zc0fXwA-eY)_ zjwgx}*q>%^9?gCT^Yh;3u~eQb-6_w<$FcKZe6Nu0EG*;W*$=^?{-$?fdv?`#0>=-* zq5h`FV0(7ecOu8b;81_lr!l@8zLPlq9b8~>7mV+Q?_`emg9|LKU0lXPINlO2us9Xt zyWtzk@eknwHeDZ`qT_VFN>army1o=Z0?t$HgkS z|2O@40gm^|MRNQbxT3{BjhEl|jN*8q33&g1Wz)$%M} zQ^<6FuuRACeXAGb^#IdlaevhE6w_bf{=zvh({C7qy0C|Bstx&SqfV}|4U9Xd@f}Rr5C*x;J_dt zm3_dC`9}ASlKq6JqrFlC4*gRG42QKnx#$sKiM2t_ZzT{`FAE}yGQz+9_dZ5 zd&eRENXg;2v}?;QvP(UGp37Fxvzu1WualEp-{Ja~{}wWx50dHq0A$<`Q$enurq%s! zY-4(QmdvB^>+|c~HV243Hi!D#9VGVJ;x%gK+Z-VF+g#vlcYruxi=Pg(J6IgD#m8(p zY;%D4=mEz2zVpx?x9B*|k5{38JYvhow)8>bQ=9v)IB9c%?b+h5_h9KWAwWBi|N`9a5N{6A89J$|+^{%)OrqPVWlb({B> zy{Vn#ibMbY{-cV=>Ysxd!J%lkKrws&$| z-oNQ*vAjNd)z^#T^7?3~ziD}W^s28n$L00WP=C|%dR5W(J{*_VtNbjM_lI8fEyQto ze`u(`>ElMcFvmYP;-=;OpI3cd9GCZhhWeY9_kUjXEy8hm|7WN_Tgdw_FKsDGalEycAH#QRu&H@7^*@#Dcb|J~wiv-eg%?Ie+j^`ZFIlI)MMKgZ`~$u7D6m)ZIV zTV4++v$c#iZ4cyATk?;N$4smBy}XXQb^B(!ew!qxzXHWwa(`j<4eU>?ZiC}3i;eYR zQ6GQ$T$!!zM>ehQN3Ozgbw9Fc)qbmTT(;NYTTRRMI@)5{UWae3#_45y z9c{6?o?o5g>UzFubv^%aj;rhWre%A);ah{_vON}9EZgG^-)u#DncaX3R6id7D)%X9#b6kD@&$Rmf-2{%S@86MQU6&Th>m3tyJl1sw z4i={4aQ=U>_#}?M1qTZ85c1z(|gFf`f$VNcdv$D2^|Lg9SNSTt|HZ#0(w3>`>cp(`x%orul7m zSQ6xy)Fjr#rG4^V%Refk4uZy&i9!=0Qb+P&C*u$J1os@^YXO0+R?5x zxc<64Z615G;rZJ6LXAI;@*55?-f|%K7x~8fp%$mfr~Ks~jc=jN8`BnP&oaihF)e{D z$G0(Uu{Mn_k!2a)7G)&_-?1YqfO&mPx+1U6-nQ~aW%e;6xZYXz~*}C z$=Ygs_0l)9<@oBQr)bmowora!d~MRVa$JosgW|^chNfq6TrL0YHm9fUu%!`);Nrkh>}AGf$1`VUW~=Wuy9asTsKi=7*=Ju|Jp&$5fsi%nP1 zUzScz5Ff!e(sMc9v@+hOl(C!r0vsUrlJ)k7?OH!qZco_aP$g`CGEDDz5%)J`fp~%MK29&Mf1tmKeFXLCnqm4B(s#``#PNlQznF29y%`>s@ez9*{A$KY z_AkgEmT{W>DB{r>=h$-k3w*y~ug3H^GcK}s;&?MI;}TiVpKr)|{;>A%9R6D#M3>Gs&Zy^}$v?Irnwql|GpY&zKHJw82fef<;8zuV{K zbwYfR@uMDJtQa^@h|3vQZN8dujqBrw>u)!FZ?gT-zVBw3UV!%f?8~=wJX(yy{cr)| z7k2$-a(_U^`-9May)wzOjP??i_Nz`GE2bLr@3!_VJ-_Z~yTukPp8)YYr&sfbJj+8Osne=K1Q6j_W`01*_fW? zX{P1!UY=H1$M*=eJY3qlg<2j(wG#}N%Ph|2$?Z>oC}G&FFIm+$Jf151HkT*sdnT=pVY9yV zv{ikJq&Hy8`UYnNwT+No}fcD{WQZVVP~XJXzl& z=}#Lr>)T#i)wfN02ezzlNMB3ZY;{@VHC1st!f&NS_V_hYQi9H`^bVt0Mn{s(I(h~rD;{j#RhyIQS| zhf*^s?l!gu0pcaw_-oW;>*o=NQ{1JVM|_!V^e5M-IYK+hcwR6ka};}QE1VByj%7E* z{ZcuZqf?pFczj-Xp82ZpboO-|kC;vpB1RxR#gl|9S~`-;TY&3_r!r@- zPa^+?%xLx{_)2Chl`o{P`p)9`HT2&d$}}B}{=`F>ZjN_G|LFD1xn$${;6s@U+4A|| zLz#=%{(sIf3eknY_+c_(hELMa&M9-`= zc7ow_w%c$9*=TRAvohJTy|vET#+L1?b=G#92W0JJ%l7n2)-JYePp@R5cZaH0uo6XkTw+P(wY}vlv&N@dn z+E-lGmu%U-;<7HVW&4WDx@hxzS(n(deWhl7!Evs$({t7Ut$TDCWS*Qj}utoPr)u+{#% zfK1newblOnK-TYUx&JSS{b*aWc!yFWd9UtTJ4l z+&_PnRgNv&_uZ`WHW%6!z?S>xyIB?4vc3CltHhS=-EUhJw%k9L+g8oyD%+~tTxZ+k zHb1eghBh5<)zqf-ft+Ly){Nn&|7ypLsD1NK8{vXwTnxk=T=?4-A4{0Wz*3ssx3p&|+VcT=;SCId^ZQX6YzO9GNcee%GT)ui=_9`R) z0GqFG8)Wm{Z9{D?U;SnFwIA?3yX=uRm&zVx^SYs9*iQ7Hl*oS7=2F??Y+g5Xg0@=T zJxfl~&Uc*(ll^}ows?Rb<9obQ<@eU@F5M@T%b$aIuk0{(S-5|8IJ*u!G&{nh{79RF zh25e4QMUM`>>1jZ9di3MH9MLu_ZLywvD!&OF2C69S?uFzkFnWvw5k2i=eQT*Ny6?X zRpU55|7{sxU~`kI3)%S?U$upcY(BkhvCUT(EV22*wq@*%M*cT#KD}*~%~uz!w)w)g zb?kn~|J}BCZN9#3BfEUkZJXJbjP|zG=2F?I>{CWO-R4r+8QQ8n1>lJ#Vf_6w z7x;Rn-{z73KV|iOrAZ-Fp8CGhz3gl~z64QnCeCNK@6f*NcoH5PlB2Dzk3F*8^k{6q zD{kM#>1BJYu{~GYEuN|)#DdCs?2d3$fHv+I?0y#Cm)!oLio-9#Ew=Awmy5#l8{7A? z4T(`FvECtOv^UdNYi`f~T{FAOCZWIH zGQNYY<^I9UzqFOz-}SIM-$%_)N}umD`8C|X%H`$ze1qfFKeiv#)06L$fa@cFY(KzF>LOYJI&#lJ$ws#z32hWo}!9EN7?f952>r;NmNo{H$WYs=u?Kq|5s(m!u zaax<&$60OFKAzcOTDFhpcbwz&vVHX4@ujv~bUG!U$3M>whQG9UPk-5;eSzbL;Q}(+ zORe*`pM1wxDh{`XN9?%Be&wPNlXhHUPl3aCTxPFF`-*zK7X?P4nZLj^lesuM5#9#B@Wn-w|xJ{qDAt;

fnew|9xaI!H^qVl= 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 B`g{NY diff --git a/Refs/UnityEngine.net3.dll b/Refs/UnityEngine.net3.dll index bec8c3896f976083602f726104422f12ca3833b8..446cd53ed5ba2882ee4d03a049cd33c467c8027c 100644 GIT binary patch literal 85504 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 aU-ldL^{9LceZKLNFT3Nf`uksa1OEj9kpgP~ literal 51712 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%0DFr9bjxiMiHtGh0j9Dm+GkK|n|thnHy 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 Date: Fri, 10 Dec 2021 17:06:48 -0600 Subject: [PATCH 56/88] Update Hive.Versioning to use public package build --- IPA.Loader/IPA.Loader.csproj | 4 +- Libs/thirdparty/Hive.Versioning.dll | Bin 38400 -> 0 bytes Libs/thirdparty/Hive.Versioning.pdb | Bin 19460 -> 0 bytes Libs/thirdparty/Hive.Versioning.xml | 897 ---------------------------- SemVer/SemVer.csproj | 6 +- 5 files changed, 3 insertions(+), 904 deletions(-) delete mode 100644 Libs/thirdparty/Hive.Versioning.dll delete mode 100644 Libs/thirdparty/Hive.Versioning.pdb delete mode 100644 Libs/thirdparty/Hive.Versioning.xml diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index b8803f76..d64f8285 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -59,11 +59,9 @@ + - - $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll - diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll deleted file mode 100644 index a5a1e8fc9314a364b334d67712099eea131eafa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38400 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 Cr-dp2 diff --git a/Libs/thirdparty/Hive.Versioning.pdb b/Libs/thirdparty/Hive.Versioning.pdb deleted file mode 100644 index 15bd577b8fe086b67e7af20055b71e13f77eaa20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19460 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 diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml deleted file mode 100644 index 7e42b5c5..00000000 --- a/Libs/thirdparty/Hive.Versioning.xml +++ /dev/null @@ -1,897 +0,0 @@ - - - - Hive.Versioning - - - - - A version that meets the Semantic Versioning specification. - - - - - Gets the zero version (0.0.0). - - - - - Parses and creates a version object from a sequence of characters. - - - This is roughly equivalent to . - - The sequence of characters to parse as a version. - Thrown when the input is not a valid SemVer version. - - - - Creates a version object from the component parts of the version. - - The major version number. - The minor version number. - The patch number. - A sequence of IDs specifying the prerelease. - A sequence of IDs representing the build. - - - - Creates a version object from the component parts of the version. - - - This interface is provided only for CLS compliance. The actual version number is unsigned. - Because of this, very large version numbers may cause issues with this interface. - - The major version number. - The minor version number. - The patch number. - A sequence of IDs specifying the prerelease. - A sequence of IDs representing the build. - - - - Creates a version object from the component parts of the version. - - The major version number. - The minor version number. - The patch number. - - - - Creates a version object from the component parts of the version. - - - This interface is provided only for CLS compliance. The actual version number is unsigned. - Because of this, very large version numbers may cause issues with this interface. - - The major version number. - The minor version number. - The patch number. - - - - Gets the major version number. - - - - - Gets the minor version number. - - - - - Gets the patch number. - - - - - Gets the sequence of prerelease IDs. - - - - - Gets the sequence of build IDs. - - - - - Vers the version number, as signed integers. - - - This interface is provided only for CLS compliance. The actual version number is unsigned. - Because of this, very large version numbers may cause issues with this interface. - - The major version number. - The minor version number. - The patch number. - - - - Appends this to the provided . - - The to append to. - The provided - - - - - - - Compares two versions for equality. - - The first version to compare. - The second version to compare. - if they are equal, otherwise. - - - - Compares two versions for inequality. - - The first version to compare. - The second version to compare. - if they are not equal, otherwise. - - - - Checks if is greater than . - - The first version to compare. - The second version to compare. - if is greater than , - - - - Checks if is less than . - - The first version to compare. - The second version to compare. - if is less than , - - - - Checks if is greater than or equal to . - - The first version to compare. - The second version to compare. - if is greater than or equal to , - - - - Checks if is less than or equal to . - - The first version to compare. - The second version to compare. - if is less than or equal to , - - - - Determines the maximum of two versions. - - The first version. - The second version. - The maximum of and - - - - Determines the minimum of two versions. - - The first version. - The second version. - The minimum of and - - - - Compares version to for equality. - - The object to compare to. - if they are equal, otherwise. - - - - Gets the hash code of this . - - The hash code for this . - - - - Compares this version to another version according to the SemVer specification. - - The version to compare to. - if the versions are equal, otherwise. - - - - Compares this version to another version according to the SemVer specification. - - The version to compare to. - Less than zero if is less than , zero if they are equal, and - more than zero if is greater than - - - - Parses a sequence of characters into a object. - - The sequence of characters to parse. - The parsed version object. - Thrown when is not a valid SemVer version. - - - - Attempts to parse a sequence of characters into a version object. - - The sequence of characters to parse. - The parsed version, if the input is valid. - if the text is valid and could be parsed, otherwise. - - - - Attempts to parse a sequence of characters into a version object, as part of a larger parse. - - - When this method returns, will begin after the end of the parsed version, if it is present, or - what it initially contained if no version is present and this returns - - The sequence of characters to parse. - The parsed version, if the input is valid. - if the text is valid and could be parsed, otherwise. - - - - An arbitrary range of s, capable of matching any possible set of s. - - - - - A is considered matching if it is exactly equivalent to this one, in addition to if its comparison - value matches. - - - - - Converts this to an equivalent . - - - The returned always takes the form >=Version <=Version. - - The that is equivalent to this - - - - Inverts this into either another or a . - - - The only time this produces a is when is . - - The inverted , if any. - The representing this inverted, if any. - if this produces a , or - if it produces a . - - - - Tries to perform a logical conjunction (and) with . - - - This method will only return one of the following values: - - - - A single was produced, and was set. - - - - A single was produced, and was set. - - - - The conjunction result matches no possible values. - - - - The other to try to perform conjunction with. - The single the operation produced, if any. - The single the operation produced, if any. - A indicating which of the outputs were set, if any. - - - - A part of the implementation of that handles - the cases where exactly one of the inputs are an comparer. - - - - - Tries to perform a logical disjunction (or) with . - - - This method will only return one of the following values: - - - - A single was produced, and was set. - - - - A single was produced, and was set. - - - - The disjunction result matches every valid value. For convenience, - is set to . - - - - The disjunction result is not representable with only a and a . - For example, if the inputs are non-equal comparers, this will be returned. - - - - The other to try to perform disjunction with. - The single the operation produced, if any. - The single the operation produced, if any. - A indicating which of the outputs were set, if any. - - - - A part of the implementation of that handles - the cases where exactly one of the inputs are an comparer. - - - - - This is identical to except that it uses - instead of . - - - - - Tries to perform a logical conjunction (and) with . - - - This method will only return one of the following values: - - - - A single was produced, and was set. - - - - Two s were produced, and both and were set. - - - - The conjunction result matches no valid values. - - - - The other to try to perform conjunction with. - The single (or first) the operation produced, if any. - The second the operation produced, if any. - A indicating which of the outputs were set, if any. - - - - A part of the implementation of , handling the cases where exactly one - input is an inward-facing . - - - - - Tries to perform a logical disjunction (or) with . - - - This method will only return one of the following values: - - - - A single was produced, and was set. - - - - Two s were produced, and both and were set. - - - - The disjunction result matches every valid value. For convenience, - is set to . - - - - The other to try to perform disjunction with. - The single (or first) the operation produced, if any. - The second the operation produced, if any. - A indicating which of the outputs were set, if any. - - - - A part of the implementation of , handling the cases where exactly one - input is an inward-facing . - - - - - Checks if two s are mutually exclusive, but meet exactly leaving no versions that neither matches. - - - - - Constructs a new that corresponds to the text provided in . - - The textual represenation of the to create. - - Thrown when is not a valid . - - - - Creates a which matches only the provided . - - The to match. - A matching only the provided . - - - - Computes the logical disjunction (or) of this and . - - The other to compute the disjunction of. - The logical disjunction of and . - - - - - Computes the logical disjunction (or) of the two arguments. - - The first argument. - The second argument. - The logical disjunction of and . - - - - - Computes the logical conjunction (and) of this and . - - The other to compute the conjunction of. - The logical conjunction of and . - - - - - Computes the logical conjunction (and) of the two arguments. - - The first argument. - The second argument. - The logical conjunction of and . - - - - - Gets the compliement of this . - - The compliement of this . - - - - - Computes the compliment of the argument. - - The to compute the compliment of. - The compliment of . - - - - - Determines whether or not a given matches this . - - The to check. - if matches, otherwise. - - - - The that matches all s. - - - - - The that matches no s. - - - - - Appends the string representation of this to the provided . - - The to append to. - The that was appended to. - - - - Gets the string representation of this . - - The string representation of this . - - - - - - - Determines whether this is equivalent to another range. - - The to compare to. - if they are equivalent, otherwise. - - - - - - - Compares two s for equality. - - The first argument. - The second argument. - if and are equivalent, otherwise. - - - - Determines if two s are not equivalent. - - The first argument. - The second argument. - if and are not equivalent, otherwise. - - - - Parses a string as a . - - - - A valid string is made up of a set of disjoint regions joined by ||. - These regions can be either bounded or unbounded. -
    A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, - and the unbounded region whose written value is lower comes first. -
    An unbounded region is any valid prefixed with one of the following comparison operators: -
    - - >= - - The unbounded range matches any greater than or equal to its specified. - - - - <= - - The unbounded range matches any less than or equal to its specified . - - - - > - - The unbounded range matches any greater than its specified . - - - - < - - The unbounded range matches any less than its specified . - - - - = - - The range matches only the that it is specified with. - - - Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: - - ^ - - The bounded range matches all versions greater than or equal to its specified and less than the next major incremented - version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent - to >=0.4.2 <0.5.0. - - - There are also a few special ranges: - - * - - The range. This range matches every possible version. - - - - z or Z - - The range. This range matches nothing. - - - - A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, - or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must - either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, - * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases - except the singular *, any * may also be an x or X. - - A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader - what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 - and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, - before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser - to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the - range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it - is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts - to parse a first version, fails, and tries other forms a range can take before eventually failing out. - -
    - The string to parse. - The parsed . - - Thrown when is not a valid . -
    - - - Attempts to parse a whole string as a . - - - - A valid string is made up of a set of disjoint regions joined by ||. - These regions can be either bounded or unbounded. -
    A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, - and the unbounded region whose written value is lower comes first. -
    An unbounded region is any valid prefixed with one of the following comparison operators: -
    - - >= - - The unbounded range matches any greater than or equal to its specified. - - - - <= - - The unbounded range matches any less than or equal to its specified . - - - - > - - The unbounded range matches any greater than its specified . - - - - < - - The unbounded range matches any less than its specified . - - - - = - - The range matches only the that it is specified with. - - - Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: - - ^ - - The bounded range matches all versions greater than or equal to its specified and less than the next major incremented - version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent - to >=0.4.2 <0.5.0. - - - There are also a few special ranges: - - * - - The range. This range matches every possible version. - - - - z or Z - - The range. This range matches nothing. - - - - A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, - or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must - either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, - * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases - except the singular *, any * may also be an x or X. - - A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader - what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 - and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, - before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser - to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the - range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it - is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts - to parse a first version, fails, and tries other forms a range can take before eventually failing out. - -
    - The string to try to parse. - The parsed , if any. - if was successfully parsed, otherwise. - -
    - - - Attempts to parse a from the start of the string. - - - When this returns , will begin immediately after the parsed . - When this returns , will remain unchanged. - - A valid string is made up of a set of disjoint regions joined by ||. - These regions can be either bounded or unbounded. -
    A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, - and the unbounded region whose written value is lower comes first. -
    An unbounded region is any valid prefixed with one of the following comparison operators: -
    - - >= - - The unbounded range matches any greater than or equal to its specified. - - - - <= - - The unbounded range matches any less than or equal to its specified . - - - - > - - The unbounded range matches any greater than its specified . - - - - < - - The unbounded range matches any less than its specified . - - - - = - - The range matches only the that it is specified with. - - - Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: - - ^ - - The bounded range matches all versions greater than or equal to its specified and less than the next major incremented - version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent - to >=0.4.2 <0.5.0. - - - There are also a few special ranges: - - * - - The range. This range matches every possible version. - - - - z or Z - - The range. This range matches nothing. - - - - A bounded region may also be specified using star syntax. This takes the form of either a single * alone, matching any version, - or a version with some numbers substituted with an asterisk. Once an element has been substituted, however, any following elements must - either not be present or be a star themselves. Prereleases and build ids cannot be specified when using star syntax. For example, - * is valid, *.3 is not. 1.* and 1.*.* are valid (and equivalent), but 1.*.2 is not. 1.2.* is - valid, but 1.2.*-pre.1 is not. Importantly, *.*.* or anything similar is also not valid. Just use *. In all cases - except the singular *, any * may also be an x or X. - - A bounded regioon may also be specified using hyphen syntax, though it is generally not recommended, as it is not always clear to a reader - what exactly is meant, and is remarkably easy to mess up. The syntax for this is 1.2.3 - 4.5.6, of course substituting 1.2.3 - and 4.5.6 with any valid version. The space before is required. This is important. the space after the first version, - before the hyphen, is required. This is because 1.2.3-4.5.6 is a valid, and complete, version, causing the parser - to try to read the first version in the hyphen range, then hit the end of input instead of a hyphen and back out, eventually rejecting the - range altogether, because a version by itself is not a valid version range. 1.2.3- 4.5.6 is also not valid, because it - is an incomplete version followed by a complete, simple version. Since incomplete versions are rejected, it means that this attempts - to parse a first version, fails, and tries other forms a range can take before eventually failing out. - -
    - The string to try to parse. - The parsed , if any. - if was successfully parsed, otherwise. -
    - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Gets a resource string for AssertionFailed similar to ''. - - - - - Gets a resource string for Range_InputInvalid similar to 'Input is not a valid VersionRange'. - - - - - Gets a resource string for Version_InputInvalid similar to 'Input was not a valid SemVer version'. - - - - - Gets a resource string for Version_InputTooShort similar to 'Input too short to be a SemVer version'. - - - - - Specifies that when a method returns , - the parameter may be even if the corresponding type disallows it. - - - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this - value, the associated parameter may be null. - - - - Gets the return value condition. - - The return value condition. If the method returns this value, the - associated parameter may be null. - - - - Specifies that when a method returns , - the parameter is not even if the corresponding type allows it. - - - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this - value, the associated parameter is not null. - - - - Gets the return value condition. - - The return value condition. If the method returns this value, the - associated parameter is not null. - - - - Specifies that an output may be even if the corresponding type disallows it. - - - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - - - Initializes the attribute with the specified parameter value. - - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - - Gets the condition parameter value. - - -
    -
    diff --git a/SemVer/SemVer.csproj b/SemVer/SemVer.csproj index eb567912..b25f6244 100644 --- a/SemVer/SemVer.csproj +++ b/SemVer/SemVer.csproj @@ -1,4 +1,4 @@ - + @@ -8,9 +8,7 @@ - - $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll - + From f6e80c44fe95a60b40ff85033e44507eb51ffe6c Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Fri, 10 Dec 2021 17:10:41 -0600 Subject: [PATCH 57/88] Upgrade build workflow --- .github/workflows/build.yml | 9 ++++++++- .github/workflows/docs.yml | 7 ++++++- .github/workflows/tag_docs.yml | 7 ++++++- IPA.Loader/Loader/manifest.json | 2 +- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e554650..205d7910 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,8 @@ defaults: run: shell: pwsh +permissions: read-all + jobs: build: runs-on: windows-latest @@ -33,7 +35,12 @@ jobs: uses: actions/setup-dotnet@v1 with: # As usual, obtained from: https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json - dotnet-version: "3.1.409" # since we now use this + dotnet-version: "6.0.100" # since we now use this + - name: Log in to package source + shell: pwsh + run: | + dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} ` + --store-password-in-clear-text --name github "https://nuget.pkg.github.com/Atlas-Rhythm/index.json" - name: Clear Nuget Cache run: dotnet nuget locals all --clear - name: Restore diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c908588e..0d60315f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,12 @@ jobs: uses: actions/setup-dotnet@v1 with: # As usual, obtained from: https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json - dotnet-version: "3.1.409" # since we now use this + dotnet-version: "6.0.100" # since we now use this + - name: Log in to package source + shell: pwsh + run: | + dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} ` + --store-password-in-clear-text --name github "https://nuget.pkg.github.com/Atlas-Rhythm/index.json" - name: Clear Nuget Cache run: dotnet nuget locals all --clear - name: Nuget Restore diff --git a/.github/workflows/tag_docs.yml b/.github/workflows/tag_docs.yml index 62f5b9c8..743a0e4c 100644 --- a/.github/workflows/tag_docs.yml +++ b/.github/workflows/tag_docs.yml @@ -29,7 +29,12 @@ jobs: uses: actions/setup-dotnet@v1 with: # As usual, obtained from: https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json - dotnet-version: "3.1.404" # since we now use this + dotnet-version: "6.0.100" # since we now use this + - name: Log in to package source + shell: pwsh + run: | + dotnet nuget add source --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} ` + --store-password-in-clear-text --name github "https://nuget.pkg.github.com/Atlas-Rhythm/index.json" - name: Clear Nuget Cache run: dotnet nuget locals all --clear - name: Nuget Restore diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index fdc66190..696cfe2c 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.1", + "version": "4.2.1-pre.1", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ From 8c50f898b60ecaa4b64ff81e55783496b8a6dd3b Mon Sep 17 00:00:00 2001 From: Meivyn Date: Fri, 10 Dec 2021 21:06:02 -0500 Subject: [PATCH 58/88] Append native libs to PATH instead of adding new search directories --- IPA.Loader/Loader/LibLoader.cs | 48 +++------------------------------- 1 file changed, 3 insertions(+), 45 deletions(-) diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index a197115a..83b5d49d 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -1,11 +1,9 @@ #nullable enable using System; using System.Collections.Generic; -using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Reflection; -using System.Runtime.InteropServices; using System.Linq; using IPA.Logging; using IPA.Utilities; @@ -75,23 +73,12 @@ namespace IPA.Loader else FilenameLocations.Add(fn.Name, fn.FullName); } - if (!SetDefaultDllDirectories(LoadLibraryFlags.LOAD_LIBRARY_SEARCH_USER_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_SYSTEM32 - | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LoadLibraryFlags.LOAD_LIBRARY_SEARCH_APPLICATION_DIR)) - { - var err = new Win32Exception(); - Log(Logger.Level.Critical, $"Error configuring DLL search path"); - Log(Logger.Level.Critical, err); - return; - } - static void AddDir(string path) { - var retPtr = AddDllDirectory(path); - if (retPtr == IntPtr.Zero) + var pathEnvironmentVariable = Environment.GetEnvironmentVariable("Path"); + if (!pathEnvironmentVariable.Contains(path)) { - var err = new Win32Exception(); - Log(Logger.Level.Warning, $"Could not add DLL directory {path}"); - Log(Logger.Level.Warning, err); + Environment.SetEnvironmentVariable("Path", pathEnvironmentVariable + Path.PathSeparator + path); } } @@ -106,13 +93,6 @@ namespace IPA.Loader //var unityData = Directory.EnumerateDirectories(Environment.CurrentDirectory, "*_Data").First(); //AddDir(Path.Combine(unityData, "Plugins")); - - foreach (var dir in Environment.GetEnvironmentVariable("path") - .Split(Path.PathSeparator) - .Select(Environment.ExpandEnvironmentVariables)) - { - AddDir(dir); - } } } @@ -245,27 +225,5 @@ namespace IPA.Loader } } } - - [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] -#if NET4 - [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] -#endif - private static extern IntPtr AddDllDirectory(string lpPathName); - - [Flags] - private enum LoadLibraryFlags : uint - { - None = 0, - LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x00000200, - LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x00001000, - LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800, - LOAD_LIBRARY_SEARCH_USER_DIRS = 0x00000400, - } - - [DllImport("kernel32.dll", SetLastError = true)] -#if NET4 - [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] -#endif - private static extern bool SetDefaultDllDirectories(LoadLibraryFlags dwFlags); } } From 9691c02fa0c282eb70abfdc75b2a137e798ae3a1 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Fri, 10 Dec 2021 22:06:55 -0600 Subject: [PATCH 59/88] Minor tweaks to fix StateTransitionTransaction behaviour --- .../Loader/StateTransitionTransaction.cs | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/IPA.Loader/Loader/StateTransitionTransaction.cs b/IPA.Loader/Loader/StateTransitionTransaction.cs index e3209d00..4e74d7c2 100644 --- a/IPA.Loader/Loader/StateTransitionTransaction.cs +++ b/IPA.Loader/Loader/StateTransitionTransaction.cs @@ -1,7 +1,7 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; namespace IPA.Loader @@ -13,9 +13,9 @@ namespace IPA.Loader { private readonly HashSet currentlyEnabled; private readonly HashSet currentlyDisabled; - private readonly HashSet toEnable = new HashSet(); - private readonly HashSet toDisable = new HashSet(); - private bool stateChanged = false; + private readonly HashSet toEnable = new (); + private readonly HashSet toDisable = new (); + private bool stateChanged; internal StateTransitionTransaction(IEnumerable enabled, IEnumerable disabled) { @@ -118,16 +118,17 @@ namespace IPA.Loader /// if the transaction's state was changed, otherwise /// if this object has been disposed /// if is not loadable - public bool Enable(PluginMetadata meta, out IEnumerable disabledDeps, bool autoDeps = false) + public bool Enable(PluginMetadata meta, out IEnumerable? disabledDeps, bool autoDeps = false) { // returns whether or not state was changed ThrowIfDisposed(); + if (meta is null) throw new ArgumentNullException(nameof(meta)); if (!currentlyEnabled.Contains(meta) && !currentlyDisabled.Contains(meta)) - throw new ArgumentException(nameof(meta), "Plugin metadata does not represent a loadable plugin"); + throw new ArgumentException("Plugin metadata does not represent a loadable plugin", nameof(meta)); disabledDeps = null; if (IsEnabledInternal(meta)) return false; - var needsEnabled = meta.Dependencies.Where(m => DisabledPluginsInternal.Contains(m)); + var needsEnabled = meta.Dependencies.Where(m => DisabledPluginsInternal.Contains(m)).ToArray(); if (autoDeps) { foreach (var dep in needsEnabled) @@ -138,15 +139,15 @@ namespace IPA.Loader return res; } } - else if (needsEnabled.Any()) + else if (needsEnabled.Length > 0) { // there are currently enabled plugins that depend on this disabledDeps = needsEnabled; return false; } - toDisable.Remove(meta); - toEnable.Add(meta); + _ = toDisable.Remove(meta); + _ = toEnable.Add(meta); stateChanged = true; return true; } @@ -175,16 +176,17 @@ namespace IPA.Loader /// if the transaction's state was changed, otherwise /// if this object has been disposed /// if is not loadable - public bool Disable(PluginMetadata meta, out IEnumerable enabledDependents, bool autoDependents = false) + public bool Disable(PluginMetadata meta, out IEnumerable? enabledDependents, bool autoDependents = false) { // returns whether or not state was changed ThrowIfDisposed(); + if (meta is null) throw new ArgumentNullException(nameof(meta)); if (!currentlyEnabled.Contains(meta) && !currentlyDisabled.Contains(meta)) - throw new ArgumentException(nameof(meta), "Plugin metadata does not represent a loadable plugin"); + throw new ArgumentException("Plugin metadata does not represent a loadable plugin", nameof(meta)); enabledDependents = null; if (IsDisabledInternal(meta)) return false; - var needsDisabled = EnabledPluginsInternal.Where(m => m.Dependencies.Contains(meta)); + var needsDisabled = EnabledPluginsInternal.Where(m => m.Dependencies.Contains(meta)).ToArray(); if (autoDependents) { foreach (var dep in needsDisabled) @@ -195,15 +197,15 @@ namespace IPA.Loader return res; } } - else if (needsDisabled.Any()) + else if (needsDisabled.Length > 0) { // there are currently enabled plugins that depend on this enabledDependents = needsDisabled; return false; } - toDisable.Add(meta); - toEnable.Remove(meta); + _ = toDisable.Add(meta); + _ = toEnable.Remove(meta); stateChanged = true; return true; } @@ -247,22 +249,20 @@ namespace IPA.Loader ThrowIfDisposed(); var copy = new StateTransitionTransaction(CurrentlyEnabled, CurrentlyDisabled); foreach (var toEnable in ToEnable) - copy.toEnable.Add(toEnable); + _ = copy.toEnable.Add(toEnable); foreach (var toDisable in ToDisable) - copy.toDisable.Add(toDisable); + _ = copy.toDisable.Add(toDisable); copy.stateChanged = stateChanged; return copy; } private void ThrowIfDisposed() => ThrowIfDisposed(); - private T ThrowIfDisposed() + private T? ThrowIfDisposed() { - if (disposed) - throw new ObjectDisposedException(nameof(StateTransitionTransaction)); - return default; + return disposed ? throw new ObjectDisposedException(nameof(StateTransitionTransaction)) : default; } - private bool disposed = false; + private bool disposed; /// /// Disposes and discards this transaction without committing it. /// From 44fd32b6fb4f682643cb45c15a8fd20c78aafab8 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Fri, 10 Dec 2021 22:53:45 -0600 Subject: [PATCH 60/88] Update description to remove legacy information --- IPA.Loader/Loader/description.md | 6 +----- IPA.Loader/Loader/manifest.json | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/IPA.Loader/Loader/description.md b/IPA.Loader/Loader/description.md index 1dedc776..d88f70b1 100644 --- a/IPA.Loader/Loader/description.md +++ b/IPA.Loader/Loader/description.md @@ -9,8 +9,4 @@ to actually inject itself into the game. **** -The particular method of injection that BSIPA uses lets its user experience be far nicer than most others, not requiring a repatch for every game update. - -With updating the game being seamless, it also makes sense to make updating the mods themselves seamless. BSIPA's internal updater will automatically ask [BeatMods](https://beatmods.com/) -for newer versions of your installed mods. Of course, this is configurable either in the config at `UserData\Beat Saber IPA.json` or with the Mod List, which lets you control the process -to a greater extend than even the configs. \ No newline at end of file +The particular method of injection that BSIPA uses lets its user experience be far nicer than most others, not requiring a repatch for every game update. \ No newline at end of file diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 696cfe2c..e437e64c 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.1-pre.1", + "version": "4.2.1-pre.2", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ From c3a3712e7515af6c5eb87495bf015947d96e9319 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Sat, 11 Dec 2021 05:31:31 -0600 Subject: [PATCH 61/88] Make GameVersion field optional --- IPA.Loader/Loader/PluginLoader.cs | 4 +- IPA.Loader/Loader/PluginManifest.cs | 4 +- IPA.Loader/Loader/manifest.json | 1 - IPA.Loader/Utilities/AlmostVersion.cs | 540 +++++++++++++------------- 4 files changed, 274 insertions(+), 275 deletions(-) diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index d04ecf59..e217ab43 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -888,8 +888,8 @@ namespace IPA.Loader internal static PluginExecutor? InitPlugin(PluginMetadata meta, IEnumerable alreadyLoaded) { - if (meta.Manifest.GameVersion != UnityGame.GameVersion) - Logger.loader.Warn($"Mod {meta.Name} developed for game version {meta.Manifest.GameVersion}, so it may not work properly."); + if (meta.Manifest.GameVersion is { } gv && gv != UnityGame.GameVersion) + Logger.loader.Warn($"Mod {meta.Name} developed for game version {gv}, so it may not work properly."); if (meta.IsSelf) return new PluginExecutor(meta, PluginExecutor.Special.Self); diff --git a/IPA.Loader/Loader/PluginManifest.cs b/IPA.Loader/Loader/PluginManifest.cs index a8da82f4..96b6933d 100644 --- a/IPA.Loader/Loader/PluginManifest.cs +++ b/IPA.Loader/Loader/PluginManifest.cs @@ -30,8 +30,8 @@ namespace IPA.Loader [JsonProperty("version", Required = Required.Always), JsonConverter(typeof(SemverVersionConverter))] public Version Version = null!; - [JsonProperty("gameVersion", Required = Required.Always), JsonConverter(typeof(AlmostVersionConverter))] - public AlmostVersion GameVersion = null!; + [JsonProperty("gameVersion", Required = Required.DisallowNull), JsonConverter(typeof(AlmostVersionConverter))] + public AlmostVersion? GameVersion; [JsonProperty("author", Required = Required.Always)] public string Author = null!; diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index e437e64c..2ad8a6cc 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -5,7 +5,6 @@ "#![IPA.Loader.description.md]", "A mod loader specifically for Beat Saber." ], - "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", "version": "4.2.1-pre.2", diff --git a/IPA.Loader/Utilities/AlmostVersion.cs b/IPA.Loader/Utilities/AlmostVersion.cs index 22ec7c19..03ff5736 100644 --- a/IPA.Loader/Utilities/AlmostVersion.cs +++ b/IPA.Loader/Utilities/AlmostVersion.cs @@ -1,283 +1,283 @@ -#nullable enable -using IPA.Config.Data; -using IPA.Config.Stores; -using IPA.Config.Stores.Converters; -using System; -using System.Collections.Generic; -using SVersion = SemVer.Version; -using Version = Hive.Versioning.Version; - -namespace IPA.Utilities -{ - /// - /// A type that wraps so that the string of the version is stored when the string is - /// not a valid . - /// +#nullable enable +using IPA.Config.Data; +using IPA.Config.Stores; +using IPA.Config.Stores.Converters; +using System; +using System.Collections.Generic; +using SVersion = SemVer.Version; +using Version = Hive.Versioning.Version; + +namespace IPA.Utilities +{ + /// + /// A type that wraps so that the string of the version is stored when the string is + /// not a valid . + /// public class AlmostVersion : IComparable, IComparable, #pragma warning disable CS0618 // Type or member is obsolete IComparable #pragma warning restore CS0618 // Type or member is obsolete - { - /// - /// Represents a storage type of either parsed object or raw . - /// - public enum StoredAs - { - /// - /// The version was stored as a . - /// - SemVer, - /// - /// The version was stored as a . - /// - String - } - - /// - /// Creates a new with the version string provided in . - /// - /// the version string to store - public AlmostVersion(string vertext) - { - if (!TryParseFrom(vertext, StoredAs.SemVer)) - _ = TryParseFrom(vertext, StoredAs.String); - } - - /// - /// Creates an from the provided in . - /// - /// the to store - public AlmostVersion(Version ver) - { - SemverValue = ver; - StorageMode = StoredAs.SemVer; + { + /// + /// Represents a storage type of either parsed object or raw . + /// + public enum StoredAs + { + /// + /// The version was stored as a . + /// + SemVer, + /// + /// The version was stored as a . + /// + String + } + + /// + /// Creates a new with the version string provided in . + /// + /// the version string to store + public AlmostVersion(string vertext) + { + if (!TryParseFrom(vertext, StoredAs.SemVer)) + _ = TryParseFrom(vertext, StoredAs.String); + } + + /// + /// Creates an from the provided in . + /// + /// the to store + public AlmostVersion(Version ver) + { + SemverValue = ver; + StorageMode = StoredAs.SemVer; + } + + /// + /// Creates an from the provided in . + /// + /// the to store + [Obsolete("Use Hive.Versioning.Version constructor instead.")] + public AlmostVersion(SVersion ver) : this(ver?.UnderlyingVersion ?? throw new ArgumentNullException(nameof(ver))) { } + + /// + /// Creates an from the version string in stored using + /// the storage mode specified in . + /// + /// the text to parse as an + /// the storage mode to store the version in + public AlmostVersion(string vertext, StoredAs mode) + { + if (!TryParseFrom(vertext, mode)) + throw new ArgumentException($"{nameof(vertext)} could not be stored as {mode}!"); } - /// - /// Creates an from the provided in . - /// - /// the to store - [Obsolete("Use Hive.Versioning.Version constructor instead.")] - public AlmostVersion(SVersion ver) : this(ver?.UnderlyingVersion ?? throw new ArgumentNullException(nameof(ver))) { } - - /// - /// Creates an from the version string in stored using - /// the storage mode specified in . - /// - /// the text to parse as an - /// the storage mode to store the version in - public AlmostVersion(string vertext, StoredAs mode) - { - if (!TryParseFrom(vertext, mode)) - throw new ArgumentException($"{nameof(vertext)} could not be stored as {mode}!"); - } - - /// - /// Creates a new from the version string in stored the - /// same way as the passed in . - /// - /// the text to parse as an - /// an to copy the storage mode of - public AlmostVersion(string vertext, AlmostVersion copyMode) - { - if (copyMode is null) - throw new ArgumentNullException(nameof(copyMode)); - - if (!TryParseFrom(vertext, copyMode.StorageMode)) - _ = TryParseFrom(vertext, StoredAs.String); // silently parse differently - } - - private bool TryParseFrom(string str, StoredAs mode) - { + /// + /// Creates a new from the version string in stored the + /// same way as the passed in . + /// + /// the text to parse as an + /// an to copy the storage mode of + public AlmostVersion(string vertext, AlmostVersion copyMode) + { + if (copyMode is null) + throw new ArgumentNullException(nameof(copyMode)); + + if (!TryParseFrom(vertext, copyMode.StorageMode)) + _ = TryParseFrom(vertext, StoredAs.String); // silently parse differently + } + + private bool TryParseFrom(string str, StoredAs mode) + { if (mode == StoredAs.SemVer) { StorageMode = StoredAs.SemVer; var result = Version.TryParse(str, out var version); SemverValue = version; return result; - } - else - { - StringValue = str; - StorageMode = StoredAs.String; - return true; - } - } - - /// - /// The value of the if it was stored as a . - /// - /// the stored value as a , or if not stored as a string. - public string? StringValue { get; private set; } - - /// - /// The value of the if it was stored as a . - /// - /// the stored value as a , or if not stored as a version. - public Version? SemverValue { get; private set; } - - /// - /// The way the value is stored, whether it be as a or a . - /// - /// the storage mode used to store this value - public StoredAs StorageMode { get; private set; } - - /// - /// Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is - /// stored as a , it is equivalent to calling . - /// - /// a string representation of the current version - /// - public override string ToString() => - StorageMode == StoredAs.SemVer ? SemverValue!.ToString() : StringValue!; - - /// - /// Compares to the in using - /// or , depending on the current store. - /// - /// - /// The storage methods of the two objects must be the same, or this will throw an . - /// - /// the to compare to - /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller - /// - public int CompareTo(AlmostVersion other) - { - if (other is null) return 1; - + } + else + { + StringValue = str; + StorageMode = StoredAs.String; + return true; + } + } + + /// + /// The value of the if it was stored as a . + /// + /// the stored value as a , or if not stored as a string. + public string? StringValue { get; private set; } + + /// + /// The value of the if it was stored as a . + /// + /// the stored value as a , or if not stored as a version. + public Version? SemverValue { get; private set; } + + /// + /// The way the value is stored, whether it be as a or a . + /// + /// the storage mode used to store this value + public StoredAs StorageMode { get; private set; } + + /// + /// Gets a string representation of the current version. If the value is stored as a string, this returns it. If it is + /// stored as a , it is equivalent to calling . + /// + /// a string representation of the current version + /// + public override string ToString() => + StorageMode == StoredAs.SemVer ? SemverValue!.ToString() : StringValue!; + + /// + /// Compares to the in using + /// or , depending on the current store. + /// + /// + /// The storage methods of the two objects must be the same, or this will throw an . + /// + /// the to compare to + /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller + /// + public int CompareTo(AlmostVersion other) + { + if (other is null) return 1; + return StorageMode == StoredAs.SemVer && other.StorageMode == StoredAs.SemVer ? SemverValue!.CompareTo(other.SemverValue!) - : string.Compare(ToString(), other.ToString(), StringComparison.Ordinal); - } - - /// - /// Compares to the in using . - /// - /// - /// The storage method of must be , else an will - /// be thrown. - /// - /// the to compare to - /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller - /// - public int CompareTo(Version other) - { - if (StorageMode != StoredAs.SemVer) - throw new InvalidOperationException("Cannot compare a SemVer version with an AlmostVersion stored as a string!"); - - return SemverValue!.CompareTo(other); + : string.Compare(ToString(), other.ToString(), StringComparison.Ordinal); } - /// - /// Compares to the in using . - /// - /// - /// The storage method of must be , else an will - /// be thrown. - /// - /// the to compare to - /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller - /// - [Obsolete("Use the Hive.Versioning.Version overload instead.")] - public int CompareTo(SVersion other) => CompareTo(other.UnderlyingVersion); - - /// - /// Performs a strict equality check between and . - /// - /// - /// This may return where returns - /// - /// the object to compare to - /// if they are equal, otherwise - /// - public override bool Equals(object obj) - { - return obj is AlmostVersion version && - SemverValue == version.SemverValue && - StringValue == version.StringValue && - StorageMode == version.StorageMode; - } - - /// - /// Default generated hash code function generated by VS. - /// - /// a value unique to each object, except those that are considered equal by - /// - public override int GetHashCode() - { - var hashCode = -126402897; - hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(SemverValue); - hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(StringValue); - hashCode = (hashCode * -1521134295) + StorageMode.GetHashCode(); - return hashCode; + /// + /// Compares to the in using . + /// + /// + /// The storage method of must be , else an will + /// be thrown. + /// + /// the to compare to + /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller + /// + public int CompareTo(Version other) + { + if (StorageMode != StoredAs.SemVer) + throw new InvalidOperationException("Cannot compare a SemVer version with an AlmostVersion stored as a string!"); + + return SemverValue!.CompareTo(other); + } + + /// + /// Compares to the in using . + /// + /// + /// The storage method of must be , else an will + /// be thrown. + /// + /// the to compare to + /// less than 0 if is considered bigger than , 0 if equal, and greater than zero if smaller + /// + [Obsolete("Use the Hive.Versioning.Version overload instead.")] + public int CompareTo(SVersion other) => CompareTo(other.UnderlyingVersion); + + /// + /// Performs a strict equality check between and . + /// + /// + /// This may return where returns + /// + /// the object to compare to + /// if they are equal, otherwise + /// + public override bool Equals(object obj) + { + return obj is AlmostVersion version && + SemverValue == version.SemverValue && + StringValue == version.StringValue && + StorageMode == version.StorageMode; } - /// - /// Compares two versions, only taking into account the numeric part of the version if they are stored as s, - /// or strict equality if they are stored as s. - /// - /// - /// This is a looser equality than , meaning that this may return where - /// does not. - /// - /// the first value to compare - /// the second value to compare - /// if they are mostly equal, otherwise - /// - public static bool operator==(AlmostVersion l, AlmostVersion r) - { - if (l is null && r is null) return true; - if (l is null || r is null) return false; - if (l.StorageMode != r.StorageMode) return false; + /// + /// Default generated hash code function generated by VS. + /// + /// a value unique to each object, except those that are considered equal by + /// + public override int GetHashCode() + { + var hashCode = -126402897; + hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(SemverValue); + hashCode = (hashCode * -1521134295) + EqualityComparer.Default.GetHashCode(StringValue); + hashCode = (hashCode * -1521134295) + StorageMode.GetHashCode(); + return hashCode; + } + + /// + /// Compares two versions, only taking into account the numeric part of the version if they are stored as s, + /// or strict equality if they are stored as s. + /// + /// + /// This is a looser equality than , meaning that this may return where + /// does not. + /// + /// the first value to compare + /// the second value to compare + /// if they are mostly equal, otherwise + /// + public static bool operator==(AlmostVersion l, AlmostVersion r) + { + if (l is null && r is null) return true; + if (l is null || r is null) return false; + if (l.StorageMode != r.StorageMode) return false; return l.StorageMode == StoredAs.SemVer ? Utils.VersionCompareNoPrerelease(l.SemverValue!, r.SemverValue!) == 0 - : l.StringValue == r.StringValue; - } - - /// - /// The opposite of . Equivalent to !(l == r). - /// - /// the first value to compare - /// the second value to compare - /// if they are not mostly equal, otherwise - /// + : l.StringValue == r.StringValue; + } + + /// + /// The opposite of . Equivalent to !(l == r). + /// + /// the first value to compare + /// the second value to compare + /// if they are not mostly equal, otherwise + /// public static bool operator!=(AlmostVersion l, AlmostVersion r) => !(l == r); // implicitly convertible from Version #pragma warning disable CS0618 // Type or member is obsolete #pragma warning disable CA2225 // Operator overloads have named alternates - /// - /// Implicitly converts a to using . - /// - /// the to convert - /// + /// + /// Implicitly converts a to using . + /// + /// the to convert + /// [Obsolete("Use Hive.Versioning.Version instead of SemVer.Version")] public static implicit operator AlmostVersion?(SVersion? ver) => ver is null ? null : new(ver); // implicitly convertible to Version - /// - /// Implicitly converts an to , if applicable, using . - /// If not applicable, returns - /// - /// the to convert to a - /// - [Obsolete("Use Hive.Versioning.Version instead of SemVer.Version")] + /// + /// Implicitly converts an to , if applicable, using . + /// If not applicable, returns + /// + /// the to convert to a + /// + [Obsolete("Use Hive.Versioning.Version instead of SemVer.Version")] public static implicit operator SVersion?(AlmostVersion? av) => av?.SemverValue is not null ? SVersion.ForHiveVersion(av.SemverValue) : null; #pragma warning restore CS0618 // Type or member is obsolete - /// - /// Implicitly converts a to using . - /// - /// the to convert + /// + /// Implicitly converts a to using . + /// + /// the to convert /// public static implicit operator AlmostVersion?(Version? ver) => ver is null ? null : new(ver); // implicitly convertible to Version - /// - /// Implicitly converts an to , if applicable, using . - /// If not applicable, returns - /// - /// the to convert to a - /// + /// + /// Implicitly converts an to , if applicable, using . + /// If not applicable, returns + /// + /// the to convert to a + /// public static implicit operator Version?(AlmostVersion av) => av?.SemverValue; #pragma warning restore CA2225 // Operator overloads have named alternates @@ -292,28 +292,28 @@ namespace IPA.Utilities public static bool operator >=(AlmostVersion left, AlmostVersion right) => left is null ? right is null : left.CompareTo(right) >= 0; - } - - /// - /// A for s. - /// - public sealed class AlmostVersionConverter : ValueConverter - { - /// - /// Converts a node into an . - /// - /// the node to convert - /// the owner of the new object - /// - public override AlmostVersion FromValue(Value value, object parent) - => new(Converter.Default.FromValue(value, parent)); - /// - /// Converts an to a node. - /// - /// the to convert - /// the parent of - /// a node representing - public override Value ToValue(AlmostVersion obj, object parent) - => Value.From(obj.ToString()); - } -} + } + + /// + /// A for s. + /// + public sealed class AlmostVersionConverter : ValueConverter + { + /// + /// Converts a node into an . + /// + /// the node to convert + /// the owner of the new object + /// + public override AlmostVersion FromValue(Value value, object parent) + => new(Converter.Default.FromValue(value, parent)); + /// + /// Converts an to a node. + /// + /// the to convert + /// the parent of + /// a node representing + public override Value ToValue(AlmostVersion obj, object parent) + => Value.From(obj.ToString()); + } +} From fc9759ff368ddccfea57453c69033587d31d4555 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 14 Dec 2021 18:27:15 -0600 Subject: [PATCH 62/88] Config generation now uses Nullable annotations --- BSIPA.sln | 5 +- Common.props | 8 + Common.targets | 4 - IPA.Loader/Config/Data/List.cs | 30 ++-- IPA.Loader/Config/Data/Map.cs | 37 ++--- IPA.Loader/Config/Data/Primitives.cs | 90 ++++++++++- IPA.Loader/Config/Data/Value.cs | 34 ++-- IPA.Loader/Config/SelfConfig.cs | 2 +- IPA.Loader/Config/Stores/Attributes.cs | 20 ++- .../Config/Stores/CollectionConverter.cs | 33 ++-- IPA.Loader/Config/Stores/Converters.cs | 149 +++++++++--------- .../Config/Stores/CustomObjectConverter.cs | 31 ++-- .../GeneratedStoreImpl/ConversionDelegates.cs | 9 +- .../Stores/GeneratedStoreImpl/Correction.cs | 3 +- .../GeneratedStoreImpl/Deserialization.cs | 7 +- .../GeneratedStoreImpl/GeneratedStoreImpl.cs | 26 +-- .../GeneratedStoreImpl/IGeneratedStore.cs | 41 ++--- .../Stores/GeneratedStoreImpl/MakeCreator.cs | 9 +- .../GeneratedStoreImpl/ObjectStructure.cs | 35 ++-- .../GeneratedStoreImpl/Serialization.cs | 3 +- .../Stores/GeneratedStorePublicInterface.cs | 3 +- IPA.Loader/Config/Stores/ValueConverter.cs | 15 +- IPA.Loader/Utilities/AlmostVersion.cs | 12 +- IPA/_Attributes.cs | 10 -- 24 files changed, 367 insertions(+), 249 deletions(-) delete mode 100644 IPA/_Attributes.cs diff --git a/BSIPA.sln b/BSIPA.sln index 93a8e3aa..3e5a2bda 100644 --- a/BSIPA.sln +++ b/BSIPA.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28729.10 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.31911.260 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPA", "IPA\IPA.csproj", "{14092533-98BB-40A4-9AFC-27BB75672A70}" ProjectSection(ProjectDependencies) = postProject @@ -24,7 +24,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .github\workflows\docs.yml = .github\workflows\docs.yml README.md = README.md .github\release_draft.yml = .github\release_draft.yml - System.Diagnostics.CodeAnalysis.cs = System.Diagnostics.CodeAnalysis.cs .github\workflows\tag_docs.yml = .github\workflows\tag_docs.yml EndProjectSection EndProject diff --git a/Common.props b/Common.props index d76b2ec5..f33175a4 100644 --- a/Common.props +++ b/Common.props @@ -14,6 +14,14 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers + \ No newline at end of file diff --git a/Common.targets b/Common.targets index 56750be5..f6c26ae1 100644 --- a/Common.targets +++ b/Common.targets @@ -1,8 +1,4 @@  - - - - \ No newline at end of file diff --git a/IPA.Loader/Config/Data/List.cs b/IPA.Loader/Config/Data/List.cs index d4f48397..764c619b 100644 --- a/IPA.Loader/Config/Data/List.cs +++ b/IPA.Loader/Config/Data/List.cs @@ -1,4 +1,5 @@ -using IPA.Utilities; +#nullable enable +using IPA.Utilities; using System; using System.Collections; using System.Collections.Generic; @@ -10,9 +11,9 @@ namespace IPA.Config.Data /// A list of s for serialization by an . /// Use or to create. /// - public sealed class List : Value, IList + public sealed class List : Value, IList { - private readonly List values = new List(); + private readonly List values = new(); internal List() { } @@ -22,7 +23,7 @@ namespace IPA.Config.Data /// the index to retrieve the at /// the at /// - public Value this[int index] { get => values[index]; set => values[index] = value; } + public Value? this[int index] { get => values[index]; set => values[index] = value; } ///
    /// Gets the number of elements in the . @@ -30,21 +31,22 @@ namespace IPA.Config.Data /// public int Count => values.Count; - bool ICollection.IsReadOnly => ((IList)values).IsReadOnly; + bool ICollection.IsReadOnly => ((IList)values).IsReadOnly; /// /// Adds a to the end of this . /// /// the to add /// - public void Add(Value item) => values.Add(item); + public void Add(Value? item) => values.Add(item); /// /// Adds a range of s to the end of this . /// /// the range of s to add - public void AddRange(IEnumerable vals) + public void AddRange(IEnumerable vals) { + if (vals is null) throw new ArgumentNullException(nameof(vals)); foreach (var val in vals) Add(val); } @@ -60,7 +62,7 @@ namespace IPA.Config.Data /// the to check for /// if the item was founc, otherwise /// - public bool Contains(Value item) => values.Contains(item); + public bool Contains(Value? item) => values.Contains(item); /// /// Copies the s in the to the in . @@ -68,14 +70,14 @@ namespace IPA.Config.Data /// the to copy to /// the starting index to copy to /// - public void CopyTo(Value[] array, int arrayIndex) => values.CopyTo(array, arrayIndex); + public void CopyTo(Value?[] array, int arrayIndex) => values.CopyTo(array, arrayIndex); /// /// Gets an enumerator to enumerate the . /// /// an for this /// - public IEnumerator GetEnumerator() => ((IList)values).GetEnumerator(); + public IEnumerator GetEnumerator() => ((IList)values).GetEnumerator(); /// /// Gets the index that a given is in the . @@ -83,7 +85,7 @@ namespace IPA.Config.Data /// the to search for /// the index that the was at, or -1. /// - public int IndexOf(Value item) => values.IndexOf(item); + public int IndexOf(Value? item) => values.IndexOf(item); /// /// Inserts a at an index. @@ -91,7 +93,7 @@ namespace IPA.Config.Data /// the index to insert at /// the to insert /// - public void Insert(int index, Value item) => values.Insert(index, item); + public void Insert(int index, Value? item) => values.Insert(index, item); /// /// Removes a from the . @@ -99,7 +101,7 @@ namespace IPA.Config.Data /// the to remove /// if the item was removed, otherwise /// - public bool Remove(Value item) => values.Remove(item); + public bool Remove(Value? item) => values.Remove(item); /// /// Removes a at an index. @@ -115,7 +117,7 @@ namespace IPA.Config.Data public override string ToString() => $"[{string.Join(",",this.Select(v => v?.ToString() ?? "null").StrJP())}]"; - IEnumerator IEnumerable.GetEnumerator() => ((IList)values).GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } diff --git a/IPA.Loader/Config/Data/Map.cs b/IPA.Loader/Config/Data/Map.cs index 21be20b4..8ed8f17c 100644 --- a/IPA.Loader/Config/Data/Map.cs +++ b/IPA.Loader/Config/Data/Map.cs @@ -1,4 +1,5 @@ -using IPA.Utilities; +#nullable enable +using IPA.Utilities; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -10,10 +11,10 @@ namespace IPA.Config.Data /// A ordered map of to for serialization by an . /// Use or to create. /// - public sealed class Map : Value, IDictionary + public sealed class Map : Value, IDictionary { - private readonly Dictionary values = new Dictionary(); - private readonly List keyOrder = new List(); + private readonly Dictionary values = new(); + private readonly List keyOrder = new(); internal Map() { } @@ -23,7 +24,7 @@ namespace IPA.Config.Data /// the key to get the value associated with /// the value associated with the /// - public Value this[string key] { get => values[key]; set => values[key] = value; } + public Value? this[string key] { get => values[key]; set => values[key] = value; } /// /// Gets a collection of the keys for the . @@ -39,7 +40,7 @@ namespace IPA.Config.Data /// guarantee that order is maintained. /// /// - public ICollection Values => values.Values; + public ICollection Values => values.Values; /// /// Gets the number of key-value pairs in this . @@ -47,7 +48,7 @@ namespace IPA.Config.Data /// public int Count => values.Count; - bool ICollection>.IsReadOnly => ((IDictionary)values).IsReadOnly; + bool ICollection>.IsReadOnly => ((IDictionary)values).IsReadOnly; /// /// Adds a new with a given key. @@ -55,13 +56,13 @@ namespace IPA.Config.Data /// the key to put the value at /// the to add /// - public void Add(string key, Value value) + public void Add(string key, Value? value) { values.Add(key, value); keyOrder.Add(key); } - void ICollection>.Add(KeyValuePair item) + void ICollection>.Add(KeyValuePair item) => Add(item.Key, item.Value); /// @@ -74,8 +75,8 @@ namespace IPA.Config.Data keyOrder.Clear(); } - bool ICollection>.Contains(KeyValuePair item) - => ((IDictionary)values).Contains(item); + bool ICollection>.Contains(KeyValuePair item) + => ((IDictionary)values).Contains(item); /// /// Checks if the contains a given . @@ -85,18 +86,18 @@ namespace IPA.Config.Data /// public bool ContainsKey(string key) => values.ContainsKey(key); - void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) - => ((IDictionary)values).CopyTo(array, arrayIndex); + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) + => ((IDictionary)values).CopyTo(array, arrayIndex); /// /// Enumerates the 's key-value pairs. /// /// an of key-value pairs in this /// - public IEnumerator> GetEnumerator() + public IEnumerator> GetEnumerator() { foreach (var key in keyOrder) - yield return new KeyValuePair(key, this[key]); + yield return new KeyValuePair(key, this[key]); } /// @@ -107,8 +108,8 @@ namespace IPA.Config.Data /// public bool Remove(string key) => values.Remove(key) && keyOrder.Remove(key); - bool ICollection>.Remove(KeyValuePair item) - => ((IDictionary)values).Remove(item) && (keyOrder.Remove(item.Key) || true); + bool ICollection>.Remove(KeyValuePair item) + => ((IDictionary)values).Remove(item) && (keyOrder.Remove(item.Key) || true); /// /// Gets the value associated with the specified key. @@ -117,7 +118,7 @@ namespace IPA.Config.Data /// the target location of the retrieved object /// if the key was found and set, otherwise /// - public bool TryGetValue(string key, out Value value) => values.TryGetValue(key, out value); + public bool TryGetValue(string key, out Value? value) => values.TryGetValue(key, out value); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); diff --git a/IPA.Loader/Config/Data/Primitives.cs b/IPA.Loader/Config/Data/Primitives.cs index c03b3c90..5abc6d88 100644 --- a/IPA.Loader/Config/Data/Primitives.cs +++ b/IPA.Loader/Config/Data/Primitives.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -12,10 +13,28 @@ namespace IPA.Config.Data /// public sealed class Text : Value { + /// + /// Constructs an empty object. + /// + [Obsolete("Use the String constructor.")] + public Text() + { + Value = null!; + } + + /// + /// Constructs a object containing the provided value. + /// + /// The value to construct with. + public Text(string value) + { + Value = value; + } + /// /// The actual value of this object. /// - public string Value { get; set; } + public string Value { get; init; } /// /// Converts this into a human-readable format. @@ -30,6 +49,24 @@ namespace IPA.Config.Data /// public sealed class Integer : Value { + /// + /// Constructs an empty object. + /// + [Obsolete("Use the long constructor.")] + public Integer() + { + Value = 0; + } + + /// + /// Constructs a object containing the provided value. + /// + /// The value to construct with. + public Integer(long value) + { + Value = value; + } + /// /// The actual value of the object. /// @@ -50,10 +87,28 @@ namespace IPA.Config.Data /// /// A representing a floating point value. This may hold a - /// 's worth of data. + /// 's worth of data. /// public sealed class FloatingPoint : Value { + /// + /// Constructs an empty object. + /// + [Obsolete("Use the long constructor.")] + public FloatingPoint() + { + Value = 0; + } + + /// + /// Constructs a object containing the provided value. + /// + /// The value to construct with. + public FloatingPoint(decimal value) + { + Value = value; + } + /// /// The actual value fo this object. /// @@ -76,16 +131,37 @@ namespace IPA.Config.Data /// A representing a boolean value. /// public sealed class Boolean : Value - { + { + /// + /// Constructs an empty object. + /// + [Obsolete("Use the long constructor.")] + public Boolean() + { + Value = false; + } + + /// + /// Constructs a object containing the provided value. + /// + /// The value to construct with. + public Boolean(bool value) + { + Value = value; + } + /// /// The actual value fo this object. /// - public bool Value { get; set; } - + public bool Value { get; set; } + + /// /// Converts this into a human-readable format. /// /// the result of Value.ToString().ToLower() - public override string ToString() => Value.ToString().ToLower(); + [System.Diagnostics.CodeAnalysis.SuppressMessage("Globalization", "CA1308:Normalize strings to uppercase", + Justification = "ToLower is the desired display value.")] + public override string ToString() => Value.ToString().ToLower(System.Globalization.CultureInfo.InvariantCulture); } } diff --git a/IPA.Loader/Config/Data/Value.cs b/IPA.Loader/Config/Data/Value.cs index 2e0e4eb7..0d61cebd 100644 --- a/IPA.Loader/Config/Data/Value.cs +++ b/IPA.Loader/Config/Data/Value.cs @@ -1,6 +1,8 @@ -using System; +#nullable enable +using System; using System.Collections; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -25,21 +27,21 @@ namespace IPA.Config.Data /// Creates a Null . /// /// - public static Value Null() => null; + public static Value? Null() => null; /// /// Creates an empty . /// /// an empty /// - public static List List() => new List(); + public static List List() => new(); /// /// Creates an empty . /// /// an empty /// /// - public static Map Map() => new Map(); + public static Map Map() => new(); /// /// Creates a new representing a . @@ -47,14 +49,16 @@ namespace IPA.Config.Data /// the value to wrap /// a wrapping /// - public static Text From(string val) => Text(val); + [return: NotNullIfNotNull("val")] + public static Text? From(string? val) => Text(val); /// /// Creates a new object wrapping a . /// /// the value to wrap /// a wrapping /// - public static Text Text(string val) => val == null ? null : new Text { Value = val }; + [return: NotNullIfNotNull("val")] + public static Text? Text(string? val) => val == null ? null : new(val); /// /// Creates a new wrapping a . @@ -69,7 +73,7 @@ namespace IPA.Config.Data /// the value to wrap /// a wrapping /// - public static Integer Integer(long val) => new Integer { Value = val }; + public static Integer Integer(long val) => new(val); /// /// Creates a new wrapping a . @@ -84,7 +88,7 @@ namespace IPA.Config.Data /// the value to wrap /// a wrapping /// - public static FloatingPoint Float(decimal val) => new FloatingPoint { Value = val }; + public static FloatingPoint Float(decimal val) => new(val); /// /// Creates a new wrapping a . @@ -99,7 +103,7 @@ namespace IPA.Config.Data /// the value to wrap /// a wrapping /// - public static Boolean Bool(bool val) => new Boolean { Value = val }; + public static Boolean Bool(bool val) => new(val); /// /// Creates a new holding the content of an @@ -108,9 +112,10 @@ namespace IPA.Config.Data /// the s to initialize the with /// a containing the content of /// - public static List From(IEnumerable vals) + [return: NotNullIfNotNull("vals")] + public static List? From(IEnumerable? vals) { - if (vals == null) return null; + if (vals is null) return null; var l = List(); l.AddRange(vals); return l; @@ -124,7 +129,7 @@ namespace IPA.Config.Data /// a containing the content of /// /// - public static Map From(IDictionary vals) => From(vals as IEnumerable>); + public static Map From(IDictionary vals) => From(vals as IEnumerable>); /// /// Creates a new holding the content of an @@ -134,9 +139,10 @@ namespace IPA.Config.Data /// a containing the content of /// /// - public static Map From(IEnumerable> vals) + [return: NotNullIfNotNull("vals")] + public static Map? From(IEnumerable>? vals) { - if (vals == null) return null; + if (vals is null) return null; var m = Map(); foreach (var v in vals) m.Add(v.Key, v.Value); return m; diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index 1bc877b8..bc0d2b04 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -175,7 +175,7 @@ namespace IPA.Config && CommandLineValues.YeetMods; // LINE: ignore - [NonNullable, UseConverter(typeof(CollectionConverter>))] + [NonNullable, UseConverter(typeof(CollectionConverter>))] public virtual HashSet GameAssemblies { get; set; } = new HashSet { // LINE: ignore 5 diff --git a/IPA.Loader/Config/Stores/Attributes.cs b/IPA.Loader/Config/Stores/Attributes.cs index 574dfd80..66c63e16 100644 --- a/IPA.Loader/Config/Stores/Attributes.cs +++ b/IPA.Loader/Config/Stores/Attributes.cs @@ -1,6 +1,8 @@ -using IPA.Config.Stores.Converters; +#nullable enable +using IPA.Config.Stores.Converters; using System; using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Linq; namespace IPA.Config.Stores.Attributes @@ -37,23 +39,25 @@ namespace IPA.Config.Stores.Attributes /// /// Gets whether or not to use the default converter for the member type instead of the specified type. /// + [MemberNotNullWhen(false, nameof(ConverterType))] public bool UseDefaultConverterForType { get; } /// /// Gets the type of the converter to use. /// - public Type ConverterType { get; } + public Type? ConverterType { get; } /// /// Gets the target type of the converter if it is avaliable at instantiation time, otherwise /// . /// - public Type ConverterTargetType { get; } + public Type? ConverterTargetType { get; } /// /// Gets whether or not this converter is a generic . /// - public bool IsGenericConverter => ConverterTargetType != null; + [MemberNotNullWhen(true, nameof(ConverterTargetType))] + public bool IsGenericConverter => ConverterTargetType is not null; /// /// Creates a new specifying to use the default converter type for the target member. @@ -67,11 +71,17 @@ namespace IPA.Config.Stores.Attributes /// the type to assign to public UseConverterAttribute(Type converterType) { + if (converterType is null) + throw new ArgumentNullException(nameof(converterType)); + UseDefaultConverterForType = false; ConverterType = converterType; + if (converterType.IsValueType) + throw new ArgumentException("Type is not a value converter!"); + var baseT = ConverterType.BaseType; - while (baseT != null && baseT != typeof(object) && + while (baseT != typeof(object) && (!baseT.IsGenericType || baseT.GetGenericTypeDefinition() != typeof(ValueConverter<>))) baseT = baseT.BaseType; if (baseT == typeof(object)) ConverterTargetType = null; diff --git a/IPA.Loader/Config/Stores/CollectionConverter.cs b/IPA.Loader/Config/Stores/CollectionConverter.cs index 635ba49c..16093540 100644 --- a/IPA.Loader/Config/Stores/CollectionConverter.cs +++ b/IPA.Loader/Config/Stores/CollectionConverter.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -14,7 +15,7 @@ namespace IPA.Config.Stores.Converters /// the type of the items in the collection /// the instantiated type of collection public class CollectionConverter : ValueConverter - where TCollection : ICollection + where TCollection : ICollection { /// /// Creates a using the default converter for the @@ -54,7 +55,7 @@ namespace IPA.Config.Stores.Converters /// protected void PopulateFromValue(TCollection col, List list, object parent) { - //Logger.log.Debug($"CollectionConverter<{typeof(T)}, {typeof(TCollection)}>({BaseConverter.GetType()}).PopulateFromValue([object], {list}, {parent.GetType()})"); + if (list is null) throw new ArgumentNullException(nameof(list)); foreach (var it in list) col.Add(BaseConverter.FromValue(it, parent)); } @@ -66,9 +67,9 @@ namespace IPA.Config.Stores.Converters /// the object that will own the resulting /// a new holding the deserialized content of /// - public override TCollection FromValue(Value value, object parent) + public override TCollection FromValue(Value? value, object parent) { - if (!(value is List list)) throw new ArgumentException("Argument not a List", nameof(value)); + if (value is not List list) throw new ArgumentException("Argument not a List", nameof(value)); var col = Create(list.Count, parent); PopulateFromValue(col, list, parent); @@ -81,7 +82,7 @@ namespace IPA.Config.Stores.Converters /// the object owning /// the that was serialized into /// - public override Value ToValue(TCollection obj, object parent) + public override Value? ToValue(TCollection? obj, object parent) => Value.From(obj.Select(t => BaseConverter.ToValue(t, parent))); } /// @@ -92,7 +93,7 @@ namespace IPA.Config.Stores.Converters /// the type of the converter to use for /// public sealed class CollectionConverter : CollectionConverter - where TCollection : ICollection + where TCollection : ICollection where TConverter : ValueConverter, new() { /// @@ -110,7 +111,7 @@ namespace IPA.Config.Stores.Converters /// /// the element type of the /// - public class ISetConverter : CollectionConverter> + public class ISetConverter : CollectionConverter> { /// /// Creates an using the default converter for . @@ -128,8 +129,8 @@ namespace IPA.Config.Stores.Converters /// the size to initialize it to /// the object that will own the new object /// the new - protected override ISet Create(int size, object parent) - => new HashSet(); + protected override ISet Create(int size, object parent) + => new HashSet(); } /// /// An which default constructs a converter for use as the value converter. @@ -155,7 +156,7 @@ namespace IPA.Config.Stores.Converters /// /// the element type of the /// - public class ListConverter : CollectionConverter> + public class ListConverter : CollectionConverter> { /// /// Creates an using the default converter for . @@ -173,8 +174,8 @@ namespace IPA.Config.Stores.Converters /// the size to initialize it to /// the object that will own the new object /// the new - protected override List Create(int size, object parent) - => new List(size); + protected override List Create(int size, object parent) + => new(size); } /// /// A which default constructs a converter for use as the value converter. @@ -199,7 +200,7 @@ namespace IPA.Config.Stores.Converters /// /// the element type of the /// - public class IListConverter : CollectionConverter> + public class IListConverter : CollectionConverter> { /// /// Creates an using the default converter for . @@ -217,8 +218,8 @@ namespace IPA.Config.Stores.Converters /// the size to initialize it to /// the object that will own the new object /// the new - protected override IList Create(int size, object parent) - => new List(size); + protected override IList Create(int size, object parent) + => new List(size); } /// /// An which default constructs a converter for use as the value converter. diff --git a/IPA.Loader/Config/Stores/Converters.cs b/IPA.Loader/Config/Stores/Converters.cs index 7821b90a..12e222f1 100644 --- a/IPA.Loader/Config/Stores/Converters.cs +++ b/IPA.Loader/Config/Stores/Converters.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Config.Stores.Attributes; using IPA.Logging; using System; @@ -22,7 +23,7 @@ namespace IPA.Config.Stores.Converters /// /// the to get the integral value of /// the integral value of , or - public static long? IntValue(Value val) + public static long? IntValue(Value? val) => val is Integer inte ? inte.Value : val is FloatingPoint fp ? fp.AsInteger()?.Value : null; @@ -32,7 +33,7 @@ namespace IPA.Config.Stores.Converters /// /// the to get the floaing point value of /// the floaing point value of , or - public static decimal? FloatValue(Value val) + public static decimal? FloatValue(Value? val) => val is FloatingPoint fp ? fp.Value : val is Integer inte ? inte.AsFloat()?.Value : null; @@ -83,7 +84,7 @@ namespace IPA.Config.Stores.Converters } //Logger.log.Debug($"gives converter for value type {t}"); - var valConv = Activator.CreateInstance(typeof(ValConv<>).MakeGenericType(t)) as IValConv; + var valConv = (IValConv)Activator.CreateInstance(typeof(ValConv<>).MakeGenericType(t)); return valConv.Get(); } @@ -117,7 +118,7 @@ namespace IPA.Config.Stores.Converters IValConv, IValConv, IValConv { - internal static readonly ValConvImpls Impl = new ValConvImpls(); + internal static readonly ValConvImpls Impl = new(); Type IValConv.Get() => typeof(CharConverter); Type IValConv.Get() => typeof(LongConverter); Type IValConv.Get() => typeof(ULongConverter); @@ -145,7 +146,7 @@ namespace IPA.Config.Stores.Converters /// the type of the that this works on public static class Converter { - private static ValueConverter defaultConverter = null; + private static ValueConverter? defaultConverter; /// /// Gets the default for the current type. /// @@ -158,7 +159,7 @@ namespace IPA.Config.Stores.Converters //Logger.log.Debug($"Converter<{t}>.MakeDefault()"); static ValueConverter MakeInstOf(Type ty) - => Activator.CreateInstance(ty) as ValueConverter; + => (ValueConverter)Activator.CreateInstance(ty); return MakeInstOf(Converter.GetDefaultConverterType(t)); } @@ -193,16 +194,16 @@ namespace IPA.Config.Stores.Converters /// the tree to convert /// the object which will own the created object /// the object represented by - public override T? FromValue(Value value, object parent) - => value == null ? null : new T?(baseConverter.FromValue(value, parent)); + public override T? FromValue(Value? value, object parent) + => value is null ? null : new T?(baseConverter.FromValue(value, parent)); /// /// Converts a nullable to a tree. /// /// the value to serialize /// the object which owns /// a tree representing . - public override Value ToValue(T? obj, object parent) - => obj == null ? null : baseConverter.ToValue(obj.Value, parent); + public override Value? ToValue(T? obj, object parent) + => obj is null ? null : baseConverter.ToValue(obj.Value, parent); } /// @@ -237,7 +238,7 @@ namespace IPA.Config.Stores.Converters /// the object which will own the created object /// the deserialized enum value /// if is not a node - public override T FromValue(Value value, object parent) + public override T FromValue(Value? value, object parent) => value is Text t ? (T)Enum.Parse(typeof(T), t.Value) : throw new ArgumentException("Value not a string", nameof(value)); @@ -248,8 +249,8 @@ namespace IPA.Config.Stores.Converters /// the value to serialize /// the object which owns /// a node representing - public override Value ToValue(T obj, object parent) - => Value.Text(obj.ToString()); + public override Value? ToValue(T? obj, object parent) + => Value.Text(obj?.ToString()); } /// @@ -267,7 +268,7 @@ namespace IPA.Config.Stores.Converters /// the object which will own the created object /// the deserialized enum value /// if is not a node - public override T FromValue(Value value, object parent) + public override T FromValue(Value? value, object parent) => value is Text t ? (T)Enum.Parse(typeof(T), t.Value, true) : throw new ArgumentException("Value not a string", nameof(value)); @@ -278,8 +279,8 @@ namespace IPA.Config.Stores.Converters /// the value to serialize /// the object which owns /// a node representing - public override Value ToValue(T obj, object parent) - => Value.Text(obj.ToString()); + public override Value? ToValue(T? obj, object parent) + => Value.Text(obj?.ToString()); } /// @@ -296,7 +297,7 @@ namespace IPA.Config.Stores.Converters /// the object which will own the created object /// the deserialized enum value /// if is not a numeric node - public override T FromValue(Value value, object parent) + public override T FromValue(Value? value, object parent) => (T)Enum.ToObject(typeof(T), Converter.IntValue(value) ?? throw new ArgumentException("Value not a numeric node", nameof(value))); @@ -306,7 +307,7 @@ namespace IPA.Config.Stores.Converters /// the value to serialize /// the object which owns /// an node representing - public override Value ToValue(T obj, object parent) + public override Value ToValue(T? obj, object parent) => Value.Integer(Convert.ToInt64(obj)); } @@ -314,7 +315,7 @@ namespace IPA.Config.Stores.Converters /// A converter for instances of . /// /// the value type of the dictionary - public class IDictionaryConverter : ValueConverter> + public class IDictionaryConverter : ValueConverter> { /// /// Gets the converter for the dictionary's value type. @@ -338,9 +339,9 @@ namespace IPA.Config.Stores.Converters /// the to convert /// the parent that will own the resulting object /// the deserialized dictionary - public override IDictionary FromValue(Value value, object parent) - => (value as Map)?.Select(kvp => (kvp.Key, val: BaseConverter.FromValue(kvp.Value, parent))) - ?.ToDictionary(p => p.Key, p => p.val) + public override IDictionary FromValue(Value? value, object parent) + => ((value as Map)?.Select(kvp => (kvp.Key, val: BaseConverter.FromValue(kvp.Value, parent))) + ?.ToDictionary(p => p.Key, p => p.val)) ?? throw new ArgumentException("Value not a map", nameof(value)); /// @@ -349,8 +350,8 @@ namespace IPA.Config.Stores.Converters /// the dictionary to serialize /// the object that owns the dictionary /// the dictionary serialized as a - public override Value ToValue(IDictionary obj, object parent) - => Value.From(obj.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); + public override Value? ToValue(IDictionary? obj, object parent) + => Value.From(obj.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); } /// @@ -373,7 +374,7 @@ namespace IPA.Config.Stores.Converters /// A converter for instances of . /// /// the value type of the dictionary - public class DictionaryConverter : ValueConverter> + public class DictionaryConverter : ValueConverter> { /// /// Gets the converter for the dictionary's value type. @@ -397,7 +398,7 @@ namespace IPA.Config.Stores.Converters /// the to convert /// the parent that will own the resulting object /// the deserialized dictionary - public override Dictionary FromValue(Value value, object parent) + public override Dictionary FromValue(Value? value, object parent) => (value as Map)?.Select(kvp => (kvp.Key, val: BaseConverter.FromValue(kvp.Value, parent))) ?.ToDictionary(p => p.Key, p => p.val) ?? throw new ArgumentException("Value not a map", nameof(value)); @@ -408,8 +409,8 @@ namespace IPA.Config.Stores.Converters /// the dictionary to serialize /// the object that owns the dictionary /// the dictionary serialized as a - public override Value ToValue(Dictionary obj, object parent) - => Value.From(obj.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); + public override Value? ToValue(Dictionary? obj, object parent) + => Value.From(obj?.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); } /// @@ -433,7 +434,7 @@ namespace IPA.Config.Stores.Converters /// A converter for instances of . /// /// the value type of the dictionary - public class IReadOnlyDictionaryConverter : ValueConverter> + public class IReadOnlyDictionaryConverter : ValueConverter> { /// /// Gets the converter for the dictionary's value type. @@ -457,7 +458,7 @@ namespace IPA.Config.Stores.Converters /// the to convert /// the parent that will own the resulting object /// the deserialized dictionary - public override IReadOnlyDictionary FromValue(Value value, object parent) + public override IReadOnlyDictionary FromValue(Value? value, object parent) => (value as Map)?.Select(kvp => (kvp.Key, val: BaseConverter.FromValue(kvp.Value, parent))) ?.ToDictionary(p => p.Key, p => p.val) ?? throw new ArgumentException("Value not a map", nameof(value)); @@ -468,8 +469,8 @@ namespace IPA.Config.Stores.Converters /// the dictionary to serialize /// the object that owns the dictionary /// the dictionary serialized as a - public override Value ToValue(IReadOnlyDictionary obj, object parent) - => Value.From(obj.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); + public override Value? ToValue(IReadOnlyDictionary? obj, object parent) + => Value.From(obj?.Select(p => new KeyValuePair(p.Key, BaseConverter.ToValue(p.Value, parent)))); } /// @@ -500,7 +501,7 @@ namespace IPA.Config.Stores.Converters /// the object which will own the created object /// the deserialized Color object /// if is not a node or couldn't be parsed into a Color object - public override Color FromValue(Value value, object parent) + public override Color FromValue(Value? value, object parent) { if (value is Text t) { @@ -526,146 +527,146 @@ namespace IPA.Config.Stores.Converters internal class StringConverter : ValueConverter { - public override string FromValue(Value value, object parent) + public override string? FromValue(Value? value, object parent) => (value as Text)?.Value; - public override Value ToValue(string obj, object parent) + public override Value? ToValue(string? obj, object parent) => Value.From(obj); } internal class CharConverter : ValueConverter { - public override char FromValue(Value value, object parent) + public override char FromValue(Value? value, object parent) => (value as Text)?.Value[0] ?? throw new ArgumentException("Value not a text node", nameof(value)); // can throw nullptr - public override Value ToValue(char obj, object parent) + public override Value? ToValue(char obj, object parent) => Value.From(char.ToString(obj)); } internal class LongConverter : ValueConverter { - public override long FromValue(Value value, object parent) + public override long FromValue(Value? value, object parent) => Converter.IntValue(value) ?? throw new ArgumentException("Value not a numeric value", nameof(value)); - public override Value ToValue(long obj, object parent) + public override Value? ToValue(long obj, object parent) => Value.From(obj); } internal class ULongConverter : ValueConverter { - public override ulong FromValue(Value value, object parent) + public override ulong FromValue(Value? value, object parent) => (ulong)(Converter.FloatValue(value) ?? throw new ArgumentException("Value not a numeric value", nameof(value))); - public override Value ToValue(ulong obj, object parent) + public override Value? ToValue(ulong obj, object parent) => Value.From(obj); } internal class IntPtrConverter : ValueConverter { - public override IntPtr FromValue(Value value, object parent) + public override IntPtr FromValue(Value? value, object parent) => (IntPtr)Converter.Default.FromValue(value, parent); - public override Value ToValue(IntPtr obj, object parent) + public override Value? ToValue(IntPtr obj, object parent) => Value.From((long)obj); } internal class UIntPtrConverter : ValueConverter { - public override UIntPtr FromValue(Value value, object parent) + public override UIntPtr FromValue(Value? value, object parent) => (UIntPtr)Converter.Default.FromValue(value, parent); - public override Value ToValue(UIntPtr obj, object parent) + public override Value? ToValue(UIntPtr obj, object parent) => Value.From((decimal)obj); } internal class IntConverter : ValueConverter { - public override int FromValue(Value value, object parent) + public override int FromValue(Value? value, object parent) => (int)Converter.Default.FromValue(value, parent); - public override Value ToValue(int obj, object parent) + public override Value? ToValue(int obj, object parent) => Value.From(obj); } internal class UIntConverter : ValueConverter { - public override uint FromValue(Value value, object parent) + public override uint FromValue(Value? value, object parent) => (uint)Converter.Default.FromValue(value, parent); - public override Value ToValue(uint obj, object parent) + public override Value? ToValue(uint obj, object parent) => Value.From(obj); } internal class ShortConverter : ValueConverter { - public override short FromValue(Value value, object parent) + public override short FromValue(Value? value, object parent) => (short)Converter.Default.FromValue(value, parent); - public override Value ToValue(short obj, object parent) + public override Value? ToValue(short obj, object parent) => Value.From(obj); } internal class UShortConverter : ValueConverter { - public override ushort FromValue(Value value, object parent) + public override ushort FromValue(Value? value, object parent) => (ushort)Converter.Default.FromValue(value, parent); - public override Value ToValue(ushort obj, object parent) + public override Value? ToValue(ushort obj, object parent) => Value.From(obj); } internal class ByteConverter : ValueConverter { - public override byte FromValue(Value value, object parent) + public override byte FromValue(Value? value, object parent) => (byte)Converter.Default.FromValue(value, parent); - public override Value ToValue(byte obj, object parent) + public override Value? ToValue(byte obj, object parent) => Value.From(obj); } internal class SByteConverter : ValueConverter { - public override sbyte FromValue(Value value, object parent) + public override sbyte FromValue(Value? value, object parent) => (sbyte)Converter.Default.FromValue(value, parent); - public override Value ToValue(sbyte obj, object parent) + public override Value? ToValue(sbyte obj, object parent) => Value.From(obj); } internal class DecimalConverter : ValueConverter { - public override decimal FromValue(Value value, object parent) + public override decimal FromValue(Value? value, object parent) => Converter.FloatValue(value) ?? throw new ArgumentException("Value not a numeric value", nameof(value)); - public override Value ToValue(decimal obj, object parent) + public override Value? ToValue(decimal obj, object parent) => Value.From(obj); } internal class FloatConverter : ValueConverter { - public override float FromValue(Value value, object parent) + public override float FromValue(Value? value, object parent) => (float)Converter.Default.FromValue(value, parent); - public override Value ToValue(float obj, object parent) + public override Value? ToValue(float obj, object parent) => Value.From((decimal)obj); } internal class DoubleConverter : ValueConverter { - public override double FromValue(Value value, object parent) + public override double FromValue(Value? value, object parent) => (double)Converter.Default.FromValue(value, parent); - public override Value ToValue(double obj, object parent) + public override Value? ToValue(double obj, object parent) => Value.From((decimal)obj); } internal class BooleanConverter : ValueConverter { - public override bool FromValue(Value value, object parent) + public override bool FromValue(Value? value, object parent) => (value as Boolean)?.Value ?? throw new ArgumentException("Value not a Boolean", nameof(value)); - public override Value ToValue(bool obj, object parent) + public override Value? ToValue(bool obj, object parent) => Value.From(obj); } internal class DateTimeConverter : ValueConverter { - public override DateTime FromValue(Value value, object parent) + public override DateTime FromValue(Value? value, object parent) { - if (!(value is Text text)) + if (value is not Text text) { throw new ArgumentException("Value is not of type Text", nameof(value)); } @@ -678,14 +679,14 @@ namespace IPA.Config.Stores.Converters throw new ArgumentException($"Parsing failed, {text.Value}"); } - public override Value ToValue(DateTime obj, object parent) => Value.Text(obj.ToString("O")); + public override Value? ToValue(DateTime obj, object parent) => Value.Text(obj.ToString("O")); } internal class DateTimeOffsetConverter : ValueConverter { - public override DateTimeOffset FromValue(Value value, object parent) + public override DateTimeOffset FromValue(Value? value, object parent) { - if (!(value is Text text)) + if (value is not Text text) { throw new ArgumentException("Value is not of type Text", nameof(value)); } @@ -703,9 +704,9 @@ namespace IPA.Config.Stores.Converters internal class TimeSpanConverter : ValueConverter { - public override TimeSpan FromValue(Value value, object parent) + public override TimeSpan FromValue(Value? value, object parent) { - if (!(value is Text text)) + if (value is not Text text) { throw new ArgumentException("Value is not of type Text", nameof(value)); } @@ -718,6 +719,6 @@ namespace IPA.Config.Stores.Converters throw new ArgumentException($"Parsing failed, {text.Value}"); } - public override Value ToValue(TimeSpan obj, object parent) => Value.Text(obj.ToString()); + public override Value? ToValue(TimeSpan obj, object parent) => Value.Text(obj.ToString()); } } diff --git a/IPA.Loader/Config/Stores/CustomObjectConverter.cs b/IPA.Loader/Config/Stores/CustomObjectConverter.cs index be881cc7..10787398 100644 --- a/IPA.Loader/Config/Stores/CustomObjectConverter.cs +++ b/IPA.Loader/Config/Stores/CustomObjectConverter.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using System; namespace IPA.Config.Stores.Converters @@ -12,24 +13,26 @@ namespace IPA.Config.Stores.Converters { private interface IImpl { - T FromValue(Value value, object parent); - Value ToValue(T obj, object parent); + T? FromValue(Value? value, object parent); + Value? ToValue(T? obj, object parent); } private class Impl : IImpl where U : class, GeneratedStoreImpl.IGeneratedStore, T { private static readonly GeneratedStoreImpl.GeneratedStoreCreator creator = GeneratedStoreImpl.GetCreator(typeof(T)); - private static U Create(GeneratedStoreImpl.IGeneratedStore parent) - => creator(parent) as U; + private static U Create(GeneratedStoreImpl.IGeneratedStore? parent) + => (U)creator(parent); - public T FromValue(Value value, object parent) + public T? FromValue(Value? value, object parent) { // lots of casting here, but it works i promise (probably) (parent can be a non-IGeneratedStore, however it won't necessarily behave then) + if (value is null) return null; var obj = Create(parent as GeneratedStoreImpl.IGeneratedStore); obj.Deserialize(value); return obj; } - public Value ToValue(T obj, object parent) + public Value? ToValue(T? obj, object parent) { + if (obj is null) return null; if (obj is GeneratedStoreImpl.IGeneratedStore store) return store.Serialize(); else @@ -51,7 +54,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that will own the deserialized value /// the deserialized value /// - public static T Deserialize(Value value, object parent) + public static T? Deserialize(Value? value, object parent) => impl.FromValue(value, parent); /// @@ -61,7 +64,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that owns /// the tree that represents /// - public static Value Serialize(T obj, object parent) + public static Value? Serialize(T? obj, object parent) => impl.ToValue(obj, parent); /// @@ -71,7 +74,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that will own the deserialized value /// the deserialized value /// - public override T FromValue(Value value, object parent) + public override T? FromValue(Value? value, object parent) => Deserialize(value, parent); /// @@ -81,7 +84,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that owns /// the tree that represents /// - public override Value ToValue(T obj, object parent) + public override Value? ToValue(T? obj, object parent) => Serialize(obj, parent); } @@ -104,7 +107,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that will own the deserialized value /// the deserialized value /// - public static T Deserialize(Value value, object parent) + public static T Deserialize(Value? value, object parent) => deserialize(value, parent); /// @@ -123,7 +126,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that will own the deserialized value /// the deserialized value /// - public override T FromValue(Value value, object parent) + public override T FromValue(Value? value, object parent) => Deserialize(value, parent); /// @@ -133,7 +136,7 @@ namespace IPA.Config.Stores.Converters /// the parent object that owns /// the tree that represents /// - public override Value ToValue(T obj, object parent) + public override Value? ToValue(T obj, object parent) => Serialize(obj); } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ConversionDelegates.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ConversionDelegates.cs index 1ad9fd12..dc7f5ea9 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ConversionDelegates.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ConversionDelegates.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using System; using System.Collections.Generic; using System.Linq; @@ -13,12 +14,12 @@ namespace IPA.Config.Stores { internal delegate Value SerializeObject(T obj); - internal delegate T DeserializeObject(Value val, object parent); + internal delegate T DeserializeObject(Value? val, object parent); private static class DelegateStore { - public static SerializeObject Serialize; - public static DeserializeObject Deserialize; + public static SerializeObject? Serialize; + public static DeserializeObject? Deserialize; } internal static SerializeObject GetSerializerDelegate() diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Correction.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Correction.cs index 15d54c97..b59bf7d0 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Correction.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Correction.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Config.Stores.Attributes; using IPA.Logging; using System; diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs index 7f0bdffe..ab424717 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Logging; using System; using System.Collections; @@ -43,6 +44,7 @@ namespace IPA.Config.Stores private static void EmitDeserializeNullable(ILGenerator il, SerializedMemberInfo member, Type expected, LocalAllocator GetLocal, Action thisarg, Action parentobj) { + if (!member.IsNullable) throw new InvalidOperationException("EmitDeserializeNullable called for non-nullable!"); thisarg ??= il => il.Emit(OpCodes.Ldarg_0); parentobj ??= thisarg; EmitDeserializeValue(il, member, member.NullableWrappedType, expected, GetLocal, thisarg, parentobj); @@ -161,6 +163,9 @@ namespace IPA.Config.Stores private static void EmitDeserializeConverter(ILGenerator il, SerializedMemberInfo member, Label nextLabel, LocalAllocator GetLocal, Action thisobj, Action parentobj) { + if (!member.HasConverter) + throw new InvalidOperationException("EmitDeserializeConverter called for member without converter"); + using var stlocal = GetLocal.Allocate(typeof(Value)); using var valLocal = GetLocal.Allocate(member.Type); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs index c069905f..7efa987a 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Config.Stores.Attributes; using IPA.Logging; using System; @@ -36,13 +37,12 @@ namespace IPA.Config.Stores private static readonly MethodInfo CreateGParent = typeof(GeneratedStoreImpl).GetMethod(nameof(Create), BindingFlags.NonPublic | BindingFlags.Static, null, CallingConventions.Any, new[] { typeof(IGeneratedStore) }, Array.Empty()); - internal static T Create(IGeneratedStore parent) where T : class => (T)Create(typeof(T), parent); + internal static T Create(IGeneratedStore? parent) where T : class => (T)Create(typeof(T), parent); - private static IConfigStore Create(Type type, IGeneratedStore parent) + private static IConfigStore Create(Type type, IGeneratedStore? parent) => GetCreator(type)(parent); - private static readonly SingleCreationValueCache generatedCreators - = new SingleCreationValueCache(); + private static readonly SingleCreationValueCache generatedCreators = new(); private static (GeneratedStoreCreator ctor, Type type) GetCreatorAndGeneratedType(Type t) => generatedCreators.GetOrAdd(t, MakeCreator); @@ -55,7 +55,7 @@ namespace IPA.Config.Stores internal const string GeneratedAssemblyName = "IPA.Config.Generated"; - private static AssemblyBuilder assembly = null; + private static AssemblyBuilder? assembly; private static AssemblyBuilder Assembly { get @@ -75,7 +75,7 @@ namespace IPA.Config.Stores Assembly.Save(file); } - private static ModuleBuilder module = null; + private static ModuleBuilder? module; private static ModuleBuilder Module { get @@ -88,7 +88,7 @@ namespace IPA.Config.Stores } // TODO: does this need to be a SingleCreationValueCache or similar? - private static readonly Dictionary> TypeRequiredConverters = new Dictionary>(); + private static readonly Dictionary> TypeRequiredConverters = new(); private static void CreateAndInitializeConvertersFor(Type type, IEnumerable structure) { if (!TypeRequiredConverters.TryGetValue(type, out var converters)) @@ -96,7 +96,8 @@ namespace IPA.Config.Stores var converterFieldType = Module.DefineType($"{type.FullName}", TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.Abstract | TypeAttributes.AnsiClass); // a static class - var uniqueConverterTypes = structure.Where(m => m.HasConverter).Select(m => m.Converter).Distinct().ToArray(); + var uniqueConverterTypes = structure.Where(m => m.HasConverter) + .Select(m => m.Converter).NonNull().Distinct().ToArray(); converters = new Dictionary(uniqueConverterTypes.Length); foreach (var convType in uniqueConverterTypes) @@ -122,11 +123,14 @@ namespace IPA.Config.Stores TypeRequiredConverters.Add(type, converters); - converterFieldType.CreateType(); + _ = converterFieldType.CreateType(); } - foreach (var member in structure.Where(m => m.HasConverter)) + foreach (var member in structure) + { + if (!member.HasConverter) continue; member.ConverterField = converters[member.Converter]; + } } } } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs index 350ef742..dc323833 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs @@ -1,4 +1,5 @@ -using IPA.Logging; +#nullable enable +using IPA.Logging; using System; using System.Collections.Generic; using System.Reflection; @@ -42,27 +43,27 @@ namespace IPA.Config.Stores internal class Impl : IConfigStore { private readonly IGeneratedStore generated; - private long enteredTransactions = 0; + private long enteredTransactions; internal static ConstructorInfo Ctor = typeof(Impl).GetConstructor(new[] { typeof(IGeneratedStore) }); public Impl(IGeneratedStore store) => generated = store; - private readonly AutoResetEvent resetEvent = new AutoResetEvent(false); + private readonly AutoResetEvent resetEvent = new(false); public WaitHandle SyncObject => resetEvent; - public static WaitHandle ImplGetSyncObject(IGeneratedStore s) => FindImpl(s).SyncObject; + public static WaitHandle? ImplGetSyncObject(IGeneratedStore s) => FindImpl(s)?.SyncObject; internal static MethodInfo ImplGetSyncObjectMethod = typeof(Impl).GetMethod(nameof(ImplGetSyncObject)); - public ReaderWriterLockSlim WriteSyncObject { get; } = new ReaderWriterLockSlim(); - public static ReaderWriterLockSlim ImplGetWriteSyncObject(IGeneratedStore s) => FindImpl(s)?.WriteSyncObject; + public ReaderWriterLockSlim WriteSyncObject { get; } = new(); + public static ReaderWriterLockSlim? ImplGetWriteSyncObject(IGeneratedStore s) => FindImpl(s)?.WriteSyncObject; internal static MethodInfo ImplGetWriteSyncObjectMethod = typeof(Impl).GetMethod(nameof(ImplGetWriteSyncObject)); internal static MethodInfo ImplSignalChangedMethod = typeof(Impl).GetMethod(nameof(ImplSignalChanged)); - public static void ImplSignalChanged(IGeneratedStore s) => FindImpl(s).SignalChanged(); + public static void ImplSignalChanged(IGeneratedStore s) => FindImpl(s)?.SignalChanged(); public void SignalChanged() { try { - resetEvent.Set(); + _ = resetEvent.Set(); } catch (ObjectDisposedException e) { @@ -72,11 +73,11 @@ namespace IPA.Config.Stores } internal static MethodInfo ImplInvokeChangedMethod = typeof(Impl).GetMethod(nameof(ImplInvokeChanged)); - public static void ImplInvokeChanged(IGeneratedStore s) => FindImpl(s).InvokeChanged(); + public static void ImplInvokeChanged(IGeneratedStore s) => FindImpl(s)?.InvokeChanged(); public void InvokeChanged() => generated.Changed(); internal static MethodInfo ImplTakeReadMethod = typeof(Impl).GetMethod(nameof(ImplTakeRead)); - public static void ImplTakeRead(IGeneratedStore s) => FindImpl(s).TakeRead(); + public static void ImplTakeRead(IGeneratedStore s) => FindImpl(s)?.TakeRead(); public void TakeRead() { if (!WriteSyncObject.IsWriteLockHeld) @@ -84,7 +85,7 @@ namespace IPA.Config.Stores } internal static MethodInfo ImplReleaseReadMethod = typeof(Impl).GetMethod(nameof(ImplReleaseRead)); - public static void ImplReleaseRead(IGeneratedStore s) => FindImpl(s).ReleaseRead(); + public static void ImplReleaseRead(IGeneratedStore s) => FindImpl(s)?.ReleaseRead(); public void ReleaseRead() { if (!WriteSyncObject.IsWriteLockHeld) @@ -92,24 +93,24 @@ namespace IPA.Config.Stores } internal static MethodInfo ImplTakeWriteMethod = typeof(Impl).GetMethod(nameof(ImplTakeWrite)); - public static void ImplTakeWrite(IGeneratedStore s) => FindImpl(s).TakeWrite(); + public static void ImplTakeWrite(IGeneratedStore s) => FindImpl(s)?.TakeWrite(); public void TakeWrite() => WriteSyncObject.EnterWriteLock(); internal static MethodInfo ImplReleaseWriteMethod = typeof(Impl).GetMethod(nameof(ImplReleaseWrite)); - public static void ImplReleaseWrite(IGeneratedStore s) => FindImpl(s).ReleaseWrite(); + public static void ImplReleaseWrite(IGeneratedStore s) => FindImpl(s)?.ReleaseWrite(); public void ReleaseWrite() => WriteSyncObject.ExitWriteLock(); internal static MethodInfo ImplChangeTransactionMethod = typeof(Impl).GetMethod(nameof(ImplChangeTransaction)); - public static IDisposable ImplChangeTransaction(IGeneratedStore s, IDisposable nest) => FindImpl(s).ChangeTransaction(nest); + public static IDisposable? ImplChangeTransaction(IGeneratedStore s, IDisposable nest) => FindImpl(s)?.ChangeTransaction(nest); // TODO: improve trasactionals so they don't always save in every case public IDisposable ChangeTransaction(IDisposable nest, bool takeWrite = true) => GetFreeTransaction().InitWith(this, nest, takeWrite && !WriteSyncObject.IsWriteLockHeld); - private ChangeTransactionObj GetFreeTransaction() + private static ChangeTransactionObj GetFreeTransaction() => freeTransactionObjs.Count > 0 ? freeTransactionObjs.Pop() : new ChangeTransactionObj(); // TODO: maybe sometimes clean this? - private static readonly Stack freeTransactionObjs = new Stack(); + private static readonly Stack freeTransactionObjs = new(); private sealed class ChangeTransactionObj : IDisposable { @@ -148,7 +149,7 @@ namespace IPA.Config.Stores try { if (data.ownsWrite) - data.impl.ReleaseWrite(); + data.impl?.ReleaseWrite(); } catch { @@ -163,14 +164,14 @@ namespace IPA.Config.Stores ~ChangeTransactionObj() => Dispose(false); } - public static Impl FindImpl(IGeneratedStore store) + public static Impl? FindImpl(IGeneratedStore store) { while (store?.Parent != null) store = store.Parent; // walk to the top of the tree return store?.Impl; } internal static MethodInfo ImplReadFromMethod = typeof(Impl).GetMethod(nameof(ImplReadFrom)); - public static void ImplReadFrom(IGeneratedStore s, ConfigProvider provider) => FindImpl(s).ReadFrom(provider); + public static void ImplReadFrom(IGeneratedStore s, ConfigProvider provider) => FindImpl(s)?.ReadFrom(provider); public void ReadFrom(ConfigProvider provider) { Logger.config.Debug($"Generated impl ReadFrom {generated.GetType()}"); @@ -183,7 +184,7 @@ namespace IPA.Config.Stores } internal static MethodInfo ImplWriteToMethod = typeof(Impl).GetMethod(nameof(ImplWriteTo)); - public static void ImplWriteTo(IGeneratedStore s, ConfigProvider provider) => FindImpl(s).WriteTo(provider); + public static void ImplWriteTo(IGeneratedStore s, ConfigProvider provider) => FindImpl(s)?.WriteTo(provider); public void WriteTo(ConfigProvider provider) { Logger.config.Debug($"Generated impl WriteTo {generated.GetType()}"); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs index d9248c21..c80ef1ea 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Config.Stores.Attributes; using IPA.Logging; using System; @@ -21,7 +22,7 @@ namespace IPA.Config.Stores internal static partial class GeneratedStoreImpl { - internal delegate IConfigStore GeneratedStoreCreator(IGeneratedStore parent); + internal delegate IConfigStore GeneratedStoreCreator(IGeneratedStore? parent); private static void GetMethodThis(ILGenerator il) => il.Emit(OpCodes.Ldarg_0); private static (GeneratedStoreCreator ctor, Type type) MakeCreator(Type type) @@ -109,7 +110,7 @@ namespace IPA.Config.Stores const MethodAttributes virtualMemberMethod = MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.Final; #region INotifyPropertyChanged - MethodBuilder notifyChanged = null; + MethodBuilder? notifyChanged = null; if (isINotifyPropertyChanged || hasNotifyAttribute) { // we don't actually want to notify if the base class implements it @@ -639,7 +640,7 @@ namespace IPA.Config.Stores #region Members foreach (var member in structure.Where(m => m.IsVirtual)) { // IsVirtual implies !IsField - var prop = member.Member as PropertyInfo; + var prop = (PropertyInfo)member.Member; var get = prop.GetGetMethod(true); var set = prop.GetSetMethod(true); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs index 86384804..904ee261 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs @@ -1,10 +1,12 @@ -using IPA.Config.Stores.Attributes; +#nullable enable +using IPA.Config.Stores.Attributes; using IPA.Config.Stores.Converters; using IPA.Logging; using IPA.Utilities; using IPA.Utilities.Async; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using System.Text; @@ -20,23 +22,25 @@ namespace IPA.Config.Stores { private class SerializedMemberInfo { - public string Name; - public MemberInfo Member; - public Type Type; + public string Name = null!; + public MemberInfo Member = null!; + public Type Type = null!; public bool AllowNull; public bool IsVirtual; public bool IsField; - public bool IsNullable; // signifies whether this is a Nullable + [MemberNotNullWhen(true, nameof(NullableWrappedType))] + public bool IsNullable { get; set; } // signifies whether this is a Nullable - public bool HasConverter; - public bool IsGenericConverter; // used so we can call directly to the generic version if it is - public Type Converter; - public Type ConverterBase; - public Type ConverterTarget; - public FieldInfo ConverterField; + [MemberNotNullWhen(true, nameof(Converter), nameof(ConverterBase))] + public bool HasConverter { get; set; } + public bool IsGenericConverter { get; set; } // used so we can call directly to the generic version if it is + public Type? Converter; + public Type? ConverterBase; + public Type? ConverterTarget; + public FieldInfo? ConverterField; // invalid for objects with IsNullable false - public Type NullableWrappedType => Nullable.GetUnderlyingType(Type); + public Type? NullableWrappedType => Nullable.GetUnderlyingType(Type); // invalid for objects with IsNullable false public PropertyInfo Nullable_HasValue => Type.GetProperty(nameof(Nullable.HasValue)); // invalid for objects with IsNullable false @@ -73,6 +77,8 @@ namespace IPA.Config.Stores { if (converterAttr.UseDefaultConverterForType) converterAttr = new UseConverterAttribute(Converter.GetDefaultConverterType(member.Type)); + if (converterAttr.UseDefaultConverterForType) + throw new InvalidOperationException("How did we get here?"); member.Converter = converterAttr.ConverterType; member.IsGenericConverter = converterAttr.IsGenericConverter; @@ -100,7 +106,7 @@ namespace IPA.Config.Stores { try { - var conv = Activator.CreateInstance(converterAttr.ConverterType) as IValueConverter; + var conv = (IValueConverter)Activator.CreateInstance(converterAttr.ConverterType); targetType = conv.Type; } catch @@ -128,8 +134,7 @@ namespace IPA.Config.Stores return true; } - private static readonly SingleCreationValueCache objectStructureCache - = new SingleCreationValueCache(); + private static readonly SingleCreationValueCache objectStructureCache = new(); private static IEnumerable ReadObjectMembers(Type type) => objectStructureCache.GetOrAdd(type, t => ReadObjectMembersInternal(type).ToArray()); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs index cea03460..b1cd6138 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using IPA.Logging; using System; using System.Collections.Generic; diff --git a/IPA.Loader/Config/Stores/GeneratedStorePublicInterface.cs b/IPA.Loader/Config/Stores/GeneratedStorePublicInterface.cs index 7ece8174..c768c1be 100644 --- a/IPA.Loader/Config/Stores/GeneratedStorePublicInterface.cs +++ b/IPA.Loader/Config/Stores/GeneratedStorePublicInterface.cs @@ -1,4 +1,5 @@ -using IPA.Config.Stores.Attributes; +#nullable enable +using IPA.Config.Stores.Attributes; using System; using System.Collections.Generic; using System.ComponentModel; diff --git a/IPA.Loader/Config/Stores/ValueConverter.cs b/IPA.Loader/Config/Stores/ValueConverter.cs index 8be1f300..68cec79e 100644 --- a/IPA.Loader/Config/Stores/ValueConverter.cs +++ b/IPA.Loader/Config/Stores/ValueConverter.cs @@ -1,4 +1,5 @@ -using IPA.Config.Data; +#nullable enable +using IPA.Config.Data; using System; namespace IPA.Config.Stores @@ -31,14 +32,14 @@ namespace IPA.Config.Stores /// the object to convert /// the owning object of /// a representation of as a structure - Value ToValue(object obj, object parent); + Value? ToValue(object? obj, object parent); /// /// Converts the given to the object type handled by this converter. /// /// the to deserialize /// the object that will own the result /// the deserialized object - object FromValue(Value value, object parent); + object? FromValue(Value? value, object parent); /// /// Gets the type that this handles. /// @@ -59,7 +60,7 @@ namespace IPA.Config.Stores /// the owning object of /// a representation of as a structure /// - public abstract Value ToValue(T obj, object parent); + public abstract Value? ToValue(T? obj, object parent); /// /// Converts the given to the object type handled by this converter. /// @@ -67,10 +68,10 @@ namespace IPA.Config.Stores /// the object that will own the result /// the deserialized object /// - public abstract T FromValue(Value value, object parent); + public abstract T? FromValue(Value? value, object parent); - Value IValueConverter.ToValue(object obj, object parent) => ToValue((T)obj, parent); - object IValueConverter.FromValue(Value value, object parent) => FromValue(value, parent); + Value? IValueConverter.ToValue(object? obj, object parent) => ToValue((T?)obj, parent); + object? IValueConverter.FromValue(Value? value, object parent) => FromValue(value, parent); Type IValueConverter.Type => typeof(T); } } diff --git a/IPA.Loader/Utilities/AlmostVersion.cs b/IPA.Loader/Utilities/AlmostVersion.cs index 03ff5736..6b9c8111 100644 --- a/IPA.Loader/Utilities/AlmostVersion.cs +++ b/IPA.Loader/Utilities/AlmostVersion.cs @@ -305,15 +305,19 @@ namespace IPA.Utilities /// the node to convert /// the owner of the new object /// - public override AlmostVersion FromValue(Value value, object parent) - => new(Converter.Default.FromValue(value, parent)); + public override AlmostVersion? FromValue(Value? value, object parent) + => Converter.Default.FromValue(value, parent) switch + { + { } v => new(v), + _ => null + }; /// /// Converts an to a node. /// /// the to convert /// the parent of /// a node representing - public override Value ToValue(AlmostVersion obj, object parent) - => Value.From(obj.ToString()); + public override Value? ToValue(AlmostVersion? obj, object parent) + => Value.From(obj?.ToString()); } } diff --git a/IPA/_Attributes.cs b/IPA/_Attributes.cs deleted file mode 100644 index b56d00af..00000000 --- a/IPA/_Attributes.cs +++ /dev/null @@ -1,10 +0,0 @@ -#if NET472 -namespace System.Diagnostics.CodeAnalysis -{ - [AttributeUsage(AttributeTargets.Method, Inherited = false)] - public sealed class DoesNotReturnAttribute : Attribute - { - public DoesNotReturnAttribute() { } - } -} -#endif \ No newline at end of file From 31cbf4a3eaeef5a144253868f6f0f359f5d82d93 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 14 Dec 2021 18:41:21 -0600 Subject: [PATCH 63/88] Fix serializing nullable value types --- .../Stores/GeneratedStoreImpl/Serialization.cs | 13 ++++++++++++- .../Config/Stores/GeneratedStoreImpl/Utility.cs | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs index b1cd6138..9005d4e2 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs @@ -23,6 +23,17 @@ namespace IPA.Config.Stores { EmitLoad(il, member, thisarg); + using var valueTypeLocal = + member.IsNullable + ? GetLocal.Allocate(member.Type) + : default; + + if (member.IsNullable) + { + il.Emit(OpCodes.Stloc, valueTypeLocal.Local); + il.Emit(OpCodes.Ldloca, valueTypeLocal.Local); + } + var endSerialize = il.DefineLabel(); if (member.AllowNull) @@ -48,7 +59,7 @@ namespace IPA.Config.Stores var targetType = GetExpectedValueTypeForType(memberConversionType); if (member.HasConverter) { - using var stlocal = GetLocal.Allocate(member.Type); + using var stlocal = GetLocal.Allocate(memberConversionType); using var valLocal = GetLocal.Allocate(typeof(Value)); il.Emit(OpCodes.Stloc, stlocal); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs index a5d77664..216e0664 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs @@ -60,7 +60,7 @@ namespace IPA.Config.Stores #endif public static implicit operator LocalBuilder(AllocatedLocal loc) => loc.Local; - public void Dealloc() => allocator.Deallocate(this); + public void Dealloc() => allocator?.Deallocate(this); public void Dispose() => Dealloc(); } From 54a276936793b3312988a608aa354be6e6076ec0 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 14 Dec 2021 20:28:57 -0600 Subject: [PATCH 64/88] Update PluginInitInjector documentation to list IAntiMalware --- IPA.Loader/Loader/PluginInitInjector.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/IPA.Loader/Loader/PluginInitInjector.cs b/IPA.Loader/Loader/PluginInitInjector.cs index 3c669515..c7b42f43 100644 --- a/IPA.Loader/Loader/PluginInitInjector.cs +++ b/IPA.Loader/Loader/PluginInitInjector.cs @@ -36,14 +36,17 @@ namespace IPA.Loader /// /// /// - /// - /// A object for the plugin being injected. + /// A object for the plugin being injected. /// /// These parameters may have and to control /// how it is constructed. /// /// /// + /// + /// + /// The instance which should be used for any potentially dangerous files. + /// /// /// For all of the default injectors, only one of each will be generated, and any later parameters will recieve the same value as the first one. /// @@ -202,10 +205,7 @@ namespace IPA.Loader var val = pair.Inject(prev, param, meta, provider); - if (previousValues.ContainsKey(pair)) - previousValues[pair] = val; - else - previousValues.Add(pair, val); + previousValues[pair] = val; if (val == null) continue; value = val; From 7b0c7f2f9680c17ed12d0740a40b2c3bcb3f0e5b Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 14 Dec 2021 20:50:01 -0600 Subject: [PATCH 65/88] Fix GeneratedConfig.WriteSyncObject --- IPA.Loader/Config/Config.cs | 2 +- IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs | 4 ++-- IPA.Loader/Loader/PluginInitInjector.cs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/IPA.Loader/Config/Config.cs b/IPA.Loader/Config/Config.cs index 0e4c19f1..d818e5b8 100644 --- a/IPA.Loader/Config/Config.cs +++ b/IPA.Loader/Config/Config.cs @@ -81,7 +81,7 @@ namespace IPA.Config /// Registers a to use for configs. /// /// the type to register - public static void Register() where T : IConfigProvider => Register(typeof(T)); + public static void Register() where T : IConfigProvider, new() => Register(typeof(T)); /// /// Registers a to use for configs. diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs index c80ef1ea..c11af324 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs @@ -436,7 +436,7 @@ namespace IPA.Config.Stores var IConfigStore_ReadFrom = IConfigStore_t.GetMethod(nameof(IConfigStore.ReadFrom)); #region IConfigStore.SyncObject - var syncObjProp = typeBuilder.DefineProperty(nameof(IConfigStore.SyncObject), PropertyAttributes.None, typeof(WaitHandle), null); + var syncObjProp = typeBuilder.DefineProperty(nameof(IConfigStore.SyncObject), PropertyAttributes.None, IConfigStore_GetSyncObject.ReturnType, null); var syncObjPropGet = typeBuilder.DefineMethod($"{nameof(IConfigStore.SyncObject)}", virtualPropertyMethodAttr, syncObjProp.PropertyType, Type.EmptyTypes); syncObjProp.SetGetMethod(syncObjPropGet); typeBuilder.DefineMethodOverride(syncObjPropGet, IConfigStore_GetSyncObject); @@ -451,7 +451,7 @@ namespace IPA.Config.Stores } #endregion #region IConfigStore.WriteSyncObject - var writeSyncObjProp = typeBuilder.DefineProperty(nameof(IConfigStore.WriteSyncObject), PropertyAttributes.None, typeof(WaitHandle), null); + var writeSyncObjProp = typeBuilder.DefineProperty(nameof(IConfigStore.WriteSyncObject), PropertyAttributes.None, IConfigStore_GetWriteSyncObject.ReturnType, null); var writeSyncObjPropGet = typeBuilder.DefineMethod($"{nameof(IConfigStore.WriteSyncObject)}", virtualPropertyMethodAttr, writeSyncObjProp.PropertyType, Type.EmptyTypes); writeSyncObjProp.SetGetMethod(writeSyncObjPropGet); typeBuilder.DefineMethodOverride(writeSyncObjPropGet, IConfigStore_GetWriteSyncObject); diff --git a/IPA.Loader/Loader/PluginInitInjector.cs b/IPA.Loader/Loader/PluginInitInjector.cs index c7b42f43..0d5052e5 100644 --- a/IPA.Loader/Loader/PluginInitInjector.cs +++ b/IPA.Loader/Loader/PluginInitInjector.cs @@ -152,10 +152,10 @@ namespace IPA.Loader if (!target.IsAssignableFrom(source)) return null; if (!target.IsInterface && !source.IsSubclassOf(target)) return int.MinValue; - int value = 0; + int value = int.MaxValue - 1; while (true) { - if (source == null) return value; + if (source is null) return value; if (target.IsInterface && source.GetInterfaces().Contains(target)) return value; else if (target == source) From 332823b46a85992257fdfc42961fbf79ad50d583 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 15 Dec 2021 16:08:34 -0600 Subject: [PATCH 66/88] Add Harmony logging interceptor --- IPA.Injector/Injector.cs | 41 +-- IPA.Injector/PermissionFix.cs | 6 +- IPA.Injector/Updates.cs | 30 +- IPA.Loader/Config/ConfigRuntime.cs | 12 +- .../Config/Providers/JsonConfigProvider.cs | 18 +- IPA.Loader/Config/SelfConfig.cs | 2 +- .../GeneratedStoreImpl/Deserialization.cs | 4 +- .../GeneratedStoreImpl/IGeneratedStore.cs | 8 +- .../Stores/GeneratedStoreImpl/MakeCreator.cs | 4 +- .../GeneratedStoreImpl/ObjectStructure.cs | 10 +- .../GeneratedStoreImpl/Serialization.cs | 4 +- .../Stores/GeneratedStoreImpl/Utility.cs | 6 +- IPA.Loader/IPA.Loader.csproj | 4 +- .../JsonConverters/FeaturesFieldConverter.cs | 2 +- .../Loader/Composite/CompositeBSPlugin.cs | 2 +- .../Loader/Composite/CompositeIPAPlugin.cs | 2 +- IPA.Loader/Loader/DisabledConfig.cs | 6 +- IPA.Loader/Loader/Features/DefineFeature.cs | 14 +- IPA.Loader/Loader/LibLoader.cs | 4 +- IPA.Loader/Loader/PluginExecutor.cs | 10 +- IPA.Loader/Loader/PluginLoader.cs | 114 +++---- IPA.Loader/Loader/PluginManager.cs | 38 +-- IPA.Loader/Loader/manifest.json | 2 +- IPA.Loader/Logging/Logger.cs | 28 +- IPA.Loader/Logging/Printers/GZFilePrinter.cs | 314 +++++++++--------- IPA.Loader/Logging/StdoutInterceptor.cs | 64 ++-- IPA.Loader/Utilities/CriticalSection.cs | 2 +- IPA.Loader/Utilities/UnityGame.cs | 18 +- 28 files changed, 398 insertions(+), 371 deletions(-) diff --git a/IPA.Injector/Injector.cs b/IPA.Injector/Injector.cs index edaa9ea2..523e869c 100644 --- a/IPA.Injector/Injector.cs +++ b/IPA.Injector/Injector.cs @@ -63,7 +63,7 @@ namespace IPA.Injector */ #endregion - log.Debug("Initializing logger"); + Default.Debug("Initializing logger"); SelfConfig.ReadCommandLine(Environment.GetCommandLineArgs()); SelfConfig.Load(); @@ -71,14 +71,14 @@ namespace IPA.Injector if (AntiPiracy.IsInvalid(Environment.CurrentDirectory)) { - log.Error("Invalid installation; please buy the game to run BSIPA."); + Default.Error("Invalid installation; please buy the game to run BSIPA."); return; } CriticalSection.Configure(); - injector.Debug("Prepping bootstrapper"); + Logging.Logger.Injector.Debug("Prepping bootstrapper"); // updates backup InstallBootstrapPatch(); @@ -89,7 +89,7 @@ namespace IPA.Injector Updates.InstallPendingUpdates(); - LibLoader.SetupAssemblyFilenames(true); + Loader.LibLoader.SetupAssemblyFilenames(true); pluginAsyncLoadTask = PluginLoader.LoadTask(); permissionFixTask = PermissionFix.FixPermissions(new DirectoryInfo(Environment.CurrentDirectory)); @@ -113,7 +113,7 @@ namespace IPA.Injector { if (loadingDone) return; loadingDone = true; - LibLoader.Configure(); + Loader.LibLoader.Configure(); } private static void InstallHarmonyProtections() @@ -131,13 +131,13 @@ namespace IPA.Injector var dataDir = new DirectoryInfo(managedPath).Parent.Name; var gameName = dataDir.Substring(0, dataDir.Length - 5); - injector.Debug("Finding backup"); + Logging.Logger.Injector.Debug("Finding backup"); var backupPath = Path.Combine(Environment.CurrentDirectory, "IPA", "Backups", gameName); var bkp = BackupManager.FindLatestBackup(backupPath); if (bkp == null) - injector.Warn("No backup found! Was BSIPA installed using the installer?"); + Logging.Logger.Injector.Warn("No backup found! Was BSIPA installed using the installer?"); - injector.Debug("Ensuring patch on UnityEngine.CoreModule exists"); + Logging.Logger.Injector.Debug("Ensuring patch on UnityEngine.CoreModule exists"); #region Insert patch into UnityEngine.CoreModule.dll @@ -173,7 +173,7 @@ namespace IPA.Injector if (application == null) { - injector.Critical("UnityEngine.CoreModule doesn't have a definition for UnityEngine.Camera!" + Logging.Logger.Injector.Critical("UnityEngine.CoreModule doesn't have a definition for UnityEngine.Camera!" + "Nothing to patch to get ourselves into the Unity run cycle!"); goto endPatchCoreModule; } @@ -238,7 +238,7 @@ namespace IPA.Injector endPatchCoreModule: #endregion Insert patch into UnityEngine.CoreModule.dll - injector.Debug("Ensuring game assemblies are virtualized"); + Logging.Logger.Injector.Debug("Ensuring game assemblies are virtualized"); #region Virtualize game assemblies bool isFirst = true; @@ -250,15 +250,15 @@ namespace IPA.Injector try { - injector.Debug($"Virtualizing {name}"); + Logging.Logger.Injector.Debug($"Virtualizing {name}"); using var ascModule = VirtualizedModule.Load(ascPath); ascModule.Virtualize(cAsmName, () => bkp?.Add(ascPath)); } catch (Exception e) { - injector.Error($"Could not virtualize {ascPath}"); + Logging.Logger.Injector.Error($"Could not virtualize {ascPath}"); if (SelfConfig.Debug_.ShowHandledErrorStackTraces_) - injector.Error(e); + Logging.Logger.Injector.Error(e); } #if BeatSaber @@ -266,7 +266,7 @@ namespace IPA.Injector { try { - injector.Debug("Applying anti-yeet patch"); + Logging.Logger.Injector.Debug("Applying anti-yeet patch"); using var ascAsmDef = AssemblyDefinition.ReadAssembly(ascPath, new ReaderParameters { @@ -285,9 +285,9 @@ namespace IPA.Injector } catch (Exception e) { - injector.Warn($"Could not apply anti-yeet patch to {ascPath}"); + Logging.Logger.Injector.Warn($"Could not apply anti-yeet patch to {ascPath}"); if (SelfConfig.Debug_.ShowHandledErrorStackTraces_) - injector.Warn(e); + Logging.Logger.Injector.Warn(e); } } #endif @@ -295,7 +295,7 @@ namespace IPA.Injector #endregion sw.Stop(); - injector.Info($"Installing bootstrapper took {sw.Elapsed}"); + Logging.Logger.Injector.Info($"Installing bootstrapper took {sw.Elapsed}"); } private static bool bootstrapped; @@ -305,7 +305,6 @@ namespace IPA.Injector if (bootstrapped) return; bootstrapped = true; - Application.logMessageReceived += delegate (string condition, string stackTrace, LogType type) { var level = UnityLogRedirector.LogTypeToLevel(type); @@ -313,6 +312,8 @@ namespace IPA.Injector UnityLogProvider.UnityLogger.Log(level, $"{stackTrace}"); }; + ConfigureHarmonyLogging(); + // need to reinit streams singe Unity seems to redirect stdout StdoutInterceptor.RedirectConsole(); @@ -330,8 +331,8 @@ namespace IPA.Injector pluginAsyncLoadTask?.Wait(); permissionFixTask?.Wait(); - log.Debug("Plugins loaded"); - log.Debug(string.Join(", ", PluginLoader.PluginsMetadata.StrJP())); + Default.Debug("Plugins loaded"); + Default.Debug(string.Join(", ", PluginLoader.PluginsMetadata.StrJP())); _ = PluginComponent.Create(); } } diff --git a/IPA.Injector/PermissionFix.cs b/IPA.Injector/PermissionFix.cs index 2cd891b2..152c6435 100644 --- a/IPA.Injector/PermissionFix.cs +++ b/IPA.Injector/PermissionFix.cs @@ -62,11 +62,11 @@ namespace IPA.Injector } catch (Exception e) { - Logger.log.Warn("Error configuring permissions in the game install dir"); - Logger.log.Warn(e); + Logger.Default.Warn("Error configuring permissions in the game install dir"); + Logger.Default.Warn(e); } sw.Stop(); - Logger.log.Info($"Configuring permissions took {sw.Elapsed}"); + Logger.Default.Info($"Configuring permissions took {sw.Elapsed}"); }); } } diff --git a/IPA.Injector/Updates.cs b/IPA.Injector/Updates.cs index bfe9658d..7822e209 100644 --- a/IPA.Injector/Updates.cs +++ b/IPA.Injector/Updates.cs @@ -42,12 +42,12 @@ namespace IPA.Injector var scanResult = AntiMalwareEngine.Engine.ScanFile(new FileInfo(path)); if (scanResult == ScanResult.Detected) { - updater.Error("Scan of BSIPA installer found malware; not updating"); + Updater.Error("Scan of BSIPA installer found malware; not updating"); return; } if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) { - updater.Error("Scan of BSIPA installer returned partial threat; not updating. To allow this, enable AntiMalware.RunPartialThreatCode in the config."); + Updater.Error("Scan of BSIPA installer returned partial threat; not updating. To allow this, enable AntiMalware.RunPartialThreatCode in the config."); return; } @@ -59,7 +59,7 @@ namespace IPA.Injector UseShellExecute = false }); - updater.Info("Updating BSIPA..."); + Updater.Info("Updating BSIPA..."); Environment.Exit(0); } } @@ -70,7 +70,7 @@ namespace IPA.Injector if (!Directory.Exists(pendingDir)) return; // there are pending updates, install - updater.Info("Installing pending updates"); + Updater.Info("Installing pending updates"); var toDelete = Array.Empty(); var delFn = Path.Combine(pendingDir, DeleteFileName); @@ -88,8 +88,8 @@ namespace IPA.Injector } catch (Exception e) { - updater.Error("While trying to install pending updates: Error deleting file marked for deletion"); - updater.Error(e); + Updater.Error("While trying to install pending updates: Error deleting file marked for deletion"); + Updater.Error(e); } } @@ -114,12 +114,12 @@ namespace IPA.Injector } catch (UnauthorizedAccessException e) { - updater.Error(e); + Updater.Error(e); continue; } catch (DirectoryNotFoundException e) { - updater.Error(e); + Updater.Error(e); continue; } @@ -132,7 +132,7 @@ namespace IPA.Injector } catch (FileNotFoundException e) { - updater.Error(e); + Updater.Error(e); } } @@ -153,15 +153,15 @@ namespace IPA.Injector { Utils.CopyAll(new DirectoryInfo(pendingDir), new DirectoryInfo(UnityGame.InstallPath), onCopyException: (e, f) => { - updater.Error($"Error copying file {Utils.GetRelativePath(f.FullName, pendingDir)} from Pending:"); - updater.Error(e); + Updater.Error($"Error copying file {Utils.GetRelativePath(f.FullName, pendingDir)} from Pending:"); + Updater.Error(e); return true; }); } catch (Exception e) { - updater.Error("While trying to install pending updates: Error copying files in"); - updater.Error(e); + Updater.Error("While trying to install pending updates: Error copying files in"); + Updater.Error(e); } try @@ -170,8 +170,8 @@ namespace IPA.Injector } catch (Exception e) { - updater.Error("Something went wrong performing an operation that should never fail!"); - updater.Error(e); + Updater.Error("Something went wrong performing an operation that should never fail!"); + Updater.Error(e); } } } diff --git a/IPA.Loader/Config/ConfigRuntime.cs b/IPA.Loader/Config/ConfigRuntime.cs index d9c4a203..baf5138f 100644 --- a/IPA.Loader/Config/ConfigRuntime.cs +++ b/IPA.Loader/Config/ConfigRuntime.cs @@ -185,8 +185,8 @@ namespace IPA.Config } catch (Exception e) { - Logger.config.Error($"{nameof(IConfigStore)} for {config.File} errored while writing to disk"); - Logger.config.Error(e); + Logger.Config.Error($"{nameof(IConfigStore)} for {config.File} errored while writing to disk"); + Logger.Config.Error(e); } } @@ -209,8 +209,8 @@ namespace IPA.Config } catch (Exception e) { - Logger.config.Error($"{nameof(IConfigStore)} for {config.File} errored while reading from the {nameof(IConfigProvider)}"); - Logger.config.Error(e); + Logger.Config.Error($"{nameof(IConfigStore)} for {config.File} errored while reading from the {nameof(IConfigProvider)}"); + Logger.Config.Error(e); } } @@ -235,8 +235,8 @@ namespace IPA.Config } catch (Exception e) { - Logger.config.Error($"Error waiting for in-memory updates"); - Logger.config.Error(e); + Logger.Config.Error($"Error waiting for in-memory updates"); + Logger.Config.Error(e); Thread.Sleep(TimeSpan.FromSeconds(1)); } diff --git a/IPA.Loader/Config/Providers/JsonConfigProvider.cs b/IPA.Loader/Config/Providers/JsonConfigProvider.cs index 250918cc..dd9c8dfb 100644 --- a/IPA.Loader/Config/Providers/JsonConfigProvider.cs +++ b/IPA.Loader/Config/Providers/JsonConfigProvider.cs @@ -39,8 +39,8 @@ namespace IPA.Config.Providers } catch (Exception e) { - Logger.config.Error($"Error reading JSON file {file.FullName}; ignoring"); - Logger.config.Error(e); + Logger.Config.Error($"Error reading JSON file {file.FullName}; ignoring"); + Logger.Config.Error(e); return Value.Null(); } } @@ -54,19 +54,19 @@ namespace IPA.Config.Providers case JTokenType.Raw: // idk if the parser will normally emit a Raw type, but just to be safe return VisitToValue(JToken.Parse((tok as JRaw).Value as string)); case JTokenType.Undefined: - Logger.config.Warn("Found JTokenType.Undefined"); + Logger.Config.Warn("Found JTokenType.Undefined"); goto case JTokenType.Null; case JTokenType.Bytes: // never used by Newtonsoft - Logger.config.Warn("Found JTokenType.Bytes"); + Logger.Config.Warn("Found JTokenType.Bytes"); goto case JTokenType.Null; case JTokenType.Comment: // never used by Newtonsoft - Logger.config.Warn("Found JTokenType.Comment"); + Logger.Config.Warn("Found JTokenType.Comment"); goto case JTokenType.Null; case JTokenType.Constructor: // never used by Newtonsoft - Logger.config.Warn("Found JTokenType.Constructor"); + Logger.Config.Warn("Found JTokenType.Constructor"); goto case JTokenType.Null; case JTokenType.Property: // never used by Newtonsoft - Logger.config.Warn("Found JTokenType.Property"); + Logger.Config.Warn("Found JTokenType.Property"); goto case JTokenType.Null; case JTokenType.Null: return Value.Null(); @@ -133,8 +133,8 @@ namespace IPA.Config.Providers } catch (Exception e) { - Logger.config.Error($"Error serializing value for {file.FullName}"); - Logger.config.Error(e); + Logger.Config.Error($"Error serializing value for {file.FullName}"); + Logger.Config.Error(e); } } diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index bc0d2b04..9611c487 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -36,7 +36,7 @@ namespace IPA.Config protected internal virtual void Changed() { - Logger.log.Debug("SelfConfig Changed called"); + Logger.Default.Debug("SelfConfig Changed called"); } public static void ReadCommandLine(string[] args) diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs index ab424717..7f8e44f6 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Deserialization.cs @@ -102,7 +102,7 @@ namespace IPA.Config.Stores var structure = ReadObjectMembers(targetType); if (!structure.Any()) { - Logger.config.Warn($"Custom value type {targetType.FullName} (when compiling serialization of" + + Logger.Config.Warn($"Custom value type {targetType.FullName} (when compiling serialization of" + $" {member.Name} on {member.Member.DeclaringType.FullName}) has no accessible members"); il.Emit(OpCodes.Pop); il.Emit(OpCodes.Ldloca, resultLocal); @@ -123,7 +123,7 @@ namespace IPA.Config.Stores } else { - Logger.config.Warn($"Implicit conversions to {expected} are not currently implemented"); + Logger.Config.Warn($"Implicit conversions to {expected} are not currently implemented"); il.Emit(OpCodes.Pop); il.Emit(OpCodes.Ldnull); } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs index dc323833..28620626 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/IGeneratedStore.cs @@ -67,8 +67,8 @@ namespace IPA.Config.Stores } catch (ObjectDisposedException e) { - Logger.config.Error($"ObjectDisposedException while signalling a change for generated store {generated?.GetType()}"); - Logger.config.Error(e); + Logger.Config.Error($"ObjectDisposedException while signalling a change for generated store {generated?.GetType()}"); + Logger.Config.Error(e); } } @@ -174,7 +174,7 @@ namespace IPA.Config.Stores public static void ImplReadFrom(IGeneratedStore s, ConfigProvider provider) => FindImpl(s)?.ReadFrom(provider); public void ReadFrom(ConfigProvider provider) { - Logger.config.Debug($"Generated impl ReadFrom {generated.GetType()}"); + Logger.Config.Debug($"Generated impl ReadFrom {generated.GetType()}"); var values = provider.Load(); //Logger.config.Debug($"Read {values}"); generated.Deserialize(values); @@ -187,7 +187,7 @@ namespace IPA.Config.Stores public static void ImplWriteTo(IGeneratedStore s, ConfigProvider provider) => FindImpl(s)?.WriteTo(provider); public void WriteTo(ConfigProvider provider) { - Logger.config.Debug($"Generated impl WriteTo {generated.GetType()}"); + Logger.Config.Debug($"Generated impl WriteTo {generated.GetType()}"); var values = generated.Serialize(); //Logger.config.Debug($"Serialized {values}"); provider.Store(values); diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs index c11af324..001e0393 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/MakeCreator.cs @@ -53,7 +53,7 @@ namespace IPA.Config.Stores var structure = ReadObjectMembers(type); if (!structure.Any()) - Logger.config.Warn($"Custom type {type.FullName} has no accessible members"); + Logger.Config.Warn($"Custom type {type.FullName} has no accessible members"); #endregion var typeBuilder = Module.DefineType($"{type.FullName}", @@ -135,7 +135,7 @@ namespace IPA.Config.Stores } else { - Logger.log.Critical($"Type '{type.FullName}' implements INotifyPropertyChanged but does not have an accessible " + + Logger.Default.Critical($"Type '{type.FullName}' implements INotifyPropertyChanged but does not have an accessible " + "'RaisePropertyChanged(string)' method, automatic raising of PropertyChanged event is disabled."); } } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs index 904ee261..54595d76 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/ObjectStructure.cs @@ -85,19 +85,19 @@ namespace IPA.Config.Stores if (member.Converter.GetConstructor(Type.EmptyTypes) == null) { - Logger.config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not default-constructible"); + Logger.Config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not default-constructible"); goto endConverterAttr; // is there a better control flow structure to do this? } if (member.Converter.ContainsGenericParameters) { - Logger.config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that has unfilled type parameters"); + Logger.Config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that has unfilled type parameters"); goto endConverterAttr; } if (member.Converter.IsInterface || member.Converter.IsAbstract) { - Logger.config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not constructible"); + Logger.Config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not constructible"); goto endConverterAttr; } @@ -111,13 +111,13 @@ namespace IPA.Config.Stores } catch { - Logger.config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter who's target type could not be determined"); + Logger.Config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter who's target type could not be determined"); goto endConverterAttr; } } if (targetType != member.Type) { - Logger.config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not of the member's type"); + Logger.Config.Warn($"{type.FullName}'s member {member.Member.Name} requests a converter that is not of the member's type"); goto endConverterAttr; } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs index 9005d4e2..358bef88 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Serialization.cs @@ -125,7 +125,7 @@ namespace IPA.Config.Stores else if (targetType == typeof(List)) { // TODO: impl this (enumerables) - Logger.config.Warn($"Implicit conversions to {targetType} are not currently implemented"); + Logger.Config.Warn($"Implicit conversions to {targetType} are not currently implemented"); il.Emit(OpCodes.Pop); il.Emit(OpCodes.Ldnull); } @@ -168,7 +168,7 @@ namespace IPA.Config.Stores var structure = ReadObjectMembers(memberConversionType); if (!structure.Any()) { - Logger.config.Warn($"Custom value type {memberConversionType.FullName} (when compiling serialization of" + + Logger.Config.Warn($"Custom value type {memberConversionType.FullName} (when compiling serialization of" + $" {member.Name} on {member.Member.DeclaringType.FullName}) has no accessible members"); il.Emit(OpCodes.Pop); } diff --git a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs index 216e0664..f1a9ddb6 100644 --- a/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs +++ b/IPA.Loader/Config/Stores/GeneratedStoreImpl/Utility.cs @@ -25,17 +25,17 @@ namespace IPA.Config.Stores private static readonly MethodInfo LogErrorMethod = typeof(GeneratedStoreImpl).GetMethod(nameof(LogError), BindingFlags.NonPublic | BindingFlags.Static); internal static void LogError(Type? expected, Type? found, string message) { - Logger.config.Notice($"{message}{(expected == null ? "" : $" (expected {expected}, found {found?.ToString() ?? "null"})")}"); + Logger.Config.Notice($"{message}{(expected == null ? "" : $" (expected {expected}, found {found?.ToString() ?? "null"})")}"); } private static readonly MethodInfo LogWarningMethod = typeof(GeneratedStoreImpl).GetMethod(nameof(LogWarning), BindingFlags.NonPublic | BindingFlags.Static); internal static void LogWarning(string message) { - Logger.config.Warn(message); + Logger.Config.Warn(message); } private static readonly MethodInfo LogWarningExceptionMethod = typeof(GeneratedStoreImpl).GetMethod(nameof(LogWarningException), BindingFlags.NonPublic | BindingFlags.Static); internal static void LogWarningException(Exception exception) { - Logger.config.Warn(exception); + Logger.Config.Warn(exception); } #endregion diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index d64f8285..99da2ecc 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -57,8 +57,8 @@ --> - - + + diff --git a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs index c5f00090..d17c5781 100644 --- a/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs +++ b/IPA.Loader/JsonConverters/FeaturesFieldConverter.cs @@ -22,7 +22,7 @@ namespace IPA.JsonConverters if (reader.TokenType == JsonToken.StartArray) { _ = serializer.Deserialize(reader); - Logger.features.Warn("Encountered old features used. They no longer do anything, please move to the new format."); + Logger.Features.Warn("Encountered old features used. They no longer do anything, please move to the new format."); return existingValue; } diff --git a/IPA.Loader/Loader/Composite/CompositeBSPlugin.cs b/IPA.Loader/Loader/Composite/CompositeBSPlugin.cs index 386443d9..883ad7c4 100644 --- a/IPA.Loader/Loader/Composite/CompositeBSPlugin.cs +++ b/IPA.Loader/Loader/Composite/CompositeBSPlugin.cs @@ -27,7 +27,7 @@ namespace IPA.Loader.Composite } catch (Exception ex) { - Logger.log.Error($"{plugin.Metadata.Name} {method}: {ex}"); + Logger.Default.Error($"{plugin.Metadata.Name} {method}: {ex}"); } } } diff --git a/IPA.Loader/Loader/Composite/CompositeIPAPlugin.cs b/IPA.Loader/Loader/Composite/CompositeIPAPlugin.cs index 37beeb6a..9a66a3b7 100644 --- a/IPA.Loader/Loader/Composite/CompositeIPAPlugin.cs +++ b/IPA.Loader/Loader/Composite/CompositeIPAPlugin.cs @@ -38,7 +38,7 @@ namespace IPA.Loader.Composite } catch (Exception ex) { - Logger.log.Error($"{plugin.Name} {member}: {ex}"); + Logger.Default.Error($"{plugin.Name} {member}: {ex}"); } } } diff --git a/IPA.Loader/Loader/DisabledConfig.cs b/IPA.Loader/Loader/DisabledConfig.cs index a8adcfe1..3d4aad77 100644 --- a/IPA.Loader/Loader/DisabledConfig.cs +++ b/IPA.Loader/Loader/DisabledConfig.cs @@ -86,13 +86,13 @@ namespace IPA.Loader try { if (transaction.WillNeedRestart) - Logger.loader.Warn("Runtime disabled config reload will need game restart to apply"); + Logger.Loader.Warn("Runtime disabled config reload will need game restart to apply"); return transaction.Commit().ContinueWith(t => { if (t.IsFaulted) { - Logger.loader.Error("Error changing disabled plugins"); - Logger.loader.Error(t.Exception); + Logger.Loader.Error("Error changing disabled plugins"); + Logger.Loader.Error(t.Exception); } }); } diff --git a/IPA.Loader/Loader/Features/DefineFeature.cs b/IPA.Loader/Loader/Features/DefineFeature.cs index 6590df1a..f4d628f6 100644 --- a/IPA.Loader/Loader/Features/DefineFeature.cs +++ b/IPA.Loader/Loader/Features/DefineFeature.cs @@ -25,7 +25,7 @@ namespace IPA.Loader.Features protected override bool Initialize(PluginMetadata meta, JObject featureData) { - Logger.features.Debug("Executing DefineFeature Init"); + Logger.Features.Debug("Executing DefineFeature Init"); try { @@ -43,7 +43,7 @@ namespace IPA.Loader.Features public override void BeforeInit(PluginMetadata meta) { - Logger.features.Debug("Executing DefineFeature AfterInit"); + Logger.Features.Debug("Executing DefineFeature AfterInit"); Type type; try @@ -52,7 +52,7 @@ namespace IPA.Loader.Features } catch (ArgumentException) { - Logger.features.Error($"Invalid type name {data.TypeName}"); + Logger.Features.Error($"Invalid type name {data.TypeName}"); return; } catch (Exception e) when (e is FileNotFoundException or FileLoadException or BadImageFormatException) @@ -72,13 +72,13 @@ namespace IPA.Loader.Features break; } - Logger.features.Error($"Could not find {filename} while loading type"); + Logger.Features.Error($"Could not find {filename} while loading type"); return; } if (type == null) { - Logger.features.Error($"Invalid type name {data.TypeName}"); + Logger.Features.Error($"Invalid type name {data.TypeName}"); return; } @@ -90,12 +90,12 @@ namespace IPA.Loader.Features return; } - Logger.features.Error($"Feature with name {data.Name} already exists"); + Logger.Features.Error($"Feature with name {data.Name} already exists"); return; } catch (ArgumentException) { - Logger.features.Error($"{type.FullName} not a subclass of {nameof(Feature)}"); + Logger.Features.Error($"{type.FullName} not a subclass of {nameof(Feature)}"); return; } } diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 83b5d49d..49359e96 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -171,8 +171,8 @@ namespace IPA.Loader Console.WriteLine($"[{lvl}] {message}"); } - private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.libLoader.Log(lvl, message); - private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, Exception message) => Logger.libLoader.Log(lvl, message); + private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.LibLoader.Log(lvl, message); + private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, Exception message) => Logger.LibLoader.Log(lvl, message); // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree private static IEnumerable TraverseTree(string root, Func? dirValidator = null) diff --git a/IPA.Loader/Loader/PluginExecutor.cs b/IPA.Loader/Loader/PluginExecutor.cs index 8073c4fd..307d4557 100644 --- a/IPA.Loader/Loader/PluginExecutor.cs +++ b/IPA.Loader/Loader/PluginExecutor.cs @@ -80,7 +80,7 @@ namespace IPA.Loader .OrderByDescending(t => t.c.GetParameters().Length) .Select(t => t.c).ToArray(); if (ctors.Length > 1) - Logger.loader.Warn($"Plugin {name} has multiple [Init] constructors. Picking the one with the most parameters."); + Logger.Loader.Warn($"Plugin {name} has multiple [Init] constructors. Picking the one with the most parameters."); bool usingDefaultCtor = false; var ctor = ctors.FirstOrDefault(); @@ -131,7 +131,7 @@ namespace IPA.Loader if (enableMethods.Length == 0) { if (!noEnableDisable) - Logger.loader.Notice($"Plugin {name} has no methods marked [OnStart] or [OnEnable]. Is this intentional?"); + Logger.Loader.Notice($"Plugin {name} has no methods marked [OnStart] or [OnEnable]. Is this intentional?"); return o => { }; } @@ -140,7 +140,7 @@ namespace IPA.Loader if (m.GetParameters().Length > 0) throw new InvalidOperationException($"Method {m} on {type.FullName} is marked [OnStart] or [OnEnable] and has parameters."); if (m.ReturnType != typeof(void)) - Logger.loader.Warn($"Method {m} on {type.FullName} is marked [OnStart] or [OnEnable] and returns a value. It will be ignored."); + Logger.Loader.Warn($"Method {m} on {type.FullName} is marked [OnStart] or [OnEnable] and returns a value. It will be ignored."); } var objParam = Expression.Parameter(typeof(object), "obj"); @@ -164,7 +164,7 @@ namespace IPA.Loader if (disableMethods.Length == 0) { if (!noEnableDisable) - Logger.loader.Notice($"Plugin {name} has no methods marked [OnExit] or [OnDisable]. Is this intentional?"); + Logger.Loader.Notice($"Plugin {name} has no methods marked [OnExit] or [OnDisable]. Is this intentional?"); return o => TaskEx.WhenAll(); } @@ -182,7 +182,7 @@ namespace IPA.Loader continue; } else - Logger.loader.Warn($"Method {m} on {type.FullName} is marked [OnExit] or [OnDisable] and returns a non-Task value. It will be ignored."); + Logger.Loader.Warn($"Method {m} on {type.FullName} is marked [OnExit] or [OnDisable] and returns a non-Task value. It will be ignored."); } nonTaskMethods.Add(m); diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index e217ab43..10a5eae6 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -50,7 +50,7 @@ namespace IPA.Loader LoadMetadata(); sw.Stop(); - Logger.loader.Info($"Loading metadata took {sw.Elapsed}"); + Logger.Loader.Info($"Loading metadata took {sw.Elapsed}"); sw.Reset(); sw.Start(); @@ -60,7 +60,7 @@ namespace IPA.Loader DoOrderResolution(); sw.Stop(); - Logger.loader.Info($"Calculating load order took {sw.Elapsed}"); + Logger.Loader.Info($"Calculating load order took {sw.Elapsed}"); }); internal static void YeetIfNeeded() @@ -115,8 +115,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Critical("Error loading own manifest"); - Logger.loader.Critical(e); + Logger.Loader.Critical("Error loading own manifest"); + Logger.Loader.Critical(e); } using var resolver = new CecilLibLoader(); @@ -135,12 +135,12 @@ namespace IPA.Loader var scanResult = AntiMalwareEngine.Engine.ScanFile(metadata.File); if (scanResult is ScanResult.Detected) { - Logger.loader.Warn($"Scan of {plugin} found malware; not loading"); + Logger.Loader.Warn($"Scan of {plugin} found malware; not loading"); continue; } if (!SelfConfig.AntiMalware_.RunPartialThreatCode_ && scanResult is not ScanResult.KnownSafe and not ScanResult.NotDetected) { - Logger.loader.Warn($"Scan of {plugin} found partial threat; not loading. To load this, set AntiMalware.RunPartialThreatCode in the config."); + Logger.Loader.Warn($"Scan of {plugin} found partial threat; not loading. To load this, set AntiMalware.RunPartialThreatCode in the config."); continue; } @@ -175,14 +175,14 @@ namespace IPA.Loader #if DIRE_LOADER_WARNINGS Logger.loader.Error($"Could not find manifest.json for {Path.GetFileName(plugin)}"); #else - Logger.loader.Notice($"No manifest.json in {Path.GetFileName(plugin)}"); + Logger.Loader.Notice($"No manifest.json in {Path.GetFileName(plugin)}"); #endif continue; } if (pluginManifest.Id == null) { - Logger.loader.Warn($"Plugin '{pluginManifest.Name}' does not have a listed ID, using name"); + Logger.Loader.Warn($"Plugin '{pluginManifest.Name}' does not have a listed ID, using name"); pluginManifest.Id = pluginManifest.Name; } @@ -199,20 +199,20 @@ namespace IPA.Loader if (!attr.HasConstructorArguments) { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has no arguments"); + Logger.Loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has no arguments"); return false; } var args = attr.ConstructorArguments; if (args.Count != 1) { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has unexpected number of arguments"); + Logger.Loader.Warn($"Attribute plugin found in {type.FullName}, but attribute has unexpected number of arguments"); return false; } var rtOptionsArg = args[0]; if (rtOptionsArg.Type.FullName != typeof(RuntimeOptions).FullName) { - Logger.loader.Warn($"Attribute plugin found in {type.FullName}, but first argument is of unexpected type {rtOptionsArg.Type.FullName}"); + Logger.Loader.Warn($"Attribute plugin found in {type.FullName}, but first argument is of unexpected type {rtOptionsArg.Type.FullName}"); return false; } @@ -248,17 +248,17 @@ namespace IPA.Loader if (metadata.PluginType == null) { - Logger.loader.Error($"No plugin found in the manifest {(hint != null ? $"hint path ({hint}) or " : "")}namespace ({pluginNs}) in {Path.GetFileName(plugin)}"); + Logger.Loader.Error($"No plugin found in the manifest {(hint != null ? $"hint path ({hint}) or " : "")}namespace ({pluginNs}) in {Path.GetFileName(plugin)}"); continue; } - Logger.loader.Debug($"Adding info for {Path.GetFileName(plugin)}"); + Logger.Loader.Debug($"Adding info for {Path.GetFileName(plugin)}"); PluginsMetadata.Add(metadata); } catch (Exception e) { - Logger.loader.Error($"Could not load data for plugin {Path.GetFileName(plugin)}"); - Logger.loader.Error(e); + Logger.Loader.Error($"Could not load data for plugin {Path.GetFileName(plugin)}"); + Logger.Loader.Error(e); ignoredPlugins.Add(metadata, new IgnoreReason(Reason.Error) { ReasonText = "An error occurred loading the data", @@ -283,16 +283,16 @@ namespace IPA.Loader metadata.Manifest = JsonConvert.DeserializeObject(File.ReadAllText(manifest)); if (metadata.Manifest.Files.Length < 1) - Logger.loader.Warn($"Bare manifest {Path.GetFileName(manifest)} does not declare any files. " + + Logger.Loader.Warn($"Bare manifest {Path.GetFileName(manifest)} does not declare any files. " + $"Dependency resolution and verification cannot be completed."); - Logger.loader.Debug($"Adding info for bare manifest {Path.GetFileName(manifest)}"); + Logger.Loader.Debug($"Adding info for bare manifest {Path.GetFileName(manifest)}"); PluginsMetadata.Add(metadata); } catch (Exception e) { - Logger.loader.Error($"Could not load data for bare manifest {Path.GetFileName(manifest)}"); - Logger.loader.Error(e); + Logger.Loader.Error($"Could not load data for bare manifest {Path.GetFileName(manifest)}"); + Logger.Loader.Error(e); } } @@ -304,7 +304,7 @@ namespace IPA.Loader { if (meta.IsBare) { - Logger.loader.Warn($"Bare manifest cannot specify description file"); + Logger.Loader.Warn($"Bare manifest cannot specify description file"); meta.Manifest.Description = string.Join("\n", lines.Skip(1).StrJP()); // ignore first line continue; } @@ -319,7 +319,7 @@ namespace IPA.Loader .FirstOrDefault(r => r.Name == name); if (resc == null) { - Logger.loader.Warn($"Could not find description file for plugin {meta.Name} ({name}); ignoring include"); + Logger.Loader.Warn($"Could not find description file for plugin {meta.Name} ({name}); ignoring include"); meta.Manifest.Description = string.Join("\n", lines.Skip(1).StrJP()); // ignore first line continue; } @@ -492,14 +492,14 @@ namespace IPA.Loader { #if DEBUG // print starting order - Logger.loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); + Logger.Loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); #endif PluginsMetadata.Sort((a, b) => b.HVersion.CompareTo(a.HVersion)); #if DEBUG // print base resolution order - Logger.loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); + Logger.Loader.Debug(string.Join(", ", PluginsMetadata.StrJP())); #endif var metadataCache = new Dictionary(PluginsMetadata.Count); @@ -526,7 +526,7 @@ namespace IPA.Loader } else { - Logger.loader.Warn($"Found duplicates of {meta.Id}, using newest"); + Logger.Loader.Warn($"Found duplicates of {meta.Id}, using newest"); ignoredPlugins.Add(meta, new(Reason.Duplicate) { ReasonText = $"Duplicate entry of same ID ({meta.Id})", @@ -585,21 +585,21 @@ namespace IPA.Loader meta = null; disabled = false; ignored = true; - Logger.loader.Trace($"Trying to resolve plugin '{id}' partial:{partial}"); + Logger.Loader.Trace($"Trying to resolve plugin '{id}' partial:{partial}"); if (loadedPlugins.TryGetValue(id, out var foundMeta)) { meta = foundMeta.Meta; disabled = foundMeta.Disabled; ignored = foundMeta.Ignored; - Logger.loader.Trace($"- Found already processed"); + Logger.Loader.Trace($"- Found already processed"); return true; } if (metadataCache!.TryGetValue(id, out var plugin)) { - Logger.loader.Trace($"- In metadata cache"); + Logger.Loader.Trace($"- In metadata cache"); if (partial) { - Logger.loader.Trace($" - but requested in a partial lookup"); + Logger.Loader.Trace($" - but requested in a partial lookup"); return false; } @@ -616,8 +616,8 @@ namespace IPA.Loader { if (e is not DependencyResolutionLoopException) { - Logger.loader.Error($"While performing load order resolution for {id}:"); - Logger.loader.Error(e); + Logger.Loader.Error($"While performing load order resolution for {id}:"); + Logger.Loader.Error(e); } if (!ignored) @@ -635,23 +635,23 @@ namespace IPA.Loader if (!loadedPlugins.ContainsKey(id)) { // this condition is specifically for when we fail resolution because of a graph loop - Logger.loader.Trace($"- '{id}' resolved as ignored:{ignored},disabled:{disabled}"); + Logger.Loader.Trace($"- '{id}' resolved as ignored:{ignored},disabled:{disabled}"); loadedPlugins.Add(id, (plugin.Meta, disabled, ignored)); } return true; } - Logger.loader.Trace($"- Not found"); + Logger.Loader.Trace($"- Not found"); return false; } void Resolve(PluginMetadata plugin, ref bool disabled, out bool ignored) { - Logger.loader.Trace($">Resolving '{plugin.Name}'"); + Logger.Loader.Trace($">Resolving '{plugin.Name}'"); // first we need to check for loops in the resolution graph to prevent stack overflows if (isProcessing.Contains(plugin)) { - Logger.loader.Error($"Loop detected while processing '{plugin.Name}'; flagging as ignored"); + Logger.Loader.Error($"Loop detected while processing '{plugin.Name}'; flagging as ignored"); throw new DependencyResolutionLoopException(); } @@ -671,7 +671,7 @@ namespace IPA.Loader { ReasonText = $"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)} does not exist" }); - Logger.loader.Warn($"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)}" + + Logger.Loader.Warn($"File {Utils.GetRelativePath(file.FullName, UnityGame.InstallPath)}" + $" (declared by '{plugin.Name}') does not exist! Mod installation is incomplete, not loading it."); ignored = true; return; @@ -687,7 +687,7 @@ namespace IPA.Loader if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) || !range.Matches(depMeta.HVersion)) { - Logger.loader.Warn($"'{plugin.Id}' is missing dependency '{id}@{range}'; ignoring"); + Logger.Loader.Warn($"'{plugin.Id}' is missing dependency '{id}@{range}'; ignoring"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { ReasonText = $"Dependency '{id}@{range}' not found", @@ -698,7 +698,7 @@ namespace IPA.Loader // make a point to propagate ignored if (depIgnored) { - Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); + Logger.Loader.Warn($"Dependency '{id}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { ReasonText = $"Dependency '{id}' ignored", @@ -710,7 +710,7 @@ namespace IPA.Loader // make a point to propagate disabled if (depDisabled) { - Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' disabled; disabling"); + Logger.Loader.Warn($"Dependency '{id}' for '{plugin.Id}' disabled; disabling"); disabledPlugins!.Add(plugin); _ = disabledIds!.Add(plugin.Id); disabled = true; @@ -723,7 +723,7 @@ namespace IPA.Loader // make sure the plugin depends on the loader (assuming it actually needs to) if (!dependsOnSelf && !plugin.IsSelf && !plugin.IsBare) { - Logger.loader.Warn($"Plugin '{plugin.Id}' does not depend on any particular loader version; assuming its incompatible"); + Logger.Loader.Warn($"Plugin '{plugin.Id}' does not depend on any particular loader version; assuming its incompatible"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { ReasonText = "Does not depend on any loader version, so it is assumed to be incompatible", @@ -760,14 +760,14 @@ namespace IPA.Loader // after we handle dependencies and loadafters, then check conflicts foreach (var (id, range) in plugin.Manifest.Conflicts) { - Logger.loader.Trace($">- Checking conflict '{id}' {range}"); + Logger.Loader.Trace($">- Checking conflict '{id}' {range}"); // this lookup must be partial to prevent loadBefore/conflictsWith from creating a recursion loop if (TryResolveId(id, out var meta, out var conflDisabled, out var conflIgnored, partial: true) && range.Matches(meta.HVersion) && !conflIgnored && !conflDisabled) // the conflict is only *actually* a problem if it is both not ignored and not disabled { - Logger.loader.Warn($"Plugin '{plugin.Id}' conflicts with {meta.Id}@{meta.HVersion}; ignoring '{plugin.Id}'"); + Logger.Loader.Warn($"Plugin '{plugin.Id}' conflicts with {meta.Id}@{meta.HVersion}; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Conflict) { ReasonText = $"Conflicts with {meta.Id}@{meta.HVersion}", @@ -783,13 +783,13 @@ namespace IPA.Loader if (!ignoredPlugins.ContainsKey(plugin)) { // we can now load the current plugin - Logger.loader.Trace($"->'{plugin.Name}' loads here"); + Logger.Loader.Trace($"->'{plugin.Name}' loads here"); outputOrder!.Add(plugin); } // loadbefores have already been preprocessed into loadafters - Logger.loader.Trace($">Processed '{plugin.Name}'"); + Logger.Loader.Trace($">Processed '{plugin.Name}'"); } // run TryResolveId over every plugin, which recursively calculates load order @@ -817,7 +817,7 @@ namespace IPA.Loader { // this is a DefineFeature, so we want to initialize it early if (!feature.TryCreate(out var inst)) { - Logger.features.Error($"Error evaluating {feature.Name}: {inst.InvalidMessage}"); + Logger.Features.Error($"Error evaluating {feature.Name}: {inst.InvalidMessage}"); } else { @@ -850,7 +850,7 @@ namespace IPA.Loader } else { - Logger.features.Warn($"No such feature {feature.Name}"); + Logger.Features.Warn($"No such feature {feature.Name}"); } } } @@ -889,7 +889,7 @@ namespace IPA.Loader internal static PluginExecutor? InitPlugin(PluginMetadata meta, IEnumerable alreadyLoaded) { if (meta.Manifest.GameVersion is { } gv && gv != UnityGame.GameVersion) - Logger.loader.Warn($"Mod {meta.Name} developed for game version {gv}, so it may not work properly."); + Logger.Loader.Warn($"Mod {meta.Name} developed for game version {gv}, so it may not work properly."); if (meta.IsSelf) return new PluginExecutor(meta, PluginExecutor.Special.Self); @@ -932,8 +932,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Error($"Error creating executor for {meta.Name}"); - Logger.loader.Error(e); + Logger.Loader.Error($"Error creating executor for {meta.Name}"); + Logger.Loader.Error(e); return null; } @@ -945,8 +945,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Critical($"Feature errored in {nameof(Feature.BeforeInit)}:"); - Logger.loader.Critical(e); + Logger.Loader.Critical($"Feature errored in {nameof(Feature.BeforeInit)}:"); + Logger.Loader.Critical(e); } } @@ -956,8 +956,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Error($"Could not init plugin {meta.Name}"); - Logger.loader.Error(e); + Logger.Loader.Error($"Could not init plugin {meta.Name}"); + Logger.Loader.Error(e); ignoredPlugins.Add(meta, new IgnoreReason(Reason.Error) { ReasonText = "Error occurred while initializing", @@ -971,7 +971,7 @@ namespace IPA.Loader { if (!feature.TryCreate(out var inst)) { - Logger.features.Warn($"Could not create instance of feature {feature.Name}: {inst.InvalidMessage}"); + Logger.Features.Warn($"Could not create instance of feature {feature.Name}: {inst.InvalidMessage}"); } else { @@ -988,8 +988,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Critical($"Feature errored in {nameof(Feature.AfterInit)}:"); - Logger.loader.Critical(e); + Logger.Loader.Critical($"Feature errored in {nameof(Feature.AfterInit)}:"); + Logger.Loader.Critical(e); } return exec; @@ -1016,8 +1016,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.log.Critical($"Uncaught exception while loading plugin {meta.Name}:"); - Logger.log.Critical(e); + Logger.Default.Critical($"Uncaught exception while loading plugin {meta.Name}:"); + Logger.Default.Critical(e); } } diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs index 06239cd4..3112c419 100644 --- a/IPA.Loader/Loader/PluginManager.cs +++ b/IPA.Loader/Loader/PluginManager.cs @@ -153,8 +153,8 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Error($"Error while enabling {meta.Id}:"); - Logger.loader.Error(e); + Logger.Loader.Error($"Error while enabling {meta.Id}:"); + Logger.Loader.Error(e); // this should still be considered enabled, hence its position } } @@ -215,7 +215,7 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Critical($"Feature errored in {nameof(Feature.AfterDisable)}: {e}"); + Logger.Loader.Critical($"Feature errored in {nameof(Feature.AfterDisable)}: {e}"); } } }, UnityMainThreadTaskScheduler.Default); @@ -442,26 +442,26 @@ namespace IPA.Loader sw.Stop(); - Logger.log.Info(exeName); - Logger.log.Info($"Running on Unity {Application.unityVersion}"); - Logger.log.Info($"Game version {UnityGame.GameVersion}"); - Logger.log.Info("-----------------------------"); - Logger.log.Info($"Loading plugins from {Utils.GetRelativePath(pluginDirectory, Environment.CurrentDirectory)} and found {_bsPlugins.Count + _ipaPlugins.Count}"); - Logger.log.Info("-----------------------------"); + Logger.Default.Info(exeName); + Logger.Default.Info($"Running on Unity {Application.unityVersion}"); + Logger.Default.Info($"Game version {UnityGame.GameVersion}"); + Logger.Default.Info("-----------------------------"); + Logger.Default.Info($"Loading plugins from {Utils.GetRelativePath(pluginDirectory, Environment.CurrentDirectory)} and found {_bsPlugins.Count + _ipaPlugins.Count}"); + Logger.Default.Info("-----------------------------"); foreach (var plugin in _bsPlugins) { - Logger.log.Info($"{plugin.Metadata.Name} ({plugin.Metadata.Id}): {plugin.Metadata.Version}"); + Logger.Default.Info($"{plugin.Metadata.Name} ({plugin.Metadata.Id}): {plugin.Metadata.Version}"); } - Logger.log.Info("-----------------------------"); + Logger.Default.Info("-----------------------------"); if (_ipaPlugins.Count > 0) { foreach (var plugin in _ipaPlugins) { - Logger.log.Info($"{plugin.Name}: {plugin.Version}"); + Logger.Default.Info($"{plugin.Name}: {plugin.Version}"); } - Logger.log.Info("-----------------------------"); + Logger.Default.Info("-----------------------------"); } - Logger.log.Info($"Initializing plugins took {sw.Elapsed}"); + Logger.Default.Info($"Initializing plugins took {sw.Elapsed}"); } private static IEnumerable LoadPluginsFromFile(string file) @@ -482,7 +482,7 @@ namespace IPA.Loader } catch (Exception e) { - Logger.loader.Error($"Could not load plugin {t.FullName} in {Path.GetFileName(file)}! {e}"); + Logger.Loader.Error($"Could not load plugin {t.FullName} in {Path.GetFileName(file)}! {e}"); } } @@ -506,13 +506,13 @@ namespace IPA.Loader } catch (ReflectionTypeLoadException e) { - Logger.loader.Error($"Could not load the following types from {Path.GetFileName(file)}:"); - Logger.loader.Error($" {string.Join("\n ", e.LoaderExceptions?.Select(e1 => e1?.Message).StrJP() ?? Array.Empty())}"); + Logger.Loader.Error($"Could not load the following types from {Path.GetFileName(file)}:"); + Logger.Loader.Error($" {string.Join("\n ", e.LoaderExceptions?.Select(e1 => e1?.Message).StrJP() ?? Array.Empty())}"); } catch (Exception e) { - Logger.loader.Error($"Could not load {Path.GetFileName(file)}!"); - Logger.loader.Error(e); + Logger.Loader.Error($"Could not load {Path.GetFileName(file)}!"); + Logger.Loader.Error(e); } return ipaPlugins; diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 2ad8a6cc..9a853f74 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -7,7 +7,7 @@ ], "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.1-pre.2", + "version": "4.2.1-pre.3", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ diff --git a/IPA.Loader/Logging/Logger.cs b/IPA.Loader/Logging/Logger.cs index d89f4f50..6a37bdca 100644 --- a/IPA.Loader/Logging/Logger.cs +++ b/IPA.Loader/Logging/Logger.cs @@ -1,6 +1,5 @@ -using System; - -// ReSharper disable InconsistentNaming +#nullable enable +using System; namespace IPA.Logging { @@ -9,9 +8,9 @@ namespace IPA.Logging /// public abstract class Logger { - private static Logger _log; + private static Logger? _log; - internal static Logger log + internal static Logger Default { get { @@ -21,7 +20,7 @@ namespace IPA.Logging } } - private static StandardLogger _stdout; + private static StandardLogger? _stdout; internal static StandardLogger stdout { @@ -33,13 +32,16 @@ namespace IPA.Logging } } - internal static Logger AntiMalware => log.GetChildLogger("AntiMalware"); - internal static Logger updater => log.GetChildLogger("Updater"); - internal static Logger libLoader => log.GetChildLogger("LibraryLoader"); - internal static Logger injector => log.GetChildLogger("Injector"); - internal static Logger loader => log.GetChildLogger("Loader"); - internal static Logger features => loader.GetChildLogger("Features"); - internal static Logger config => log.GetChildLogger("Config"); + private static StandardLogger? lazyHarmony; + internal static StandardLogger Harmony => lazyHarmony ??= new StandardLogger("Harmony"); + + internal static Logger AntiMalware => Default.GetChildLogger("AntiMalware"); + internal static Logger Updater => Default.GetChildLogger("Updater"); + internal static Logger LibLoader => Default.GetChildLogger("LibraryLoader"); + internal static Logger Injector => Default.GetChildLogger("Injector"); + internal static Logger Loader => Default.GetChildLogger("Loader"); + internal static Logger Features => Loader.GetChildLogger("Features"); + internal static Logger Config => Default.GetChildLogger("Config"); internal static bool LogCreated => _log != null; /// diff --git a/IPA.Loader/Logging/Printers/GZFilePrinter.cs b/IPA.Loader/Logging/Printers/GZFilePrinter.cs index 58d50053..ebd9b5a2 100644 --- a/IPA.Loader/Logging/Printers/GZFilePrinter.cs +++ b/IPA.Loader/Logging/Printers/GZFilePrinter.cs @@ -1,158 +1,158 @@ -using Ionic.Zlib; -using System; -using System.IO; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.RegularExpressions; -#if NET3 -using Net3_Proxy; -using Path = Net3_Proxy.Path; -#endif - -namespace IPA.Logging.Printers -{ - /// - /// A abstract class that provides the utilities to write to a GZip file. - /// - public abstract class GZFilePrinter : LogPrinter, IDisposable - { - [DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] - private static extern bool CreateHardLink( - string lpFileName, - string lpExistingFileName, - IntPtr lpSecurityAttributes - ); - -#if NET4 - private const RegexOptions reOptions = RegexOptions.Compiled; -#elif NET3 // Needed because Compiled doesn't exist in Unity's .NET 3 runtime - private const RegexOptions reOptions = RegexOptions.None; -#endif - - internal static Regex removeControlCodes = new Regex("\x1b\\[\\d+m", reOptions); - - private FileInfo fileInfo; - - /// - /// The that writes to the GZip file. - /// - /// the writer to the underlying filestream - protected StreamWriter FileWriter; - - private FileStream fstream; - - /// - /// Gets the for the file to write to. - /// - /// the file to write to - protected abstract FileInfo GetFileInfo(); - - private const string latestFormat = "_latest{0}"; - - private void InitLog() - { - try - { - if (fileInfo == null) - { // first init - fileInfo = GetFileInfo(); - var ext = fileInfo.Extension; - - var symlink = new FileInfo(Path.Combine(fileInfo.DirectoryName ?? throw new InvalidOperationException(), string.Format(latestFormat, ext))); - if (symlink.Exists) symlink.Delete(); - - foreach (var file in fileInfo.Directory.EnumerateFiles("*.log", SearchOption.TopDirectoryOnly)) - { - if (file.Equals(fileInfo)) continue; - if (file.Extension == ".gz") continue; - - CompressOldLog(file); - } - - fileInfo.Create().Close(); - - try - { - if (!CreateHardLink(symlink.FullName, fileInfo.FullName, IntPtr.Zero)) - { - var error = Marshal.GetLastWin32Error(); - Logger.log.Error($"Hardlink creation failed ({error})"); - } - } - catch (Exception e) - { - Logger.log.Error("Error creating latest hardlink!"); - Logger.log.Error(e); - } - } - } - catch (Exception e) - { - Logger.log.Error("Error initializing log!"); - Logger.log.Error(e); - } - } - - private static async void CompressOldLog(FileInfo file) - { - Logger.log.Debug($"Compressing log file {file}"); - - var newFile = new FileInfo(file.FullName + ".gz"); - - using (var istream = file.OpenRead()) - using (var ostream = newFile.Create()) - using (var gz = new GZipStream(ostream, CompressionMode.Compress, CompressionLevel.BestCompression, false)) - await istream.CopyToAsync(gz); - - file.Delete(); - } - - /// - /// Called at the start of any print session. - /// - public sealed override void StartPrint() - { - InitLog(); - - fstream = fileInfo.Open(FileMode.Append, FileAccess.Write); - FileWriter = new StreamWriter(fstream, new UTF8Encoding(false)); - } - - /// - /// Called at the end of any print session. - /// - public sealed override void EndPrint() - { - FileWriter.Flush(); - fstream.Flush(); - FileWriter.Dispose(); - fstream.Dispose(); - FileWriter = null; - fstream = null; - } - - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Disposes the file printer. - /// - /// does nothing - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - FileWriter.Flush(); - fstream.Flush(); - FileWriter.Close(); - fstream.Close(); - FileWriter.Dispose(); - fstream.Dispose(); - } - } - } +using Ionic.Zlib; +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +#if NET3 +using Net3_Proxy; +using Path = Net3_Proxy.Path; +#endif + +namespace IPA.Logging.Printers +{ + /// + /// A abstract class that provides the utilities to write to a GZip file. + /// + public abstract class GZFilePrinter : LogPrinter, IDisposable + { + [DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + private static extern bool CreateHardLink( + string lpFileName, + string lpExistingFileName, + IntPtr lpSecurityAttributes + ); + +#if NET4 + private const RegexOptions reOptions = RegexOptions.Compiled; +#elif NET3 // Needed because Compiled doesn't exist in Unity's .NET 3 runtime + private const RegexOptions reOptions = RegexOptions.None; +#endif + + internal static Regex removeControlCodes = new Regex("\x1b\\[\\d+m", reOptions); + + private FileInfo fileInfo; + + /// + /// The that writes to the GZip file. + /// + /// the writer to the underlying filestream + protected StreamWriter FileWriter; + + private FileStream fstream; + + /// + /// Gets the for the file to write to. + /// + /// the file to write to + protected abstract FileInfo GetFileInfo(); + + private const string latestFormat = "_latest{0}"; + + private void InitLog() + { + try + { + if (fileInfo == null) + { // first init + fileInfo = GetFileInfo(); + var ext = fileInfo.Extension; + + var symlink = new FileInfo(Path.Combine(fileInfo.DirectoryName ?? throw new InvalidOperationException(), string.Format(latestFormat, ext))); + if (symlink.Exists) symlink.Delete(); + + foreach (var file in fileInfo.Directory.EnumerateFiles("*.log", SearchOption.TopDirectoryOnly)) + { + if (file.Equals(fileInfo)) continue; + if (file.Extension == ".gz") continue; + + CompressOldLog(file); + } + + fileInfo.Create().Close(); + + try + { + if (!CreateHardLink(symlink.FullName, fileInfo.FullName, IntPtr.Zero)) + { + var error = Marshal.GetLastWin32Error(); + Logger.Default.Error($"Hardlink creation failed ({error})"); + } + } + catch (Exception e) + { + Logger.Default.Error("Error creating latest hardlink!"); + Logger.Default.Error(e); + } + } + } + catch (Exception e) + { + Logger.Default.Error("Error initializing log!"); + Logger.Default.Error(e); + } + } + + private static async void CompressOldLog(FileInfo file) + { + Logger.Default.Debug($"Compressing log file {file}"); + + var newFile = new FileInfo(file.FullName + ".gz"); + + using (var istream = file.OpenRead()) + using (var ostream = newFile.Create()) + using (var gz = new GZipStream(ostream, CompressionMode.Compress, CompressionLevel.BestCompression, false)) + await istream.CopyToAsync(gz); + + file.Delete(); + } + + /// + /// Called at the start of any print session. + /// + public sealed override void StartPrint() + { + InitLog(); + + fstream = fileInfo.Open(FileMode.Append, FileAccess.Write); + FileWriter = new StreamWriter(fstream, new UTF8Encoding(false)); + } + + /// + /// Called at the end of any print session. + /// + public sealed override void EndPrint() + { + FileWriter.Flush(); + fstream.Flush(); + FileWriter.Dispose(); + fstream.Dispose(); + FileWriter = null; + fstream = null; + } + + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Disposes the file printer. + /// + /// does nothing + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + FileWriter.Flush(); + fstream.Flush(); + FileWriter.Close(); + fstream.Close(); + FileWriter.Dispose(); + fstream.Dispose(); + } + } + } } \ No newline at end of file diff --git a/IPA.Loader/Logging/StdoutInterceptor.cs b/IPA.Loader/Logging/StdoutInterceptor.cs index 31efdae2..9d83851c 100644 --- a/IPA.Loader/Logging/StdoutInterceptor.cs +++ b/IPA.Loader/Logging/StdoutInterceptor.cs @@ -1,9 +1,11 @@ -using HarmonyLib; +#nullable enable +using HarmonyLib; using System; using System.Collections.Generic; using System.IO; using System.Reflection.Emit; using System.Text; +using static IPA.Logging.Logger; namespace IPA.Logging { @@ -19,7 +21,7 @@ namespace IPA.Logging } private string lineBuffer = ""; - private readonly object bufferLock = new object(); + private readonly object bufferLock = new(); public override void Write(string value) { @@ -111,8 +113,8 @@ namespace IPA.Logging return "\x1b[" + code + "m"; } - private static StdoutInterceptor stdoutInterceptor; - private static StdoutInterceptor stderrInterceptor; + private static StdoutInterceptor? stdoutInterceptor; + private static StdoutInterceptor? stderrInterceptor; private static class ConsoleHarmonyPatches { @@ -127,24 +129,24 @@ namespace IPA.Logging try { if (resetColor != null) - harmony.Patch(resetColor, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchResetColor))); + _ = harmony.Patch(resetColor, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchResetColor))); if (foregroundProperty != null) { - harmony.Patch(setFg, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchSetForegroundColor))); - harmony.Patch(getFg, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchGetForegroundColor))); + _ = harmony.Patch(setFg, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchSetForegroundColor))); + _ = harmony.Patch(getFg, transpiler: new HarmonyMethod(typeof(ConsoleHarmonyPatches), nameof(PatchGetForegroundColor))); } } catch (Exception e) { // Harmony might be fucked because of wierdness in Guid.NewGuid, don't let that kill us - Logger.log.Error("Error installing harmony patches to intercept Console color properties:"); - Logger.log.Error(e); + Logger.Default.Error("Error installing harmony patches to intercept Console color properties:"); + Logger.Default.Error(e); } } - public static ConsoleColor GetColor() => stdoutInterceptor.currentColor; - public static void SetColor(ConsoleColor col) => stdoutInterceptor.currentColor = col; - public static void ResetColor() => stdoutInterceptor.currentColor = defaultColor; + public static ConsoleColor GetColor() => stdoutInterceptor!.currentColor; + public static void SetColor(ConsoleColor col) => stdoutInterceptor!.currentColor = col; + public static void ResetColor() => stdoutInterceptor!.currentColor = defaultColor; public static IEnumerable PatchGetForegroundColor(IEnumerable _) { @@ -178,20 +180,20 @@ namespace IPA.Logging } } - private static Harmony harmony; - private static bool usingInterceptor = false; + private static Harmony? harmony; + private static bool usingInterceptor; public static void Intercept() { if (!usingInterceptor) { usingInterceptor = true; - if (harmony == null) - harmony = new Harmony("BSIPA Console Redirector Patcher"); - if (stdoutInterceptor == null) - stdoutInterceptor = new StdoutInterceptor(); - if (stderrInterceptor == null) - stderrInterceptor = new StdoutInterceptor() { isStdErr = true }; + + ConfigureHarmonyLogging(); + + harmony ??= new Harmony("BSIPA Console Redirector Patcher"); + stdoutInterceptor ??= new StdoutInterceptor(); + stderrInterceptor ??= new StdoutInterceptor() { isStdErr = true }; RedirectConsole(); ConsoleHarmonyPatches.Patch(harmony); @@ -206,5 +208,27 @@ namespace IPA.Logging Console.SetError(stderrInterceptor); } } + + // I'm not completely sure this is the best place for this, but whatever + private static void ConfigureHarmonyLogging() + { + HarmonyLib.Tools.Logger.ChannelFilter = HarmonyLib.Tools.Logger.LogChannel.All & ~HarmonyLib.Tools.Logger.LogChannel.IL; + HarmonyLib.Tools.Logger.MessageReceived += (s, e) => + { + var msg = e.Message; + var lvl = e.LogChannel switch + { + HarmonyLib.Tools.Logger.LogChannel.None => Level.Info, + HarmonyLib.Tools.Logger.LogChannel.Info => Level.Info, + HarmonyLib.Tools.Logger.LogChannel.IL => Level.Trace, + HarmonyLib.Tools.Logger.LogChannel.Warn => Level.Warning, + HarmonyLib.Tools.Logger.LogChannel.Error => Level.Error, + HarmonyLib.Tools.Logger.LogChannel.Debug => Level.Debug, + HarmonyLib.Tools.Logger.LogChannel.All => Level.Critical, + _ => Level.Critical, + }; + Logger.Harmony.Log(lvl, msg); + }; + } } } diff --git a/IPA.Loader/Utilities/CriticalSection.cs b/IPA.Loader/Utilities/CriticalSection.cs index c5ed1029..4630f572 100644 --- a/IPA.Loader/Utilities/CriticalSection.cs +++ b/IPA.Loader/Utilities/CriticalSection.cs @@ -16,7 +16,7 @@ namespace IPA.Utilities internal static void Configure() { - Logger.log.Debug("Configuring exit handlers"); + Logger.Default.Debug("Configuring exit handlers"); ResetExitHandlers(); } diff --git a/IPA.Loader/Utilities/UnityGame.cs b/IPA.Loader/Utilities/UnityGame.cs index 259c6305..9765af75 100644 --- a/IPA.Loader/Utilities/UnityGame.cs +++ b/IPA.Loader/Utilities/UnityGame.cs @@ -27,7 +27,7 @@ namespace IPA.Utilities internal static void SetEarlyGameVersion(AlmostVersion ver) { _gameVersion = ver; - Logging.Logger.log.Debug($"GameVersion set early to {ver}"); + Logging.Logger.Default.Debug($"GameVersion set early to {ver}"); } private static string ApplicationVersionProxy { @@ -40,15 +40,15 @@ namespace IPA.Utilities } catch(MissingMemberException ex) { - Logging.Logger.log.Error($"Tried to grab 'Application.version' too early, it's probably broken now."); + Logging.Logger.Default.Error($"Tried to grab 'Application.version' too early, it's probably broken now."); if (SelfConfig.Debug_.ShowHandledErrorStackTraces_) - Logging.Logger.log.Error(ex); + Logging.Logger.Default.Error(ex); } catch (Exception ex) { - Logging.Logger.log.Error($"Error getting Application.version: {ex.Message}"); + Logging.Logger.Default.Error($"Error getting Application.version: {ex.Message}"); if (SelfConfig.Debug_.ShowHandledErrorStackTraces_) - Logging.Logger.log.Error(ex); + Logging.Logger.Default.Error(ex); } return string.Empty; } @@ -60,18 +60,18 @@ namespace IPA.Utilities var rtVer = new AlmostVersion(ApplicationVersionProxy); if (!rtVer.Equals(_gameVersion)) // this actually uses stricter equality than == for AlmostVersion { - Logging.Logger.log.Warn($"Early version {_gameVersion} parsed from game files doesn't match runtime version {rtVer}!"); + Logging.Logger.Default.Warn($"Early version {_gameVersion} parsed from game files doesn't match runtime version {rtVer}!"); _gameVersion = rtVer; } } catch (MissingMethodException e) { - Logging.Logger.log.Error("Application.version was not found! Cannot check early parsed version"); + Logging.Logger.Default.Error("Application.version was not found! Cannot check early parsed version"); if (SelfConfig.Debug_.ShowHandledErrorStackTraces_) - Logging.Logger.log.Error(e); + Logging.Logger.Default.Error(e); var st = new StackTrace(); - Logging.Logger.log.Notice($"{st}"); + Logging.Logger.Default.Notice($"{st}"); } } From 0eaa9e8ef33b1c8e56b5d50c372bd6e695202207 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Wed, 15 Dec 2021 16:27:01 -0600 Subject: [PATCH 67/88] Adjust log level mappings for Harmony logs --- IPA.Injector/Injector.cs | 2 +- IPA.Loader/Logging/StdoutInterceptor.cs | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/IPA.Injector/Injector.cs b/IPA.Injector/Injector.cs index 523e869c..acfbe4a2 100644 --- a/IPA.Injector/Injector.cs +++ b/IPA.Injector/Injector.cs @@ -312,7 +312,7 @@ namespace IPA.Injector UnityLogProvider.UnityLogger.Log(level, $"{stackTrace}"); }; - ConfigureHarmonyLogging(); + StdoutInterceptor.EnsureHarmonyLogging(); // need to reinit streams singe Unity seems to redirect stdout StdoutInterceptor.RedirectConsole(); diff --git a/IPA.Loader/Logging/StdoutInterceptor.cs b/IPA.Loader/Logging/StdoutInterceptor.cs index 9d83851c..26d14fe9 100644 --- a/IPA.Loader/Logging/StdoutInterceptor.cs +++ b/IPA.Loader/Logging/StdoutInterceptor.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.IO; using System.Reflection.Emit; using System.Text; +using System.Threading; using static IPA.Logging.Logger; namespace IPA.Logging @@ -189,7 +190,7 @@ namespace IPA.Logging { usingInterceptor = true; - ConfigureHarmonyLogging(); + EnsureHarmonyLogging(); harmony ??= new Harmony("BSIPA Console Redirector Patcher"); stdoutInterceptor ??= new StdoutInterceptor(); @@ -209,17 +210,21 @@ namespace IPA.Logging } } + private static int harmonyLoggingInited; // I'm not completely sure this is the best place for this, but whatever - private static void ConfigureHarmonyLogging() + internal static void EnsureHarmonyLogging() { + if (Interlocked.Exchange(ref harmonyLoggingInited, 1) != 0) + return; + HarmonyLib.Tools.Logger.ChannelFilter = HarmonyLib.Tools.Logger.LogChannel.All & ~HarmonyLib.Tools.Logger.LogChannel.IL; HarmonyLib.Tools.Logger.MessageReceived += (s, e) => { var msg = e.Message; var lvl = e.LogChannel switch { - HarmonyLib.Tools.Logger.LogChannel.None => Level.Info, - HarmonyLib.Tools.Logger.LogChannel.Info => Level.Info, + HarmonyLib.Tools.Logger.LogChannel.None => Level.Notice, + HarmonyLib.Tools.Logger.LogChannel.Info => Level.Trace, // HarmonyX logs a *lot* of Info messages HarmonyLib.Tools.Logger.LogChannel.IL => Level.Trace, HarmonyLib.Tools.Logger.LogChannel.Warn => Level.Warning, HarmonyLib.Tools.Logger.LogChannel.Error => Level.Error, From d7dd5d1de7839674fe7930ae1ec964bb8a995905 Mon Sep 17 00:00:00 2001 From: Eris Date: Sat, 18 Dec 2021 23:59:08 +0100 Subject: [PATCH 68/88] Fixed incorrect parameter names being used (#74) --- IPA.Loader/Loader/PluginManager.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs index 3112c419..b323366f 100644 --- a/IPA.Loader/Loader/PluginManager.cs +++ b/IPA.Loader/Loader/PluginManager.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; @@ -7,7 +6,6 @@ using System.Reflection; using System.Runtime.InteropServices; using System.Text; using IPA.Config; -using IPA.Old; using IPA.Utilities; using Mono.Cecil; using UnityEngine; @@ -52,10 +50,10 @@ namespace IPA.Loader /// /// Gets info about the enabled plugin with the specified ID. /// - /// the ID name of the plugin to get (must be an exact match) + /// the ID name of the plugin to get (must be an exact match) /// the plugin metadata for the requested plugin or if it doesn't exist or is disabled - public static PluginMetadata GetPluginFromId(string name) - => BSMetas.Select(p => p.Metadata).FirstOrDefault(p => p.Id == name); + public static PluginMetadata GetPluginFromId(string id) + => BSMetas.Select(p => p.Metadata).FirstOrDefault(p => p.Id == id); /// /// Gets a disabled plugin's metadata by its name. @@ -68,10 +66,10 @@ namespace IPA.Loader /// /// Gets a disabled plugin's metadata by its ID. /// - /// the ID of the disabled plugin to get + /// the ID of the disabled plugin to get /// the metadata for the corresponding plugin - public static PluginMetadata GetDisabledPluginFromId(string name) => - DisabledPlugins.FirstOrDefault(p => p.Id == name); + public static PluginMetadata GetDisabledPluginFromId(string id) => + DisabledPlugins.FirstOrDefault(p => p.Id == id); /// /// Creates a new transaction for mod enabling and disabling mods simultaneously. From 4b23d768f672ac24f98320d85278064e983b9eda Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 21 Dec 2021 09:41:20 +0100 Subject: [PATCH 69/88] Bump MonoMod.RuntimeDetour from 21.11.1.1 to 21.12.13.1 --- IPA.Loader/IPA.Loader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 99da2ecc..12983724 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -58,7 +58,7 @@ - + From 903a2ac53f927323c876a39b8cb1dc5cb70d73a2 Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 21 Dec 2021 09:41:50 +0100 Subject: [PATCH 70/88] Bump HarmonyX from 2.6.1 to 2.7.0 --- IPA.Loader/IPA.Loader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 12983724..b2755ab0 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -57,7 +57,7 @@ --> - + From 8145d5342d934842843b6a5db7d55a97376aa06c Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 21 Dec 2021 09:44:49 +0100 Subject: [PATCH 71/88] Disallow legacy global UnpatchAll --- IPA.Loader/Loader/HarmonyProtector.cs | 3 ++- IPA.Loader/Loader/PluginLoader.cs | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/IPA.Loader/Loader/HarmonyProtector.cs b/IPA.Loader/Loader/HarmonyProtector.cs index 2d49fea5..8bae68bf 100644 --- a/IPA.Loader/Loader/HarmonyProtector.cs +++ b/IPA.Loader/Loader/HarmonyProtector.cs @@ -1,5 +1,4 @@ using HarmonyLib; -using System.Collections.Generic; using System.Reflection; namespace IPA.Loader @@ -17,6 +16,8 @@ namespace IPA.Loader public static void Protect(Harmony inst = null) { + HarmonyGlobalSettings.DisallowLegacyGlobalUnpatchAll = true; + selfAssem = Assembly.GetExecutingAssembly(); harmonyAssem = typeof(Harmony).Assembly; diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 10a5eae6..f5252eee 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -11,11 +11,7 @@ using System.IO; using System.Linq; using System.Reflection; using System.Text.RegularExpressions; -using System.Threading.Tasks; -using Version = SemVer.Version; -using SemVer; using System.Diagnostics.CodeAnalysis; -using HarmonyLib; using System.Diagnostics; using IPA.AntiMalware; using Hive.Versioning; From 5bda9e3669477cd539fad52be9663cf4ebdf64f8 Mon Sep 17 00:00:00 2001 From: Eris Date: Tue, 21 Dec 2021 10:44:53 +0100 Subject: [PATCH 72/88] Move DisallowLegacyGlobalUnpatchAll to StdoutInterceptor --- IPA.Loader/Loader/HarmonyProtector.cs | 2 -- IPA.Loader/Logging/StdoutInterceptor.cs | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/Loader/HarmonyProtector.cs b/IPA.Loader/Loader/HarmonyProtector.cs index 8bae68bf..30f845ba 100644 --- a/IPA.Loader/Loader/HarmonyProtector.cs +++ b/IPA.Loader/Loader/HarmonyProtector.cs @@ -16,8 +16,6 @@ namespace IPA.Loader public static void Protect(Harmony inst = null) { - HarmonyGlobalSettings.DisallowLegacyGlobalUnpatchAll = true; - selfAssem = Assembly.GetExecutingAssembly(); harmonyAssem = typeof(Harmony).Assembly; diff --git a/IPA.Loader/Logging/StdoutInterceptor.cs b/IPA.Loader/Logging/StdoutInterceptor.cs index 26d14fe9..c2bba24f 100644 --- a/IPA.Loader/Logging/StdoutInterceptor.cs +++ b/IPA.Loader/Logging/StdoutInterceptor.cs @@ -192,9 +192,10 @@ namespace IPA.Logging EnsureHarmonyLogging(); + HarmonyGlobalSettings.DisallowLegacyGlobalUnpatchAll = true; harmony ??= new Harmony("BSIPA Console Redirector Patcher"); stdoutInterceptor ??= new StdoutInterceptor(); - stderrInterceptor ??= new StdoutInterceptor() { isStdErr = true }; + stderrInterceptor ??= new StdoutInterceptor { isStdErr = true }; RedirectConsole(); ConsoleHarmonyPatches.Patch(harmony); From 3adbdc18e8891cba87b2754e0028bfc7f6b8b314 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 21 Dec 2021 05:34:50 -0600 Subject: [PATCH 73/88] Bump version --- IPA.Loader/Loader/LibLoader.cs | 5 +---- IPA.Loader/Loader/manifest.json | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 49359e96..4960b6c6 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -76,10 +76,7 @@ namespace IPA.Loader static void AddDir(string path) { var pathEnvironmentVariable = Environment.GetEnvironmentVariable("Path"); - if (!pathEnvironmentVariable.Contains(path)) - { - Environment.SetEnvironmentVariable("Path", pathEnvironmentVariable + Path.PathSeparator + path); - } + Environment.SetEnvironmentVariable("Path", path + Path.PathSeparator + pathEnvironmentVariable); } if (Directory.Exists(NativeLibraryPath)) diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 9a853f74..4b763ca4 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -7,7 +7,7 @@ ], "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.1-pre.3", + "version": "4.2.1", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ From eee567bb83906d9c040b0f7f9b140e847e7e2bdf Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Sun, 13 Mar 2022 18:47:52 -0500 Subject: [PATCH 74/88] Bundle netstandard.dll with BSIPA and force-load our Newtonsoft early --- IPA.Injector/IPA.Injector.csproj | 7 ++++--- IPA.Loader/Loader/LibLoader.cs | 15 +++++++++++++-- Libs/netstandard.dll | Bin 0 -> 84992 bytes Refs/UnityEngine.CoreModule.Net4.dll | Bin 726016 -> 726016 bytes Refs/UnityEngine.CoreModule.net3.dll | Bin 730112 -> 0 bytes ...UnityEngine.UnityWebRequestModule.net3.dll | Bin 24576 -> 0 bytes Refs/UnityEngine.net3.dll | Bin 85504 -> 0 bytes 7 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 Libs/netstandard.dll delete mode 100644 Refs/UnityEngine.CoreModule.net3.dll delete mode 100644 Refs/UnityEngine.UnityWebRequestModule.net3.dll delete mode 100644 Refs/UnityEngine.net3.dll diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index 34d63e86..f8a462b9 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -55,6 +55,10 @@ Libraries\Mono\System.Runtime.Serialization.dll Always + + Libraries\Mono\netstandard.dll + Always + @@ -84,9 +88,6 @@ - - $(MSBuildThisFileDirectory)..\Libs\thirdparty\Hive.Versioning.dll - diff --git a/IPA.Loader/Loader/LibLoader.cs b/IPA.Loader/Loader/LibLoader.cs index 4960b6c6..337eb5e6 100644 --- a/IPA.Loader/Loader/LibLoader.cs +++ b/IPA.Loader/Loader/LibLoader.cs @@ -90,6 +90,9 @@ namespace IPA.Loader //var unityData = Directory.EnumerateDirectories(Environment.CurrentDirectory, "*_Data").First(); //AddDir(Path.Combine(unityData, "Plugins")); + + // TODO: find a way to either safely remove Newtonsoft, or switch to a different JSON lib + _ = LoadLibrary(new AssemblyName("Newtonsoft.Json, Version=12.0.0.0, Culture=neutral")); } } @@ -151,21 +154,29 @@ namespace IPA.Loader return Assembly.LoadFrom(path); } - internal static void Log(Logger.Level lvl, string message) + internal static void Log(Logger.Level lvl, string message) { // multiple proxy methods to delay loading of assemblies until it's done if (Logger.LogCreated) + { AssemblyLibLoaderCallLogger(lvl, message); + } else + { if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) Console.WriteLine($"[{lvl}] {message}"); + } } internal static void Log(Logger.Level lvl, Exception message) { // multiple proxy methods to delay loading of assemblies until it's done if (Logger.LogCreated) + { AssemblyLibLoaderCallLogger(lvl, message); + } else + { if (((byte)lvl & (byte)StandardLogger.PrintFilter) != 0) - Console.WriteLine($"[{lvl}] {message}"); + Console.WriteLine($"[{lvl}] {message}"); + } } private static void AssemblyLibLoaderCallLogger(Logger.Level lvl, string message) => Logger.LibLoader.Log(lvl, message); diff --git a/Libs/netstandard.dll b/Libs/netstandard.dll new file mode 100644 index 0000000000000000000000000000000000000000..9350e84c4aa8cd85d1264c30601947772ed7cbcd GIT binary patch literal 84992 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

    K{sU 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 delta 45 ucmZozq0<0FEsQNpEzB(}Ev#GE>cSZr+UvvFfS4VKIe?gRdwn=p;~oHJdk?|@ diff --git a/Refs/UnityEngine.CoreModule.net3.dll b/Refs/UnityEngine.CoreModule.net3.dll deleted file mode 100644 index 7e4b2a8e1388aae17a08dae2f7e85851cb28be10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730112 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%0D9EimF!vsUPD{Ep@rd?f>ScC^k` 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≷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�je1 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 aU-ldL^{9LceZKLNFT3Nf`uksa1OEj9kpgP~ From c4dc707b6030c54b5c3255a81a2c104bc9582847 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Sun, 13 Mar 2022 18:48:58 -0500 Subject: [PATCH 75/88] Bump version --- IPA.Loader/Config/SelfConfig.cs | 2 +- IPA.Loader/Loader/manifest.json | 2 +- IPA/Program.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/IPA.Loader/Config/SelfConfig.cs b/IPA.Loader/Config/SelfConfig.cs index 9611c487..451627fb 100644 --- a/IPA.Loader/Config/SelfConfig.cs +++ b/IPA.Loader/Config/SelfConfig.cs @@ -73,7 +73,7 @@ namespace IPA.Config } internal const string IPAName = "Beat Saber IPA"; - internal const string IPAVersion = "4.2.1.0"; + internal const string IPAVersion = "4.2.2.0"; // uses Updates.AutoUpdate, Updates.AutoCheckUpdates, YeetMods, Debug.ShowCallSource, Debug.ShowDebug, // Debug.CondenseModLogs diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index 4b763ca4..5ba5803d 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -7,7 +7,7 @@ ], "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.2.1", + "version": "4.2.2", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": [ diff --git a/IPA/Program.cs b/IPA/Program.cs index 0116a585..71e55c2e 100644 --- a/IPA/Program.cs +++ b/IPA/Program.cs @@ -21,7 +21,7 @@ namespace IPA Unknown } - public const string FileVersion = "4.2.1.0"; + public const string FileVersion = "4.2.2.0"; public static Version Version => Assembly.GetEntryAssembly()!.GetName().Version!; From 84bc7edbad777a64c34d2d715e5dad664ef9a715 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jun 2022 22:32:52 +0000 Subject: [PATCH 76/88] Bump Newtonsoft.Json from 12.0.3 to 13.0.1 in /IPA.Loader Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 12.0.3 to 13.0.1. - [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases) - [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/12.0.3...13.0.1) --- updated-dependencies: - dependency-name: Newtonsoft.Json dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- IPA.Loader/IPA.Loader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index b2755ab0..ff62c1c3 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -50,7 +50,7 @@ - +

2$|dQ9^!$u)*K;F(`u1GM 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 literal 84480 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 E16_hoPXGV_ delta 1227 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

O8DE!I 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 z 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