From ff348ff9ae06264e89026f0422180aa3dec56ae8 Mon Sep 17 00:00:00 2001
From: baletiballo <75846481+baletiballo@users.noreply.github.com>
Date: Thu, 19 Dec 2024 14:09:31 +0100
Subject: [PATCH] Update to Unity 22.3.55

The ControlMapping has been changed, and now complains about not disabling the Actionmaps. If this persists through the next update, it should be investigated (likely a small fix, once it is clear *where* to call disable() )
---
 .../Editor/EasyRoads3Dv3Editor.dll            |   4 +-
 .../JsonSubTypes/packages.config.meta         |   4 +-
 .../LiberationSans SDF - Fallback.asset       |   6 +-
 .../UI/PlayerControls/ControlMapping.cs       | 640 ++++++++++--------
 Packages/manifest.json                        |   9 +-
 Packages/packages-lock.json                   |  51 +-
 .../com.unity.probuilder/Settings.json        |   2 -
 ProjectSettings/ProjectVersion.txt            |   4 +-
 ProjectSettings/boot.config                   |   0
 9 files changed, 393 insertions(+), 327 deletions(-)
 delete mode 100644 ProjectSettings/boot.config

diff --git a/Assets/Plugins/EasyRoads3D/Editor/EasyRoads3Dv3Editor.dll b/Assets/Plugins/EasyRoads3D/Editor/EasyRoads3Dv3Editor.dll
index 40e57b76..be539fda 100644
--- a/Assets/Plugins/EasyRoads3D/Editor/EasyRoads3Dv3Editor.dll
+++ b/Assets/Plugins/EasyRoads3D/Editor/EasyRoads3Dv3Editor.dll
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:a6802833a3c87bfc857d71f1c3ae4773dac65af5512d290372c46e68bdcf7505
-size 730624
+oid sha256:a577bef9f149e88079bae624feff45609972064521f7c1efaac2c03a15df210c
+size 731136
diff --git a/Assets/Plugins/JsonSubTypes/JsonSubTypes/packages.config.meta b/Assets/Plugins/JsonSubTypes/JsonSubTypes/packages.config.meta
index ac1e1b46..e055a71d 100644
--- a/Assets/Plugins/JsonSubTypes/JsonSubTypes/packages.config.meta
+++ b/Assets/Plugins/JsonSubTypes/JsonSubTypes/packages.config.meta
@@ -1,5 +1,7 @@
 fileFormatVersion: 2
 guid: d16d099b804bc914982bbbd303b30755
+labels:
+- NuGetForUnity
 PluginImporter:
   externalObjects: {}
   serializedVersion: 2
@@ -25,7 +27,7 @@ PluginImporter:
   - first:
       Windows Store Apps: WindowsStoreApps
     second:
-      enabled: 1
+      enabled: 0
       settings: {}
   userData: 
   assetBundleName: 
diff --git a/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset
index f1e2988c..50e043f5 100644
--- a/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset	
+++ b/Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset	
@@ -9,6 +9,8 @@ Material:
   m_PrefabAsset: {fileID: 0}
   m_Name: LiberationSans SDF Material
   m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
+  m_Parent: {fileID: 0}
+  m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
   m_InvalidKeywords: []
   m_LightmapFlags: 1
@@ -17,6 +19,7 @@ Material:
   m_CustomRenderQueue: -1
   stringTagMap: {}
   disabledShaderPasses: []
+  m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
     m_TexEnvs:
@@ -2264,7 +2267,8 @@ Texture2D:
   m_MipCount: 1
   m_IsReadable: 1
   m_IsPreProcessed: 0
-  m_IgnoreMasterTextureLimit: 0
+  m_IgnoreMipmapLimit: 0
+  m_MipmapLimitGroupName: 
   m_StreamingMipmaps: 0
   m_StreamingMipmapsPriority: 0
   m_VTOnly: 0
diff --git a/Assets/Scripts/UI/PlayerControls/ControlMapping.cs b/Assets/Scripts/UI/PlayerControls/ControlMapping.cs
index 74af2bb0..4c34f243 100644
--- a/Assets/Scripts/UI/PlayerControls/ControlMapping.cs
+++ b/Assets/Scripts/UI/PlayerControls/ControlMapping.cs
@@ -1,7 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
-//     version 1.3.0
+//     version 1.11.2
 //     from Assets/Scripts/UI/PlayerControls/ControlMapping.inputactions
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -15,7 +15,7 @@
 using UnityEngine.InputSystem;
 using UnityEngine.InputSystem.Utilities;
 
-public partial class @ControlMapping : IInputActionCollection2, IDisposable
+public partial class @ControlMapping: IInputActionCollection2, IDisposable
 {
     public InputActionAsset asset { get; }
     public @ControlMapping()
@@ -1883,6 +1883,13 @@ public @ControlMapping()
         m_UI_TrackedDeviceOrientation = m_UI.FindAction("TrackedDeviceOrientation", throwIfNotFound: true);
     }
 
