I am trying to add the ability to sit to this code, but it gives me an error

this is code
using UnityEngine;

public class FPSController : MonoBehaviour
{
public bool CanMove {get; private set; } = true;
private bool IsSprinting => canSprint && Input.GetKey(sprintKey);
private bool ShouldJump => Input.GetKeyDown(jumpKey) && characterController.isGrounded;
private bool shouldCrouch => Input.GetKeyDown(crouchKey) && !duringCrouchAnimation && characterController.isGrounded;

[Header("Functional Options")]
[SerializeField] private bool canSprint = true;
[SerializeField] private bool canJump = true;
[SerializeField] private bool canCrouch = true;
[Header("Controls")]
[SerializeField] private KeyCode sprintKey = KeyCode.LeftShift;
[SerializeField] private KeyCode jumpKey = KeyCode.Space;
[SerializeField] private KeyCode crouchKey = KeyCode.LeftControl;

[Header("Movement Parameters")]
[SerializeField] private float walkSpeed = 3.0f;
[SerializeField] private float sprintSpeed = 6.0f;
[SerializeField] private float crouchSpeed = 1.5f;


[Header("Look Parameters")]
[SerializeField, Range(1, 10)] private float lookSpeedX=2.0f;
[SerializeField, Range(1, 10)] private float lookSpeedY=2.0f;
[SerializeField, Range(1, 180)] private float upperLookLimit = 80.0f;
[SerializeField, Range(1, 180)] private float lowerLookLimit=80.0f;

[Header("Jumping Parameters")]
[SerializeField] private float jumpForce = 8.0f;
[SerializeField] private float gravity = 30.0f;

[Header("Crouch Parameters")]
[SerializeField] private float crouchHeight = 0.5f;
[SerializeField] private float tandingHeight = 2.0f;
[SerializeField] private float timeToCrouch = 0.25;
[SerializeField] private Vector3 crouchingCenter = new Vector3(0,0.5f,0);
[SerializeField] private Vector3 standingCenter = new Vector3 (0,0,0);
private bool isCrouching;
private bool duringCrouchAnimation;

private Camera playerCamera;
private CharacterController characterController;

private Vector3 moveDirection;
private Vector2 currentInput;

private float rotationX = 0;
void Awake()
{
    playerCamera = GetComponentInChildren<Camera> () ;
    characterController = GetComponent<CharacterController> ();
    Cursor.lockState = CursorLockMode.Locked;
    Cursor.visible = false ;
}

void Update()
{
    if(CanMove)  
    {
        HandleMovementInput();
        HandleMouceLock();
        if (canJump)
            HandleJump();
        if (canCrouch)
            HandleCrouch();
        ApplyFinalMovement();
    }
}

private void HandleMovementInput ()
{
currentInput = new Vector2 ((isCrouching ? crouchSpeed : IsSprinting ? sprintSpeed : walkSpeed) * Input.GetAxis(“Vertical”), (isCrouching ? crouchSpeed : IsSprinting ? sprintSpeed : walkSpeed) * Input.GetAxis(“Horizontal”));

float moveDirectionY = moveDirection.y;
moveDirection = (transform.TransformDirection(Vector3.forward) * currentInput.x) + (transform.TransformDirection(Vector3.right) * currentInput.y);
moveDirection.y = moveDirectionY;

}

private void HandleMouceLock ()
{
rotationX -= Input.GetAxis(“Mouse Y”) *lookSpeedY;
rotationX = Mathf.Clamp(rotationX, -upperLookLimit, lowerLookLimit);
playerCamera.transform.localRotation = Quaternion.Euler(rotationX, 0, 0);
transform.rotation *=Quaternion.Euler(0, Input.GetAxis(“Mouse X”) * lookSpeedX, 0);
}
private void HandleJump ()
{
if (ShouldJump)
moveDirection.y = jumpForce;
}
private void HandleCrouch ()
{
if(shouldCrouch)
StartCoroutine(CrouchStand());
}
private void ApplyFinalMovement ()
{
if (characterController.isGrounded)
if (characterController.velocity.y > 0 && characterController.isGrounded)
moveDirection.y = 0;
moveDirection.y -= gravity * Time.deltaTime;
characterController.Move(moveDirection * Time.deltaTime);

}
private IEnumerator CrouchStand ()
{
duringCrouchAnimation = ture;

float timeElapsed = 0;
float targetHeight = isCrouching ? standingHeight : crouchHeight;
float currentHeight = characterController.Height;
Vector3 targetCenter = isCrouching ? standingCenter : crouchingCenter;
Vector3 currentCenter = characterController.Center;

while (timeElapsed < timeToCrouch)
{
    characterController.Height = Mathf.Lerp(currentHeight, targetHeight, timeElapsed/timeToCrouch);
    characterController.Center = Vector3.Lerp(currentCenter, targetCenter, timeElapsed/timeToCrouch);
    timeElapsed += Time.deltaTime;
    yield return null;
}
    characterController.Height = targetHeight;
    characterController.Center = targetCenter;
    isCrouching = ! isCrouching;
duringCrouchAnimation = false;

}
}//class
the error is IEnumerator is not find (forget reference but i don’t find it)