anchor.diff:      // TODO(mpcomplete): This hack prevents the previousRoute from animating
       // when we pop(). Remove once we fix this bug:
       // https://github.com/flutter/flutter/issues/5577
  -    if (!Navigator.of(context).userGestureInProgress)
  +    bool userGesture = Navigator.of(context).userGestureInProgress;
  +    if (!userGesture)
         forwardAnimation = kAlwaysDismissedAnimation;
   
       ThemeData theme = Theme.of(context);
  
positive.code:   double get value => (first.value + next.value) / 2.0;
  }
  
  // Custom curve for iOS page transitions. The halfway point is when the page
  // is fully on-screen. 0.0 is fully off-screen to the right. 1.0 is off-screen
  // to the left.
  class _CupertinoTransitionCurve extends Curve {
    _CupertinoTransitionCurve();
  
    @override
    double transform(double t) {
      if (t > 0.5)
        return (t - 0.5) / 3.0 + 0.5;
      return t;
    }
  }
  
negative.code:         );
        case TargetPlatform.iOS:
          return new _CupertinoPageTransition(
            // Use a linear curve when controlled by a user gesture. This ensures
            // the animation tracks the user's finger 1:1.
            // See https://github.com/flutter/flutter/issues/5664
            curve: userGesture ? null : Curves.fastOutSlowIn,
            animation: new AnimationMean(left: animation, right: forwardAnimation),
            child: child
          );
  