+    ~@ControlMapping()
+    {
+        UnityEngine.Debug.Assert(!m_Actionmap1.enabled, "This will cause a leak and performance issues, ControlMapping.Actionmap1.Disable() has not been called.");
+        UnityEngine.Debug.Assert(!m_Actnmp_HC.enabled, "This will cause a leak and performance issues, ControlMapping.Actnmp_HC.Disable() has not been called.");
+        UnityEngine.Debug.Assert(!m_UI.enabled, "This will cause a leak and performance issues, ControlMapping.UI.Disable() has not been called.");
+    }
+
     public void Dispose()
     {
         UnityEngine.Object.Destroy(asset);
@@ -1926,12 +1933,14 @@ public void Disable()
     {
         asset.Disable();
     }
+
     public IEnumerable<InputBinding> bindings => asset.bindings;
 
     public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
     {
         return asset.FindAction(actionNameOrId, throwIfNotFound);
     }
+
     public int FindBinding(InputBinding bindingMask, out InputAction action)
     {
         return asset.FindBinding(bindingMask, out action);
@@ -1939,7 +1948,7 @@ public int FindBinding(InputBinding bindingMask, out InputAction action)
 
     // Actionmap1
     private readonly InputActionMap m_Actionmap1;
-    private IActionmap1Actions m_Actionmap1ActionsCallbackInterface;
+    private List<IActionmap1Actions> m_Actionmap1ActionsCallbackInterfaces = new List<IActionmap1Actions>();
     private readonly InputAction m_Actionmap1_Movement;
     private readonly InputAction m_Actionmap1_LookCamera;
     private readonly InputAction m_Actionmap1_Fire1_or_Interacting;
@@ -1981,118 +1990,131 @@ public struct Actionmap1Actions
         public void Disable() { Get().Disable(); }
         public bool enabled => Get().enabled;
         public static implicit operator InputActionMap(Actionmap1Actions set) { return set.Get(); }
+        public void AddCallbacks(IActionmap1Actions instance)
+        {
+            if (instance == null || m_Wrapper.m_Actionmap1ActionsCallbackInterfaces.Contains(instance)) return;
+            m_Wrapper.m_Actionmap1ActionsCallbackInterfaces.Add(instance);
+            @Movement.started += instance.OnMovement;
+            @Movement.performed += instance.OnMovement;
+            @Movement.canceled += instance.OnMovement;
+            @LookCamera.started += instance.OnLookCamera;
+            @LookCamera.performed += instance.OnLookCamera;
+            @LookCamera.canceled += instance.OnLookCamera;
+            @Fire1_or_Interacting.started += instance.OnFire1_or_Interacting;
+            @Fire1_or_Interacting.performed += instance.OnFire1_or_Interacting;
+            @Fire1_or_Interacting.canceled += instance.OnFire1_or_Interacting;
+            @Camerazoom.started += instance.OnCamerazoom;
+            @Camerazoom.performed += instance.OnCamerazoom;
+            @Camerazoom.canceled += instance.OnCamerazoom;
+            @Cancel_or_PauseMenu.started += instance.OnCancel_or_PauseMenu;
+            @Cancel_or_PauseMenu.performed += instance.OnCancel_or_PauseMenu;
+            @Cancel_or_PauseMenu.canceled += instance.OnCancel_or_PauseMenu;
+            @ToolMode.started += instance.OnToolMode;
+            @ToolMode.performed += instance.OnToolMode;
+            @ToolMode.canceled += instance.OnToolMode;
+            @MathMode.started += instance.OnMathMode;
+            @MathMode.performed += instance.OnMathMode;
+            @MathMode.canceled += instance.OnMathMode;
+            @Talking.started += instance.OnTalking;
+            @Talking.performed += instance.OnTalking;
+            @Talking.canceled += instance.OnTalking;
+            @Run.started += instance.OnRun;
+            @Run.performed += instance.OnRun;
+            @Run.canceled += instance.OnRun;
+            @Jump.started += instance.OnJump;
+            @Jump.performed += instance.OnJump;
+            @Jump.canceled += instance.OnJump;
+            @Modifier.started += instance.OnModifier;
+            @Modifier.performed += instance.OnModifier;
+            @Modifier.canceled += instance.OnModifier;
+            @Load.started += instance.OnLoad;
+            @Load.performed += instance.OnLoad;
+            @Load.canceled += instance.OnLoad;
+            @Save.started += instance.OnSave;
+            @Save.performed += instance.OnSave;
+            @Save.canceled += instance.OnSave;
+            @Reset.started += instance.OnReset;
+            @Reset.performed += instance.OnReset;
+            @Reset.canceled += instance.OnReset;
+            @Undo.started += instance.OnUndo;
+            @Undo.performed += instance.OnUndo;
+            @Undo.canceled += instance.OnUndo;
+            @Redo.started += instance.OnRedo;
+            @Redo.performed += instance.OnRedo;
+            @Redo.canceled += instance.OnRedo;
+        }
+
+        private void UnregisterCallbacks(IActionmap1Actions instance)
+        {
+            @Movement.started -= instance.OnMovement;
+            @Movement.performed -= instance.OnMovement;
+            @Movement.canceled -= instance.OnMovement;
+            @LookCamera.started -= instance.OnLookCamera;
+            @LookCamera.performed -= instance.OnLookCamera;
+            @LookCamera.canceled -= instance.OnLookCamera;
+            @Fire1_or_Interacting.started -= instance.OnFire1_or_Interacting;
+            @Fire1_or_Interacting.performed -= instance.OnFire1_or_Interacting;
+            @Fire1_or_Interacting.canceled -= instance.OnFire1_or_Interacting;
+            @Camerazoom.started -= instance.OnCamerazoom;
+            @Camerazoom.performed -= instance.OnCamerazoom;
+            @Camerazoom.canceled -= instance.OnCamerazoom;
+            @Cancel_or_PauseMenu.started -= instance.OnCancel_or_PauseMenu;
+            @Cancel_or_PauseMenu.performed -= instance.OnCancel_or_PauseMenu;
+            @Cancel_or_PauseMenu.canceled -= instance.OnCancel_or_PauseMenu;
+            @ToolMode.started -= instance.OnToolMode;
+            @ToolMode.performed -= instance.OnToolMode;
+            @ToolMode.canceled -= instance.OnToolMode;
+            @MathMode.started -= instance.OnMathMode;
+            @MathMode.performed -= instance.OnMathMode;
+            @MathMode.canceled -= instance.OnMathMode;
+            @Talking.started -= instance.OnTalking;
+            @Talking.performed -= instance.OnTalking;
+            @Talking.canceled -= instance.OnTalking;
+            @Run.started -= instance.OnRun;
+            @Run.performed -= instance.OnRun;
+            @Run.canceled -= instance.OnRun;
+            @Jump.started -= instance.OnJump;
+            @Jump.performed -= instance.OnJump;
+            @Jump.canceled -= instance.OnJump;
+            @Modifier.started -= instance.OnModifier;
+            @Modifier.performed -= instance.OnModifier;
+            @Modifier.canceled -= instance.OnModifier;
+            @Load.started -= instance.OnLoad;
+            @Load.performed -= instance.OnLoad;
+            @Load.canceled -= instance.OnLoad;
+            @Save.started -= instance.OnSave;
+            @Save.performed -= instance.OnSave;
+            @Save.canceled -= instance.OnSave;
+            @Reset.started -= instance.OnReset;
+            @Reset.performed -= instance.OnReset;
+            @Reset.canceled -= instance.OnReset;
+            @Undo.started -= instance.OnUndo;
+            @Undo.performed -= instance.OnUndo;
+            @Undo.canceled -= instance.OnUndo;
+            @Redo.started -= instance.OnRedo;
+            @Redo.performed -= instance.OnRedo;
+            @Redo.canceled -= instance.OnRedo;
+        }
+
+        public void RemoveCallbacks(IActionmap1Actions instance)
+        {
+            if (m_Wrapper.m_Actionmap1ActionsCallbackInterfaces.Remove(instance))
+                UnregisterCallbacks(instance);
+        }
+
         public void SetCallbacks(IActionmap1Actions instance)
         {
-            if (m_Wrapper.m_Actionmap1ActionsCallbackInterface != null)
-            {
-                @Movement.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMovement;
-                @Movement.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMovement;
-                @Movement.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMovement;
-                @LookCamera.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLookCamera;
-                @LookCamera.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLookCamera;
-                @LookCamera.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLookCamera;
-                @Fire1_or_Interacting.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnFire1_or_Interacting;
-                @Fire1_or_Interacting.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnFire1_or_Interacting;
-                @Fire1_or_Interacting.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnFire1_or_Interacting;
-                @Camerazoom.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCamerazoom;
-                @Camerazoom.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCamerazoom;
-                @Camerazoom.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCamerazoom;
-                @Cancel_or_PauseMenu.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCancel_or_PauseMenu;
-                @Cancel_or_PauseMenu.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCancel_or_PauseMenu;
-                @Cancel_or_PauseMenu.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnCancel_or_PauseMenu;
-                @ToolMode.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnToolMode;
-                @ToolMode.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnToolMode;
-                @ToolMode.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnToolMode;
-                @MathMode.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMathMode;
-                @MathMode.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMathMode;
-                @MathMode.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnMathMode;
-                @Talking.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnTalking;
-                @Talking.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnTalking;
-                @Talking.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnTalking;
-                @Run.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRun;
-                @Run.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRun;
-                @Run.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRun;
-                @Jump.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnJump;
-                @Jump.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnJump;
-                @Jump.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnJump;
-                @Modifier.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnModifier;
-                @Modifier.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnModifier;
-                @Modifier.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnModifier;
-                @Load.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLoad;
-                @Load.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLoad;
-                @Load.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnLoad;
-                @Save.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnSave;
-                @Save.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnSave;
-                @Save.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnSave;
-                @Reset.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnReset;
-                @Reset.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnReset;
-                @Reset.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnReset;
-                @Undo.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnUndo;
-                @Undo.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnUndo;
-                @Undo.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnUndo;
-                @Redo.started -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRedo;
-                @Redo.performed -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRedo;
-                @Redo.canceled -= m_Wrapper.m_Actionmap1ActionsCallbackInterface.OnRedo;
-            }
-            m_Wrapper.m_Actionmap1ActionsCallbackInterface = instance;
-            if (instance != null)
-            {
-                @Movement.started += instance.OnMovement;
-                @Movement.performed += instance.OnMovement;
-                @Movement.canceled += instance.OnMovement;
-                @LookCamera.started += instance.OnLookCamera;
-                @LookCamera.performed += instance.OnLookCamera;
-                @LookCamera.canceled += instance.OnLookCamera;
-                @Fire1_or_Interacting.started += instance.OnFire1_or_Interacting;
-                @Fire1_or_Interacting.performed += instance.OnFire1_or_Interacting;
-                @Fire1_or_Interacting.canceled += instance.OnFire1_or_Interacting;
-                @Camerazoom.started += instance.OnCamerazoom;
-                @Camerazoom.performed += instance.OnCamerazoom;
-                @Camerazoom.canceled += instance.OnCamerazoom;
-                @Cancel_or_PauseMenu.started += instance.OnCancel_or_PauseMenu;
-                @Cancel_or_PauseMenu.performed += instance.OnCancel_or_PauseMenu;
-                @Cancel_or_PauseMenu.canceled += instance.OnCancel_or_PauseMenu;
-                @ToolMode.started += instance.OnToolMode;
-                @ToolMode.performed += instance.OnToolMode;
-                @ToolMode.canceled += instance.OnToolMode;
-                @MathMode.started += instance.OnMathMode;
-                @MathMode.performed += instance.OnMathMode;
-                @MathMode.canceled += instance.OnMathMode;
-                @Talking.started += instance.OnTalking;
-                @Talking.performed += instance.OnTalking;
-                @Talking.canceled += instance.OnTalking;
-                @Run.started += instance.OnRun;
-                @Run.performed += instance.OnRun;
-                @Run.canceled += instance.OnRun;
-                @Jump.started += instance.OnJump;
-                @Jump.performed += instance.OnJump;
-                @Jump.canceled += instance.OnJump;
-                @Modifier.started += instance.OnModifier;
-                @Modifier.performed += instance.OnModifier;
-                @Modifier.canceled += instance.OnModifier;
-                @Load.started += instance.OnLoad;
-                @Load.performed += instance.OnLoad;
-                @Load.canceled += instance.OnLoad;
-                @Save.started += instance.OnSave;
-                @Save.performed += instance.OnSave;
-                @Save.canceled += instance.OnSave;
-                @Reset.started += instance.OnReset;
-                @Reset.performed += instance.OnReset;
-                @Reset.canceled += instance.OnReset;
-                @Undo.started += instance.OnUndo;
-                @Undo.performed += instance.OnUndo;
-                @Undo.canceled += instance.OnUndo;
-                @Redo.started += instance.OnRedo;
-                @Redo.performed += instance.OnRedo;
-                @Redo.canceled += instance.OnRedo;
-            }
+            foreach (var item in m_Wrapper.m_Actionmap1ActionsCallbackInterfaces)
+                UnregisterCallbacks(item);
+            m_Wrapper.m_Actionmap1ActionsCallbackInterfaces.Clear();
+            AddCallbacks(instance);
         }
     }
     public Actionmap1Actions @Actionmap1 => new Actionmap1Actions(this);
 
     // Actnmp_HC
     private readonly InputActionMap m_Actnmp_HC;
-    private IActnmp_HCActions m_Actnmp_HCActionsCallbackInterface;
+    private List<IActnmp_HCActions> m_Actnmp_HCActionsCallbackInterfaces = new List<IActnmp_HCActions>();
     private readonly InputAction m_Actnmp_HC_Movement;
     private readonly InputAction m_Actnmp_HC_LookCamera;
     private readonly InputAction m_Actnmp_HC_Fire1orMouseleft;
@@ -2140,136 +2162,149 @@ public struct Actnmp_HCActions
         public void Disable() { Get().Disable(); }
         public bool enabled => Get().enabled;
         public static implicit operator InputActionMap(Actnmp_HCActions set) { return set.Get(); }
+        public void AddCallbacks(IActnmp_HCActions instance)
+        {
+            if (instance == null || m_Wrapper.m_Actnmp_HCActionsCallbackInterfaces.Contains(instance)) return;
+            m_Wrapper.m_Actnmp_HCActionsCallbackInterfaces.Add(instance);
+            @Movement.started += instance.OnMovement;
+            @Movement.performed += instance.OnMovement;
+            @Movement.canceled += instance.OnMovement;
+            @LookCamera.started += instance.OnLookCamera;
+            @LookCamera.performed += instance.OnLookCamera;
+            @LookCamera.canceled += instance.OnLookCamera;
+            @Fire1orMouseleft.started += instance.OnFire1orMouseleft;
+            @Fire1orMouseleft.performed += instance.OnFire1orMouseleft;
+            @Fire1orMouseleft.canceled += instance.OnFire1orMouseleft;
+            @Camerazoom.started += instance.OnCamerazoom;
+            @Camerazoom.performed += instance.OnCamerazoom;
+            @Camerazoom.canceled += instance.OnCamerazoom;
+            @Cancel.started += instance.OnCancel;
+            @Cancel.performed += instance.OnCancel;
+            @Cancel.canceled += instance.OnCancel;
+            @ToolMode.started += instance.OnToolMode;
+            @ToolMode.performed += instance.OnToolMode;
+            @ToolMode.canceled += instance.OnToolMode;
+            @MathMode.started += instance.OnMathMode;
+            @MathMode.performed += instance.OnMathMode;
+            @MathMode.canceled += instance.OnMathMode;
+            @Talking.started += instance.OnTalking;
+            @Talking.performed += instance.OnTalking;
+            @Talking.canceled += instance.OnTalking;
+            @Modifier.started += instance.OnModifier;
+            @Modifier.performed += instance.OnModifier;
+            @Modifier.canceled += instance.OnModifier;
+            @Load.started += instance.OnLoad;
+            @Load.performed += instance.OnLoad;
+            @Load.canceled += instance.OnLoad;
+            @Save.started += instance.OnSave;
+            @Save.performed += instance.OnSave;
+            @Save.canceled += instance.OnSave;
+            @Reset.started += instance.OnReset;
+            @Reset.performed += instance.OnReset;
+            @Reset.canceled += instance.OnReset;
+            @Undo.started += instance.OnUndo;
+            @Undo.performed += instance.OnUndo;
+            @Undo.canceled += instance.OnUndo;
+            @Redo.started += instance.OnRedo;
+            @Redo.performed += instance.OnRedo;
+            @Redo.canceled += instance.OnRedo;
+            @Move_Forward.started += instance.OnMove_Forward;
+            @Move_Forward.performed += instance.OnMove_Forward;
+            @Move_Forward.canceled += instance.OnMove_Forward;
+            @Move_Left.started += instance.OnMove_Left;
+            @Move_Left.performed += instance.OnMove_Left;
+            @Move_Left.canceled += instance.OnMove_Left;
+            @Move_Backwards.started += instance.OnMove_Backwards;
+            @Move_Backwards.performed += instance.OnMove_Backwards;
+            @Move_Backwards.canceled += instance.OnMove_Backwards;
+            @Move_Right.started += instance.OnMove_Right;
+            @Move_Right.performed += instance.OnMove_Right;
+            @Move_Right.canceled += instance.OnMove_Right;
+            @Newaction.started += instance.OnNewaction;
+            @Newaction.performed += instance.OnNewaction;
+            @Newaction.canceled += instance.OnNewaction;
+        }
+
+        private void UnregisterCallbacks(IActnmp_HCActions instance)
+        {
+            @Movement.started -= instance.OnMovement;
+            @Movement.performed -= instance.OnMovement;
+            @Movement.canceled -= instance.OnMovement;
+            @LookCamera.started -= instance.OnLookCamera;
+            @LookCamera.performed -= instance.OnLookCamera;
+            @LookCamera.canceled -= instance.OnLookCamera;
+            @Fire1orMouseleft.started -= instance.OnFire1orMouseleft;
+            @Fire1orMouseleft.performed -= instance.OnFire1orMouseleft;
+            @Fire1orMouseleft.canceled -= instance.OnFire1orMouseleft;
+            @Camerazoom.started -= instance.OnCamerazoom;
+            @Camerazoom.performed -= instance.OnCamerazoom;
+            @Camerazoom.canceled -= instance.OnCamerazoom;
+            @Cancel.started -= instance.OnCancel;
+            @Cancel.performed -= instance.OnCancel;
+            @Cancel.canceled -= instance.OnCancel;
+            @ToolMode.started -= instance.OnToolMode;
+            @ToolMode.performed -= instance.OnToolMode;
+            @ToolMode.canceled -= instance.OnToolMode;
+            @MathMode.started -= instance.OnMathMode;
+            @MathMode.performed -= instance.OnMathMode;
+            @MathMode.canceled -= instance.OnMathMode;
+            @Talking.started -= instance.OnTalking;
+            @Talking.performed -= instance.OnTalking;
+            @Talking.canceled -= instance.OnTalking;
+            @Modifier.started -= instance.OnModifier;
+            @Modifier.performed -= instance.OnModifier;
+            @Modifier.canceled -= instance.OnModifier;
+            @Load.started -= instance.OnLoad;
+            @Load.performed -= instance.OnLoad;
+            @Load.canceled -= instance.OnLoad;
+            @Save.started -= instance.OnSave;
+            @Save.performed -= instance.OnSave;
+            @Save.canceled -= instance.OnSave;
+            @Reset.started -= instance.OnReset;
+            @Reset.performed -= instance.OnReset;
+            @Reset.canceled -= instance.OnReset;
+            @Undo.started -= instance.OnUndo;
+            @Undo.performed -= instance.OnUndo;
+            @Undo.canceled -= instance.OnUndo;
+            @Redo.started -= instance.OnRedo;
+            @Redo.performed -= instance.OnRedo;
+            @Redo.canceled -= instance.OnRedo;
+            @Move_Forward.started -= instance.OnMove_Forward;
+            @Move_Forward.performed -= instance.OnMove_Forward;
+            @Move_Forward.canceled -= instance.OnMove_Forward;
+            @Move_Left.started -= instance.OnMove_Left;
+            @Move_Left.performed -= instance.OnMove_Left;
+            @Move_Left.canceled -= instance.OnMove_Left;
+            @Move_Backwards.started -= instance.OnMove_Backwards;
+            @Move_Backwards.performed -= instance.OnMove_Backwards;
+            @Move_Backwards.canceled -= instance.OnMove_Backwards;
+            @Move_Right.started -= instance.OnMove_Right;
+            @Move_Right.performed -= instance.OnMove_Right;
+            @Move_Right.canceled -= instance.OnMove_Right;
+            @Newaction.started -= instance.OnNewaction;
+            @Newaction.performed -= instance.OnNewaction;
+            @Newaction.canceled -= instance.OnNewaction;
+        }
+
+        public void RemoveCallbacks(IActnmp_HCActions instance)
+        {
+            if (m_Wrapper.m_Actnmp_HCActionsCallbackInterfaces.Remove(instance))
+                UnregisterCallbacks(instance);
+        }
+
         public void SetCallbacks(IActnmp_HCActions instance)
         {
-            if (m_Wrapper.m_Actnmp_HCActionsCallbackInterface != null)
-            {
-                @Movement.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMovement;
-                @Movement.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMovement;
-                @Movement.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMovement;
-                @LookCamera.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLookCamera;
-                @LookCamera.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLookCamera;
-                @LookCamera.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLookCamera;
-                @Fire1orMouseleft.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnFire1orMouseleft;
-                @Fire1orMouseleft.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnFire1orMouseleft;
-                @Fire1orMouseleft.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnFire1orMouseleft;
-                @Camerazoom.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCamerazoom;
-                @Camerazoom.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCamerazoom;
-                @Camerazoom.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCamerazoom;
-                @Cancel.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCancel;
-                @Cancel.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCancel;
-                @Cancel.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnCancel;
-                @ToolMode.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnToolMode;
-                @ToolMode.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnToolMode;
-                @ToolMode.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnToolMode;
-                @MathMode.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMathMode;
-                @MathMode.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMathMode;
-                @MathMode.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMathMode;
-                @Talking.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnTalking;
-                @Talking.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnTalking;
-                @Talking.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnTalking;
-                @Modifier.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnModifier;
-                @Modifier.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnModifier;
-                @Modifier.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnModifier;
-                @Load.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLoad;
-                @Load.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLoad;
-                @Load.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnLoad;
-                @Save.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnSave;
-                @Save.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnSave;
-                @Save.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnSave;
-                @Reset.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnReset;
-                @Reset.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnReset;
-                @Reset.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnReset;
-                @Undo.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnUndo;
-                @Undo.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnUndo;
-                @Undo.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnUndo;
-                @Redo.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnRedo;
-                @Redo.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnRedo;
-                @Redo.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnRedo;
-                @Move_Forward.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Forward;
-                @Move_Forward.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Forward;
-                @Move_Forward.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Forward;
-                @Move_Left.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Left;
-                @Move_Left.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Left;
-                @Move_Left.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Left;
-                @Move_Backwards.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Backwards;
-                @Move_Backwards.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Backwards;
-                @Move_Backwards.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Backwards;
-                @Move_Right.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Right;
-                @Move_Right.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Right;
-                @Move_Right.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnMove_Right;
-                @Newaction.started -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnNewaction;
-                @Newaction.performed -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnNewaction;
-                @Newaction.canceled -= m_Wrapper.m_Actnmp_HCActionsCallbackInterface.OnNewaction;
-            }
-            m_Wrapper.m_Actnmp_HCActionsCallbackInterface = instance;
-            if (instance != null)
-            {
-                @Movement.started += instance.OnMovement;
-                @Movement.performed += instance.OnMovement;
-                @Movement.canceled += instance.OnMovement;
-                @LookCamera.started += instance.OnLookCamera;
-                @LookCamera.performed += instance.OnLookCamera;
-                @LookCamera.canceled += instance.OnLookCamera;
-                @Fire1orMouseleft.started += instance.OnFire1orMouseleft;
-                @Fire1orMouseleft.performed += instance.OnFire1orMouseleft;
-                @Fire1orMouseleft.canceled += instance.OnFire1orMouseleft;
-                @Camerazoom.started += instance.OnCamerazoom;
-                @Camerazoom.performed += instance.OnCamerazoom;
-                @Camerazoom.canceled += instance.OnCamerazoom;
-                @Cancel.started += instance.OnCancel;
-                @Cancel.performed += instance.OnCancel;
-                @Cancel.canceled += instance.OnCancel;
-                @ToolMode.started += instance.OnToolMode;
-                @ToolMode.performed += instance.OnToolMode;
-                @ToolMode.canceled += instance.OnToolMode;
-                @MathMode.started += instance.OnMathMode;
-                @MathMode.performed += instance.OnMathMode;
-                @MathMode.canceled += instance.OnMathMode;
-                @Talking.started += instance.OnTalking;
-                @Talking.performed += instance.OnTalking;
-                @Talking.canceled += instance.OnTalking;
-                @Modifier.started += instance.OnModifier;
-                @Modifier.performed += instance.OnModifier;
-                @Modifier.canceled += instance.OnModifier;
-                @Load.started += instance.OnLoad;
-                @Load.performed += instance.OnLoad;
-                @Load.canceled += instance.OnLoad;
-                @Save.started += instance.OnSave;
-                @Save.performed += instance.OnSave;
-                @Save.canceled += instance.OnSave;
-                @Reset.started += instance.OnReset;
-                @Reset.performed += instance.OnReset;
-                @Reset.canceled += instance.OnReset;
-                @Undo.started += instance.OnUndo;
-                @Undo.performed += instance.OnUndo;
-                @Undo.canceled += instance.OnUndo;
-                @Redo.started += instance.OnRedo;
-                @Redo.performed += instance.OnRedo;
-                @Redo.canceled += instance.OnRedo;
-                @Move_Forward.started += instance.OnMove_Forward;
-                @Move_Forward.performed += instance.OnMove_Forward;
-                @Move_Forward.canceled += instance.OnMove_Forward;
-                @Move_Left.started += instance.OnMove_Left;
-                @Move_Left.performed += instance.OnMove_Left;
-                @Move_Left.canceled += instance.OnMove_Left;
-                @Move_Backwards.started += instance.OnMove_Backwards;
-                @Move_Backwards.performed += instance.OnMove_Backwards;
-                @Move_Backwards.canceled += instance.OnMove_Backwards;
-                @Move_Right.started += instance.OnMove_Right;
-                @Move_Right.performed += instance.OnMove_Right;
-                @Move_Right.canceled += instance.OnMove_Right;
-                @Newaction.started += instance.OnNewaction;
-                @Newaction.performed += instance.OnNewaction;
-                @Newaction.canceled += instance.OnNewaction;
-            }
+            foreach (var item in m_Wrapper.m_Actnmp_HCActionsCallbackInterfaces)
+                UnregisterCallbacks(item);
+            m_Wrapper.m_Actnmp_HCActionsCallbackInterfaces.Clear();
+            AddCallbacks(instance);
         }
     }
     public Actnmp_HCActions @Actnmp_HC => new Actnmp_HCActions(this);
 
     // UI
     private readonly InputActionMap m_UI;
