using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
using UnityEngine.Serialization;

namespace RootMotion.FinalIK
{
	// Token: 0x020004A6 RID: 1190
	[Token(Token = "0x20004A6")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction System")]
	[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
	public class InteractionSystem : MonoBehaviour
	{
		// Token: 0x06002A80 RID: 10880 RVA: 0x0005F290 File Offset: 0x0005D490
		[Token(Token = "0x6002A80")]
		[Address(RVA = "0x1049550", Offset = "0x1048550", VA = "0x181049550")]
		[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
		private void OpenTutorial1()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
		}

		// Token: 0x06002A81 RID: 10881 RVA: 0x0005F2A8 File Offset: 0x0005D4A8
		[Token(Token = "0x6002A81")]
		[Address(RVA = "0x1049590", Offset = "0x1048590", VA = "0x181049590")]
		[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
		private void OpenTutorial2()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
		}

		// Token: 0x06002A82 RID: 10882 RVA: 0x0005F2C0 File Offset: 0x0005D4C0
		[Token(Token = "0x6002A82")]
		[Address(RVA = "0x10495D0", Offset = "0x10485D0", VA = "0x1810495D0")]
		[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
		private void OpenTutorial3()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x06002A83 RID: 10883 RVA: 0x0005F2D8 File Offset: 0x0005D4D8
		[Token(Token = "0x6002A83")]
		[Address(RVA = "0x1049610", Offset = "0x1048610", VA = "0x181049610")]
		[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
		private void OpenTutorial4()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x06002A84 RID: 10884 RVA: 0x0005F2F0 File Offset: 0x0005D4F0
		[Token(Token = "0x6002A84")]
		[Address(RVA = "0x104A220", Offset = "0x1049220", VA = "0x18104A220")]
		[ContextMenu("Support Group")]
		private void SupportGroup()
		{
			Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
		}

		// Token: 0x06002A85 RID: 10885 RVA: 0x0005F308 File Offset: 0x0005D508
		[Token(Token = "0x6002A85")]
		[Address(RVA = "0x10472E0", Offset = "0x10462E0", VA = "0x1810472E0")]
		[ContextMenu("Asset Store Thread")]
		private void ASThread()
		{
			Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
		}

		// Token: 0x170002A5 RID: 677
		// (get) Token: 0x06002A86 RID: 10886 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002A5")]
		public bool inInteraction
		{
			[Token(Token = "0x6002A86")]
			[Address(RVA = "0x104BAB0", Offset = "0x104AAB0", VA = "0x18104BAB0")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002A87 RID: 10887 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A87")]
		[Address(RVA = "0x10481F0", Offset = "0x10471F0", VA = "0x1810481F0")]
		public bool IsInInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A88 RID: 10888 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A88")]
		[Address(RVA = "0x1048400", Offset = "0x1047400", VA = "0x181048400")]
		public bool IsPaused(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A89 RID: 10889 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A89")]
		[Address(RVA = "0x10484D0", Offset = "0x10474D0", VA = "0x1810484D0")]
		public bool IsPaused()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8A RID: 10890 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A8A")]
		[Address(RVA = "0x10482C0", Offset = "0x10472C0", VA = "0x1810482C0")]
		public bool IsInSync()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8B RID: 10891 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A8B")]
		[Address(RVA = "0x1049A20", Offset = "0x1048A20", VA = "0x181049A20")]
		public bool StartInteraction(FullBodyBipedEffector effectorType, InteractionObject interactionObject, bool interrupt)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8C RID: 10892 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A8C")]
		[Address(RVA = "0x1049720", Offset = "0x1048720", VA = "0x181049720")]
		public bool PauseInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8D RID: 10893 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A8D")]
		[Address(RVA = "0x1049990", Offset = "0x1048990", VA = "0x181049990")]
		public bool ResumeInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8E RID: 10894 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A8E")]
		[Address(RVA = "0x104A190", Offset = "0x1049190", VA = "0x18104A190")]
		public bool StopInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A8F RID: 10895 RVA: 0x0005F320 File Offset: 0x0005D520
		[Token(Token = "0x6002A8F")]
		[Address(RVA = "0x1049690", Offset = "0x1048690", VA = "0x181049690")]
		public void PauseAll()
		{
			if (this.IsValid(true))
			{
				InteractionEffector[] array = this.interactionEffectors;
				int num = 0;
				if (num < array.Length)
				{
					bool flag = array[num].Pause();
					InteractionEffector[] array2 = this.interactionEffectors;
					num++;
				}
			}
		}

		// Token: 0x06002A90 RID: 10896 RVA: 0x0005F368 File Offset: 0x0005D568
		[Token(Token = "0x6002A90")]
		[Address(RVA = "0x1049900", Offset = "0x1048900", VA = "0x181049900")]
		public void ResumeAll()
		{
			if (this.IsValid(true))
			{
				InteractionEffector[] array = this.interactionEffectors;
				int num = 0;
				if (num < array.Length)
				{
					bool flag = array[num].Resume();
					InteractionEffector[] array2 = this.interactionEffectors;
					num++;
				}
			}
		}

		// Token: 0x06002A91 RID: 10897 RVA: 0x0005F3B0 File Offset: 0x0005D5B0
		[Token(Token = "0x6002A91")]
		[Address(RVA = "0x104A110", Offset = "0x1049110", VA = "0x18104A110")]
		public void StopAll()
		{
			InteractionEffector[] array = this.interactionEffectors;
			int num = 0;
			if (num < array.Length)
			{
				bool flag = array[num].Stop();
				InteractionEffector[] array2 = this.interactionEffectors;
				num++;
			}
		}

		// Token: 0x06002A92 RID: 10898 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A92")]
		[Address(RVA = "0x1047DE0", Offset = "0x1046DE0", VA = "0x181047DE0")]
		public InteractionObject GetInteractionObject(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A93 RID: 10899 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A93")]
		[Address(RVA = "0x1047FE0", Offset = "0x1046FE0", VA = "0x181047FE0")]
		public float GetProgress(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A94 RID: 10900 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A94")]
		[Address(RVA = "0x1047E70", Offset = "0x1046E70", VA = "0x181047E70")]
		public float GetMinActiveProgress()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A95 RID: 10901 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A95")]
		[Address(RVA = "0x104AC50", Offset = "0x1049C50", VA = "0x18104AC50")]
		public bool TriggerInteraction(int index, bool interrupt)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A96 RID: 10902 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A96")]
		[Address(RVA = "0x104A6B0", Offset = "0x10496B0", VA = "0x18104A6B0")]
		public bool TriggerInteraction(int index, bool interrupt, out InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A97 RID: 10903 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A97")]
		[Address(RVA = "0x104A910", Offset = "0x1049910", VA = "0x18104A910")]
		public bool TriggerInteraction(int index, bool interrupt, out InteractionTarget interactionTarget)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A98 RID: 10904 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A98")]
		[Address(RVA = "0x1047860", Offset = "0x1046860", VA = "0x181047860")]
		public InteractionTrigger.Range GetClosestInteractionRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A99 RID: 10905 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A99")]
		[Address(RVA = "0x10476C0", Offset = "0x10466C0", VA = "0x1810476C0")]
		public InteractionObject GetClosestInteractionObjectInRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A9A RID: 10906 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A9A")]
		[Address(RVA = "0x1047960", Offset = "0x1046960", VA = "0x181047960")]
		public InteractionTarget GetClosestInteractionTargetInRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A9B RID: 10907 RVA: 0x0005F3F0 File Offset: 0x0005D5F0
		[Token(Token = "0x6002A9B")]
		[Address(RVA = "0x1047710", Offset = "0x1046710", VA = "0x181047710")]
		public InteractionObject[] GetClosestInteractionObjectsInRange()
		{
			InteractionObject[] array;
			int num;
			InteractionObject interactionObject;
			for (;;)
			{
				InteractionTrigger.Range closestInteractionRange = this.GetClosestInteractionRange();
				if (closestInteractionRange != 0)
				{
					array = new InteractionObject[closestInteractionRange.interactions.Length];
					num = 0;
					InteractionTrigger.Range.Interaction[] interactions = closestInteractionRange.interactions;
					int length = interactions.Length;
					if (num >= length)
					{
						return array;
					}
					interactionObject = interactions[num].interactionObject;
					if (interactionObject == 0 || length != 0)
					{
						break;
					}
				}
			}
			array[0] = interactionObject;
			num++;
			return array;
		}

		// Token: 0x06002A9C RID: 10908 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A9C")]
		[Address(RVA = "0x10479F0", Offset = "0x10469F0", VA = "0x1810479F0")]
		public InteractionTarget[] GetClosestInteractionTargetsInRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A9D RID: 10909 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A9D")]
		[Address(RVA = "0x104A260", Offset = "0x1049260", VA = "0x18104A260")]
		public bool TriggerEffectorsReady(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A9E RID: 10910 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A9E")]
		[Address(RVA = "0x1048070", Offset = "0x1047070", VA = "0x181048070")]
		public InteractionTrigger.Range GetTriggerRange(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A9F RID: 10911 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A9F")]
		[Address(RVA = "0x1047BA0", Offset = "0x1046BA0", VA = "0x181047BA0")]
		public int GetClosestTriggerIndex()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x170002A6 RID: 678
		// (get) Token: 0x06002AA0 RID: 10912 RVA: 0x0005F458 File Offset: 0x0005D658
		// (set) Token: 0x06002AA1 RID: 10913 RVA: 0x0005F46C File Offset: 0x0005D66C
		[Token(Token = "0x170002A6")]
		public FullBodyBipedIK ik
		{
			[Token(Token = "0x6002AA0")]
			[Address(RVA = "0x5109D0", Offset = "0x50F9D0", VA = "0x1805109D0")]
			get
			{
				return this.fullBody;
			}
			[Token(Token = "0x6002AA1")]
			[Address(RVA = "0x6FDDA0", Offset = "0x6FCDA0", VA = "0x1806FDDA0")]
			set
			{
				/*
An exception occurred when decompiling this method (06002AA1)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::set_ik(RootMotion.FinalIK.FullBodyBipedIK)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:FullBodyBipedIK(InteractionSystem::fullBody, ldloc:InteractionSystem(this), ldloc:FullBodyBipedIK(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
			}
		}

		// Token: 0x170002A7 RID: 679
		// (get) Token: 0x06002AA2 RID: 10914 RVA: 0x0005F480 File Offset: 0x0005D680
		// (set) Token: 0x06002AA3 RID: 10915 RVA: 0x0005F494 File Offset: 0x0005D694
		[Token(Token = "0x170002A7")]
		public List<InteractionTrigger> triggersInRange
		{
			[Token(Token = "0x6002AA2")]
			[Address(RVA = "0x3352E0", Offset = "0x3342E0", VA = "0x1803352E0")]
			[CompilerGenerated]
			get
			{
				return this.<triggersInRange>k__BackingField;
			}
			[Token(Token = "0x6002AA3")]
			[Address(RVA = "0x376270", Offset = "0x375270", VA = "0x180376270")]
			[CompilerGenerated]
			private set
			{
				/*
An exception occurred when decompiling this method (06002AA3)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::set_triggersInRange(System.Collections.Generic.List`1<RootMotion.FinalIK.InteractionTrigger>)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:class [mscorlib]System.Collections.Generic.List`1<class RootMotion.FinalIK.InteractionTrigger>(InteractionSystem::<triggersInRange>k__BackingField, ldloc:InteractionSystem(this), ldloc:class [mscorlib]System.Collections.Generic.List`1<class RootMotion.FinalIK.InteractionTrigger>(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
			}
		}

		// Token: 0x06002AA4 RID: 10916 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AA4")]
		[Address(RVA = "0x1049B30", Offset = "0x1048B30", VA = "0x181049B30", Slot = "4")]
		protected virtual void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AA5 RID: 10917 RVA: 0x0005F4A8 File Offset: 0x0005D6A8
		[Token(Token = "0x6002AA5")]
		[Address(RVA = "0x10481B0", Offset = "0x10471B0", VA = "0x1810481B0")]
		private void InteractionPause(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = true;
		}

		// Token: 0x06002AA6 RID: 10918 RVA: 0x0005F4C8 File Offset: 0x0005D6C8
		[Token(Token = "0x6002AA6")]
		[Address(RVA = "0x10481D0", Offset = "0x10471D0", VA = "0x1810481D0")]
		private void InteractionResume(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = false;
		}

		// Token: 0x06002AA7 RID: 10919 RVA: 0x0005F4E8 File Offset: 0x0005D6E8
		[Token(Token = "0x6002AA7")]
		[Address(RVA = "0x10481D0", Offset = "0x10471D0", VA = "0x1810481D0")]
		private void InteractionStop(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = false;
		}

		// Token: 0x06002AA8 RID: 10920 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AA8")]
		[Address(RVA = "0x1048870", Offset = "0x1047870", VA = "0x181048870")]
		private void LookAtInteraction(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AA9 RID: 10921 RVA: 0x0005F508 File Offset: 0x0005D708
		[Token(Token = "0x6002AA9")]
		[Address(RVA = "0x10492F0", Offset = "0x10482F0", VA = "0x1810492F0")]
		public void OnTriggerEnter(Collider c)
		{
			FullBodyBipedIK fullBodyBipedIK = this.fullBody;
			int num = 0;
			if (!(fullBodyBipedIK == num))
			{
				InteractionTrigger component = c.GetComponent<InteractionTrigger>();
				int num2 = 0;
				if (!(component == num2) && !this.inContact.Contains(component))
				{
					this.inContact.Add(component);
				}
			}
		}

		// Token: 0x06002AAA RID: 10922 RVA: 0x0005F55C File Offset: 0x0005D75C
		[Token(Token = "0x6002AAA")]
		[Address(RVA = "0x1049410", Offset = "0x1048410", VA = "0x181049410")]
		public void OnTriggerExit(Collider c)
		{
			FullBodyBipedIK fullBodyBipedIK = this.fullBody;
			int num = 0;
			if (!(fullBodyBipedIK == num))
			{
				InteractionTrigger component = c.GetComponent<InteractionTrigger>();
				int num2 = 0;
				if (!(component == num2))
				{
					bool flag = this.inContact.Remove(component);
				}
			}
		}

		// Token: 0x06002AAB RID: 10923 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AAB")]
		[Address(RVA = "0x1047320", Offset = "0x1046320", VA = "0x181047320")]
		private bool ContactIsInRange(int index, out int bestRangeIndex)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AAC RID: 10924 RVA: 0x0005F5A4 File Offset: 0x0005D7A4
		[Token(Token = "0x6002AAC")]
		[Address(RVA = "0x1048E70", Offset = "0x1047E70", VA = "0x181048E70")]
		private void OnDrawGizmosSelected()
		{
			if (!Application.isPlaying)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (fullBodyBipedIK == num)
				{
					FullBodyBipedIK component = base.GetComponent<FullBodyBipedIK>();
					this.fullBody = component;
				}
				Collider collider = this.characterCollider;
				int num2 = 0;
				if (collider == num2)
				{
					Collider component2 = base.GetComponent<Collider>();
					this.characterCollider = component2;
				}
			}
		}

		// Token: 0x06002AAD RID: 10925 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AAD")]
		[Address(RVA = "0x104B130", Offset = "0x104A130", VA = "0x18104B130")]
		private void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AAE RID: 10926 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AAE")]
		[Address(RVA = "0x10497B0", Offset = "0x10487B0", VA = "0x1810497B0")]
		private void Raycasting()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AAF RID: 10927 RVA: 0x0005F604 File Offset: 0x0005D804
		[Token(Token = "0x6002AAF")]
		[Address(RVA = "0x104AE30", Offset = "0x1049E30", VA = "0x18104AE30")]
		private void UpdateTriggerEventBroadcasting()
		{
			Collider collider = this.characterCollider;
			int num = 0;
			if (collider == num)
			{
				Collider collider2 = this.c;
				this.characterCollider = collider2;
			}
			Collider collider3 = this.characterCollider;
			int num2 = 0;
			if (collider3 != num2)
			{
				Collider collider4 = this.characterCollider;
				Collider collider5 = this.c;
				if (collider4 != collider5)
				{
					TriggerEventBroadcaster component = this.characterCollider.GetComponent<TriggerEventBroadcaster>();
					int num3 = 0;
					if (component == num3)
					{
						TriggerEventBroadcaster triggerEventBroadcaster = this.characterCollider.gameObject.AddComponent<TriggerEventBroadcaster>();
						GameObject gameObject = base.gameObject;
						triggerEventBroadcaster.target = gameObject;
					}
					Collider collider6 = this.lastCollider;
					int num4 = 0;
					if (collider6 != num4)
					{
						Collider collider7 = this.lastCollider;
						Collider collider8 = this.c;
						if (collider7 != collider8)
						{
							Collider collider9 = this.lastCollider;
							Collider collider10 = this.characterCollider;
							if (collider9 != collider10)
							{
								TriggerEventBroadcaster component2 = this.lastCollider.GetComponent<TriggerEventBroadcaster>();
								int num5 = 0;
								if (component2 != num5)
								{
									UnityEngine.Object.Destroy(component2);
								}
							}
						}
					}
				}
			}
			Collider collider11 = this.characterCollider;
			this.lastCollider = collider11;
			throw new NullReferenceException();
		}

		// Token: 0x06002AB0 RID: 10928 RVA: 0x0005F730 File Offset: 0x0005D930
		[Token(Token = "0x6002AB0")]
		[Address(RVA = "0x1048700", Offset = "0x1047700", VA = "0x181048700")]
		private void LateUpdate()
		{
			/*
An exception occurred when decompiling this method (06002AB0)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::LateUpdate()

 ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002AB1 RID: 10929 RVA: 0x0005F7DC File Offset: 0x0005D9DC
		[Token(Token = "0x6002AB1")]
		[Address(RVA = "0x1049150", Offset = "0x1048150", VA = "0x181049150")]
		private void OnPreFBBIK()
		{
			if (base.enabled)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (!(fullBodyBipedIK == num))
				{
					InteractionLookAt interactionLookAt = this.lookAt;
					LookAtIK ik = interactionLookAt.ik;
					int num2 = 0;
					bool flag = ik == num2;
					if (!flag && interactionLookAt.firstFBBIKSolve != flag)
					{
						IKSolverLookAt solver = interactionLookAt.ik.solver;
						float headWeight = solver.headWeight;
						int num3 = 0;
						float eyesWeight = solver.eyesWeight;
						solver.headWeight = (float)num3;
						interactionLookAt.ik.solver.eyesWeight = (float)num3;
						interactionLookAt.ik.solver.Update();
						interactionLookAt.ik.solver.headWeight = headWeight;
						interactionLookAt.ik.solver.eyesWeight = eyesWeight;
					}
				}
			}
		}

		// Token: 0x06002AB2 RID: 10930 RVA: 0x0005F8AC File Offset: 0x0005DAAC
		[Token(Token = "0x6002AB2")]
		[Address(RVA = "0x1048F90", Offset = "0x1047F90", VA = "0x181048F90")]
		private void OnPostFBBIK()
		{
			if (base.enabled)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (!(fullBodyBipedIK == num))
				{
					InteractionEffector[] array = this.interactionEffectors;
					int num2 = 0;
					int num3 = 0;
					if (num3 < array.Length)
					{
						array[num2].OnPostFBBIK();
						InteractionEffector[] array2 = this.interactionEffectors;
						num2++;
					}
					InteractionLookAt interactionLookAt = this.lookAt;
					LookAtIK ik = interactionLookAt.ik;
					int num4 = 0;
					bool flag = ik == num4;
					if (!flag && interactionLookAt.firstFBBIKSolve != flag)
					{
						IKSolverLookAt solver = interactionLookAt.ik.solver;
						float bodyWeight = solver.bodyWeight;
						solver.bodyWeight = 0f;
						interactionLookAt.ik.solver.Update();
						interactionLookAt.ik.solver.bodyWeight = bodyWeight;
						interactionLookAt.firstFBBIKSolve = false;
					}
				}
			}
		}

		// Token: 0x06002AB3 RID: 10931 RVA: 0x0005F990 File Offset: 0x0005DB90
		[Token(Token = "0x6002AB3")]
		[Address(RVA = "0x1048AA0", Offset = "0x1047AA0", VA = "0x181048AA0")]
		private void OnDestroy()
		{
			IKSolverFullBodyBiped solver;
			Delegate @delegate;
			int num2;
			do
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (fullBodyBipedIK == num)
				{
					return;
				}
				solver = this.fullBody.solver;
				IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
				IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPreFBBIK);
				@delegate = Delegate.Remove(onPreUpdate, updateDelegate);
				num2 = 0;
			}
			while (@delegate != 0 && @delegate == 0);
			solver.OnPreUpdate = num2;
			IKSolverFullBodyBiped solver2 = this.fullBody.solver;
			IKSolver.UpdateDelegate onPostUpdate = solver2.OnPostUpdate;
			IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostFBBIK);
			Delegate delegate2 = Delegate.Remove(onPostUpdate, updateDelegate2);
			if (delegate2 == 0 || delegate2 != 0)
			{
				solver2.OnPostUpdate = delegate2;
				InteractionSystem.InteractionDelegate onInteractionStart = this.OnInteractionStart;
				InteractionSystem.InteractionDelegate interactionDelegate = new InteractionSystem.InteractionDelegate(this.LookAtInteraction);
				Delegate delegate3 = Delegate.Remove(onInteractionStart, interactionDelegate);
				if (delegate3 == 0 || delegate3 != 0)
				{
					this.OnInteractionStart = delegate3;
					InteractionSystem.InteractionDelegate onInteractionPause = this.OnInteractionPause;
					InteractionSystem.InteractionDelegate interactionDelegate2 = new InteractionSystem.InteractionDelegate(this.InteractionPause);
					Delegate delegate4 = Delegate.Remove(onInteractionPause, interactionDelegate2);
					if (delegate4 == 0 || delegate4 != 0)
					{
						this.OnInteractionPause = delegate4;
						InteractionSystem.InteractionDelegate onInteractionResume = this.OnInteractionResume;
						InteractionSystem.InteractionDelegate interactionDelegate3 = new InteractionSystem.InteractionDelegate(this.InteractionResume);
						Delegate delegate5 = Delegate.Remove(onInteractionResume, interactionDelegate3);
						if (delegate5 == 0 || delegate5 != 0)
						{
							this.OnInteractionResume = delegate5;
							InteractionSystem.InteractionDelegate onInteractionStop = this.OnInteractionStop;
							InteractionSystem.InteractionDelegate interactionDelegate4 = new InteractionSystem.InteractionDelegate(this.InteractionStop);
							Delegate delegate6 = Delegate.Remove(onInteractionStop, interactionDelegate4);
							if (delegate6 == 0 || delegate6 != 0)
							{
								this.OnInteractionStop = delegate6;
								return;
							}
						}
					}
				}
			}
			throw new InvalidCastException();
		}

		// Token: 0x06002AB4 RID: 10932 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AB4")]
		[Address(RVA = "0x1048610", Offset = "0x1047610", VA = "0x181048610")]
		private bool IsValid(bool log)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AB5 RID: 10933 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AB5")]
		[Address(RVA = "0x104A590", Offset = "0x1049590", VA = "0x18104A590")]
		private bool TriggerIndexIsValid(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AB6 RID: 10934 RVA: 0x0005FB18 File Offset: 0x0005DD18
		[Token(Token = "0x6002AB6")]
		[Address(RVA = "0x1049650", Offset = "0x1048650", VA = "0x181049650")]
		[ContextMenu("User Manual")]
		private void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
		}

		// Token: 0x06002AB7 RID: 10935 RVA: 0x0005FB30 File Offset: 0x0005DD30
		[Token(Token = "0x6002AB7")]
		[Address(RVA = "0x1049510", Offset = "0x1048510", VA = "0x181049510")]
		[ContextMenu("Scrpt Reference")]
		private void OpenScriptReference()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_system.html");
		}

		// Token: 0x06002AB8 RID: 10936 RVA: 0x0005FB48 File Offset: 0x0005DD48
		[Token(Token = "0x6002AB8")]
		[Address(RVA = "0x104B500", Offset = "0x104A500", VA = "0x18104B500")]
		public InteractionSystem()
		{
			InteractionEffector[] array;
			InteractionEffector interactionEffector9;
			for (;;)
			{
				this.targetTag = "";
				this.fadeInTime = 0.3f;
				this.speed = 1f;
				this.resetToDefaultsSpeed = 1f;
				this.camRaycastDistance = 1f;
				List<InteractionTrigger> list = new List();
				this.inContact = list;
				List<int> list2 = new List();
				this.bestRangeIndexes = list2;
				this.lookAt = new InteractionLookAt
				{
					lerpSpeed = 5f,
					weightSpeed = 1f
				};
				array = new InteractionEffector[9];
				int num;
				InteractionEffector interactionEffector = new InteractionEffector((FullBodyBipedEffector)num);
				num = 0;
				if (interactionEffector == 0 || interactionEffector != 0)
				{
					array[0] = interactionEffector;
					InteractionEffector interactionEffector2 = new InteractionEffector(FullBodyBipedEffector.LeftFoot);
					if (interactionEffector2 == 0 || interactionEffector2 != 0)
					{
						array[1] = interactionEffector2;
						InteractionEffector interactionEffector3 = new InteractionEffector(FullBodyBipedEffector.LeftHand);
						if (interactionEffector3 == 0 || interactionEffector3 != 0)
						{
							array[2] = interactionEffector3;
							InteractionEffector interactionEffector4 = new InteractionEffector(FullBodyBipedEffector.LeftShoulder);
							if (interactionEffector4 == 0 || interactionEffector4 != 0)
							{
								array[3] = interactionEffector4;
								InteractionEffector interactionEffector5 = new InteractionEffector(FullBodyBipedEffector.LeftThigh);
								if (interactionEffector5 == 0 || interactionEffector5 != 0)
								{
									array[4] = interactionEffector5;
									InteractionEffector interactionEffector6 = new InteractionEffector(FullBodyBipedEffector.RightFoot);
									if (interactionEffector6 == 0 || interactionEffector6 != 0)
									{
										array[5] = interactionEffector6;
										InteractionEffector interactionEffector7 = new InteractionEffector(FullBodyBipedEffector.RightHand);
										if (interactionEffector7 == 0 || interactionEffector7 != 0)
										{
											array[6] = interactionEffector7;
											InteractionEffector interactionEffector8 = new InteractionEffector(FullBodyBipedEffector.RightShoulder);
											if (interactionEffector8 == 0 || interactionEffector8 != 0)
											{
												array[7] = interactionEffector8;
												interactionEffector9 = new InteractionEffector(FullBodyBipedEffector.RightThigh);
												if (interactionEffector9 == 0 || interactionEffector9 != 0)
												{
													break;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
			array[8] = interactionEffector9;
			this.interactionEffectors = array;
			base..ctor();
		}

		// Token: 0x0400342D RID: 13357
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x400342D")]
		[Tooltip("If not empty, only the targets with the specified tag will be used by this Interaction System.")]
		public string targetTag;

		// Token: 0x0400342E RID: 13358
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x400342E")]
		[Tooltip("The fade in time of the interaction.")]
		public float fadeInTime;

		// Token: 0x0400342F RID: 13359
		[FieldOffset(Offset = "0x24")]
		[Token(Token = "0x400342F")]
		[Tooltip("The master speed for all interactions.")]
		public float speed;

		// Token: 0x04003430 RID: 13360
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003430")]
		[Tooltip("If > 0, lerps all the FBBIK channels used by the Interaction System back to their default or initial values when not in interaction.")]
		public float resetToDefaultsSpeed;

		// Token: 0x04003431 RID: 13361
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003431")]
		[Header("Triggering")]
		[Tooltip("The collider that registers OnTriggerEnter and OnTriggerExit events with InteractionTriggers.")]
		[FormerlySerializedAs("collider")]
		public Collider characterCollider;

		// Token: 0x04003432 RID: 13362
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003432")]
		[Tooltip("Will be used by Interaction Triggers that need the camera's position. Assign the first person view character camera.")]
		[FormerlySerializedAs("camera")]
		public Transform FPSCamera;

		// Token: 0x04003433 RID: 13363
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003433")]
		[Tooltip("The layers that will be raycasted from the camera (along camera.forward). All InteractionTrigger look at target colliders should be included.")]
		public LayerMask camRaycastLayers;

		// Token: 0x04003434 RID: 13364
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4003434")]
		[Tooltip("Max distance of raycasting from the camera.")]
		public float camRaycastDistance;

		// Token: 0x04003436 RID: 13366
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003436")]
		private List<InteractionTrigger> inContact;

		// Token: 0x04003437 RID: 13367
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003437")]
		private List<int> bestRangeIndexes;

		// Token: 0x04003438 RID: 13368
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003438")]
		public InteractionSystem.InteractionDelegate OnInteractionStart;

		// Token: 0x04003439 RID: 13369
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4003439")]
		public InteractionSystem.InteractionDelegate OnInteractionPause;

		// Token: 0x0400343A RID: 13370
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x400343A")]
		public InteractionSystem.InteractionDelegate OnInteractionPickUp;

		// Token: 0x0400343B RID: 13371
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x400343B")]
		public InteractionSystem.InteractionDelegate OnInteractionResume;

		// Token: 0x0400343C RID: 13372
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x400343C")]
		public InteractionSystem.InteractionDelegate OnInteractionStop;

		// Token: 0x0400343D RID: 13373
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x400343D")]
		public InteractionSystem.InteractionEventDelegate OnInteractionEvent;

		// Token: 0x0400343E RID: 13374
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400343E")]
		public RaycastHit raycastHit;

		// Token: 0x0400343F RID: 13375
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x400343F")]
		[Space]
		[SerializeField]
		[Tooltip("Reference to the FBBIK component.")]
		[Space(10f)]
		private FullBodyBipedIK fullBody;

		// Token: 0x04003440 RID: 13376
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4003440")]
		[Tooltip("Handles looking at the interactions.")]
		public InteractionLookAt lookAt;

		// Token: 0x04003441 RID: 13377
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4003441")]
		private InteractionEffector[] interactionEffectors;

		// Token: 0x04003442 RID: 13378
		[FieldOffset(Offset = "0xD8")]
		[Token(Token = "0x4003442")]
		private bool initiated;

		// Token: 0x04003443 RID: 13379
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4003443")]
		private Collider lastCollider;

		// Token: 0x04003444 RID: 13380
		[FieldOffset(Offset = "0xE8")]
		[Token(Token = "0x4003444")]
		private Collider c;

		// Token: 0x020004A7 RID: 1191
		[Token(Token = "0x20004A7")]
		public sealed class InteractionDelegate : MulticastDelegate
		{
			// Token: 0x06002AB9 RID: 10937 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002AB9")]
			[Address(RVA = "0x4932A0", Offset = "0x4922A0", VA = "0x1804932A0")]
			public InteractionDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002ABA RID: 10938 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002ABA")]
			[Address(RVA = "0x4D67C0", Offset = "0x4D57C0", VA = "0x1804D67C0", Slot = "13")]
			public void Invoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002ABB RID: 10939 RVA: 0x0005FCF8 File Offset: 0x0005DEF8
			[Token(Token = "0x6002ABB")]
			[Address(RVA = "0x16A3CE0", Offset = "0x16A2CE0", VA = "0x1816A3CE0", Slot = "14")]
			public IAsyncResult BeginInvoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, AsyncCallback callback, object @object)
			{
				return typeof(FullBodyBipedEffector).TypeHandle;
			}

			// Token: 0x06002ABC RID: 10940 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002ABC")]
			[Address(RVA = "0x492FC0", Offset = "0x491FC0", VA = "0x180492FC0", Slot = "15")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x020004A8 RID: 1192
		[Token(Token = "0x20004A8")]
		public sealed class InteractionEventDelegate : MulticastDelegate
		{
			// Token: 0x06002ABD RID: 10941 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002ABD")]
			[Address(RVA = "0x4932A0", Offset = "0x4922A0", VA = "0x1804932A0")]
			public InteractionEventDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002ABE RID: 10942 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002ABE")]
			[Address(RVA = "0x16A3E00", Offset = "0x16A2E00", VA = "0x1816A3E00", Slot = "13")]
			public void Invoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, InteractionObject.InteractionEvent interactionEvent)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002ABF RID: 10943 RVA: 0x0005FD0C File Offset: 0x0005DF0C
			[Token(Token = "0x6002ABF")]
			[Address(RVA = "0x16A3D70", Offset = "0x16A2D70", VA = "0x1816A3D70", Slot = "14")]
			public IAsyncResult BeginInvoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, InteractionObject.InteractionEvent interactionEvent, AsyncCallback callback, object @object)
			{
				return typeof(FullBodyBipedEffector).TypeHandle;
			}

			// Token: 0x06002AC0 RID: 10944 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002AC0")]
			[Address(RVA = "0x492FC0", Offset = "0x491FC0", VA = "0x180492FC0", Slot = "15")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}
	}
}
