#
System.Windows.Media.Animation
Namespace

Provides types that support property animation functionality, including timelines, storyboards, and key frames.

## Classes

Animatable |
Abstract class that provides animation support. |

AnimationClock |
Maintains the run-time state of an AnimationTimeline and processes its output values. |

AnimationException |
The exception that is thrown when an error occurs while animating a property. |

AnimationTimeline |
Defines a segment of time over which output values are produced. These values are used to animate a target property. |

BackEase |
Represents an easing function that retracts the motion of an animation slightly before it begins to animate in the path indicated. |

BeginStoryboard |
A trigger action that begins a Storyboard and distributes its animations to their targeted objects and properties. |

BooleanAnimationBase |
Abstract class that, when implemented, animates a Boolean value. |

BooleanAnimationUsingKeyFrames |
Animates the value of a property that takes a Boolean along a set of KeyFrames over a specified Duration. |

BooleanKeyFrame |
Abstract class that, when implemented, defines a segment with its own target value and interpolation method for a BooleanAnimationUsingKeyFrames. |

BooleanKeyFrameCollection |
Represents a collection of BooleanKeyFrame objects. |

BounceEase |
Represents an easing function that creates an animated bouncing effect. |

ByteAnimation |
Animates the value of a Byte property between two target values using linear interpolation over a specified Duration. |

ByteAnimationBase |
Abstract class that, when implemented, animates a Byte value. |

ByteAnimationUsingKeyFrames |
Animates the value of a Byte property along a set of KeyFrames. |

ByteKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a ByteAnimationUsingKeyFrames. |

ByteKeyFrameCollection |
Represents a collection of ByteKeyFrame objects. |

CharAnimationBase |
Abstract class that, when implemented, animates a Char value. |

CharAnimationUsingKeyFrames |
Animates the value of a Char property along a set of KeyFrames over a specified Duration. |

CharKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a CharAnimationUsingKeyFrames. |

CharKeyFrameCollection |
Represents a collection of CharKeyFrame objects. |

CircleEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using a circular function. |

Clock |
Maintains run-time timing state for a Timeline. |

ClockCollection |
Represents an ordered collection of Clock objects. |

ClockController |
Interactively controls a Clock. |

ClockGroup |
An assemblage of Clock types with behavior based off of a TimelineGroup. |

ColorAnimation |
Animates the value of a Color property between two target values using linear interpolation over a specified Duration. |

ColorAnimationBase |
Abstract class that, when implemented, animates a Color value. |

ColorAnimationUsingKeyFrames |
Animates the value of a Color property along a set of KeyFrames over a specified Duration. |

ColorKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a ColorAnimationUsingKeyFrames. |

ColorKeyFrameCollection |
Represents a collection of ColorKeyFrame objects. |

ControllableStoryboardAction |
Manipulates a Storyboard that has been applied by a BeginStoryboard action. |

CubicEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using the formula |

DecimalAnimation |
Animates the value of a Decimal property between two target values using linear interpolation over a specified Duration. |

DecimalAnimationBase |
Abstract class that, when implemented, animates a Decimal value. |

DecimalAnimationUsingKeyFrames |
Animates the value of a Decimal property along a set of KeyFrames. |

DecimalKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a DecimalAnimationUsingKeyFrames. |

DecimalKeyFrameCollection |
Represents a collection of DecimalKeyFrame objects. |

DiscreteBooleanKeyFrame |
Animates from the Boolean value of the previous key frame to its own Value using discrete interpolation. |

DiscreteByteKeyFrame |
Animates from the Byte value of the previous key frame to its own Value using discrete interpolation. |

DiscreteCharKeyFrame |
Animates from the Char value of the previous key frame to its own Value using discrete interpolation. |

DiscreteColorKeyFrame |
Animates from the Color value of the previous key frame to its own Value using discrete interpolation. |

DiscreteDecimalKeyFrame |
Animates from the Decimal value of the previous key frame to its own Value using discrete interpolation. |

