anchor.diff:      return new PictureInfo(picture: pic, viewBox: svgRoot.viewBox);
     }
   
  -  FutureOr<PictureInfo> svgPictureStringDecoder(
  -      String raw, bool allowDrawingOutsideOfViewBox, ColorFilter colorFilter, String key) {
  +  /// Produces a [PictureInfo] from a [String] of SVG data.
  +  ///
  +  /// The `allowDrawingOutsideOfViewBox` parameter should be used with caution -
  +  /// if set to true, it will not clip the canvas used internally to the view box,
  +  /// meaning the picture may draw beyond the intended area and lead to undefined
  +  /// behavior or additional memory overhead.
  +  ///
  +  /// The `colorFilter` property will be applied to any [Paint] objects used during drawing.
  +  ///
  +  /// The [key] will be used for debugging purposes.
  +  FutureOr<PictureInfo> svgPictureStringDecoder(String raw,
  +      bool allowDrawingOutsideOfViewBox, ColorFilter colorFilter, String key) {
       final DrawableRoot svg = fromSvgString(raw, key);
       return new PictureInfo(
           picture: svg.toPicture(
  
positive.code: import 'src/svg_parser.dart';
  import 'src/vector_drawable.dart';
  
  final Svg svg = new Svg._();
  
  class Svg {
    Svg._();
  
    FutureOr<PictureInfo> svgPictureDecoder(Uint8List raw,
        bool allowDrawingOutsideOfViewBox, ColorFilter colorFilter, String key) async {
      final DrawableRoot svgRoot = await fromSvgBytes(raw, key);
      final Picture pic = svgRoot.toPicture(
          clipToViewBox: allowDrawingOutsideOfViewBox == true ? false : true,
  
negative.code:   }
  }
  
  /// A widget that will parse SVG data into a [Picture] using a [PictureProvider].
  ///
  /// The picture will be cached using the [PictureCache], incorporating any color
  /// filterting used into the key (meaning the same SVG with two different `color`
  /// arguments applied would be two cache entries).
  class SvgPicture extends StatefulWidget {
    /// The default placeholder for a SVG that may take time to parse or
    /// retreieve, e.g. from a network location.
    static WidgetBuilder defaultPlaceholderBuilder =
        (BuildContext ctx) => const LimitedBox();
  
    /// Instantiates a widget that renders an SVG picture using the `pictureProvider`.
    ///
    /// If `width` or `height` are specified, a [SizedBox] will be used to dictate
    /// the width and height of the rendered output.  Otherwise, the picture will
    /// be sized to its parent.
    ///
    /// If `matchTextDirection` is set to true, the picture will be flipped
    /// horizontally in [TextDirection.rtl] contexts.
    ///
    /// The `allowDrawingOutsideOfViewBox` parameter should be used with caution -
    /// if set to true, it will not clip the canvas used internally to the view box,
    /// meaning the picture may draw beyond the intended area and lead to undefined
    /// behavior or additional memory overhead.
    ///
    /// A custom `placeholderBuilder` can be specified for cases where decoding or
    /// acquiring data may take a noticeably long time, e.g. for a network picture.
    const SvgPicture(this.pictureProvider,
        {Key key,
        this.width,
        this.height,
        this.matchTextDirection = false,
        this.allowDrawingOutsideViewBox = false,
        this.placeholderBuilder})
        : super(key: key);
  
    /// Instantiates a widget that renders an SVG picture from an [AssetBundle].
    ///
    /// The key will be derived from the `assetName`, `package`, and `bundle`
    /// arguments. The `package` argument must be non-null when displaying an SVG
    /// from a package and null otherwise. See the `Assets in packages` section for
    /// details.
    ///
    /// If `width` or `height` are specified, a [SizedBox] will be used to dictate
    /// the width and height of the rendered output.  Otherwise, the picture will
    /// be sized to its parent.
    ///
    /// If `matchTextDirection` is set to true, the picture will be flipped
    /// horizontally in [TextDirection.rtl] contexts.
    ///
    /// The `allowDrawingOutsideOfViewBox` parameter should be used with caution -
    /// if set to true, it will not clip the canvas used internally to the view box,
    /// meaning the picture may draw beyond the intended area and lead to undefined
    /// behavior or additional memory overhead.
    ///
    /// A custom `placeholderBuilder` can be specified for cases where decoding or
    /// acquiring data may take a noticeably long time.
    ///
    /// The `color` and `colorBlendMode` arguments, if specified, will be used to set a
    /// [ColorFilter] on any [Paint]s created for this drawing.
    ///
    /// ## Assets in packages
    ///
    /// To create the widget with an asset from a package, the [package] argument
    /// must be provided. For instance, suppose a package called `my_icons` has
    /// `icons/heart.svg` .
    ///
    /// Then to display the image, use:
    ///
    /// ```dart
    /// new SvgPicture.asset('icons/heart.svg', package: 'my_icons')
    /// ```
    ///
    /// Assets used by the package itself should also be displayed using the
    /// [package] argument as above.
    ///
    /// If the desired asset is specified in the `pubspec.yaml` of the package, it
    /// is bundled automatically with the app. In particular, assets used by the
    /// package itself must be specified in its `pubspec.yaml`.
    ///
    /// A package can also choose to have assets in its 'lib/' folder that are not
    /// specified in its `pubspec.yaml`. In this case for those images to be
    /// bundled, the app has to specify which ones to include. For instance a
    /// package named `fancy_backgrounds` could have:
    ///
    /// ```
    /// lib/backgrounds/background1.svg
    /// lib/backgrounds/background2.svg
    /// lib/backgrounds/background3.svg
    ///```
    ///
    /// To include, say the first image, the `pubspec.yaml` of the app should
    /// specify it in the assets section:
    ///
    /// ```yaml
    ///  assets:
    ///    - packages/fancy_backgrounds/backgrounds/background1.svg
    /// ```
    ///
    /// The `lib/` is implied, so it should not be included in the asset path.
    ///
    ///
    /// See also:
    ///
    ///  * [AssetPicture], which is used to implement the behavior when the scale is
    ///    omitted.
    ///  * [ExactAssetPicture], which is used to implement the behavior when the
    ///    scale is present.
    ///  * <https://flutter.io/assets-and-images/>, an introduction to assets in
    ///    Flutter.
    SvgPicture.asset(String assetName,
        {Key key,
        this.matchTextDirection = false,
        AssetBundle bundle,
        String package,
        this.width,
        this.height,
        this.allowDrawingOutsideViewBox = false,
        this.placeholderBuilder,
        Color color,
  