anchor.diff:  handle_sync_event(get_state, _From, StateName, StateData) ->
       {reply, StateName, StateName, StateData}.
   
  -
  -handle_info(_Info, StateName, StateData) -> {next_state, StateName, StateData};
  -
   %% just after setup, this message will arrive.
   handle_info(#'basic.consume_ok'{}, good, State) ->
  -	{noreply, State};
  +	{next_state, good, State};
   
  -handle_info( {#'basic.deliver'{routing_key = _RoutingKey}, #amqp_msg{payload = Body}} , good,  State) ->
  -	{_ServerIp, ToClientEx, _FromClientEx, {_Connection, ChTC, _ChFC}} = State,
  -	%% BinMsg = [<<"info: Auto-reply, this is move_srv! your message is ">> , Body],
  -	BinMsg = Body,
  -	BinRoutingKey = list_to_binary("move.map.all"),
  +handle_info( {#'basic.deliver'{routing_key = _RoutingKey}, #amqp_msg{payload = Body}} , good,
  +		#pcstat{stat = Hp, mq = Mq}) ->
  +	{_ServerIp, ToClientEx, _FromClientEx, {_Connection, ChTC, _ChFC}} = Mq,
  +	Message = Body ,
   	amqp_channel:cast(ChTC,
  -		#'basic.publish'{exchange = ToClientEx, routing_key = BinRoutingKey },
  -		#amqp_msg{payload = BinMsg}),
  -	{noreply, State}.
  +		#'basic.publish'{exchange = ToClientEx, routing_key = <<"chat.open">> },
  +		#amqp_msg{payload = Message}),
  +	{next_state, good,
  +		#pcstat{stat = Hp, mq = Mq}
  +	};
  +
  +%% 
  +%% handle_info( {#'basic.deliver'{routing_key = _RoutingKey}, #amqp_msg{payload = Body}} , good,  State) ->
  +%% 	{_ServerIp, ToClientEx, _FromClientEx, {_Connection, ChTC, _ChFC}} = State,
  +%% 	%% BinMsg = [<<"info: Auto-reply, this is move_srv! your message is ">> , Body],
  +%% 	BinMsg = Body,
  +%% 	BinRoutingKey = list_to_binary("move.map.all"),
  +%% 	amqp_channel:cast(ChTC,
  +%% 		#'basic.publish'{exchange = ToClientEx, routing_key = BinRoutingKey },
  +%% 		#amqp_msg{payload = BinMsg}),
  +%%	{noreply, State};
  +%% 
  +
  +handle_info(_Info, StateName, StateData) -> {next_state, StateName, StateData}.
   
   code_change(_OldVsn, StateName, StateData, _Extra) -> {ok, StateName, StateData}.
   
  
positive.code: 
  
  %% while subscribing, message will be delivered by #amqp_msg
  chat_info( {#'basic.deliver'{routing_key = _RoutingKey}, #amqp_msg{payload = Body}} , State) ->
  	{_ServerIp, ToClientEx, _FromClientEx, {_Connection, ChTC, _ChFC}} = State,
  	Message = Body ,
  	amqp_channel:cast(ChTC,
  		#'basic.publish'{exchange = ToClientEx, routing_key = <<"chat.open">> },
  		#amqp_msg{payload = Message}),
  	{noreply, State}.
  
  chat_info({broadcast, Id, Payload}, From, State) ->
  	{_ServerIp, ToClientEx, FromClientEx, {_Connection, ChTC, _ChFC}} = State,
  	BinMsg = jsx:encode([{<<"id">>, list_to_binary(Id)}, {<<"message">>, list_to_binary(Payload)}]),
  
negative.code: 
  -include_lib("amqp_client.hrl").
  -include("emmo.hrl").
  
  -export([activate/0]).
  
  -export([start_link/1, stop/1]).
  -export([attack/2, get_state/1]).
  