code: def process_subprotocol(
          self, headers: Headers, available_subprotocols: Optional[Sequence[Subprotocol]]
      ) -> Optional[Subprotocol]:
          
          subprotocol: Optional[Subprotocol] = None
  
          header_values = headers.get_all("Sec-WebSocket-Protocol")
  
          if header_values and available_subprotocols:
  
              parsed_header_values: List[Subprotocol] = sum(
                  [parse_subprotocol(header_value) for header_value in header_values], []
              )
  
              subprotocol = self.select_subprotocol(
                  parsed_header_values, available_subprotocols
              )
  
          return subprotocol
docs: Handle the Sec-WebSocket-Protocol HTTP request header.
  
          Return Sec-WebSocket-Protocol HTTP response header, which is the same
          as the selected subprotocol.