anchor.diff:    /// Creates a driver that uses a connection provided by the given
     /// [_serviceClient], [_peer] and [_appIsolate].
     @visibleForTesting
  -  FlutterDriver.connectedTo(this._serviceClient, this._peer, this._appIsolate);
  +  FlutterDriver.connectedTo(this._serviceClient, this._peer, this._appIsolate,
  +      { bool printCommunication: false, bool logCommunicationToFile: true })
  +      : _printCommunication = printCommunication,
  +        _logCommunicationToFile = logCommunicationToFile,
  +        _driverId = _nextDriverId++;
   
     static const String _kFlutterExtensionMethod = 'ext.flutter.driver';
     static const String _kSetVMTimelineFlagsMethod = '_setVMTimelineFlags';
     static const String _kGetVMTimelineMethod = '_getVMTimeline';
     static const Duration _kRpcGraceTime = const Duration(seconds: 2);
   
  +  static int _nextDriverId = 0;
  +
     /// Connects to a Flutter application.
     ///
     /// Resumes the application if it is currently paused (e.g. at a breakpoint).
  
positive.code:   /// [dartVmServiceUrl] is the URL to Dart observatory (a.k.a. VM service). If
    /// not specified, the URL specified by the `VM_SERVICE_URL` environment
    /// variable is used, or 'http://localhost:8183'.
    static Future<FlutterDriver> connect({String dartVmServiceUrl}) async {
      dartVmServiceUrl ??= Platform.environment['VM_SERVICE_URL'];
      dartVmServiceUrl ??= 'http://localhost:8183';
  
  
negative.code:       isolate = await vm.isolates.first.loadRunnable();
      }
  
      FlutterDriver driver = new FlutterDriver.connectedTo(
          client, connection.peer, isolate,
          printCommunication: printCommunication,
          logCommunicationToFile: logCommunicationToFile
      );
  
      // Attempts to resume the isolate, but does not crash if it fails because
      // the isolate is already resumed. There could be a race with other tools,
  