anchor.diff:  		Req2#http_req{meta=[{websocket_version, IntVersion}|Meta]}}.
   
   -spec handler_init(#state{}, cowboy_req:req()) -> closed.
  -handler_init(State=#state{handler=Handler, opts=Opts},
  -		Req=#http_req{transport=Transport}) ->
  +handler_init(State=#state{transport=Transport, handler=Handler, opts=Opts},
  +		Req) ->
   	try Handler:websocket_init(Transport:name(), Req, Opts) of
   		{ok, Req2, HandlerState} ->
   			websocket_handshake(State, Req2, HandlerState);
  
positive.code: 		Req2, HandlerState, <<>>).
  
  -spec handler_before_loop(#state{}, cowboy_req:req(), any(), binary()) -> closed.
  handler_before_loop(State=#state{hibernate=true},
  		Req=#http_req{socket=Socket, transport=Transport},
  		HandlerState, SoFar) ->
  	Transport:setopts(Socket, [{active, once}]),
  	State2 = handler_loop_timeout(State),
  	catch erlang:hibernate(?MODULE, handler_loop,
  		[State2#state{hibernate=false}, Req, HandlerState, SoFar]),
  	closed;
  handler_before_loop(State, Req=#http_req{socket=Socket, transport=Transport},
  		HandlerState, SoFar) ->
  	Transport:setopts(Socket, [{active, once}]),
  	State2 = handler_loop_timeout(State),
  	handler_loop(State2, Req, HandlerState, SoFar).
  
negative.code: 			NextState(State#state{hibernate=true},
  				Req2, HandlerState2, RemainingData);
  		{reply, Payload, Req2, HandlerState2} ->
  			websocket_send(Payload, State),
  			NextState(State, Req2, HandlerState2, RemainingData);
  		{reply, Payload, Req2, HandlerState2, hibernate} ->
  			websocket_send(Payload, State),
  			NextState(State#state{hibernate=true},
  				Req2, HandlerState2, RemainingData);
  		{shutdown, Req2, HandlerState2} ->
  