-    private IUIActions m_UIActionsCallbackInterface;
+    private List<IUIActions> m_UIActionsCallbackInterfaces = new List<IUIActions>();
     private readonly InputAction m_UI_Navigate;
     private readonly InputAction m_UI_Submit;
     private readonly InputAction m_UI_Cancel;
@@ -2299,75 +2334,88 @@ public struct UIActions
         public void Disable() { Get().Disable(); }
         public bool enabled => Get().enabled;
         public static implicit operator InputActionMap(UIActions set) { return set.Get(); }
+        public void AddCallbacks(IUIActions instance)
+        {
+            if (instance == null || m_Wrapper.m_UIActionsCallbackInterfaces.Contains(instance)) return;
+            m_Wrapper.m_UIActionsCallbackInterfaces.Add(instance);
+            @Navigate.started += instance.OnNavigate;
+            @Navigate.performed += instance.OnNavigate;
+            @Navigate.canceled += instance.OnNavigate;
+            @Submit.started += instance.OnSubmit;
+            @Submit.performed += instance.OnSubmit;
+            @Submit.canceled += instance.OnSubmit;
+            @Cancel.started += instance.OnCancel;
+            @Cancel.performed += instance.OnCancel;
+            @Cancel.canceled += instance.OnCancel;
+            @Point.started += instance.OnPoint;
+            @Point.performed += instance.OnPoint;
+            @Point.canceled += instance.OnPoint;
+            @Click.started += instance.OnClick;
+            @Click.performed += instance.OnClick;
+            @Click.canceled += instance.OnClick;
+            @ScrollWheel.started += instance.OnScrollWheel;
+            @ScrollWheel.performed += instance.OnScrollWheel;
+            @ScrollWheel.canceled += instance.OnScrollWheel;
+            @MiddleClick.started += instance.OnMiddleClick;
+            @MiddleClick.performed += instance.OnMiddleClick;
+            @MiddleClick.canceled += instance.OnMiddleClick;
+            @RightClick.started += instance.OnRightClick;
+            @RightClick.performed += instance.OnRightClick;
+            @RightClick.canceled += instance.OnRightClick;
+            @TrackedDevicePosition.started += instance.OnTrackedDevicePosition;
+            @TrackedDevicePosition.performed += instance.OnTrackedDevicePosition;
+            @TrackedDevicePosition.canceled += instance.OnTrackedDevicePosition;
+            @TrackedDeviceOrientation.started += instance.OnTrackedDeviceOrientation;
+            @TrackedDeviceOrientation.performed += instance.OnTrackedDeviceOrientation;
+            @TrackedDeviceOrientation.canceled += instance.OnTrackedDeviceOrientation;
+        }
+
+        private void UnregisterCallbacks(IUIActions instance)
+        {
+            @Navigate.started -= instance.OnNavigate;
+            @Navigate.performed -= instance.OnNavigate;
+            @Navigate.canceled -= instance.OnNavigate;
+            @Submit.started -= instance.OnSubmit;
+            @Submit.performed -= instance.OnSubmit;
+            @Submit.canceled -= instance.OnSubmit;
+            @Cancel.started -= instance.OnCancel;
+            @Cancel.performed -= instance.OnCancel;
+            @Cancel.canceled -= instance.OnCancel;
+            @Point.started -= instance.OnPoint;
+            @Point.performed -= instance.OnPoint;
+            @Point.canceled -= instance.OnPoint;
+            @Click.started -= instance.OnClick;
+            @Click.performed -= instance.OnClick;
+            @Click.canceled -= instance.OnClick;
+            @ScrollWheel.started -= instance.OnScrollWheel;
+            @ScrollWheel.performed -= instance.OnScrollWheel;
+            @ScrollWheel.canceled -= instance.OnScrollWheel;
+            @MiddleClick.started -= instance.OnMiddleClick;
+            @MiddleClick.performed -= instance.OnMiddleClick;
+            @MiddleClick.canceled -= instance.OnMiddleClick;
+            @RightClick.started -= instance.OnRightClick;
+            @RightClick.performed -= instance.OnRightClick;
+            @RightClick.canceled -= instance.OnRightClick;
+            @TrackedDevicePosition.started -= instance.OnTrackedDevicePosition;
+            @TrackedDevicePosition.performed -= instance.OnTrackedDevicePosition;
+            @TrackedDevicePosition.canceled -= instance.OnTrackedDevicePosition;
+            @TrackedDeviceOrientation.started -= instance.OnTrackedDeviceOrientation;
+            @TrackedDeviceOrientation.performed -= instance.OnTrackedDeviceOrientation;
+            @TrackedDeviceOrientation.canceled -= instance.OnTrackedDeviceOrientation;
+        }
+
+        public void RemoveCallbacks(IUIActions instance)
+        {
+            if (m_Wrapper.m_UIActionsCallbackInterfaces.Remove(instance))
+                UnregisterCallbacks(instance);
+        }
+
         public void SetCallbacks(IUIActions instance)
         {
-            if (m_Wrapper.m_UIActionsCallbackInterface != null)
-            {
-                @Navigate.started -= m_Wrapper.m_UIActionsCallbackInterface.OnNavigate;
-                @Navigate.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnNavigate;
-                @Navigate.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnNavigate;
-                @Submit.started -= m_Wrapper.m_UIActionsCallbackInterface.OnSubmit;
-                @Submit.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnSubmit;
-                @Submit.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnSubmit;
-                @Cancel.started -= m_Wrapper.m_UIActionsCallbackInterface.OnCancel;
-                @Cancel.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnCancel;
-                @Cancel.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnCancel;
-                @Point.started -= m_Wrapper.m_UIActionsCallbackInterface.OnPoint;
-                @Point.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnPoint;
-                @Point.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnPoint;
-                @Click.started -= m_Wrapper.m_UIActionsCallbackInterface.OnClick;
-                @Click.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnClick;
-                @Click.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnClick;
-                @ScrollWheel.started -= m_Wrapper.m_UIActionsCallbackInterface.OnScrollWheel;
-                @ScrollWheel.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnScrollWheel;
-                @ScrollWheel.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnScrollWheel;
-                @MiddleClick.started -= m_Wrapper.m_UIActionsCallbackInterface.OnMiddleClick;
-                @MiddleClick.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnMiddleClick;
-                @MiddleClick.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnMiddleClick;
-                @RightClick.started -= m_Wrapper.m_UIActionsCallbackInterface.OnRightClick;
-                @RightClick.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnRightClick;
-                @RightClick.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnRightClick;
-                @TrackedDevicePosition.started -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDevicePosition;
-                @TrackedDevicePosition.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDevicePosition;
-                @TrackedDevicePosition.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDevicePosition;
-                @TrackedDeviceOrientation.started -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDeviceOrientation;
-                @TrackedDeviceOrientation.performed -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDeviceOrientation;
-                @TrackedDeviceOrientation.canceled -= m_Wrapper.m_UIActionsCallbackInterface.OnTrackedDeviceOrientation;
-            }
-            m_Wrapper.m_UIActionsCallbackInterface = instance;
-            if (instance != null)
-            {
-                @Navigate.started += instance.OnNavigate;
-                @Navigate.performed += instance.OnNavigate;
-                @Navigate.canceled += instance.OnNavigate;
-                @Submit.started += instance.OnSubmit;
-                @Submit.performed += instance.OnSubmit;
-                @Submit.canceled += instance.OnSubmit;
-                @Cancel.started += instance.OnCancel;
-                @Cancel.performed += instance.OnCancel;
-                @Cancel.canceled += instance.OnCancel;
-                @Point.started += instance.OnPoint;
-                @Point.performed += instance.OnPoint;
-                @Point.canceled += instance.OnPoint;
-                @Click.started += instance.OnClick;
-                @Click.performed += instance.OnClick;
-                @Click.canceled += instance.OnClick;
-                @ScrollWheel.started += instance.OnScrollWheel;
-                @ScrollWheel.performed += instance.OnScrollWheel;
-                @ScrollWheel.canceled += instance.OnScrollWheel;
-                @MiddleClick.started += instance.OnMiddleClick;
-                @MiddleClick.performed += instance.OnMiddleClick;
-                @MiddleClick.canceled += instance.OnMiddleClick;
-                @RightClick.started += instance.OnRightClick;
-                @RightClick.performed += instance.OnRightClick;
-                @RightClick.canceled += instance.OnRightClick;
-                @TrackedDevicePosition.started += instance.OnTrackedDevicePosition;
-                @TrackedDevicePosition.performed += instance.OnTrackedDevicePosition;
-                @TrackedDevicePosition.canceled += instance.OnTrackedDevicePosition;
-                @TrackedDeviceOrientation.started += instance.OnTrackedDeviceOrientation;
-                @TrackedDeviceOrientation.performed += instance.OnTrackedDeviceOrientation;
-                @TrackedDeviceOrientation.canceled += instance.OnTrackedDeviceOrientation;
-            }
+            foreach (var item in m_Wrapper.m_UIActionsCallbackInterfaces)
+                UnregisterCallbacks(item);
+            m_Wrapper.m_UIActionsCallbackInterfaces.Clear();
+            AddCallbacks(instance);
         }
     }
     public UIActions @UI => new UIActions(this);