DiscreteDoubleKeyFrame |
Animates from the Double value of the previous key frame to its own Value using discrete interpolation. |

DiscreteInt16KeyFrame |
Animates from the Int16 value of the previous key frame to its own Value using discrete interpolation. |

DiscreteInt32KeyFrame |
Animates from the Int32 value of the previous key frame to its own Value using discrete interpolation. |

DiscreteInt64KeyFrame |
Animates from the Int64 value of the previous key frame to its own Value using discrete interpolation. |

DiscreteMatrixKeyFrame |
Animates from the Matrix value of the previous key frame to its own Value using discrete interpolation. |

DiscreteObjectKeyFrame |
Animates from the Object value of the previous key frame to its own Value using discrete interpolation. |

DiscretePoint3DKeyFrame |
Animates from the Point3D value of the previous key frame to its own Value using discrete interpolation. |

DiscretePointKeyFrame |
Animates from the Point value of the previous key frame to its own Value using discrete interpolation. |

DiscreteQuaternionKeyFrame |
Animates from the Quaternion value of the previous key frame to its own Value using discrete interpolation. |

DiscreteRectKeyFrame |
Animates from the Rect value of the previous key frame to its own Value using discrete interpolation. |

DiscreteRotation3DKeyFrame |
Animates from the Rotation3D value of the previous key frame to its own Value using discrete interpolation. |

DiscreteSingleKeyFrame |
Animates from the Single value of the previous key frame to its own Value using discrete interpolation. |

DiscreteSizeKeyFrame |
Animates from the Size value of the previous key frame to its own Value using discrete interpolation. |

DiscreteStringKeyFrame |
Animates from the String value of the previous key frame to its own Value using discrete interpolation. |

DiscreteThicknessKeyFrame |
Animates from the Thickness value of the previous key frame to its own Value using discrete interpolation. |

DiscreteVector3DKeyFrame |
Animates from the Vector3D value of the previous key frame to its own Value using discrete interpolation. |

DiscreteVectorKeyFrame |
Animates from the Vector value of the previous key frame to its own Value using discrete interpolation. |

DoubleAnimation |
Animates the value of a Double property between two target values using linear interpolation over a specified Duration. |

DoubleAnimationBase |
Abstract class that, when implemented, animates a Double value. |

DoubleAnimationUsingKeyFrames |
Animates the value of a Double property along a set of KeyFrames. |

DoubleAnimationUsingPath |
Animates the value of a Double property between two or more target values using a PathGeometry to specify those values. This animation can be used to move a visual object along a path. |

DoubleKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a DoubleAnimationUsingKeyFrames. |

DoubleKeyFrameCollection |
Represents a collection of DoubleKeyFrame objects. |

EasingByteKeyFrame |
A class that enables you to associate easing functions with a ByteAnimationUsingKeyFrames key frame animation. |

EasingColorKeyFrame |
A class that enables you to associate easing functions with a ColorAnimationUsingKeyFrames key frame animation. |

EasingDecimalKeyFrame |
An abstract class that enables you to associate easing functions with a DecimalAnimationUsingKeyFrames key frame animation. |

EasingDoubleKeyFrame |
A class that enables you to associate easing functions with a DoubleAnimationUsingKeyFrames key frame animation. |

EasingFunctionBase |
Provides the base class for all the easing functions. |

EasingInt16KeyFrame |
A class that enables you to associate easing functions with a Int16AnimationUsingKeyFrames key frame animation. |

EasingInt32KeyFrame |
A class that enables you to associate easing functions with a Int32AnimationUsingKeyFrames key frame animation. |

EasingInt64KeyFrame |
A class that enables you to associate easing functions with a Int64AnimationUsingKeyFrames key frame animation. |

EasingPoint3DKeyFrame |
A class that enables you to associate easing functions with a Point3DAnimationUsingKeyFrames key frame animation. |

EasingPointKeyFrame |
A class that enables you to associate easing functions with a PointAnimationUsingKeyFrames key frame animation. |

