anchor.diff:      procedure PacketSend(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind); overload;
       procedure PacketSend(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; aStream: TKMemoryStreamBinary); overload;
       procedure PacketSend(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; aParam: Integer); overload;
  +    procedure PacketSend(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; aParam: Cardinal); overload;
   //    procedure PacketSend(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; const aParams: array of Integer);
       procedure PacketSendInd(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; aIndexOnServer: TKMNetHandleIndex);
       procedure PacketSendA(aRecipient: TKMNetHandleIndex; aKind: TKMessageKind; const aText: AnsiString);
  
positive.code:   tmpStringA: AnsiString;
    tmpStringW, replyStringW: UnicodeString;
    tmpChatMode: TKMChatMode;
    I,LocID,TeamID,Color,PlayerIndex: Integer;
    ChatSound: TKMChatSound;
  begin
    Assert(aLength >= 1, 'Unexpectedly short message'); //Kind, Message
  
negative.code:               if IsHost then
                begin
                  M.Read(tmpCardinal);
                  //The player list could have changed since the joiner sent this request (over slow connection)
                  if fNetPlayers.ColorAvailable(tmpCardinal)
                  and ((fSelectGameKind <> ngkSave) or not SaveInfo.IsValid or not SaveInfo.GameInfo.ColorUsed(tmpCardinal)) then
                  begin
                    fNetPlayers[fNetPlayers.ServerToLocal(aSenderIndex)].FlagColor := tmpCardinal;
                    SendPlayerListAndRefreshPlayersSetup;
                  end
                  else //Quietly refuse
  