input: from typing import Dict, List
  
  
  def chatbot(states: Dict[str, Dict[str, str]]) -> List[str]:
      """Given a dictionary of states representing a chatbot state diagram, this function 
      simulates a conversation with the user based on the state transitions defined in the states.
      The conversation continues until a terminal state is reached.
      The function returns a list of messages exchanged during the conversation.
  
      Example:
      for chatbot({
          'state0': {
              'name': 'state0',
              'message': 'Hello! How can I help you?',
              'replies': {'I need some advice': 'state1', 'Can you answer my questions?': 'state2'}
          },
          'state1': {
              'name': 'state1',
              'message': 'Sure, what kind of advice do you need?',
              'replies': {'Career advice': 'state3','Health advice': 'state4'}
          },
          'state2': {
              'name': 'state2',
              'message': 'Yes, I'll do my best! What do you want to know?',
              'replies': {'Where can I find good tutorials': 'state5', 'Why is coding so hard': 'state6'}
          },
          'state3': {
              'name': 'state3',
              'message': 'It is always a good idea to research the field you are interested in and creating a plan to learn the skills that are required. Make sure to contact professionals in the field to understand their experience.',
              'replies': {}
          },
          'state4': {
              'name': 'state4',
              'message': 'Focus on eating healthy and staying active. Make sure to consult a medical professional if you have any concerns.',
              'replies': {}
          },
          'state5': {
              'name': 'state5',
              'message': 'You can find tutorials online or join coding communities to get help from experienced coders. StackOverflow and Cod Academy are great resources.',
              'replies': {}
          },
          'state6': {
              'name': 'state6',
              'message': 'Coding can be challenging, especially at first. Just remember that with practice, patience and problem solving skills you can overcome the obstacles.',
              'replies': {}
          }
      }) == [
          'Hello! How can I help you?', 
          'I need some advice', 
          'Sure, what kind of advice do you need?', 
          'Career advice', 
          'It is always a good idea to research the field you are interested in and creating a plan to learn the skills that are required. Make sure to contact professionals in the field to understand their experience.', 
          'Goodbye!'
      ]
      """
output:     
      current_state = 'state0'
      conversation = []
      
      while states[current_state]['replies']:
          conversation.append(states[current_state]['message'])
          reply = list(states[current_state]['replies'].keys())[0]
          conversation.append(reply)
          current_state = states[current_state]['replies'][reply]
      
      conversation.append(states[current_state]['message'])
      conversation.append('Goodbye!')
      
      return conversation
  