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

namespace Obi
{
	// Token: 0x020004E2 RID: 1250
	[Token(Token = "0x20004E2")]
	[ExecuteInEditMode]
	[DisallowMultipleComponent]
	public abstract class ObiActor : MonoBehaviour, IObiSolverClient
	{
		// Token: 0x1400000C RID: 12
		// (add) Token: 0x06002BF3 RID: 11251 RVA: 0x00061B1C File Offset: 0x0005FD1C
		// (remove) Token: 0x06002BF4 RID: 11252 RVA: 0x00061B4C File Offset: 0x0005FD4C
		[Token(Token = "0x1400000C")]
		public event EventHandler<ObiActor.ObiActorSolverArgs> OnAddedToSolver
		{
			[Token(Token = "0x6002BF3")]
			[Address(RVA = "0xF244E0", Offset = "0xF234E0", VA = "0x180F244E0")]
			[CompilerGenerated]
			add
			{
				EventHandler<ObiActor.ObiActorSolverArgs> onAddedToSolver = this.OnAddedToSolver;
				Delegate @delegate = Delegate.Combine(onAddedToSolver, value);
				if (@delegate == 0 || @delegate != 0)
				{
					while (@delegate != onAddedToSolver)
					{
					}
					return;
				}
				throw new InvalidCastException();
			}
			[Token(Token = "0x6002BF4")]
			[Address(RVA = "0xF24720", Offset = "0xF23720", VA = "0x180F24720")]
			[CompilerGenerated]
			remove
			{
				EventHandler<ObiActor.ObiActorSolverArgs> onAddedToSolver = this.OnAddedToSolver;
				Delegate @delegate = Delegate.Remove(onAddedToSolver, value);
				if (@delegate == 0 || @delegate != 0)
				{
					while (@delegate != onAddedToSolver)
					{
					}
					return;
				}
				throw new InvalidCastException();
			}
		}

		// Token: 0x1400000D RID: 13
		// (add) Token: 0x06002BF5 RID: 11253 RVA: 0x00061B7C File Offset: 0x0005FD7C
		// (remove) Token: 0x06002BF6 RID: 11254 RVA: 0x00061BAC File Offset: 0x0005FDAC
		[Token(Token = "0x1400000D")]
		public event EventHandler<ObiActor.ObiActorSolverArgs> OnRemovedFromSolver
		{
			[Token(Token = "0x6002BF5")]
			[Address(RVA = "0xF24580", Offset = "0xF23580", VA = "0x180F24580")]
			[CompilerGenerated]
			add
			{
				EventHandler<ObiActor.ObiActorSolverArgs> onRemovedFromSolver = this.OnRemovedFromSolver;
				Delegate @delegate = Delegate.Combine(onRemovedFromSolver, value);
				if (@delegate == 0 || @delegate != 0)
				{
					while (@delegate != onRemovedFromSolver)
					{
					}
					return;
				}
				throw new InvalidCastException();
			}
			[Token(Token = "0x6002BF6")]
			[Address(RVA = "0xF247C0", Offset = "0xF237C0", VA = "0x180F247C0")]
			[CompilerGenerated]
			remove
			{
				EventHandler<ObiActor.ObiActorSolverArgs> onRemovedFromSolver = this.OnRemovedFromSolver;
				Delegate @delegate = Delegate.Remove(onRemovedFromSolver, value);
				if (@delegate == 0 || @delegate != 0)
				{
					while (@delegate != onRemovedFromSolver)
					{
					}
					return;
				}
				throw new InvalidCastException();
			}
		}

		// Token: 0x170002CC RID: 716
		// (get) Token: 0x06002BF7 RID: 11255 RVA: 0x00061BDC File Offset: 0x0005FDDC
		// (set) Token: 0x06002BF8 RID: 11256 RVA: 0x00061BF0 File Offset: 0x0005FDF0
		[Token(Token = "0x170002CC")]
		public ObiSolver Solver
		{
			[Token(Token = "0x6002BF7")]
			[Address(RVA = "0x4D0E90", Offset = "0x4CFE90", VA = "0x1804D0E90")]
			get
			{
				return this.solver;
			}
			[Token(Token = "0x6002BF8")]
			[Address(RVA = "0xF24930", Offset = "0xF23930", VA = "0x180F24930")]
			set
			{
				if (this.solver != value)
				{
					int num = 0;
					bool flag = this.RemoveFromSolver(num);
					this.solver = value;
				}
			}
		}