EasingQuaternionKeyFrame |
A class that enables you to associate easing functions with a QuaternionAnimationUsingKeyFrames key frame animation. |

EasingRectKeyFrame |
A class that enables you to associate easing functions with a RectAnimationUsingKeyFrames key frame animation. |

EasingRotation3DKeyFrame |
A class that enables you to associate easing functions with a Rotation3DAnimationUsingKeyFrames key frame animation. |

EasingSingleKeyFrame |
A class that enables you to associate easing functions with a SingleAnimationUsingKeyFrames key frame animation. |

EasingSizeKeyFrame |
A class that enables you to associate easing functions with a SizeAnimationUsingKeyFrames key frame animation. |

EasingThicknessKeyFrame |
A class that enables you to associate easing functions with a ThicknessAnimationUsingKeyFrames key frame animation. |

EasingVector3DKeyFrame |
A class that enables you to associate easing functions with a Vector3DAnimationUsingKeyFrames key frame animation. |

EasingVectorKeyFrame |
A class that enables you to associate easing functions with a VectorAnimationUsingKeyFrames key frame animation. |

ElasticEase |
Represents an easing function that creates an animation that resembles a spring oscillating back and forth until it comes to rest. |

ExponentialEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using an exponential formula. |

Int16Animation |
Animates the value of a Int16 property between two target values using linear interpolation over a specified Duration. |

Int16AnimationBase |
Abstract class that, when implemented, animates a Int16 value. |

Int16AnimationUsingKeyFrames |
Animates the value of a Int16 property along a set of KeyFrames. |

Int16KeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Int16AnimationUsingKeyFrames. |

Int16KeyFrameCollection |
Represents a collection of Int16KeyFrame objects. |

Int32Animation |
Animates the value of an Int32 property between two target values using linear interpolation over a specified Duration. |

Int32AnimationBase |
Abstract class that, when implemented, animates a Int32 value. |

Int32AnimationUsingKeyFrames |
Animates the value of a Int32 property along a set of KeyFrames. |

Int32KeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Int32AnimationUsingKeyFrames. |

Int32KeyFrameCollection |
Represents a collection of Int32KeyFrame objects. |

Int64Animation |
Animates the value of a Int64 property between two target values using linear interpolation over a specified Duration. |

Int64AnimationBase |
Abstract class that, when implemented, animates a Int64 value. |

Int64AnimationUsingKeyFrames |
Animates the value of a Int64 property along a set of KeyFrames. |

Int64KeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Int64AnimationUsingKeyFrames. |

Int64KeyFrameCollection |
Represents a collection of Int64KeyFrame objects. |

KeySpline |
This class is used by a spline key frame to define animation progress. |

LinearByteKeyFrame |
Animates from the Byte value of the previous key frame to its own Value using linear interpolation. |

LinearColorKeyFrame |
Animates from the Color value of the previous key frame to its own Value using linear interpolation. |

LinearDecimalKeyFrame |
Animates from the Decimal value of the previous key frame to its own Value using linear interpolation. |

LinearDoubleKeyFrame |
Animates from the Double value of the previous key frame to its own Value using linear interpolation. |

LinearInt16KeyFrame |
Animates from the Int16 value of the previous key frame to its own Value using linear interpolation. |

LinearInt32KeyFrame |
Animates from the Int32 value of the previous key frame to its own Value using linear interpolation. |

LinearInt64KeyFrame |
Animates from the Int64 value of the previous key frame to its own Value using linear interpolation. |

LinearPoint3DKeyFrame |
Animates from the Point3D value of the previous key frame to its own Value using linear interpolation. |

LinearPointKeyFrame |
Animates from the Point value of the previous key frame to its own Value using linear interpolation. |

LinearQuaternionKeyFrame |
Animates from the Quaternion value of the previous key frame to its own Value using linear interpolation. |

LinearRectKeyFrame |
Animates from the Rect value of the previous key frame to its own Value using linear interpolation. |