diff --git a/Packages/manifest.json b/Packages/manifest.json
index 15fa1743..61ec5de0 100644
--- a/Packages/manifest.json
+++ b/Packages/manifest.json
@@ -4,19 +4,20 @@
     "com.unity.2d.sprite": "1.0.0",
     "com.unity.2d.tilemap": "1.0.0",
     "com.unity.ads": "4.12.0",
-    "com.unity.analytics": "3.6.12",
+    "com.unity.ai.navigation": "1.1.5",
+    "com.unity.analytics": "3.8.1",
     "com.unity.cinemachine": "2.10.3",
-    "com.unity.collab-proxy": "2.5.2",
+    "com.unity.collab-proxy": "2.6.0",
     "com.unity.ide.rider": "3.0.34",
     "com.unity.ide.visualstudio": "2.0.22",
-    "com.unity.inputsystem": "1.7.0",
+    "com.unity.inputsystem": "1.11.2",
     "com.unity.jobs": "0.70.0-preview.7",
     "com.unity.nuget.newtonsoft-json": "3.2.1",
     "com.unity.probuilder": "5.2.3",
     "com.unity.purchasing": "4.12.2",
     "com.unity.test-framework": "1.1.33",
     "com.unity.textmeshpro": "3.0.9",
-    "com.unity.timeline": "1.6.5",
+    "com.unity.timeline": "1.7.6",
     "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.10",
     "com.unity.ugui": "1.0.0",
     "com.unity.xr.legacyinputhelpers": "2.1.11",
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
index 231c783a..79d98926 100644
--- a/Packages/packages-lock.json
+++ b/Packages/packages-lock.json
@@ -23,7 +23,10 @@
       "version": "1.0.0",
       "depth": 0,
       "source": "builtin",
