anchor.diff:  
   type
     IMultiplexedProcessor = interface( IProcessor)
  -    ['{810FF32D-22A2-4D58-B129-B0590703ECEC}']
  +    ['{807F9D19-6CF4-4789-840E-93E87A12EB63}']
       // Register a service with this TMultiplexedProcessor.  This allows us
       // to broker requests to individual services by using the service name
       // to select them at request time.
  -    procedure RegisterProcessor( const serviceName : String; const processor : IProcessor);
  +    procedure RegisterProcessor( const serviceName : String; const processor : IProcessor; const asDefault : Boolean = FALSE);
     end;
   
   
  
positive.code:   end;
  
    // Extract the service name
    idx := Pos( TMultiplexedProtocol.SEPARATOR, msg.Name);
    if idx < 1 then begin
      Error( oprot, msg,
             TApplicationExceptionInvalidProtocol,
             Format(ERROR_INCOMPATIBLE_PROT,[msg.Name]));
      Exit( FALSE);
    end;
  
    // Create a new TMessage, something that can be consumed by any TProtocol
    sService := Copy( msg.Name, 1, idx-1);
    if not FServiceProcessorMap.TryGetValue( sService, processor)
    then begin
      Error( oprot, msg,
             TApplicationExceptionInternalError,
             Format(ERROR_UNKNOWN_SERVICE,[sService]));
      Exit( FALSE);
    end;
  
    // Create a new TMessage, removing the service name
    Inc( idx, Length(TMultiplexedProtocol.SEPARATOR));
    Init( newMsg, Copy( msg.Name, idx, MAXINT), msg.Type_, msg.SeqID);
  
    // Dispatch processing to the stored processor
    protocol := TStoredMessageProtocol.Create( iprot, newMsg);
    result   := processor.process( protocol, oprot, events);
  
negative.code: 
    private
      FServiceProcessorMap : TDictionary<String, IProcessor>;
      FDefaultProcessor : IProcessor;
  
      procedure Error( const oprot : IProtocol; const msg : TThriftMessage;
                       extype : TApplicationExceptionSpecializedClass; const etxt : string);
  