LinearRotation3DKeyFrame |
Animates from the Rotation3D value of the previous key frame to its own Value using linear interpolation. |

LinearSingleKeyFrame |
Animates from the Single value of the previous key frame to its own Value using linear interpolation. |

LinearSizeKeyFrame |
Animates from the Size value of the previous key frame to its own Value using linear interpolation. |

LinearThicknessKeyFrame |
Animates from the Thickness value of the previous key frame to its own Value using linear interpolation. |

LinearVector3DKeyFrame |
Animates from the Vector3D value of the previous key frame to its own Value using linear interpolation. |

LinearVectorKeyFrame |
Animates from the Vector value of the previous key frame to its own Value using linear interpolation. |

MatrixAnimationBase |
Abstract class that, when implemented, animates a Matrix value. |

MatrixAnimationUsingKeyFrames |
Animates the value of a Matrix property along a set of KeyFrames. |

MatrixAnimationUsingPath |
Animates the value of a Matrix property by using a PathGeometry to generate the animated values. This animation can be used to move a visual object along a path. |

MatrixKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a MatrixAnimationUsingKeyFrames. |

MatrixKeyFrameCollection |
Represents a collection of MatrixKeyFrame objects. |

ObjectAnimationBase |
Abstract class that, when implemented, animates a Object value. |

ObjectAnimationUsingKeyFrames |
Animates the value of an Object property along a set of KeyFrames over a specified Duration. |

ObjectKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a ObjectAnimationUsingKeyFrames. |

ObjectKeyFrameCollection |
Represents a collection of ObjectKeyFrame objects. |

ParallelTimeline |
Defines a segment of time that may contain child Timeline objects. These child timelines become active according to their respective BeginTime properties. Also, child timelines are able to overlap (run in parallel) with each other. |

PauseStoryboard |
A trigger action that pauses a Storyboard. |

Point3DAnimation |
Animates the value of a Point3D property using linear interpolation between two values. |

Point3DAnimationBase |
Abstract class that, when implemented, animates a Point3D value. |

Point3DAnimationUsingKeyFrames |
Animates the value of a Point3D property along a set of KeyFrames. |

Point3DKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Point3DAnimationUsingKeyFrames. |

Point3DKeyFrameCollection |
Represents a collection of Point3DKeyFrame objects. |

PointAnimation |
Animates the value of a Point property between two target values using linear interpolation over a specified Duration. |

PointAnimationBase |
Abstract class that, when implemented, animates a Point value. |

PointAnimationUsingKeyFrames |
Animates the value of a Point property along a set of KeyFrames. |

PointAnimationUsingPath |
Animates the value of a Point property between two or more target values using a PathGeometry to specify those values. This animation can be used to move a visual object along a path. |

PointKeyFrame |
Defines an animation segment with its own target value and interpolation method for a PointAnimationUsingKeyFrames. |

PointKeyFrameCollection |
Represents a collection of PointKeyFrame objects. |

PowerEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using the formula |

QuadraticEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using the formula |

QuarticEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using the formula |

QuaternionAnimation |
Animates the value of a Quaternion property between two target values using linear interpolation over a specified Duration. |

QuaternionAnimationBase |
Abstract class that, when implemented, animates a Quaternion value. |

QuaternionAnimationUsingKeyFrames |
Animates the value of a Quaternion property along a set of KeyFrames over a specified Duration. |

QuaternionKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a QuaternionAnimationUsingKeyFrames. |

QuaternionKeyFrameCollection |
Represents a collection of QuaternionKeyFrame objects. |

QuinticEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using the formula |

RectAnimation |
Animates the value of a Rect property between two target values using linear interpolation. |

RectAnimationBase |
Abstract class that, when implemented, animates a Rect value. |

RectAnimationUsingKeyFrames |
Animates the value of a property that takes a Rect along a set of key frames. |

RectKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a RectAnimationUsingKeyFrames. |

