anchor.diff:                  'Push timed out: Total time exceeds 5 minutes');
             });
       }).then((msg) {
  -      monitor.worked(3);
  +      monitor.worked(6);
         String resp = new String.fromCharCodes(msg);
         List<String> lines = resp.split('\r\n');
         Iterable<String> header = lines.takeWhile((l) => l.isNotEmpty);
  
positive.code:         return new Future.error(
              '${header.first.substring(header.first.indexOf(' ') + 1)}: $body');
        } else {
          return body;
        }
      }).whenComplete(() {
        if (_device != null) _device.dispose();
  
negative.code:     });
    }
  
    /**
     * Launch an app with appId on given target address.  If target is
     * null, will be sent to USB device.
     */
    List<int> _buildLaunchRequest(String appId, [String target = null]) {
      List<int> httpRequest = [];
      // Build the HTTP request headers.
      String header =
          'POST /launch HTTP/1.1\r\n'
          'User-Agent: Spark IDE\r\n';
      String body = "appId=$appId";
  
      httpRequest.addAll(header.codeUnits);
      httpRequest.addAll('Content-length: ${body.length}\r\n\r\n'.codeUnits);
      httpRequest.addAll(body.codeUnits);
  
      return httpRequest;
    }
  
    List<int> _buildHttpRequest(String target, List<int> payload) {
      List<int> httpRequest = [];
      // Build the HTTP request headers.
      String header =
  