		// Token: 0x170002CD RID: 717
		// (get) Token: 0x06002BF9 RID: 11257 RVA: 0x00061C20 File Offset: 0x0005FE20
		// (set) Token: 0x06002BFA RID: 11258 RVA: 0x00061C34 File Offset: 0x0005FE34
		[Token(Token = "0x170002CD")]
		public ObiCollisionMaterial CollisionMaterial
		{
			[Token(Token = "0x6002BF9")]
			[Address(RVA = "0x33F2F0", Offset = "0x33E2F0", VA = "0x18033F2F0")]
			get
			{
				return this.collisionMaterial;
			}
			[Token(Token = "0x6002BFA")]
			[Address(RVA = "0xF24860", Offset = "0xF23860", VA = "0x180F24860")]
			set
			{
				if (this.collisionMaterial != value)
				{
					this.collisionMaterial = value;
					this.PushDataToSolver((ParticleData)((uint)512));
				}
			}
		}

		// Token: 0x170002CE RID: 718
		// (get) Token: 0x06002BFB RID: 11259 RVA: 0x00061C64 File Offset: 0x0005FE64
		[Token(Token = "0x170002CE")]
		public bool Initializing
		{
			[Token(Token = "0x6002BFB")]
			[Address(RVA = "0xF24700", Offset = "0xF23700", VA = "0x180F24700")]
			get
			{
				return this.initializing;
			}
		}

		// Token: 0x170002CF RID: 719
		// (get) Token: 0x06002BFC RID: 11260 RVA: 0x00061C78 File Offset: 0x0005FE78
		[Token(Token = "0x170002CF")]
		public bool Initialized
		{
			[Token(Token = "0x6002BFC")]
			[Address(RVA = "0xF246F0", Offset = "0xF236F0", VA = "0x180F246F0")]
			get
			{
				return this.initialized;
			}
		}

		// Token: 0x170002D0 RID: 720
		// (get) Token: 0x06002BFD RID: 11261 RVA: 0x00061C8C File Offset: 0x0005FE8C
		[Token(Token = "0x170002D0")]
		public bool InSolver
		{
			[Token(Token = "0x6002BFD")]
			[Address(RVA = "0xF246E0", Offset = "0xF236E0", VA = "0x180F246E0")]
			get
			{
				return this.inSolver;
			}
		}

		// Token: 0x170002D1 RID: 721
		// (get) Token: 0x06002BFE RID: 11262 RVA: 0x00061CA0 File Offset: 0x0005FEA0
		// (set) Token: 0x06002BFF RID: 11263 RVA: 0x00061CB4 File Offset: 0x0005FEB4
		[Token(Token = "0x170002D1")]
		public virtual bool SelfCollisions
		{
			[Token(Token = "0x6002BFE")]
			[Address(RVA = "0xF24710", Offset = "0xF23710", VA = "0x180F24710", Slot = "8")]
			get
			{
				return this.selfCollisions;
			}
			[Token(Token = "0x6002BFF")]
			[Address(RVA = "0xF24910", Offset = "0xF23910", VA = "0x180F24910", Slot = "9")]
			set
			{
				if (value != this.selfCollisions)
				{
					this.selfCollisions = value;
					long valueAsLong = base.ValueAsLong;
					return;
				}
			}
		}