RectKeyFrameCollection |
Represents a collection of RectKeyFrame objects. |

RemoveStoryboard |
A trigger action that removes a Storyboard. |

RepeatBehaviorConverter |
Converts instances of RepeatBehavior to and from other data types. |

ResumeStoryboard |
Supports a trigger action that resumes a paused Storyboard. |

Rotation3DAnimation |
Animates the value of a Rotation3D property using linear interpolation between two values determined by the combination of From, To, or By properties that are set for the animation. |

Rotation3DAnimationBase |
Abstract class that, when implemented, animates a Rotation3D value. |

Rotation3DAnimationUsingKeyFrames |
Animates the value of a Rotation3D property along a set of KeyFrames. |

Rotation3DKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Rotation3DAnimationUsingKeyFrames. |

Rotation3DKeyFrameCollection |
Represents a collection of Rotation3DKeyFrame objects. |

SeekStoryboard |
A trigger action that provides functionality for seeking (skipping) to a specified time within the active period of a Storyboard. |

SetStoryboardSpeedRatio |
A trigger action that changes the speed of a Storyboard. |

SineEase |
Represents an easing function that creates an animation that accelerates and/or decelerates using a sine formula. |

SingleAnimation |
Animates the value of a Single property between two target values using linear interpolation over a specified Duration. |

SingleAnimationBase |
Abstract class that, when implemented, animates a Single value. |

SingleAnimationUsingKeyFrames |
Animates the value of a Single property along a set of KeyFrames. |

SingleKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a SingleAnimationUsingKeyFrames. |

SingleKeyFrameCollection |
Represents a collection of SingleKeyFrame objects. |

SizeAnimation |
Animates the value of a Size property between two target values using linear interpolation over a specified Duration. |

SizeAnimationBase |
Abstract class that, when implemented, animates a Size value. |

SizeAnimationUsingKeyFrames |
Animates the value of a Size property along a set of KeyFrames. |

SizeKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a SizeAnimationUsingKeyFrames. |

SizeKeyFrameCollection |
Represents a collection of SizeKeyFrame objects. |

SkipStoryboardToFill |
A trigger action that advances a Storyboard to the end of its fill period. |

SplineByteKeyFrame |
Animates from the Byte value of the previous key frame to its own Value using splined interpolation. |

SplineColorKeyFrame |
Animates from the Color value of the previous key frame to its own Value using splined interpolation. |

SplineDecimalKeyFrame |
Animates from the Decimal value of the previous key frame to its own Value using splined interpolation. |

SplineDoubleKeyFrame |
Animates from the Double value of the previous key frame to its own Value using splined interpolation. |

SplineInt16KeyFrame |
Animates from the Int16 value of the previous key frame to its own Value using splined interpolation. |

SplineInt32KeyFrame |
Animates from the Int32 value of the previous key frame to its own Value using splined interpolation. |

SplineInt64KeyFrame |
Animates from the Int64 value of the previous key frame to its own Value using splined interpolation. |

SplinePoint3DKeyFrame |
Animates from the Point3D value of the previous key frame to its own Value using splined interpolation. |

SplinePointKeyFrame |
Animates from the Point value of the previous key frame to its own Value using splined interpolation. |

SplineQuaternionKeyFrame |
Animates from the Quaternion value of the previous key frame to its own Value using splined interpolation. |

SplineRectKeyFrame |
Animates from the Rect value of the previous key frame to its own Value using splined interpolation. |

SplineRotation3DKeyFrame |
Animates from the Rotation3D value of the previous key frame to its own Value using splined interpolation. |

SplineSingleKeyFrame |
Animates from the Single value of the previous key frame to its own Value using splined interpolation. |

SplineSizeKeyFrame |
Animates from the Size value of the previous key frame to its own Value using splined interpolation. |

SplineThicknessKeyFrame |
Animates from the Thickness value of the previous key frame to its own Value using splined interpolation. |

