From 6e9aff946848c8ae199775594ffdf67d8a625fdb Mon Sep 17 00:00:00 2001 From: Avery Norris Date: Sat, 28 Feb 2026 11:26:43 -0500 Subject: [PATCH] Nearly Finished --- AwperativeKernel/AwperativeKernel.csproj | 3 + .../AwperativeAttributes.cs} | 50 ++++++ .../Kernel/Component/Component.cs | 170 ++++-------------- .../Component/ComponentCalculatedProperty.cs | 52 ++++++ .../Kernel/Component/ComponentLambda.cs | 32 ++++ .../ComponentDocker/Core/ComponentDocker.cs | 45 +++-- .../Core/ComponentDockerManagement.cs | 6 +- .../AwperativeKernel.csproj.nuget.dgspec.json | 22 +-- .../obj/AwperativeKernel.csproj.nuget.g.props | 8 +- .../net8.0/AwperativeKernel.AssemblyInfo.cs | 2 +- .../AwperativeKernel.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 4 +- .../net8.0/AwperativeKernel.assets.cache | Bin 8294 -> 8640 bytes ...ativeKernel.csproj.AssemblyReference.cache | Bin 4263 -> 4333 bytes ...ativeKernel.csproj.CoreCompileInputs.cache | 2 +- ...perativeKernel.csproj.FileListAbsolute.txt | 8 + .../obj/Debug/net8.0/AwperativeKernel.dll | Bin 21504 -> 33792 bytes .../obj/Debug/net8.0/AwperativeKernel.pdb | Bin 18936 -> 23512 bytes AwperativeKernel/obj/project.assets.json | 20 +-- AwperativeKernel/obj/project.nuget.cache | 34 ++-- AwperativeKernel/obj/project.packagespec.json | 2 +- .../obj/rider.project.model.nuget.info | 2 +- .../obj/rider.project.restore.info | 2 +- 23 files changed, 264 insertions(+), 202 deletions(-) rename AwperativeKernel/Kernel/{ComponentDocker/Attributes/DockerOwns.cs => Atrributes/AwperativeAttributes.cs} (87%) create mode 100644 AwperativeKernel/Kernel/Component/ComponentCalculatedProperty.cs create mode 100644 AwperativeKernel/Kernel/Component/ComponentLambda.cs diff --git a/AwperativeKernel/AwperativeKernel.csproj b/AwperativeKernel/AwperativeKernel.csproj index 3debb06..51ffc08 100644 --- a/AwperativeKernel/AwperativeKernel.csproj +++ b/AwperativeKernel/AwperativeKernel.csproj @@ -10,4 +10,7 @@ + + + \ No newline at end of file diff --git a/AwperativeKernel/Kernel/ComponentDocker/Attributes/DockerOwns.cs b/AwperativeKernel/Kernel/Atrributes/AwperativeAttributes.cs similarity index 87% rename from AwperativeKernel/Kernel/ComponentDocker/Attributes/DockerOwns.cs rename to AwperativeKernel/Kernel/Atrributes/AwperativeAttributes.cs index b0049a1..bf232d3 100644 --- a/AwperativeKernel/Kernel/ComponentDocker/Attributes/DockerOwns.cs +++ b/AwperativeKernel/Kernel/Atrributes/AwperativeAttributes.cs @@ -293,6 +293,56 @@ public class ValueFitsRange : Attribute +/// +/// Requires that the index fits a given collection +/// +[AttributeUsage(AttributeTargets.All)] +public class CollectionContains : Attribute +{ + + + /// + /// Verifies if the value fits a range + /// + /// + /// + public static bool VerifyOrThrow<__Type>(__Type __object, ICollection<__Type> __collection) { + if(__collection.Contains(__object)) return true; + + Debug.LogError("Collection does not contain object!", ["ObjectType"], + [__object.GetType().Name]); + + return Awperative.IgnoreErrors; + } +} + + + +/// +/// Requires that the index fits a given collection +/// +[AttributeUsage(AttributeTargets.All)] +public class CollectionDoesntContain : Attribute +{ + + + /// + /// Verifies if the value fits a range + /// + /// + /// + public static bool VerifyOrThrow<__Type>(__Type __object, ICollection<__Type> __collection) { + if(!__collection.Contains(__object)) return true; + + Debug.LogError("Collection already contains object!", ["ObjectType"], + [__object.GetType().Name]); + + return Awperative.IgnoreErrors; + } +} + + + /// /// Shows that the given object is unsafe (ex. it doesn't check for null values and such, or it doesn't have guardrails based on cases). /// This is just for internal/private methods to remind myself how to call it :) The reasoning is case by case, but most of the time, diff --git a/AwperativeKernel/Kernel/Component/Component.cs b/AwperativeKernel/Kernel/Component/Component.cs index b15fb69..0bb47b0 100644 --- a/AwperativeKernel/Kernel/Component/Component.cs +++ b/AwperativeKernel/Kernel/Component/Component.cs @@ -19,7 +19,8 @@ public abstract partial class Component : ComponentDocker, IDisposable /// Current parent of the Component. Can be either Scene or another Component. - public ComponentDocker ComponentDocker { get; internal set; } = null; + [UnsafeInternal] + internal ComponentDocker ComponentDocker { get; set; } = null; /// @@ -29,7 +30,7 @@ public abstract partial class Component : ComponentDocker, IDisposable public string Name { get => _name; set { if (!NotNull.VerifyOrThrow(value)) return; _name = value; } - } private string _name; + } [UnsafeInternal] private string _name; /// Represents the state of this Component, The largest bit represents if the Component is enabled or not, while the @@ -38,14 +39,14 @@ public abstract partial class Component : ComponentDocker, IDisposable private byte OrderProfile; /// If the component receives time events or not. - [CalculatedProperty] [CalculatedPropertyExpense("Very Low")] + [CalculatedProperty, CalculatedPropertyExpense("Very Low")] public bool Enabled { get => (OrderProfile & 128) > 0; set => OrderProfile = (byte)((OrderProfile & 127) | (value ? 128 : 0)); } /// Represents the Component's Update priority, can be set to any value ranging from -64 to 63; otherwise an error will throw! - [CalculatedProperty] [CalculatedPropertyExpense("Very Low")] + [CalculatedProperty, CalculatedPropertyExpense("Very Low")] public int Priority { get => (sbyte)(OrderProfile << 1) >> 1; set { @@ -58,37 +59,23 @@ public abstract partial class Component : ComponentDocker, IDisposable - - - + /// - /// Scene the Component resides in. + /// Attempts to send an Event to the Component, terminates if the Component does not have the given Event /// - public Scene Scene => __QueryScene(); - protected Scene __QueryScene() { - if (ComponentDocker is Scene scene) return scene; - if (ComponentDocker is Component Component) return Component.__QueryScene(); - - return null; + /// Type of Event + [UnsafeInternal] + internal void TryEvent(int __timeEvent) { + Awperative._TypeAssociatedTimeEvents[GetType()][__timeEvent]?.Invoke(this); } - - - public void TryEvent(int __timeEvent) { - Action eventDelegates = Awperative._TypeAssociatedTimeEvents[GetType()][__timeEvent]; - eventDelegates?.Invoke(this); - } - - - - /// /// Identifiers for Components. /// - public ImmutableArray Tags => [.._tags]; - internal HashSet _tags = []; + public IReadOnlyList Tags => [.._tags]; + [UnsafeInternal] internal HashSet _tags = []; @@ -98,124 +85,37 @@ public abstract partial class Component : ComponentDocker, IDisposable /// Adds a new tag to the Component /// /// The tag to add - public void AddTag(string __tag) => ComponentDocker.HashTaggedComponent(this, __tag); - - - - - - /// - /// Removes a tag from the Component - /// - /// The tag to remove - public void RemoveTag(string __tag) => ComponentDocker.UnhashTaggedComponent(this, __tag); - - - - - - /// - /// All parent Dockers and the parents of the parents up until the Scene. Will only list parents of parents, not uncle dockers. - /// - /// Dockers[0] is the parent of this object, and Dockers[^1] is the Scene. - public ImmutableArray Dockers => __QueryDockers(); - protected ImmutableArray __QueryDockers() { - List returnValue = []; - ComponentDocker currentComponentDocker = ComponentDocker; - - while (!(currentComponentDocker is Scene)) { - if (currentComponentDocker is Component Component) { - returnValue.Add(currentComponentDocker); - currentComponentDocker = Component.ComponentDocker; - } else { - Debug.LogError("Component has a Parent that is not a Scene or Component, Please do not use the Docker class unless you know what you are doing!", ["Component", "Type", "Docker"], - [GetHashCode().ToString(), GetType().ToString(), ComponentDocker.GetHashCode().ToString()]); - } - } - - returnValue.Add(currentComponentDocker); - - return [..returnValue]; - } - - - - - - /// - /// Returns the Parent Component. Will be null if the Component is under a scene. - /// - public Component Parent => __QueryParent(); - protected Component __QueryParent() { - if (ComponentDocker is Component Component) - return Component; - return null; - } - - - - - - /// - /// All parent Components and the parents of the parents up until the Scene. Will only list parents of parents, not uncle Components. - /// - public ImmutableArray Parents => __QueryComponents(); - protected ImmutableArray __QueryComponents() { - List returnValue = []; - ComponentDocker currentComponentDocker = ComponentDocker; + public void AddTag([NotNull, CollectionDoesntContain] string __tag) + { + if(!NotNull.VerifyOrThrow(__tag)) return; + if(!CollectionDoesntContain.VerifyOrThrow(__tag, _tags)) return; - while (!(currentComponentDocker is Scene)) - if (currentComponentDocker is Component Component) { - returnValue.Add(Component); - currentComponentDocker = Component.ComponentDocker; - } - return [..returnValue]; + _tags.Add(__tag); + ComponentDocker.AddTagToComponent(__tag, this); } + + /// - /// Creates a new Scene + /// Adds a new tag to the Component /// - /// Name of the Scene - public Scene CreateScene(string __name) => Awperative.CreateScene(__name); - - - - /// - /// Finds a scene. - /// - /// Name of the Scene - /// - public Scene GetScene(string __name) => Awperative.GetScene(__name); - - - - /// - /// Destroys a Scene forever - /// - /// Target scene - public void RemoveScene(Scene __scene) => Awperative.CloseScene(__scene); - - - - /// - /// Destroys a Scene forever - /// - /// Name of the Scene - public void RemoveScene(string __name) => Awperative.CloseScene(__name); - - - - public ImmutableArray GetAllChildren() { - List targets = [.._components]; - for (int i = 0; i < targets.Count; i++) targets.InsertRange(i + 1, targets[i]._components); - return [..targets]; + /// The tag to add + public void RemoveTag([NotNull,CollectionContains] string __tag) + { + if (!NotNull.VerifyOrThrow(__tag)) return; + if(!CollectionContains.VerifyOrThrow(__tag, _tags)) return; + + _tags.Remove(__tag); + ComponentDocker.RemoveTagFromComponent(__tag, this); } + + + + - public virtual void Dispose() { - GC.SuppressFinalize(this); - } + public virtual void Dispose() { GC.SuppressFinalize(this); } public override string ToString() { return this.Name; diff --git a/AwperativeKernel/Kernel/Component/ComponentCalculatedProperty.cs b/AwperativeKernel/Kernel/Component/ComponentCalculatedProperty.cs new file mode 100644 index 0000000..37a05d2 --- /dev/null +++ b/AwperativeKernel/Kernel/Component/ComponentCalculatedProperty.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; + +namespace AwperativeKernel; + +public abstract partial class Component +{ + /// + /// Scene the Component resides in. + /// + [CalculatedProperty, CalculatedPropertyExpense("Medium: O(Parents)")] + public Scene Scene => __QueryScene(); + private Scene __QueryScene() { + if (ComponentDocker is Scene scene) return scene; + if (ComponentDocker is Component Component) return Component.__QueryScene(); + + return null; + } + + + + /// + /// Returns the Parent Component. Will be null if the Component is at the base of a scene. + /// + [CalculatedProperty, CalculatedPropertyExpense("Very Low O(1)")] + public Component Parent => __QueryParent(); + private Component __QueryParent() { + if (ComponentDocker is Component Component) + return Component; + return null; + } + + + + /// + /// All parent Components and the parents of the parents up until the Scene. Will only list parents of parents, not uncle Components. + /// + [CalculatedProperty, CalculatedPropertyExpense("Medium O(Parents)")] + public IReadOnlyList AllParents => __QueryComponents(); + private IReadOnlyList __QueryComponents() { + List returnValue = []; + ComponentDocker currentComponentDocker = ComponentDocker; + + while (!(currentComponentDocker is Scene)) + if (currentComponentDocker is Component Component) { + returnValue.Add(Component); + currentComponentDocker = Component.ComponentDocker; + } + return [..returnValue]; + } + + +} \ No newline at end of file diff --git a/AwperativeKernel/Kernel/Component/ComponentLambda.cs b/AwperativeKernel/Kernel/Component/ComponentLambda.cs new file mode 100644 index 0000000..0955931 --- /dev/null +++ b/AwperativeKernel/Kernel/Component/ComponentLambda.cs @@ -0,0 +1,32 @@ +namespace AwperativeKernel; + +public abstract partial class Component +{ + #region Scenes + + /// + public static Scene CreateScene(string __name) => Awperative.CreateScene(__name); + + + + /// + public static Scene GetScene(string __name) => Awperative.GetScene(__name); + + + + /// + public void RemoveScene(Scene __scene) => Awperative.CloseScene(__scene); + + + + /// + public void RemoveScene(string __name) => Awperative.CloseScene(__name); + + #endregion + + #region Components + + public void Move(ComponentDocker __newDocker) => ComponentDocker.Move(this, __newDocker); + + #endregion +} \ No newline at end of file diff --git a/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDocker.cs b/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDocker.cs index 343a24f..d9d4eef 100644 --- a/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDocker.cs +++ b/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDocker.cs @@ -20,17 +20,14 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable - /// Core of Docker, contains all of our precious Components. Sorts them by their priorities with highest going first. - /// If they are equal it defaults to hash codes to ensure consistent Behavior - /// + /// Core of the Docker, holds all of the Components, sorted by update priority. - [UnsafeInternal] internal List _components = new(); + [UnsafeInternal] internal readonly List _components = []; /// Holds a list of Components at each of their types. This optimizes Get<Type> to O(1) - [UnsafeInternal] internal Dictionary> _componentTypeDictionary = new(); + [UnsafeInternal] internal readonly Dictionary> _componentTypeDictionary = new(); /// Stores a Component in a list at each of their tags. This optimizes Get(string tag) to O(1) - [UnsafeInternal] internal Dictionary> _componentTagDictionary = new(); + [UnsafeInternal] internal readonly Dictionary> _componentTagDictionary = new(); @@ -50,9 +47,6 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable GetEnumerator() { return new ComponentDockEnum([.._components]); } - /// List of all Components belonging to the Docker, Please Use Add, Get, Move and Destroy to modify it - public IReadOnlyList Components => _components; - /// Amount of Components attached to the Docker public int Count => _components.Count; @@ -112,8 +106,8 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable @@ -127,7 +121,7 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerable @@ -136,7 +130,7 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerableTag to add /// Component to add it to [UnsafeInternal] - private void AddTagToComponent(string __tag, Component __component) { + internal void AddTagToComponent(string __tag, Component __component) { if (!_componentTagDictionary.TryAdd(__tag, [__component])) _componentTagDictionary[__tag].Add(__component); } @@ -147,8 +141,29 @@ public abstract partial class ComponentDocker : IEnumerable, IEnumerableTag to remove /// Component to remove it from [UnsafeInternal] - private void RemoveTagFromComponent(string __tag, Component __component) { + internal void RemoveTagFromComponent(string __tag, Component __component) { if(!_componentTagDictionary.ContainsKey(__tag)) _componentTagDictionary[__tag].Remove(__component); } + + + + /// + /// All children belonging to the Component. + /// + [CalculatedProperty, CalculatedPropertyExpense("Very Low")] + public IReadOnlyList Children => _components; + + + + /// + /// All children and their children until the bottom of the scene. Uses Breadth First Search. + /// + [CalculatedProperty, CalculatedPropertyExpense("Medium O(Children)")] + public IReadOnlyList AllChildren => GetAllChildren(); + public IReadOnlyList GetAllChildren() { + List targets = [.._components]; + for (int i = 0; i < targets.Count; i++) targets.InsertRange(i + 1, targets[i]._components); + return [..targets]; + } } \ No newline at end of file diff --git a/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDockerManagement.cs b/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDockerManagement.cs index 3ad9a5c..144a4f0 100644 --- a/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDockerManagement.cs +++ b/AwperativeKernel/Kernel/ComponentDocker/Core/ComponentDockerManagement.cs @@ -48,11 +48,11 @@ public abstract partial class ComponentDocker /// Type of Component to instantiate /// Component cannot have a Constructor /// Avery Norris - public __Type Add<__Type>(string name = null, int priority = 0, Collection tags = null) where __Type : Component, new() { + public __Type Add<__Type>(string name = null, [ValueFitsRange] int priority = 0, Collection tags = null) where __Type : Component, new() { Component newComponent = new __Type(); newComponent.Name = name ??= typeof(__Type).Name; newComponent._tags = [..tags ??= []]; - newComponent._priority = priority; + newComponent.Priority = priority; InitiateComponent(newComponent); return (__Type)newComponent; } @@ -170,7 +170,7 @@ public abstract partial class ComponentDocker /// Destroys all Components from a given collection. /// /// - public void DestroyAll([ComponentNotNull, DockerOwns] Collection __Components) { for (var i = 0; i < __Components.Count; i++) Destroy(__Components[i]); } + public void DestroyAll([ComponentNotNull, DockerOwns] IReadOnlyList __Components) { for (var i = 0; i < __Components.Count; i++) Destroy(__Components[i]); } diff --git a/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.dgspec.json b/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.dgspec.json index 9bb9d23..93d3527 100644 --- a/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.dgspec.json +++ b/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.dgspec.json @@ -1,20 +1,20 @@ { "format": 1, "restore": { - "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": {} + "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": {} }, "projects": { - "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": { + "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", + "projectUniqueName": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectName": "AwperativeKernel", - "projectPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", - "packagesPath": "/home/avery/.nuget/packages/", - "outputPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/", + "projectPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", + "packagesPath": "/Users/averynorris/.nuget/packages/", + "outputPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/", "projectStyle": "PackageReference", "configFilePaths": [ - "/home/avery/.nuget/NuGet/NuGet.Config" + "/Users/averynorris/.nuget/NuGet/NuGet.Config" ], "originalTargetFrameworks": [ "net8.0" @@ -38,7 +38,7 @@ "auditLevel": "low", "auditMode": "direct" }, - "SdkAnalysisLevel": "9.0.300" + "SdkAnalysisLevel": "10.0.100" }, "frameworks": { "net8.0": { @@ -63,11 +63,11 @@ "downloadDependencies": [ { "name": "Microsoft.AspNetCore.App.Ref", - "version": "[8.0.24, 8.0.24]" + "version": "[8.0.23, 8.0.23]" }, { "name": "Microsoft.NETCore.App.Ref", - "version": "[8.0.24, 8.0.24]" + "version": "[8.0.23, 8.0.23]" } ], "frameworkReferences": { @@ -75,7 +75,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json" } } } diff --git a/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.g.props b/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.g.props index 08dec0c..25b6aa4 100644 --- a/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.g.props +++ b/AwperativeKernel/obj/AwperativeKernel.csproj.nuget.g.props @@ -4,12 +4,12 @@ True NuGet $(MSBuildThisFileDirectory)project.assets.json - /home/avery/.nuget/packages/ - /home/avery/.nuget/packages/ + /Users/averynorris/.nuget/packages/ + /Users/averynorris/.nuget/packages/ PackageReference - 6.14.0 + 7.0.0 - + \ No newline at end of file diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs index 7d064cd..7e5e8ec 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+89daba3278f3425069ad72c1e889e2d5c12ffebb")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4a9f3d4476aad85ea81cf5539e1cbe307a50bee5")] [assembly: System.Reflection.AssemblyProductAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyTitleAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache index 409b4e2..fa90c60 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache @@ -1 +1 @@ -fd20f709f0c09dd5820bb098e786f44ec3ff4e66593743fc97dd004440680728 +d26fbee268a2a19e12312d333a763a70899a64f6b3b49b30e13a2696cde111a2 diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.GeneratedMSBuildEditorConfig.editorconfig b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.GeneratedMSBuildEditorConfig.editorconfig index cbacfa1..cb335e2 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.GeneratedMSBuildEditorConfig.editorconfig +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.GeneratedMSBuildEditorConfig.editorconfig @@ -1,5 +1,7 @@ is_global = true build_property.TargetFramework = net8.0 +build_property.TargetFrameworkIdentifier = .NETCoreApp +build_property.TargetFrameworkVersion = v8.0 build_property.TargetPlatformMinVersion = build_property.UsingMicrosoftNETSdkWeb = build_property.ProjectTypeGuids = @@ -8,7 +10,7 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Awperative -build_property.ProjectDir = /home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/ +build_property.ProjectDir = /Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = build_property.EffectiveAnalysisLevelStyle = 8.0 diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.assets.cache b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.assets.cache index 3412d3519a672cb57dcb427ab0080be30f985d0a..8dcee15461c66139f60714b33e562a45a82897bf 100644 GIT binary patch literal 8640 zcmd5?UsK#v6sO8xp|k}p2&IZukSYlkSh4;^{&lBV8KBjNj$_!|g$&swlVpMY06ODC zeQ?GXpM3De@#FN(H@|`3K!0a*?{dgyyGe)Ll9{v1JvsND-@Q5eJ2&UDb$?@dprfPX zZvTIegL@snE{LCuwI_eA{r>mFlb@fC{;~brzfU{jfq4z>UoJfl8ufDk$@qp}Df&i9 z9J~HudU)!GvKfuAu14T^ugCC?p#4J{yg?-hMM?9^PH2?`Jx0&6L8Zb!vI-*5%1&Su zg`Ok6R78n}z7zG^mi>sisNat2_psWJLmZV5U&l95=oo}9`pvh7zddu0e%Ewy{%##_ zGl!hFTfx`N73b>=w4nmCSs<$L)0j)n(;1#!27YGFI6t?ZmziVE%NZ6nGaoaToR8bd z!wdrF;r8+`1Ht+C!tpM{$$2+on&^}E5Z%#ck`x1cUrCBVsUY6O#*kF~HI-j&Uy*I~ z`y(4QPIV7MiXmylb{3>oeO1cmroJ$(Ak_Bl;xVa5624n(4d-0o)Hz039CLwP@Zb4{_TPe~t%vzX$PD*xr z6A*LQ>IB4G@dVVGY`~ngHybd=?aBts<%`M&48n`c1`Nc7&ISx8&juG^_syX3-8Ye5 z#y9J1RTJVKx`>7On>8``+mLr4Q;=!MyO0@3>vrWRZ74vT6zLs=swqi;ZbRRST|0xq zNt2*Zl_d$vd(datd}iL&Ge~?_Pmm}^k|4bgeQS80f#Ez)U}#5`1ZEcc*1r`nU_1{H zFsjxh0n?z*@Zd7PH84m#PY@)k;v_-Rp>O9~1%t@*2tlOkP7=g9=-d0&!9emnLm;W@ zlLYb(^cU`}gw2EJA({tOgOcX)0rVFkPci5`PZ4yg5+y;Ohn~`jNU_Oxqsl*f@zLkC z1yr;a7Iazo3Q*f}$|tiYxdq)pE%!)Jv5Vf3w7}KoiLB{bfKWnPgb=zMgwTBm;R%iO zOOTHscOf4`4$cdy8=TAK71#x(xaLyr80v&7VI#e89BrM(g<{oF{=KJ%L<-5Xe=?`GQ=^sUU3%at+Rt zK$4z7u0sgq21H%=@W%DQ4^@u1S#PRt(Wq)_)tX8I*4lYdLak-8erQ&S zq0to>Rf$Oeqi&ITqiW1ly`y-+hPpQ_*i1jGKRf?OU({K8)`)6-HxrI5QdWYxsz(ls z(o41@ht3B$WRc~!9vPs+`5<5NY^z{}c4bu*Ek~GL>xLbO-fa=M_K`3Z&ZG)sCE1n6bcD zLA2sV5iYA^np$Rh^lF@1xL%h7#{yFI+_bkY=M6 zf#vL8m9wYPRMZ+en&~scHBOYHjqG}8DD<1G88k{`r$fXndSp8`L_(5@4RLA_4Y8E_A0k7uasU7T delta 1183 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 z Yzv*)w$={o8KmNZ--v1Z#f64;?4^9iJQ~&?~ literal 21504 zcmeHv33y!9mF9U%z4xk0RaTWO$qP0mTQ(J!CCe)Y%pyxRHh7o3g+(rvN^)VTp8Tq0 zBa9sx8z%viA)g@&=@8;C4O{=O+w=iPJex#ymH&bj9<^~A<^-%bV*nfSi>Cec^$bmUV12zN$2x!G0~e%cq92lE}!V!+?5z|`?9T(NT}Ht zy=4v22F;*D)6Hi~y}d+p5@D?k6`)v(+PV+V1ioYV64gpsS9&vn^_R~hfS~iopglJ; zEB{w{`Y4m|`RR2;o4GJX^avYb;^!Ws8qi+K5p_?j`%`#=$f>G#fUm20`O)KtvM5NYz;>idpQHDLg`D%X1+B z_AC2^Mv=kTh+5f)^&R0VT|3>3(ep;%u%B!6Vl<`2!BMO zsn;Jy7BF@F5Mv_iFf0!~%mM`46{tT+boG-nj5B3cV&bbPGNr0AI>5yfd(csPoai`*i;e5SNCp{g} z#ifVYqtqrP$#*fA zsx4s7Sm6}eJX5*TN<1uBQYB!)b$){*$cd&4Jwjxdhv9TnbkeC4eM8k4!DI`4W=ou4 zxUdH@lgKZTU^BSbYTOmFs=7I2hV7QeBwww9JoFW#B=}M%A$n%0Btn83IR@QZWX(|W z@f4xfz050Ps%x`o9+ChON{kF0HntW{B||cVVY)DeMJsJE7*o$^m~WfO+Xll;E2WI< zB~>(fckr`BRjHyTu9q@}DQTfhP+4K+7ooq>*Km>PLdXrsQ-{d=EQHM{^)N9hsUD}R z9!p%t_zvbZ8ZPJfa&DSXJ^ic-rRJF807IpOl4?l0q4}@{rXJ?_HY^{QD9YRhM+=A? zs|I0;QIzdSMiTy%xgN9ZyJ~dDRE%nhe;~Ky7a|7%nmP#&&NPw`;mfh;yO4wQ2Y<-Q zV7jf!I52;nJS>}UZJZUTJUwr^%G~eJI3^lQ@R)K?3fY3EmKi5^5mbP4YA{D#tQMj9 zBq1!-67U5q;vshl0DLNBcPWq(H^v7WS@bnLu|2Ac4HJ?buf}%C|GlxToHVxiJhtUf zXTIgGP+G|XA1RIJe6EAD+1JRx>}byIJXpgw5rz@A#Q6<(l@})F$6BxQn2Bu&{Aq19 zw_rK+^O8X+)FWcgA}^}s$pTc9a*iNVhg5=OxmY3C?asCnY=&-pqKL=Ru#hb z1M-a|Om1YRZXIL-Injkdz?f8>cV4I#J(yArCz8qkEBb#U2bRCP)RmYi6tQf3t$1L|^CAiLx*$aaf2;v;9z>T|j z4-qplkshXCrD^b7D@*$HrLhN67~BmD~XL~DOEN4+bkG6gk3gb9%~`i$ra>14-Yq%Rw`MU zN|^FvIIdL>Y2}Zha4u^|gwd9p{+LQL-BDhqmmb$XwvoCe!YCn^wjhSi-fTwH$ zNUbgIl^Ad&RTnps8&Il4c8ZxvtauiIv=OA1S6-MBH_kL5dCYV-fk4k2Q`K5n8VJ}! z^WhT>iCw23P~um-eBszwy;LSKo3X;N-=M&xbu!LVi*!e^`Fmjm*lP<|N_nA7B6|IG zQkR^GY&UtHzO}IY5u9DjGu8;i6gETeiWAW=tc*S%5x`CqfnLwb~p7R+dxdLKi_fNTz^PU^Y64XnOQMIaOM*@mii^sTV9VFWsod&)6(b#!X>tk9 zsF?gXa9%6JnQ;WuQ)ZDoS2Nj4f;Gh_{1he~c0E!r&lyLMX9Sh!j3d}%2r5spjYUIv zBKN~K$$m(Kfsl-+kzVkCg{24E?LqhR?V8jY?=dJ>T5r9CDW3Kg^0P$M3ZX|N}lR=LHbsEeC)Ymg&WZq4rYh3H!!73>x^|6w89>AJT-|_m{Pt}d&ODY=7`@W zQPt)>r8azdk&^s~wtPm8aYXP&O;7gnV5F{oQe75IJ_G9N+Cp?c)+wlk9EJ7GB5wu8 zn#3Y!5hXK_B?4el5Ny5FM zx^OHUbCP*3*2HQWZ<{YSRI$)$zPn4+MX+(SV-a^445ulDtx3$DdYWRGVZ2?e=#4F5 zG#0&Z2dp9Nz^e;;J;X#k7?J~3t60B2$iIRxWz z$YI;SHAzHlDp>^XJqP~eh)9?g4-lSMLSLA48Owg;7+G@yux$;|bF+#`C0M3{hg96S4|7 zpn9H_1TjVPlAxxr*^6sV5|JA6UW1seJj2VBf0{(WCE5g@=p@RtNtF3a;cyR)aRe0* z^qei9JC(#@56!OEQ_bN+Smr@aID@B25% zpZ*TyzyB@duSU+E2Iu&fiM&x5Pr&6O)=P6iYXRYHjUhksg}Z;H$g!!@a@cnc`_FU@ z@L>OGNFjL(I>n85LwVb(u3m(m(r|l=^I2=*R&b4-1gOYeV2mJ%&BWmf^$28ZjHg|t zezqY?afNV&afr3l522ZvyltGYa$TZahaV@pu2`-4zdT^;MF*C(wzV#8Te|oHAP9WS zMM_}O%taud#B&vvt+`!AFP9%EFvqv%60Hn?w!Mq!UFvt9xtDKWj~yP>0`GKCw|da+ zWoCSIgyzo1)8Qb}1^q!=$_FwHMWkkeXiDIVnLnn~$_XQaC z3p^%}guX(`-x3K=n=Ik8rU5t;axBW5Q=Jf2 z^+&pawfp_h%Ay#wwP*|UZ>9ax`@1mS2KrLyoL~bzA#eoRvd{L2>o_it;->7Hng{J# zl=)vR&2%2Lw<9*DNnJX~SO|NCqew~T+l)o1LpX1WJZRsB^!IM5yV2shTDpofaNcY_ zXn!6u1_j#ytQOdQGMZ}XKcV;Sh_ZrUcS4`-*lQiAs+&clWIzh5xgGnA8wER0uml|e z{YG62SoA|J0Qhag3EoJ-P!J1GK0Z4g?yg%VA2Zz5?*$`h|dk}*fHmtpbIQ5*a=6EK8o3# z^RX#W4cMsSq)(VG#&Nq}rKflc~SVLfK3|&J5HAiHlLFOq!emyMO~X<$LWY*SNU~64&RQtKELk2 z2==(DqXzS%sQZqOtpeuI(>^xG{6ru~KPzLkh`HB%Y?*U=AWW-}35kwR`%Tb72HGju z31Ii4?mdFN9DJx|CVs8BLt)yo$hpA&POw+CWQ_&vWrYQQ3axAC*M8mYCfCV@E4`{w z_=H|V3!Aw=#{M!8q1A#Nlis7$C)mr{H}F$zly3AnUkH9V5T%C%JK=l?V~^5PK4wQA z1?Nu%J4WY3A4c8peC(g$qgq-wkNZ18Piape+HUu;_ga4o>``n@x$eEzj}Ui%=VRZt zp9@T-AWsX_ecS#KA}t}ne!Mm*ZeXtlYZ@EO*Q`i0 zqOLM_i`7OMAN!nh%34Y{`q($jer-A3QO0huR?w$?>|5q3>jL_^k8QX5wTtMPGIoo# zivGKgU1y!LE~PU*7KYaC)X=7M3EQ_=t7*QEHQ1-DHFT+u-5u=5s<^X^-GUp-0U!I% z!Bf_iH0EPp&^~Hyq~^s+=7ZX&tgZC4V9J6!=q15;Zd$a1{!wu{*PCCkcF=DHJLMcT z{|eZfe%(;$L2D<~E@7Fcoa;l60c#ZOgU<2L-vT>Vun#%USkG9yXueheWwfc3> zY0p@@X}Mqbn)WQP%Tyh5&kNSO=^-Cm1?(#NM;~i7U$L&H#8Tf%<}a*kXjK{O*RG{K zJ~ktAlhs4BmMhNRIgG6oOpU#VXa(1)vG>qa!5*joigmk(iayq2|Bcy0Py5)9jqjR! zXxaJP?s0krSeot-Ol6y1y0?tgQZId7Fx6j%o)k>=m!YQ>CvK46urgG?l4UB+EHw$H zIJ2}suw!&NozSziyo$4*+N(JG=?b4SL%+59XKXqZZ@g%)~9YIX{O|X;hqkZO; zw2;D%hc`l|8)LLzyE}4%Mzz}_AEs3zVHH;UF>wA;f0W*@HQP_1%y1Rm9eEP(a&Rx5 z!qX{~{aQ;Ts&zu5AGQObkT%TXFII`!kC&v6;capCEcw#Q{$eIlWoJ`?${c2aiECuJ9XQu5Os zXnUu=Uwba{F?|Cp{8jzWVDl#d+2)TD@7_KwJbytSF@L5%syz|;XTUq0C+JD-VdMAu z58#nnls7qhv}d)x&>2Xx!=~}F_7O8?{7Sn85`M3(h)y#!oo&u`n}^z~BPnA#+FJC0 zSmq&Llh&H6jK^Vt6UL+3m!z-TLys9p>3-{5#&>)RaI5c#9gfmp>(3bP(taIz-ndaL z5Y&$aUp0byBJu{{tM(rNPiU6;G#xRX)MNUc#uN0s-`9+q<>pan-UV1wbB#G&=LlIS z-r24F4rjgxz-i%(#F5#g8hB{N)rQ9y%w3O3QJ}Tv-Qr_b* z|Cqpg1U@2gPgv*z9})PHK&oMSLf~Zr_XykqJA9g+hA00IE!Qs5wrV@H1KJ_&cJ1TZ z=d~YbFKGXu1@)==QhkH|1^t)$xyEASVq>GR-#B1=(C9NCFrPMgH8Joe8|SY8&L}o= z7*RT?+qkod+JGDIvKG;2LbZUK!qWh6u4w{%E<7Lb&YDGlFAC*hp-hc%tF87@z%LmL zZ#K^d+#gy6_`c8@z@J;20AJTO*{Xj&dm8c$KpzvD=*X=$U=aUw=oJQx;$}d{NoES* zbmUhZZ;sRf&c&^fj>Awuxn~U zc@JdZWDKZd2Q&}m44^?vz;7VCo(r8;gL5wKvQ{8}^dUEYm3~Ewv^Cmo+Gn)Kv_EJq zdcQuTpVYspKc)XzUu$eL-eWvvG?^{tN%I@#i{`7QImYWq_2)rY0n1$Z^M?6PSg9w{ z_{aQ-w3TP!s};TgGy9+4nd&}fd>@}eujhxHQD?CGg~Cc@lN`&z=5r$bY*2bHD#A_|Jp>^RWLsif4*W;jG2q z@8SD9+{XWocGCN>=Dbf!p*)Od3%+-v{FmVSGQKHVX|&+`O?>af_eGj!{+u?MzeOGH z(BLfx5#jhV#6eu*1y6i!eEDAxU%YpVF^c6@U6SeP>C6>|2h*b+gXuzH$>N?iTGg7# z6kYF<-kzRif=}XF!d#bJ(9^SY8J9ZTd@-HN7r2F@aNUyST-Q}hdqu8LXo2IdZ-JX>Sw=%tNa-x_u*q*-Pm14(b{$6thFE>o?P? zo}LVpar4=Hv2e*2+K?XV?Mq`C!y6^Git2^d%V8-mm!S>rK&jYXC}h223EQ0C;HLYi zy|0hf)dG>|R!tS^Y|ffdGKtI8FZ?Ca@SozCpT-TK;GcCe3Dp^vq>!R)5=PU7~O)b)jJBl$c;Om5&y+mbHsom|N-5F2#5nSEJrGDA;+W27*t0^zbTTilBuRDGLv z=F$Usw@}Pw3auD&W?#3L&Sa^>%chIj_4z_Eod=3$?9dMUZ3=Z}dq)P~oGkV93?YEh z16jC|ZMrR;m+}F3A4rt|r1d;a+ya}o)Ni$u%8@~^Mlm;(?H(P@u1n|pz>c07TkE+) zK80;eYyf`xqrl84xIo!;Y=0?K`9r)|jYDi_&O?B^-l#O_>B)1u&H3%aeHi&#{Cy5% z+p_t-tfw%)FJDLLLZ%*d47!D^UlhBk^0w@dd!R)3XSu3D@2b$#vvnlvjh2uCJB@aF zxng!h4yB$R9(&0KRAhvQ$iXB-l7e)P3B)EYc@7@Q6>}Jfa@RoCTkW|A#RKp%$S{T~ zsOg}}zEwS$9N_9}FXG3e-VyMZOWWDuWy}}Po}Eam>atSBy$$saj&|pY)h)Wy9>yhR zKInS;CiAn?cVs=zR+B5&=lfl6D9srxJ@}Sfh>`x>z=$V&6(QTQ{axw)Y;klOvQ42v zSGEx5ZP~%}^-`*;FO6i2hdh-jRvMNnSU@^ITB+~@N9e^|Z*DMGtg2l-s=TrzJvfr3 zZf_JpqRPrcs(e6d+Yb&SwHI>-va}H)Mk>PC_n4l|n17^m^u;ll(Okn~t*GO-M z7pl#;mFes2P7nAExzy8B1mxf<=OjP%`5CG-)%;Pk`gTU{;#k_5_Bf4^(zS$jyXwbB zOe79cW{~VrJv}+WRZmaBS&t3b`~a%T$)PG^Y)pHFz3IV{N>w$jn|rUrtmgDoRqZEB zMXea`%B+_M8=J6waL_jfmz4Fn)R6|5*rK%$M2<*|E}I@wR>K12>m$jjoSiuh!YsV# z@ct1zDY@CXzseQM$?uwr=()mtDAJT=J$EF~Y9hTDO;cUM9%GRB^e4l#|o@+(i4uJ#y zmjR}|Y`5#H$`cU9q28<~#Yt^DvxR*{y!+yJj^wr<-MYoSSx>CTbE0f9(0I|ENUK`; z)v8x92~{=)vIoH(gFCRs^IXp#yDFEKBqaTkCe@)+szxruzM<%^U(C#=JCNp5E3X)U z^6*DfwS<<$mL>_dI9bmf?#g-xa+z#lVl@vDVdRzTWp-c=%lca2c;PTBh>c{CP(^=r z7c-U0;N``l0J}<(P@I_BOu^iSG{lc`CpKn9bW)&Al0+sDB@M4RfE`x52c8bz0Ss2~ zo*pFY0sH{0^c_`5K0&hu% zW!dh`_NPY%i!7lWDQe7BC=Yxf+gD9d{f(n!O3|mUQ}M@OJ8PBHqM*_1iv-#+09rbZpXzdb?wDVX-H4m>oLpA%Y>XR z(4l&k!t=`PD9trFa*@q&3%PGb213%Eb2kD0Wl+=8)Xs9tm|U)?8kn&vM{1 z#zWuY<*@1k;fz&A)E=^o_Vf&w*wzdUgPF$O>>wAfg$@JeaiN^Yg=Ye<(WLPjLjo{C zTL8UsO;PHYCnp?vv}24pyKsHM60#_}Xp_LT$VAx-LEVDaC$iE5bM}EJfmTY+2&6KV z`{8FN=ows+Wkp^FEm2FPP!ix|Ne59nSk|;ur^car%zviP`O>NbIT zaNNjgXElc!0gt?5H}=>8v}4O3gqEyf0T#$%98Bv6oU9owpG;$44vJ=Jxp1mPLlHG% zGrL<#wDp~|?nCdaYo74)IJBr}T8X8SWbMj#K2C0fH5;;7>SRr5?qu3TPtZkcAtmSg zj-!rau_Ut(HSD2`@99z04TGQcZo>OwttcNv+kU)r)(#E2@$3R@$8!hZ20VA-xed=X zfOrN%xVRy^1(N2FcJ3TtiAn!h#+A5C((2DvO95`J*&Cqi0MRw=(1BxBMP$y8g17SF z#CeLmCF4;uj>pC^m6jN9!Wb)anu42rI<>4pFWkcjU=b2{E}hK>1-4UT53V~i&~|*5 zq11ROSw!2}WHf061wKFZgmu>kFU|9hOOx)Y1%oK^rVM*fYJK+2n)8g z`0k*sqXAnDH}lbGl$oO;47EN!_5+A9QLkGzbev6rS`BaWL7&;A&&I3y_(Oh2N5?vP zwvAbF$6SKq+CwN2= zeRYI58T%QG0kNZaOhG0>p$>rsGP<#iC`N&|YR6uNOQKQydNM1@!B*-BI$|(m|0`<2 zD+oPq0dIhJ7MOK3frFyZf#avyfwK_p&D`G_;OzTl{wSLD`dZB>1yX4Ma5Q*U^3>oU zZWiOmn-Lm}!++FfPni{OcjE23KVOv5o%q}d1j-VQ2IB4bg$R^?2(gwYWiagaE* zGRHw?0Zf50m+F|GK~=|Kbq9`U2IBvcQ>dSX8=pb18NKR;q)Uxw2h z2l+~K*fAVmm?`ic)N;OfY0rCN&x9^?e*5(s(y3iPxyZ2MwYsJ2RurXn-Eu5(X0(($ zYJip}HxoIqz?$GPJDs0w^r$eF(;Qfm__nbMVl+;VwQv&>6c?Lqj^B;2iFzukQ^Fi@ z#+xM*$D4zaIXG>Jn`@a#vWvww!TYgooI*GQ#F6W)HjO(817$A=Nvc>{+=+ruk0O&o zssy1E1uG~D0X2>g#yn@L6u=uP@d{x|xkk0I(W73Ai48rNGMmCeQDrznkD93BtOns+ z)YOnzJN!VV;Ty%TMm)>ZJkt?HCTz+$erSaNDVmtN3Cu<R z;y5K0P!JVRr91p17=LE-``g`m!%i!hwEi= zY+LBxVO@M+Wh*Sz9i3Xf)b)QVy!P;n-+r8BEZXZ1Wf!G!E*@Qkdt<(-EG(*wzpALNCMOfz-s={L zX%^+PMHp}rN9%B3FLkYJU$T4!`6|3pQUSxf_OBZTKYq*Aw>CfbKabTI`zkum;&P&b zSC^(#@e$#=#p@g#+=#mX8Y*Pq_pDrqN{ct=LC8dNRLlAgUgmeJJ%D^r>7w=cjeHaE^?+;D|8l=;c>dY6IpFYYW!}9I%*~;kJOb>yuB=RM>pXu7!8+4d7wb8dkvkUYQlegAp+aAxlJ&N)-g%$zwhckc~Niw&g+MexrA zC^KhXdv8Wv(mqG!D7N{^Yo4c`Z2NukWncJga)XV*40Y8j0aODd0a^*<0VD=O9)F;YKwd!DDkC7Qk1dcC$QTI!Xf_$H zwlbKIDq;p#SjG*YBp|3Rkpm5ZoN_^8ImDYFeg^TM5W7(n38ZMEg?Ku|$05E9u?0;L zDNU1M5Enwc4B`zC--7rF#BO>N>8(eT5fGO{ydL5`5L<{S;wYj?7Q`BeDH84q#Y6mo zicOx%dSWhnY^svf(6Kui4%$Sxpx4+ByT6xGv! z3=G# zmJoZO6re#s)j;cjE&<)_ZAc_RhQtiW8ps~V38(^SGSDobg+Si`tp?fzv=it6&=H`M zK<9w20@VY(2hs~RB#A(af{jRZurb*Pv;$~A&~HG00DS@y_c11>K&^pnfd&8-0F48x z0-B0(h%s3Lv=ZnT&>5ghKsSNz13d$J9b!WKWhP`L&{ZHws0ryAYD)5e#)B33|Krb? zEDALyE13Eilkd3rR47ICV4k1_0eb@xkCy{B1wxE7bQ6d50HXx{wT6htD+K8xNZ-m~ zec;gN_?>~D$J+$yVn{#CVFTbd;P^YjJ?PKRuyGS?D!_x8JXn6LVKR^zq)WK`as(Ld zV{ae}NH^rt(RN!2Ft&lm@oQ!Hs$n*?eh>|)P*PDR)Tad0md~Hu{oq; z+oeF>(7P4_exD}TSAbE!eoe5y0GmO24`>gcUwgnkp*1`PcYy>5a4W!p0*vkHCBROA zdkZj@AJhZ~gEsj5yFq#%0Y>={0qzc1Ccs#Jr~sq>!vq-X8!o_@9wERuULpZoa{5CY z1=xzi=yOC1uod7K0mk{nV+yX(=)^*LYfiqB!)*Zfhie>Pagc7!rH|sU4d7TVJs#5A za_N3>FF}C20!|cQ)OS)7oGif6kdC+=iqb_W^;@=~rmZ0~RZuIF$^NRNl>ksR&>xG!Aiao7oPDO_WI86e+Tke^(Dy#I9>jfO{1{kkLbGSR;LvY;_C=>Wy0plOmKTCjn!)?Uw zkRAqUSRP^zz}Oxv53wiUC2&2K!(M<_!L^#h-hhw6HI|nR{62v356e>sum|8A0mk%P z0mk$^0mgKt0ONQXA;7Hx=L;~V7YHz>7YZ<@7YVQdlvj_HKs&W1D%5V*~ZK6Vl_k_Jj&BpS}yy z69nlz=F@jWdZHkm$9(!8@IRBdbS!VL0K+j7xeoQ`)3H4_1lSMoEx^f~Jhtaf6HFk# zD7Y^ncF-yRbd7cn_ihs)6fykz3_m-^C}PQUC>x^Z#r8MN-N*c4r^4`HKImoPPA{w3 z^#Qm;F=Y{Ql}WwF+_?y$K6778j>5Gems?}1n90q6Ni}LAm2Dj=!jQ?wh~YH-S56}) zPh*C&6~}4Dw1N#&p(cDA*>ii`-tQA3fn!MK`I$)ewH+UJv0B_j{BcnJ1FcOe%!EJ*t`OdM1?W;eD;1 z0hChBgi?{1jQ6aDaK9(f7ZZ_}6v6$5EF(U!uCBwnClD(4Fj~ybv1?obIG@d#biuSh$U)33t?DrHH0&QrLDyzxlag$nGi~dqE7~ModMUQ z`qaU7Qb-+Kj|(Bz65=6~T4OJSSc}O;Sq2konXsC@V=E>H&}_m+GR>)XaL?hx3shP1 z0*xn$mltMc%ZXx?qNpT6QIe<1CfSP2(%fXVDo0tMU=w&yq$o?vQWPnOh6&Tlixs2< z1GS>0R9)0hUQh}*hffHNgg=Ks>~6PR!~5)O4Vv8F-%oh ztSW+wa8*{mLQNWQOp&HUUX-OsmaFB3iV{dFk*jkRB^t~=SCQSos3AE@wWcv64aws3 z1YTvKA_7~cff{N`3rd*UHVPAHP(x0Qf<#qXQe0ZX=nDd~b1q-)v#<)CG_|bN#D$xz z|Hw?~bKKyf#jG?^m$Z`p_E3rY-1Rp`hfj|*^Im&k=SBTzA9tUdRvEkCdSqtR!MLlE zsD$xFhC|}FTt97oU_^=Oy42yN|CwDAv1^}n{>TTZhwp9*S*CZQRYI*y9VRxKxjUYO ztqGx3F>5P5e@coezfJV}Y7}aXv3!(5U0$S8tCbqlRAsh84c#&V)T=R`bEA1TVvOQzxIf>Y`_15eRQ$@}4!=8tc;>qf8AoTX4p=1$Q>hh=6=U;-Tw3vJf?T%fc1j05eA`;Gp8BEe zRsNMW$=@Gc`fKXisO1YjS-pC^=HlYFUhO}tib5SRx>%(tRV$ih^;X*d*B3qqwkD8I z(#P-WLiW>Z-s(j53te9OzolbBuHT$$*CeY1d67ICD}~4w>r~^>%Id zzSq{}{CVx{?D~7XRvca%^V7?7*6s3+=!c_ukT9W8ITbT1=1C1dxL8MD3B2Lo?zVf! zU5{NKEEzr^;+D75AoIitlc)TeZ3y$an6U^3X?d!$&*V>6T$Yl3%5HvPd!LzE94@rj zUHiso%TGT%Iv<`J^x)vu9q-5XkR-tz$WzF(jT*M z-HQ%>be6wb{(SrLiTNw8T`Rs>v)k?b{cWD2P`O57fI$=Cp_Q4^)7GzEe4Kcr^~C;z zSDQ?@_HOBr*uw0!rIBaW+@E#z*!wm5j5U-np|CBLiz}<8)1KVen`#$oKl@gnlad#* zMVBiEY`gr|Io-q9r4yzuIy+MjjG?$lQPR`h)7?EWA|1z#thm^7swij_Cdf1z zMPX(^`Dc^Xj2lXoS1M*y-l+Up>StJIl|aeHtFND&Ham0S6rUAeimFJ2uE2`IS#1`WTv#mBZu~7jsJf?{x4XBWzn8bWm#1HMUtd3OKTmI8zW~1; zzTS#Vg=c`Lw~sti(Ze$!JIBu}TjB5L=^2no3gkt(r7%26SSO-Um8!E8ZnzM+WvNPw zN{E*qXPn*gl||Vkyu3(WsDzcQpgdk#l&{E+S7xf^>T;qg2HUS312z#V$Si1X#Ra7r zQVa$sN2M+#vZC^^;!>i9Okt5|sJIu@+uhp@?CmIJ7OY_ZFD+=y)EgdHXDf1)uyUrS z%EBUC!y`ibM!7<#BlR5aiBVWmYJ@B~887{Ydk#-Z9UcWY(j!vwj(@W|J(}Hte40pc zS$h3*f>+BD-v1=wJ^UXfyj#x7=by6j`7A54dPssYORdtVa!TC8((>f$V)txt6bSWV z%A5~G3&(WlYKph5Pl?`ty8fnb=E6sf?ERFQQh5Q)VP%#(&LU25i{H2tL`o4_HOsA} z)-G(#{`b3Hyvp!zS&%KvQ!Y7)g?SvgbHVCMIVATF}ms6wLZC}?^FjbMO)Rd^pIkCw{Y$uUwc)qYc@${n; zbE9`>t4yDMsJmCF$x^8cl$jjc+d=j(u_;$NSpMNs{e4K~jQ*{ye~I~Cq(As3R06-DWB?y}NsrHW%+e|*au+!3|PuNtsa zWSg|)4lTVcQ|;ndanS(Rfn&~%+A{}h@Wt^n7gvbKh3`J}$ByN5AB!898`N%Da%Mg@ z=~!9C5A(dmp@&W-ZCmwhWevv}rIr`xDYJOJx#Xw6A=)HzdZNXr4CSVTearl}yzQ9Z ziQ|qbf;wYTYidK_UiTddCLymt2kyMks6TH z=vRXR{}U4b<&9yxS8Kwaa01DkE#R{E7&P-Zk(!YiCo=oI=`uP_d#G;D{GBg<;<%yT zvsGni5bA%w$oShlfE7s9-U&1ca}KRux@YSA`5beYs-OVYa`wrcVdWkfX z{xS0Bw6KjU^uP01e(*sHvh2(YIOsSFcf1c>UFQ-Dx2QwCBElxuN|v-B5K~xKS|ZOZ z;K!zFslzOiL6MG5mhtVAwj^m!Ot|yHF~PhA(L_~I6l`GBU@6#Q=Q&#*zB8ND>I1=%$4T$J(xbOm(6~`lH4X8it_DkQRE$6{D+H(7DW)%Fgc*&?^gC0cf4e}lQApJkDTb5yV zQ0O6L%QWRhyy9-Wh`f*Ge(I?CSWYfRRJp6ZdcN#ImzMKrW-kp+4L^vg8+yZHq1`-L z;9f?Us$j4Qv9dWyvC+i#uq*V@o&`y&RPyx%vgA%~(I zWo{{Miy9{Do?AZ0vCf_!kD7egR~52r_*vt)t8cz<6w#;}Mpft18#Azm2Wx}3jd`#< zW?TP~s{yYQQX7~XEMCadnzhJjDmF+zke`$^@7#qu>5~HMI8N-h&y9xS$M2q!YMRWr z)JC^>ZCZHEoE>kTr+Dub3ZPV)q9kH;iJ}PIEPl+~ox7P?4wnzA7CqR#B4O9E2kXv! zIdG#;mhEME(eayDt-rlS{jS$f8~2s_yx^A;-r4Y+N_lRP3ijz>FVRS-<*=3HbZdX3 z<6TtLne^?`mVUI4*yp};f!E6{Z4098Mu06bGtp-miv5-BnLTx9=h(_SCTeQW;KeP8 zHI$ylIC)&b*>Ap@MC#!;DpxklQ}4Z=xO(TIkvE*ioM|D4Nbm|dUzzb@*(%TnPd~yc z>uc4;94*mhBkDJ{P+IrPk%AmJ84E_{ue`k`hlMmpOp#1xB{}Ow%s`B z8VWj-z^~qy{v5eQ_2kAbS#3R6D$Dfv#f+cPtb2dB_3HGZ?y@DnYD!1zUo7FPrj|2n zD$Be@yLKnGBWhh-*tqV|F%|lqjMm+V@Myx^%$O8!Ghd2*7g}}ULR?lx(&8YK^3WBJ zF7k5hF2OyOb@sXHM?9Z19}D|l-MOqxl@MP8i55wGeR zY;fU&*=GX(a*N$rd`({er^5!W7+xY>&UfeV2cf61h&TQ2k6Rs_6SB2-nbS*)$l;to z6#UK<*Av!6!Fh-RJvqKpJG8NQhQf(c#mY@~XQQk72Gospa9h`+Fsr|rPBUJj$gQ;& zx|sVB@jEWJG1%Vb+Yv2_G_x%0kmI{1gwFi+H_bQ~?@UfQCJBvLF&w0! zIdTtGt4a!#oMuiR-Z+IRSW`3Y@({n6B^zp~O$+DTYFU)6tn1#eIVkfq?c?drnPo}a z>VKJVaP$7jEz96+=TcblAM%w;QGCJS9|nFgV_wvf%jahqOnqtDviKlnG3LNk_rlD~ z)hO$n*XQQ-{Ubvw|2VWYf9+pg8)extR&OC(eT;-&>R@(HRX z%R+0ySW;C1SCDzSF*C;QKi=s7P3WBPWv4Gq8^5#cw-z&C%ly{Lm6-#Baz3o;^=eYc zhC81w7!_a5ZBZm#4O8~U5WSuMccGH+Wu-_RQR@c?H;JsoonAH z8Usr!9`>cdaWHJ}IR(8OKlwFIsk5&q_oxr=7`n!$c%o0I-_AA4B`6Bv{5U~gT&&1O zZS&J(lZ%8|qITFMIA+`Z9J_sV=i-AQt&AHblalW)VF#6Fja-&@O%MDNVJx6k%O-4&q}o}z=V&X3Bx$f`;#C~(%d z6QmjH_?fHX!)AZizOPUur4$aE1wQr>@AMfcL+%%-E~(ap957y@nrqOrA1A{$oNGv* zVP4CH$Vr_+8pBxYy}3sBrppLz(Q$%l5m+moFPD$d=)b)igMK^T!%r!LFNIF>CHR z^UcvZyX9XL7j?MMM5M_o{G*NKG?cpXQ^m`3>3ic2zbmO|`(zF8{b02c!<7G7@3ama2dWP%3an{lDGHoETVzPM$H>b7J&njp?oa zt)HwG$|*{4uZI&H7o$c;*5F&46)J5@2VRH13~Fh|K}Vg4J|SQ*(qaZ1#_8uB*i z@KAe!M4AG&luCFkz)r)TJMDjpqiX5BF0N87B_ z{NHZYVcXXa2s^F2vpR86t10`x_}Q8_OxTxc`0S~nVm5tGF%HWm)5p`l3_wy3ykr@!b8GrvSW^W6$>s z(e3}3u;22+rlHX@*99qiZWbGHWh7B8NMga1U2%igBqDYH-rn<+WJJ@czNm_8c3Ru*TEx)7Led)41XU(rjsO{z}&& zf846PUQ4eh$yV(&U-$M!4DZAW_#@y{kn7m$h2BfBP0K9ilTIuLq8+xz4-C zO@(6OnS%-8ET7ss{T&u7x%m6-^Ec*1ewo&LX{CHSza?p!L%cFKucS4d3QXTj*BW(S+!fwADs^yK1pwi9!kM>Vj?88o-Fw3&_yg3`9 zcP)OFu*j+tzoZL9@jReem55~;{=U+Dl-$g z`pU|xcQH~Q#?Dhpe-GK@AG-If+m!egq*!_O=^5|hKaPE|4#j`<-@Il++=#@*U!?ZB z(XWmb2AMhmIq%;>u_NH+y9mcdt4sIRVDxNc_tU|h~WM6Xm50BwaO>$v7_phqB|B!kUvSzuRw@OdS3qW}d~sK4jG2wj~eoNW365RdfEBDl1G1swCW#69~m3-=$?CX7tkGxLW z@@MmU!8?oaK!dlCA>kfxiB?2@JZ8FGy~rzWUhauCXXED8Hj#^0;UdFztyS%c3M|W} z^{tqU+ZLfaYi8Rzo|$9XL?)59$*kr!$|iomm3he^yVw^s?ZTEi{-&4e6wIgS+X>-sQJZS2jiOp=ERJqTC03vN8KtQFhx5eaJU;#-YKCZFkH#SXKJd&4h0f z%%2YO>bmM*a}hXwTbKNO0-Ig>w<@!QxXG4vm^gXk<@NlojqkG08_>)c&3aII5p&rU zG~Bf36K%}wO<|5x#cuprM9aAhDCE7u{6W{XX#F2PUQq9z^d@Y(d0cVppqy4*BN}|0 zmbNF-kJ{VV19JwN{uZ_0E@{2dBhjqmua-5H4J(i<3wf;_IT2iiLc_++&0Vm`FLu=# z&zzl~Yz>ZOBE~mwVKO|27 z*IdFHj)bz7d)-5EJKLHmyQ+VPu6f(#R*>hcBmXY0;XQnF+3W=<-oD@4m)A>^WA}C# zaH7kze17OPC@oCb26ohTylndm38Bfr6`LpCwVV?+{pB~d^bM0a|5|cHQI;yZ(NA9P zPgi5{T?b5*%r6}fTcJF7BxL9@)xYL}Pi)dOe7E0k{S!=6c;86d>TTdDyU?9)cduNr z-{auFX3=cyja+i>Am(CIR{bJSJ2-lU-ss1cdo1t%Yc2!)JOjeufLxga55(aoKfDoG ze~wudYd5Tkm5Xa$KV^Ic@UKa_sXozLpCUhV4Kzd-Pu4u@1v_ zB<-1R@_STCWV04CLqNg4(9JclCTJMroH-5NaxCD(h^Q$uE|qT1b>tmrZe3uVNATP^ zsfl^x8MU|=PMUi#r)$*O)RiCS#C;#zP+@i_@!1jao7FFv6S)r5gIP~A%|fP>|K28I zQpata3?A*eHw>vTc;=G~2OWG1OHPeDgc|Y=`EtmkK~KY1EFHLS5IM>lRcA?SQZPZ$j2x$l6XE4!UN{d9QkV%EmM1TQ zAGYzzY+DO;Hn$@yH!Kd{Zl5b|CdVrBryKWAV=*XgAujL`+{@BVqCXX(xLd@(|ac>HNBSG~IX*?(cf@>^X>`Qbly z@%y(0oqzK2DQ_m2U%aN57B`$M>unoz6VF>wv8c$u8F z_cy!eTvd=!a7sD;z@wv>t=Wzp7rfqfO_()k&b0`$KX|i(-0c49vklMaqEl1xxB1oP zzvkJPKS^5e->$PPu5YEFjL-csw%hJ3Tr>j<+gq5p>X={0*tKnzAN}P}F0XzpYykYi z5**lu!O z`dChN@D2X7ixc8&*f0+3AC~`tM^aY||C2Yu?QYzHKlh5qCYSLKu^BP^GGKcGM z=GTj?!j`nH{Q)`Y#oM+UiC)C$vUkksyyfAfcz6|ovhGijPIRpTUP;h{_Zy-O48)>< zkz}w@dq{=1qG@XpKi& z8h7r;6&<)H36lheIEK`w+0>@5sZBc_Xk%;2Ubl3aZYc#s1L*;YDBVU%cZv|E-hNPT zC#W}64eK3?_3rV1QE#rW`O9?kp|JT-*nB8#J`}c!(tQWVJMaz%)i;PDUFml4x(1e& zie-6>2OWig3he$(M~=V{*`TA2Y{Tl7>FS`YIw-3S%Bq91ex!8IiIc95bku|5N}#y5 zbUS^vIQafZXHk+daS*YZ7GW-(kWV`;h9Vtkien5Gk&dFUMn;xrr5{CF(=HrOHxYcU zrGF!jj|lTQ0DWmln?X})VnpYTaW`O)w-Z{h$S^uVEN#dL%A z^fK*fiqc-EwD7_Xqbr>~=+lL!-~}-3=X4QC5xKcHDBcNmuJeOe?_k2D@DoNv1&acF ziG!HUoMlP`CK#P5{OClc9*s<(Cem7$*9v17T`{~30>8Pl@nj=EjPxDM?OK>G4Zm`- z;`t*nw96J;a^vw>o5mj<3Vs^dmYZ~2@4>vIwh?NZ6}8QQ+U8{sRimV)@cStu zVmjY|M4|~WH-J9uK-2Jw5WGa_3U8{wcMRN^$ic_FBTDntL?-etnicVxrYc4+&y z1m1;$Z#~fEG;PMb-4yOd!Q2Xf_tn96KqiI>-8@jg1NGs9LbQY{Gn^(p=^zlmtkn3q zAv03~ANgUjf{8!}F+w9isAGc=RMdy=#R=unq_wD>De)Bu1v51m)rkTFC&C8#n?r9> zqn#=E4pIbsLIkR54KGR&(#qIY4~!DpJj$dac6<`N`=tl3fJKW)cRB!G&=L_T8DL0E zL@w~H6uR7q>PqF{0HY%?1G9EgdmQ)eA@A;V1S4!gOGLzkE@$|~lq+&0uT>Wx84MW8 zIS^F<11f-qR>PF^7E9m_G5l0Z4n=I~P7-Jzq(EsD=~iA2nidfoBY3+T?wC=wR0O5H zLu>caS}mJ#2T2di-`3O@qYjoH7}?t}k+Z!&lnJ9R*nl_{dEpyqkhP7qz5(f8YRL~X zfz4*@^p0H63R7o$M~n=dI<>*RcLjqdA);3BKDH%(S|S<~jeP7dY8Ti6-zxWMZw(*l z5y7`H24c`&HJs@I3b^SuI2@V0DHxIba75ujPUao3fX*}I3 zq&ISP?B;3?nxfocaJ3~O{1}Y4xhdT6@S)&S0V1r@Fl4mwX=e{jrFufQw51~$?Y5;Q z@V%0TZn0;q1egM%kqPDmp(4E~Vncf|y}}Hybg(6EGzB00pv!&X z4mH#Rjcgyr$ihp|6zNQRSrKO%-hyU&Qg3Xc2;P8BW2_G)87KlXYb=8iLn&cBaHQKA z5PKR%ULdv^n(s+QSrG$~F$`ML6)J~AB3}YuSbz^P(WEc*Dh`PLMwA&nM65jzhMLK2 zR48UeWf{xFtlXA@A75u+j>5@`(; zD-%JD1~cZsik36;UIIfriVkMScC3ww18?m9;e^}_-3rdaSy8*;tv*709hhj8iwV{ui#PviI->LCNdNAIwVQ;|q3Me_u<8ibDd}4ww z*Qb(*HH9zaQTZvDQ|(9-_!vka4v#(-@O~#X3f!7Zx^`?wWVd0ItIfuNR~sh*I~8gK z_j_pJcLt!W>ClJPA~QxSMzqA3#7oLyN{C=!XcsfuGh&=IQEhjysWeHTC%_BKB3Py+ z6fDEOVC}H;hl4jq0vYpRPx^t4LuW5s0#R)YGko;M!RwsnWGIX-17a(YGp12W4WqPM zXcI7T8cHXjbcM9eTdbQ+>1NY9Fgl;u%C8uL3q|c0T_=yI42|L4u1$7Mltpb=m_8yYc)(r#rM zp%Uw0S%?22w9Z+q(^5Juty{x3;%Fw*h$KNHmV+iK?T=B|2>r%JNJX%W#iO&tSI|tT zXJ--)Q$z&cfJ(;MX~?M8P}KLobWaZw2=Dr$YKlMW9*=+S9#^VArQO7|Y@`@G9QfC@ zqP1@+-2h5=nATN@b$2PF6|)6L6y__-ZIpdMj&B7Kr{lS_zbJm2h0lGj~9oo~B zA=m(abV|cm#t^VF&YYEDvkV6l+8#`(fD?8clr9$BdJo!#u{JDcA}lE#>Dn?=$TJe{ zijM^hIZ#4Z+`NRrmv88Dw(tQminOCGFiS86;Hg-^=RGLhFjzJ1=m4fY*05Aly39y4 ziv}LR7>zl4g-hYK4OGb!s>F;6129@p5eE)r(4?!_kpUD*#cvUbjB%m9NrM|*^CRPb z^Y&WcyTY#svlX%;c|o~GsWEBT2~r0R8Gw@)Pirr|)V$+$pby9aCM9|$nfl~vY1)TSS#hluEKK;lJy=KNbR3g#j3$oa zTKK|a7u;Te*C!$HF#$%4R#e3_RyWgW?Ri?)h1T81m95LDajs5K#R=NwurDLt4}*kY@lbTN9n=jB(Ctbt}X<xLa#i_vwP3k9ISdQA5&-G4Ab1aw~RS=l7KqDH2g8 zH1nkaJMHdJR_0I#lrdps+LA>4SReQT4gL`sA%guQvkeio?urdJY3+uQs4a`yy7lS| zWjl6;50cR_<}lz1v%B;ozQ!b2lmL@N1VaR}1uZ~tIuemNT!w=qO4oMcACbi*f%h;Q zUD3lC?B>XTvZV8A9plnEc`}Z*Z%;Xv?As?EBc~XD2Bl;$(SSJSW+r=c1bcHNdvh#& zqZ8z`m6>cjB>`h6?L2?he_A?}nfwDG2R-vwY!1fXkQJ$#fOVxvYX{V@kV`)~>+D>bDKXsH>4aY@TN0rN{xc zGw?EmgA+!^U3~Z#4wyqk!83r*H>3v+q0VdSU{A{A;_Qx*i8FjY74q!PWMqMs*5NjG14|5uZzjiV$mI2VU#$8y=6)-bYFKZZaE?7;{ zE5?_0pv2Y`MLE%i-I#mbQhSPR;6^)I+#Lq@AU}*8GX1niU7^52De5i_zF;ASU5x<^ zL#Zoqg}sM9jN)9J)UZtHAfgMH(9kqD18udTwwlsb)7s~hE(ClzN>@keo>3LPbj4Vz zvLjVFm#Tb0RRz$x`(ik7nRtr=R|iH-HOx~>8jh5Vu}Y9Jj!zTqVRI>5P}&;Uu)&7i z2$}@7gHr%gIOjnXu#6(@@oucZaSx0|+7r$!KH7bt72-4u24SG~aEB7xb>WP#C2@!40acVGfnJM5 zFFOtHm_e5ez#VW0kr>P{BjgB<1!KAYS;&SAfK`BaGW^|PJMdrlZCU=F48PC+o*(=? zVrv420p`|F1UMKlb_fmb4|~_X19P`G1+8FCQaa!|Vxpa{U1H;b-9JAAHr{k?S{nif dsqpbax?J)}`;2M@;}|=mbqtJBh*A?E{2xz1(;)x= literal 18936 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 diff --git a/AwperativeKernel/obj/project.assets.json b/AwperativeKernel/obj/project.assets.json index 40c44ad..b070dd3 100644 --- a/AwperativeKernel/obj/project.assets.json +++ b/AwperativeKernel/obj/project.assets.json @@ -442,19 +442,19 @@ ] }, "packageFolders": { - "/home/avery/.nuget/packages/": {} + "/Users/averynorris/.nuget/packages/": {} }, "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", + "projectUniqueName": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "projectName": "AwperativeKernel", - "projectPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", - "packagesPath": "/home/avery/.nuget/packages/", - "outputPath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/", + "projectPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", + "packagesPath": "/Users/averynorris/.nuget/packages/", + "outputPath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/", "projectStyle": "PackageReference", "configFilePaths": [ - "/home/avery/.nuget/NuGet/NuGet.Config" + "/Users/averynorris/.nuget/NuGet/NuGet.Config" ], "originalTargetFrameworks": [ "net8.0" @@ -478,7 +478,7 @@ "auditLevel": "low", "auditMode": "direct" }, - "SdkAnalysisLevel": "9.0.300" + "SdkAnalysisLevel": "10.0.100" }, "frameworks": { "net8.0": { @@ -503,11 +503,11 @@ "downloadDependencies": [ { "name": "Microsoft.AspNetCore.App.Ref", - "version": "[8.0.24, 8.0.24]" + "version": "[8.0.23, 8.0.23]" }, { "name": "Microsoft.NETCore.App.Ref", - "version": "[8.0.24, 8.0.24]" + "version": "[8.0.23, 8.0.23]" } ], "frameworkReferences": { @@ -515,7 +515,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json" } } } diff --git a/AwperativeKernel/obj/project.nuget.cache b/AwperativeKernel/obj/project.nuget.cache index 6b1e1e9..009fa49 100644 --- a/AwperativeKernel/obj/project.nuget.cache +++ b/AwperativeKernel/obj/project.nuget.cache @@ -1,24 +1,24 @@ { "version": 2, - "dgSpecHash": "nvLY3cNblzg=", + "dgSpecHash": "LpP/nHq7BJc=", "success": true, - "projectFilePath": "/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", + "projectFilePath": "/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj", "expectedPackageFiles": [ - "/home/avery/.nuget/packages/opentk/5.0.0-pre.15/opentk.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.audio/5.0.0-pre.15/opentk.audio.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.compute/5.0.0-pre.15/opentk.compute.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.core/5.0.0-pre.15/opentk.core.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.graphics/5.0.0-pre.15/opentk.graphics.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.input/5.0.0-pre.15/opentk.input.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.mathematics/5.0.0-pre.15/opentk.mathematics.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.platform/5.0.0-pre.15/opentk.platform.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.redist.glfw/3.4.0.44/opentk.redist.glfw.3.4.0.44.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.windowing.common/5.0.0-pre.15/opentk.windowing.common.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.windowing.desktop/5.0.0-pre.15/opentk.windowing.desktop.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/opentk.windowing.graphicslibraryframework/5.0.0-pre.15/opentk.windowing.graphicslibraryframework.5.0.0-pre.15.nupkg.sha512", - "/home/avery/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", - "/home/avery/.nuget/packages/microsoft.netcore.app.ref/8.0.24/microsoft.netcore.app.ref.8.0.24.nupkg.sha512", - "/home/avery/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.24/microsoft.aspnetcore.app.ref.8.0.24.nupkg.sha512" + "/Users/averynorris/.nuget/packages/opentk/5.0.0-pre.15/opentk.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.audio/5.0.0-pre.15/opentk.audio.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.compute/5.0.0-pre.15/opentk.compute.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.core/5.0.0-pre.15/opentk.core.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.graphics/5.0.0-pre.15/opentk.graphics.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.input/5.0.0-pre.15/opentk.input.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.mathematics/5.0.0-pre.15/opentk.mathematics.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.platform/5.0.0-pre.15/opentk.platform.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.redist.glfw/3.4.0.44/opentk.redist.glfw.3.4.0.44.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.windowing.common/5.0.0-pre.15/opentk.windowing.common.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.windowing.desktop/5.0.0-pre.15/opentk.windowing.desktop.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/opentk.windowing.graphicslibraryframework/5.0.0-pre.15/opentk.windowing.graphicslibraryframework.5.0.0-pre.15.nupkg.sha512", + "/Users/averynorris/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "/Users/averynorris/.nuget/packages/microsoft.netcore.app.ref/8.0.23/microsoft.netcore.app.ref.8.0.23.nupkg.sha512", + "/Users/averynorris/.nuget/packages/microsoft.aspnetcore.app.ref/8.0.23/microsoft.aspnetcore.app.ref.8.0.23.nupkg.sha512" ], "logs": [] } \ No newline at end of file diff --git a/AwperativeKernel/obj/project.packagespec.json b/AwperativeKernel/obj/project.packagespec.json index b42190b..0a76f1a 100644 --- a/AwperativeKernel/obj/project.packagespec.json +++ b/AwperativeKernel/obj/project.packagespec.json @@ -1 +1 @@ -"restore":{"projectUniqueName":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","projectName":"AwperativeKernel","projectPath":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","outputPath":"/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"OpenTK":{"target":"Package","version":"[5.0.0-pre.15, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.24, 8.0.24]"},{"name":"Microsoft.NETCore.App.Ref","version":"[8.0.24, 8.0.24]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/home/avery/.dotnet/sdk/9.0.311/PortableRuntimeIdentifierGraph.json"}} \ No newline at end of file +"restore":{"projectUniqueName":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","projectName":"AwperativeKernel","projectPath":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/AwperativeKernel.csproj","outputPath":"/Users/averynorris/RiderProjects/AwperativeKernel/AwperativeKernel/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"10.0.100"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"OpenTK":{"target":"Package","version":"[5.0.0-pre.15, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[8.0.23, 8.0.23]"},{"name":"Microsoft.NETCore.App.Ref","version":"[8.0.23, 8.0.23]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/local/share/dotnet/sdk/10.0.102/PortableRuntimeIdentifierGraph.json"}} \ No newline at end of file diff --git a/AwperativeKernel/obj/rider.project.model.nuget.info b/AwperativeKernel/obj/rider.project.model.nuget.info index 10e97b1..f9b028f 100644 --- a/AwperativeKernel/obj/rider.project.model.nuget.info +++ b/AwperativeKernel/obj/rider.project.model.nuget.info @@ -1 +1 @@ -17713784696110717 \ No newline at end of file +17722910163812180 \ No newline at end of file diff --git a/AwperativeKernel/obj/rider.project.restore.info b/AwperativeKernel/obj/rider.project.restore.info index 10e97b1..1212d84 100644 --- a/AwperativeKernel/obj/rider.project.restore.info +++ b/AwperativeKernel/obj/rider.project.restore.info @@ -1 +1 @@ -17713784696110717 \ No newline at end of file +17722910991366692 \ No newline at end of file