		// Token: 0x170002D2 RID: 722
		// (get) Token: 0x06002C00 RID: 11264 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002D2")]
		public virtual Matrix4x4 ActorLocalToWorldMatrix
		{
			[Token(Token = "0x6002C00")]
			[Address(RVA = "0xF24620", Offset = "0xF23620", VA = "0x180F24620", Slot = "10")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170002D3 RID: 723
		// (get) Token: 0x06002C01 RID: 11265 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002D3")]
		public virtual Matrix4x4 ActorWorldToLocalMatrix
		{
			[Token(Token = "0x6002C01")]
			[Address(RVA = "0xF24680", Offset = "0xF23680", VA = "0x180F24680", Slot = "11")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x170002D4 RID: 724
		// (get) Token: 0x06002C02 RID: 11266 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170002D4")]
		public virtual bool UsesCustomExternalForces
		{
			[Token(Token = "0x6002C02")]
			[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "12")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002C03 RID: 11267 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C03")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "13")]
		public virtual void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C04 RID: 11268 RVA: 0x00061CDC File Offset: 0x0005FEDC
		[Token(Token = "0x6002C04")]
		[Address(RVA = "0xF241B0", Offset = "0xF231B0", VA = "0x180F241B0", Slot = "14")]
		public virtual void Start()
		{
			if (Application.isPlaying)
			{
				long valueAsLong = base.ValueAsLong;
				return;
			}
		}

		// Token: 0x06002C05 RID: 11269 RVA: 0x00061CFC File Offset: 0x0005FEFC
		[Token(Token = "0x6002C05")]
		[Address(RVA = "0xF22730", Offset = "0xF21730", VA = "0x180F22730", Slot = "15")]
		public virtual void OnDestroy()
		{
			long valueAsLong = base.ValueAsLong;
		}

		// Token: 0x06002C06 RID: 11270 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C06")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "16")]
		public virtual void DestroyRequiredComponents()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C07 RID: 11271 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C07")]
		[Address(RVA = "0xF228A0", Offset = "0xF218A0", VA = "0x180F228A0", Slot = "17")]
		public virtual void OnEnable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C08 RID: 11272 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C08")]
		[Address(RVA = "0xF22750", Offset = "0xF21750", VA = "0x180F22750", Slot = "18")]
		public virtual void OnDisable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C09 RID: 11273 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C09")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "19")]
		public virtual void ResetActor()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C0A RID: 11274 RVA: 0x00061D10 File Offset: 0x0005FF10
		[Token(Token = "0x6002C0A")]
		[Address(RVA = "0xF24340", Offset = "0xF23340", VA = "0x180F24340", Slot = "20")]
		public virtual void UpdateParticlePhases()
		{
			if (this.inSolver)
			{
				int[] array = this.phases;
				int num = 0;
				if (num < array.Length)
				{
					int num2 = array[num];
					int num3 = 0;
					int num4 = Oni.MakePhase(Oni.GetGroupFromPhase(num2), (Oni.ParticlePhase)num3);
					array[0] = num4;
					num++;
					int[] array2 = this.phases;
				}
				this.PushDataToSolver((ParticleData)((uint)128));
			}
		}

		// Token: 0x06002C0B RID: 11275 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C0B")]
		[Address(RVA = "0xF220E0", Offset = "0xF210E0", VA = "0x180F220E0", Slot = "21")]
		public virtual bool AddToSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C0C RID: 11276 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C0C")]
		[Address(RVA = "0xF241F0", Offset = "0xF231F0", VA = "0x180F241F0")]
		public void UpdateDeformableTriangles()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C0D RID: 11277 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C0D")]
		[Address(RVA = "0xF23D50", Offset = "0xF22D50", VA = "0x180F23D50", Slot = "22")]
		public virtual bool RemoveFromSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C0E RID: 11278 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C0E")]
		[Address(RVA = "0xF23520", Offset = "0xF22520", VA = "0x180F23520", Slot = "23")]
		public virtual void PushDataToSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C0F RID: 11279 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C0F")]
		[Address(RVA = "0xF230E0", Offset = "0xF220E0", VA = "0x180F230E0", Slot = "24")]
		public virtual void PullDataFromSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C10 RID: 11280 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C10")]
		[Address(RVA = "0xF225D0", Offset = "0xF215D0", VA = "0x180F225D0")]
		public Vector3 GetParticlePosition(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C11 RID: 11281 RVA: 0x00061D78 File Offset: 0x0005FF78
		[Token(Token = "0x6002C11")]
		[Address(RVA = "0x4990D0", Offset = "0x4980D0", VA = "0x1804990D0", Slot = "25")]
		public virtual bool GenerateTethers(ObiActor.TetherType type)
		{
			return true;
		}

		// Token: 0x06002C12 RID: 11282 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C12")]
		[Address(RVA = "0xF22510", Offset = "0xF21510", VA = "0x180F22510")]
		public void ClearTethers()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C13 RID: 11283 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C13")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "26")]
		public virtual void OnSolverPreInterpolation()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C14 RID: 11284 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C14")]
		[Address(RVA = "0xF22A00", Offset = "0xF21A00", VA = "0x180F22A00", Slot = "27")]
		public virtual void OnSolverStepBegin()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C15 RID: 11285 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C15")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "28")]
		public virtual void OnSolverStepEnd()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C16 RID: 11286 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C16")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "29")]
		public virtual void OnSolverFrameBegin()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C17 RID: 11287 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C17")]
		[Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0", Slot = "30")]
		public virtual void OnSolverFrameEnd()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C18 RID: 11288 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002C18")]
		[Address(RVA = "0x29A960", Offset = "0x299960", VA = "0x18029A960", Slot = "31")]
		public virtual bool ReadParticlePropertyFromTexture(Texture2D source, Action<int, Color> onReadProperty)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002C19 RID: 11289 RVA: 0x00061D88 File Offset: 0x0005FF88
		[Token(Token = "0x6002C19")]
		[Address(RVA = "0xF24430", Offset = "0xF23430", VA = "0x180F24430")]
		protected ObiActor()
		{
			Dictionary<Oni.ConstraintType, ObiBatchedConstraints> dictionary = new Dictionary();
			this.constraints = dictionary;
			int[] array = new int[0];
			this.deformableTriangles = array;
			base..ctor();
		}

		// Token: 0x04003561 RID: 13665
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003561")]
		[Range(0f, 1f)]
		public float worldVelocityScale;

		// Token: 0x04003562 RID: 13666
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003562")]
		[HideInInspector]
		public ObiCollisionMaterial collisionMaterial;

		// Token: 0x04003563 RID: 13667
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003563")]
		[HideInInspector]
		[NonSerialized]
		public int[] particleIndices;

		// Token: 0x04003564 RID: 13668
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003564")]
		protected Dictionary<Oni.ConstraintType, ObiBatchedConstraints> constraints;

		// Token: 0x04003565 RID: 13669
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003565")]
		[HideInInspector]
		public bool[] active;

		// Token: 0x04003566 RID: 13670
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003566")]
		[HideInInspector]
		public Vector3[] positions;

		// Token: 0x04003567 RID: 13671
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003567")]
		[HideInInspector]
		public Vector4[] restPositions;

		// Token: 0x04003568 RID: 13672
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003568")]
		[HideInInspector]
		public Vector3[] velocities;

		// Token: 0x04003569 RID: 13673
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4003569")]
		[HideInInspector]
		public float[] invMasses;

		// Token: 0x0400356A RID: 13674
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x400356A")]
		[HideInInspector]
		public float[] solidRadii;

		// Token: 0x0400356B RID: 13675
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x400356B")]
		[HideInInspector]
		public int[] phases;

		// Token: 0x0400356C RID: 13676
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x400356C")]
		[HideInInspector]
		public Color[] colors;

		// Token: 0x0400356D RID: 13677
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x400356D")]
		[HideInInspector]
		public int[] deformableTriangles;

		// Token: 0x0400356E RID: 13678
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400356E")]
		[NonSerialized]
		protected int trianglesOffset;

		// Token: 0x0400356F RID: 13679
		[FieldOffset(Offset = "0x94")]
		[Token(Token = "0x400356F")]
		private bool inSolver;

		// Token: 0x04003570 RID: 13680
		[FieldOffset(Offset = "0x95")]
		[Token(Token = "0x4003570")]
		protected bool initializing;

		// Token: 0x04003571 RID: 13681
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4003571")]
		[SerializeField]
		[HideInInspector]
		protected ObiSolver solver;

		// Token: 0x04003572 RID: 13682
		[FieldOffset(Offset = "0xA0")]
		[Token(Token = "0x4003572")]
		[HideInInspector]
		[SerializeField]
		protected bool selfCollisions;

		// Token: 0x04003573 RID: 13683
		[FieldOffset(Offset = "0xA1")]
		[Token(Token = "0x4003573")]
		[HideInInspector]
		[SerializeField]
		protected bool initialized;

		// Token: 0x020004E3 RID: 1251
		[Token(Token = "0x20004E3")]
		public class ObiActorSolverArgs : EventArgs
		{
			// Token: 0x170002D5 RID: 725
			// (get) Token: 0x06002C1A RID: 11290 RVA: 0x00061DB8 File Offset: 0x0005FFB8
			[Token(Token = "0x170002D5")]
			public ObiSolver Solver
			{
				[Token(Token = "0x6002C1A")]
				[Address(RVA = "0x32FD80", Offset = "0x32ED80", VA = "0x18032FD80")]
				get
				{
					return this.solver;
				}
			}

			// Token: 0x06002C1B RID: 11291 RVA: 0x00061DCC File Offset: 0x0005FFCC
			[Token(Token = "0x6002C1B")]
			[Address(RVA = "0x699FA0", Offset = "0x698FA0", VA = "0x180699FA0")]
			public ObiActorSolverArgs(ObiSolver solver)
			{
				/*
An exception occurred when decompiling this method (06002C1B)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.ObiActor/ObiActorSolverArgs::.ctor(Obi.ObiSolver)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	call:void(EventArgs::.ctor, ldloc:ObiActorSolverArgs[exp:EventArgs](this)); 	stfld:ObiSolver(ObiActorSolverArgs::solver, ldloc:ObiActorSolverArgs(this), ldloc:ObiSolver(solver)); }; 
   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: 0x04003574 RID: 13684
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x4003574")]
			private ObiSolver solver;
		}

		// Token: 0x020004E4 RID: 1252
		[Token(Token = "0x20004E4")]
		public enum TetherType
		{
			// Token: 0x04003576 RID: 13686
			[Token(Token = "0x4003576")]
			AnchorToFixed,
			// Token: 0x04003577 RID: 13687
			[Token(Token = "0x4003577")]
			Hierarchical
		}
	}
}
