input: def extract_even_min(arr):
      """
      "Given an array that represents a branch of a tree and includes non-negative integer nodes,
      the task is to extract one node and return it.
      The node to be extracted should have the smallest even value.
      If there are multiple nodes with the smallest even value, return the node that appears first in the array.
      
      The extracted node should be returned in a list, [smallest_value, its index].
      If the array is empty or contains no even values, return [].
  
      Example 1:
          Input: [4,2,3]
          Output: [2, 1]
          Explanation: 2 is the smallest even value and is at the smallest index.
  
      Example 2:
          Input: [1,2,3]
          Output: [2, 1]
          Explanation: 2 is the smallest even value and is at the smallest index.
  
      Example 3:
          Input: []
          Output: []
  
      Example 4:
          Input: [5, 0, 3, 0, 4, 2]
          Output: [0, 1]
          Explanation: 0 is the smallest value, and it appears twice.
                       The first 0 is chosen as it has the smallest index.
  
      Constraints:
          * 1 <= nodes.length <= 10000
          * 0 <= node.value
      """
output:     
      if not arr:
          return []
      
      min_even = float('inf')
      min_index = -1
      
      for i, num in enumerate(arr):
          if num % 2 == 0 and num < min_even:
              min_even = num
              min_index = i
      
      if min_index == -1:
          return []
      
      return [min_even, min_index]
  