SplineVector3DKeyFrame |
Animates from the Vector3D value of the previous key frame to its own Value using splined interpolation. |

SplineVectorKeyFrame |
Animates from the Vector value of the previous key frame to its own Value using splined interpolation. |

StopStoryboard |
A trigger action that stops a Storyboard. |

Storyboard |
A container timeline that provides object and property targeting information for its child animations. |

StringAnimationBase |
Abstract class that, when implemented, animates a String value. |

StringAnimationUsingKeyFrames |
Animates the value of a String property along a set of KeyFrames over a specified Duration. |

StringKeyFrame |
Defines an animation segment with its own target value and interpolation method for a StringAnimationUsingKeyFrames. |

StringKeyFrameCollection |
Represents a collection of StringKeyFrame objects. |

ThicknessAnimation |
Animates the value of a Thickness property between two target values using linear interpolation over a specified Duration. |

ThicknessAnimationBase |
Abstract class that, when implemented, animates a Thickness value. |

ThicknessAnimationUsingKeyFrames |
Animates the value of a Thickness property along a set of KeyFrames. |

ThicknessKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a ThicknessAnimationUsingKeyFrames. |

ThicknessKeyFrameCollection |
Represents a collection of ThicknessKeyFrame objects. |

Timeline |
Defines a segment of time. |

TimelineCollection |
Represents a collection of Timeline objects. |

TimelineGroup |
Abstract class that, when implemented represents a Timeline that may contain a collection of child Timeline objects. |

Vector3DAnimation |
Animates the value of a Vector3D property using linear interpolation between two values. |

Vector3DAnimationBase |
Abstract class that represents an animated Vector3D value. |

Vector3DAnimationUsingKeyFrames |
Animates the value of a Vector3D property along a set of KeyFrames. |

Vector3DKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a Vector3DAnimationUsingKeyFrames. |

Vector3DKeyFrameCollection |
Represents a collection of Vector3DKeyFrame objects. |

VectorAnimation |
Animates the value of a Vector property between two target values using linear interpolation over a specified Duration. |

VectorAnimationBase |
Abstract class that, when implemented, animates a Vector value. |

VectorAnimationUsingKeyFrames |
Animates the value of a Vector property along a set of KeyFrames. |

VectorKeyFrame |
Abstract class that, when implemented, defines an animation segment with its own target value and interpolation method for a VectorAnimationUsingKeyFrames. |

VectorKeyFrameCollection |
Represents a collection of VectorKeyFrame objects. |

## Structs

KeyTime |
During the relative course of an animation, a KeyTime instance specifies the precise timing when a particular key frame should take place. |

RepeatBehavior |
Describes how a Timeline repeats its simple duration. |

TimelineCollection.Enumerator |
Enumerates the members of a TimelineCollection. |

## Interfaces

IAnimatable |
This type supports the WPF infrastructure and is not intended to be used directly from your code. To make a class animatable, it should derive from UIElement, ContentElement, or Animatable. |

IEasingFunction |
Defines the basic functionality of an easing function. |

IKeyFrame |
An IKeyFrame interface implementation provides un-typed access to KeyTime properties. |

IKeyFrameAnimation |
An IKeyFrameAnimation interface implementation provides untyped access to key frame collection members. |

## Enums

ClockState |
Describes the potential states of a timeline's Clock object. |

EasingMode |
Defines the modes in which classes derived from EasingFunctionBase perform their easing. |

FillBehavior |
Specifies how a Timeline behaves when it is outside its active period but its parent is inside its active or hold period. |

HandoffBehavior |
Specifies how new animations interact with any existing ones that are already applied to a property. |

KeyTimeType |
Represents the different types that may represent a KeyTime instance. |

PathAnimationSource |
Specifies the output property value of the path that is used to drive the animation. |

SlipBehavior |
Indicates how a ParallelTimeline will behave when one or more of its Timeline children slips. |

TimeSeekOrigin |
Indicates the origin of a seek operation. The offset of the seek operation is relative to this origin. |