code: def parity(num: int) -> int:
      
      if num < 0:
          raise ValueError("expected num >= 0")
      par = 0
      while num:
          par ^= (num & 1)
          num >>= 1
      return par
docs: Return the parity of a non-negative integer.
  
      For example, here are the parities of the first ten integers:
  
      >>> [parity(n) for n in range(10)]
      [0, 1, 1, 0, 1, 0, 0, 1, 1, 0]
  
      This function is undefined for negative integers:
  
      >>> parity(-1)
      Traceback (most recent call last):
          ...
      ValueError: expected num >= 0