-      "dependencies": {}
+      "dependencies": {
+        "com.unity.modules.tilemap": "1.0.0",
+        "com.unity.modules.uielements": "1.0.0"
+      }
     },
     "com.unity.ads": {
       "version": "4.12.0",
@@ -34,12 +37,22 @@
       },
       "url": "https://packages.unity.com"
     },
+    "com.unity.ai.navigation": {
+      "version": "1.1.5",
+      "depth": 0,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.modules.ai": "1.0.0"
+      },
+      "url": "https://packages.unity.com"
+    },
     "com.unity.analytics": {
-      "version": "3.6.12",
+      "version": "3.8.1",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.ugui": "1.0.0"
+        "com.unity.ugui": "1.0.0",
+        "com.unity.services.analytics": "1.0.4"
       },
       "url": "https://packages.unity.com"
     },
@@ -63,7 +76,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.collab-proxy": {
-      "version": "2.5.2",
+      "version": "2.6.0",
       "depth": 0,
       "source": "registry",
       "dependencies": {},
@@ -106,7 +119,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.inputsystem": {
-      "version": "1.7.0",
+      "version": "1.11.2",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -168,8 +181,19 @@
       },
       "url": "https://packages.unity.com"
     },
+    "com.unity.services.analytics": {
+      "version": "6.0.2",
+      "depth": 1,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.ugui": "1.0.0",
+        "com.unity.services.core": "1.12.4",
+        "com.unity.modules.jsonserialize": "1.0.0"
+      },
+      "url": "https://packages.unity.com"
+    },
     "com.unity.services.core": {
-      "version": "1.12.5",
+      "version": "1.14.0",
       "depth": 1,
       "source": "registry",
       "dependencies": {
@@ -180,7 +204,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.settings-manager": {
-      "version": "1.0.3",
+      "version": "2.0.1",
       "depth": 1,
       "source": "registry",
       "dependencies": {},
@@ -223,7 +247,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.timeline": {
-      "version": "1.6.5",
+      "version": "1.7.6",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -395,17 +419,6 @@
       "version": "1.0.0",
       "depth": 0,
       "source": "builtin",
-      "dependencies": {
-        "com.unity.modules.ui": "1.0.0",
-        "com.unity.modules.imgui": "1.0.0",
-        "com.unity.modules.jsonserialize": "1.0.0",
-        "com.unity.modules.uielementsnative": "1.0.0"
-      }
-    },
-    "com.unity.modules.uielementsnative": {
-      "version": "1.0.0",
-      "depth": 1,
-      "source": "builtin",
       "dependencies": {
         "com.unity.modules.ui": "1.0.0",
         "com.unity.modules.imgui": "1.0.0",
diff --git a/ProjectSettings/Packages/com.unity.probuilder/Settings.json b/ProjectSettings/Packages/com.unity.probuilder/Settings.json
index 99c2ee4e..a3f241b7 100644
--- a/ProjectSettings/Packages/com.unity.probuilder/Settings.json
+++ b/ProjectSettings/Packages/com.unity.probuilder/Settings.json
@@ -1,6 +1,4 @@
 {
-    "m_Name": "Settings",
-    "m_Path": "ProjectSettings/Packages/com.unity.probuilder/Settings.json",
     "m_Dictionary": {
         "m_DictionaryValues": [
             {
diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt
index 8386a052..09e5a3b0 100644
--- a/ProjectSettings/ProjectVersion.txt
+++ b/ProjectSettings/ProjectVersion.txt
@@ -1,2 +1,2 @@
-m_EditorVersion: 2021.3.45f1
-m_EditorVersionWithRevision: 2021.3.45f1 (0da89fac8e79)
+m_EditorVersion: 2022.3.55f1
+m_EditorVersionWithRevision: 2022.3.55f1 (9f374180d209)
diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config
deleted file mode 100644
index e69de29b..00000000
-- 
GitLab