anchor.diff:  String buildUrlIri(XmlElement def) => 'url(#${getAttribute(def, 'id')})';
   
   /// Parses a <def> element, extracting <linearGradient> and (TODO) <radialGradient> elements into the `paintServers` map.
  -/// 
  +///
   /// Returns any elements it was not able to process.
  -Iterable<XmlElement> parseDefs(XmlElement el, DrawableDefinitionServer definitions) sync* {
  +Iterable<XmlElement> parseDefs(
  +    XmlElement el, DrawableDefinitionServer definitions) sync* {
     for (XmlNode def in el.children) {
       if (def is XmlElement) {
         if (def.name.local.endsWith('Gradient')) {
  
positive.code:   }
  
    if (rawFill.startsWith('url')) {
      return definitions.getPaint(rawFill, bounds);
    }
  
    final String rawOpacity = getAttribute(el, 'fill-opacity');
  
negative.code:   return null;
  }
  
  Paint _getDefinitionPaint(
      String iri, DrawableDefinitionServer definitions, Rect bounds) {
    final Paint paint = definitions.getPaint(iri, bounds);
    if (paint == null) {
      FlutterError.onError(
        new FlutterErrorDetails(
          exception: new StateError('Failed to find definition for $iri'),
          context: 'in _getDefinitionPaint',
          library: 'SVG',
          informationCollector: (StringBuffer buff) {
            buff.writeln(
                'This library only supports <defs> that are defined ahead of their references. '
                'This error can be caused when the desired definition is defined after the element '
                'referring to it (e.g. at the end of the file), or defined in another file.');
            buff.writeln(
                'This error is treated as non-fatal, but your SVG file will likely not render as intended');
          },
        ),
      );
    }
    return paint;
  }
  
  /// Parses a @stroke attribute into a [Paint].
  Paint parseStroke(
      XmlElement el, Rect bounds, DrawableDefinitionServer definitions) {
  