Full Code of julianshapiro/velocity for AI

master 767e35cac121 cached
254 files
1.7 MB
499.8k tokens
674 symbols
1 requests
Download .txt
Showing preview only (1,812K chars total). Download the full file or copy to clipboard to get everything.
Repository: julianshapiro/velocity
Branch: master
Commit: 767e35cac121
Files: 254
Total size: 1.7 MB

Directory structure:
gitextract_o9xnzj9n/

├── .babelrc
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── V2_CHANGES.md
├── babel.config.js
├── bower.json
├── docs.ts
├── gsap/
│   ├── GreenSock Animation Platform (GSAP) Speed Test.html
│   └── GreenSock Animation Platform (GSAP) Speed Test_files/
│       ├── CSSPlugin.js.download
│       ├── CSSPlugin.min.js.download
│       ├── Ease.js.download
│       ├── TweenLite.min.js.download
│       ├── anime.min.js.download
│       ├── css
│       ├── dojo.js.download
│       ├── easeljs-0.4.2.min.js.download
│       ├── easing.js.download
│       ├── jquery-3.0.0.min.js.download
│       ├── jquery.gsap.min.js.download
│       ├── mootools-core-1.4.5-full-compat-yc.js.download
│       ├── tweenjs-0.2.0.min.js.download
│       ├── web-animations-basic.min.js.download
│       └── zepto.min.js.download
├── legacy/
│   ├── README.md
│   ├── blur.ts
│   ├── borderColor.ts
│   ├── clip.ts
│   ├── normalisations.ts
│   └── opacity.ts
├── package.json
├── rollup.config.js
├── src/
│   ├── Velocity/
│   │   ├── _all.ts
│   │   ├── actions/
│   │   │   ├── _all.ts
│   │   │   ├── actions.ts
│   │   │   ├── finish.ts
│   │   │   ├── index.ts
│   │   │   ├── option.ts
│   │   │   ├── pauseResume.ts
│   │   │   ├── property.ts
│   │   │   ├── reverse.ts
│   │   │   ├── stop.ts
│   │   │   ├── style.ts
│   │   │   └── tween.ts
│   │   ├── camelCase.ts
│   │   ├── complete.ts
│   │   ├── css/
│   │   │   ├── _all.ts
│   │   │   ├── augmentDimension.ts
│   │   │   ├── colors.ts
│   │   │   ├── fixColors.ts
│   │   │   ├── getPropertyValue.ts
│   │   │   ├── index.ts
│   │   │   ├── removeNestedCalc.ts
│   │   │   └── setPropertyValue.ts
│   │   ├── data.ts
│   │   ├── defaults.ts
│   │   ├── easing/
│   │   │   ├── _all.ts
│   │   │   ├── back.ts
│   │   │   ├── bezier.ts
│   │   │   ├── bounce.ts
│   │   │   ├── easings.ts
│   │   │   ├── elastic.ts
│   │   │   ├── index.ts
│   │   │   ├── spring_rk4.ts
│   │   │   ├── step.ts
│   │   │   └── string.ts
│   │   ├── index.ts
│   │   ├── normalizations/
│   │   │   ├── _all.ts
│   │   │   ├── dimensions.ts
│   │   │   ├── display.ts
│   │   │   ├── index.ts
│   │   │   ├── normalizations.ts
│   │   │   ├── normalizationsObject.ts
│   │   │   ├── scroll.ts
│   │   │   ├── style.ts
│   │   │   ├── svg/
│   │   │   │   ├── _all.ts
│   │   │   │   ├── attributes.ts
│   │   │   │   ├── dimensions.ts
│   │   │   │   └── index.ts
│   │   │   └── tween.ts
│   │   ├── options.ts
│   │   ├── patch.ts
│   │   ├── queue.ts
│   │   ├── sequences.ts
│   │   ├── sequencesObject.ts
│   │   ├── state.ts
│   │   ├── tick.ts
│   │   └── tweens.ts
│   ├── constants.ts
│   ├── fakeClass.js
│   ├── fakeClass.ts
│   ├── tsconfig.json
│   ├── types.ts
│   ├── utility.ts
│   ├── velocity.ts
│   └── velocityFn.ts
├── src-ui/
│   ├── attention_seekers/
│   │   ├── _all.ts
│   │   ├── bounce.ts
│   │   ├── flash.ts
│   │   ├── headShake.ts
│   │   ├── jello.ts
│   │   ├── pulse.ts
│   │   ├── rubberBand.ts
│   │   ├── shake.ts
│   │   ├── swing.ts
│   │   ├── tada.ts
│   │   └── wobble.ts
│   ├── bouncing_entrances/
│   │   ├── _all.ts
│   │   ├── bounceIn.ts
│   │   ├── bounceInDown.ts
│   │   ├── bounceInLeft.ts
│   │   ├── bounceInRight.ts
│   │   └── bounceInUp.ts
│   ├── bouncing_exits/
│   │   ├── _all.ts
│   │   ├── bounceOut.ts
│   │   ├── bounceOutDown.ts
│   │   ├── bounceOutLeft.ts
│   │   ├── bounceOutRight.ts
│   │   └── bounceOutUp.ts
│   ├── fading_entrances/
│   │   ├── _all.ts
│   │   ├── fadeIn.ts
│   │   ├── fadeInDown.ts
│   │   ├── fadeInDownBig.ts
│   │   ├── fadeInLeft.ts
│   │   ├── fadeInLeftBig.ts
│   │   ├── fadeInRight.ts
│   │   ├── fadeInRightBig.ts
│   │   ├── fadeInUp.ts
│   │   └── fadeInUpBig.ts
│   ├── fading_exits/
│   │   ├── _all.ts
│   │   ├── fadeOut.ts
│   │   ├── fadeOutDown.ts
│   │   ├── fadeOutDownBig.ts
│   │   ├── fadeOutLeft.ts
│   │   ├── fadeOutLeftBig.ts
│   │   ├── fadeOutRight.ts
│   │   ├── fadeOutRightBig.ts
│   │   ├── fadeOutUp.ts
│   │   └── fadeOutUpBig.ts
│   ├── flippers/
│   │   ├── _all.ts
│   │   ├── flip.ts
│   │   ├── flipInX.ts
│   │   ├── flipInY.ts
│   │   ├── flipOutX.ts
│   │   └── flipOutY.ts
│   ├── lightspeed/
│   │   ├── _all.ts
│   │   ├── lightSpeedIn.ts
│   │   └── lightSpeedOut.ts
│   ├── rotating_entrances/
│   │   ├── _all.ts
│   │   ├── rotateIn.ts
│   │   ├── rotateInDownLeft.ts
│   │   ├── rotateInDownRight.ts
│   │   ├── rotateInUpLeft.ts
│   │   └── rotateInUpRight.ts
│   ├── rotating_exits/
│   │   ├── _all.ts
│   │   ├── rotateOut.ts
│   │   ├── rotateOutDownLeft.ts
│   │   ├── rotateOutDownRight.ts
│   │   ├── rotateOutUpLeft.ts
│   │   └── rotateOutUpRight.ts
│   ├── sliding_entrances/
│   │   ├── _all.ts
│   │   ├── slideInDown.ts
│   │   ├── slideInLeft.ts
│   │   ├── slideInRight.ts
│   │   └── slideInUp.ts
│   ├── sliding_exits/
│   │   ├── _all.ts
│   │   ├── slideOutDown.ts
│   │   ├── slideOutLeft.ts
│   │   ├── slideOutRight.ts
│   │   └── slideOutUp.ts
│   ├── specials/
│   │   ├── _all.ts
│   │   ├── hinge.ts
│   │   ├── jackInTheBox.ts
│   │   ├── rollIn.ts
│   │   └── rollOut.ts
│   ├── tsconfig.json
│   ├── velocity.ui.ts
│   ├── zooming_entrances/
│   │   ├── _all.ts
│   │   ├── zoomIn.ts
│   │   ├── zoomInDown.ts
│   │   ├── zoomInLeft.ts
│   │   ├── zoomInRight.ts
│   │   └── zoomInUp.ts
│   └── zooming_exits/
│       ├── _all.ts
│       ├── zoomOut.ts
│       ├── zoomOutDown.ts
│       ├── zoomOutLeft.ts
│       ├── zoomOutRight.ts
│       └── zoomOutUp.ts
├── test/
│   ├── index.html
│   ├── qunit-2.5.0.css
│   ├── qunit-2.5.0.js
│   ├── qunit-assert-close.js
│   ├── src/
│   │   ├── 1_Core/
│   │   │   ├── Arguments.ts
│   │   │   ├── End Value Caching.ts
│   │   │   ├── End Value Setting.ts
│   │   │   ├── Start Value Calculation.ts
│   │   │   ├── Unit Calculation.ts
│   │   │   └── _module.ts
│   │   ├── 2_Option/
│   │   │   ├── Option Begin.ts
│   │   │   ├── Option Complete.ts
│   │   │   ├── Option Delay.ts
│   │   │   ├── Option Duration.ts
│   │   │   ├── Option Easing.ts
│   │   │   ├── Option Fps Limit.ts
│   │   │   ├── Option Loop.ts
│   │   │   ├── Option Progress.ts
│   │   │   ├── Option Queue.ts
│   │   │   ├── Option Repeat.ts
│   │   │   ├── Option Speed.ts
│   │   │   ├── Option Sync.ts
│   │   │   └── _module.ts
│   │   ├── 3_Command/
│   │   │   ├── Command Finish.ts
│   │   │   ├── Command Pause + Resume.ts
│   │   │   ├── Command Reverse.ts
│   │   │   ├── Command Scroll.ts
│   │   │   ├── Command Stop.ts
│   │   │   ├── Command Tween.ts
│   │   │   └── _module.ts
│   │   ├── 4_Feature/
│   │   │   ├── Feature Classname.ts
│   │   │   ├── Feature Colors.ts
│   │   │   ├── Feature Forcefeeding.ts
│   │   │   ├── Feature Promises.ts
│   │   │   ├── Feature Sequences.ts
│   │   │   ├── Feature Value Functions.ts
│   │   │   └── _module.ts
│   │   ├── 5_UIPack/
│   │   │   ├── Packaged Effect slideUp+Down.ts
│   │   │   ├── UI Pack Call Options.ts
│   │   │   ├── UI Pack Callbacks.ts
│   │   │   ├── UI Pack In+Out.ts
│   │   │   ├── UI Pack RegisterEffect.ts
│   │   │   ├── UI Pack RunSequence.ts
│   │   │   └── _module.ts
│   │   ├── 6_Properties/
│   │   │   ├── Normalization property value reordering.ts
│   │   │   ├── Property Display.ts
│   │   │   ├── Property Visibility.ts
│   │   │   └── _module.ts
│   │   ├── test.ts
│   │   ├── tsconfig.json
│   │   └── utilities.ts
│   └── test.js
├── tsconfig.json
├── tslint.json
├── velocity.d.ts
├── velocity.es5.js
├── velocity.js
├── velocity.ui.js
└── version.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .babelrc
================================================
{
	"presets": [
		["env", {
			"modules": false
		}]
	],
	"plugins": ["external-helpers"]
}


================================================
FILE: .editorconfig
================================================
# .editorconfig
root = true

[*]
indent_style = tab
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
#### Your system information

* VelocityJS version: 
* Browser: 
* Operating System: 

#### Checklist

* Is this an issue with *code*?: [Yes/No]
* Is this an issue with *documentation*?: [Yes/No]
* Have you reproduced this in other browsers?: [Yes/No]
* Have you checked for updates?: [Yes/No]
* Have you checked for similar open issues?: [Yes/No]

> Please remember that this is an issue tracker, support requests should be posted on StackOverflow - see CONTRIBUTING.md

#### Please describe your issue in as much detail as possible:
Describe what you _expected_ should happen and what _did_ happen.

#### Steps for reproducing this issue (code):

1. 
2. 
3. 

#### JSFiddle example showing issue in action (code):

> Go to https://jsfiddle.net/Rycochet/mqv9L27u/ - click the "Fork" button at the top, create the example and copy the new URL back here.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
#### Checklist

* Have you linked to relevant open issues?: [Yes/No]
* I agree for this to be covered by the Velocity [license](https://github.com/julianshapiro/velocity/blob/master/LICENSE.md)?: [Yes/No]

#### Please describe this Pull Request in as much detail as possible:
Describe what the _old behaviour_ was, and what the _new behaviour_ is.

#### People who contributed to this change:


================================================
FILE: .gitignore
================================================
/node_modules
/.vscode


================================================
FILE: CHANGELOG.md
================================================
### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

#### [v2.0.5](https://github.com/julianshapiro/velocity/compare/v2.0.3...v2.0.5)

> 10 June 2018

- Grab Promise in a try/catch [`#875`](https://github.com/julianshapiro/velocity/issues/875)
- Get default duration if none set in arguments [`#874`](https://github.com/julianshapiro/velocity/issues/874)
- Caching is disabled for scrollTop/Left so don't loop [`#866`](https://github.com/julianshapiro/velocity/issues/866)
- Expose Velocity().promise for use in Promise.all() etc [`#868`](https://github.com/julianshapiro/velocity/issues/868)
- Consistent getPropertyValue for width / height [`#860`](https://github.com/julianshapiro/velocity/issues/860) [`#861`](https://github.com/julianshapiro/velocity/issues/861)
- Lock down some publicly accessible structures [`acb2bd5`](https://github.com/julianshapiro/velocity/commit/acb2bd548d9b51cbc3cec2649a2720fee3cac4f3)
- Add Stagger and Drag options back - available for all animations [`6b961de`](https://github.com/julianshapiro/velocity/commit/6b961de4c80f723b6ef9ced13d93e06d9d426736)
- Ensure default delay, fix "pattern" error, create callback for options to use [`2bdd7c1`](https://github.com/julianshapiro/velocity/commit/2bdd7c1994b3e23bd314495722ae37356ac088e2)

#### [v2.0.3](https://github.com/julianshapiro/velocity/compare/v2.0.2...v2.0.3)

> 27 May 2018

- Refactor as ES6 to build on RollupJS [`#873`](https://github.com/julianshapiro/velocity/pull/873)
- Polyfill for Object.assign [`#855`](https://github.com/julianshapiro/velocity/issues/855)
- Fix package-lock.json [`9092f18`](https://github.com/julianshapiro/velocity/commit/9092f1870569fc58d7c6b087dc22c23dfa5098a0)
- Version 2.0.3 [`a263bb8`](https://github.com/julianshapiro/velocity/commit/a263bb8489930f58aa0bf79b3a8193e9a566d857)
- Update CDN links in readme [`c17a6a3`](https://github.com/julianshapiro/velocity/commit/c17a6a341cfaee405515bdedd5993853de2bca51)

#### [v2.0.2](https://github.com/julianshapiro/velocity/compare/v2.0.1...v2.0.2)

> 4 March 2018

- The correct name for the requireJS package is "velocity-animate" [`#768`](https://github.com/julianshapiro/velocity/issues/768)
- Fixes and updates in preparation for new sequence code [`#849`](https://github.com/julianshapiro/velocity/issues/849) [`#845`](https://github.com/julianshapiro/velocity/issues/845) [`#839`](https://github.com/julianshapiro/velocity/issues/839)
- Make note of load order and extending other libraries [`#828`](https://github.com/julianshapiro/velocity/issues/828)
- Shortcut for Object.create(null), Fix unit adding for some css styles and move into normalization code. [`794d15c`](https://github.com/julianshapiro/velocity/commit/794d15c977c4d8c253ae7a8a4905670d66ca63ec)
- Version 2.0.2-beta [`30ee65e`](https://github.com/julianshapiro/velocity/commit/30ee65ec047b440842ba0e6ae75dd48223547007)
- Highlighted the documentation for V2 [`007e977`](https://github.com/julianshapiro/velocity/commit/007e977cb1fc3025f42c16f9cf05de19b9da294d)

#### [v2.0.1](https://github.com/julianshapiro/velocity/compare/v2.0.0...v2.0.1)

> 11 February 2018

- Version 2.0.1 [`24bf716`](https://github.com/julianshapiro/velocity/commit/24bf716fd10ef322e284d505a186f7b4f097a932)
- Optimise "reverse" command, make use of built-in reverse flag [`4d39bfa`](https://github.com/julianshapiro/velocity/commit/4d39bfae9ed5c03ee8b7c06ea75275b506ff99cd)
- Update package dependencies [`58f640c`](https://github.com/julianshapiro/velocity/commit/58f640c4ab8297b2c536132ee32dd2dad5b2beb3)

### [v2.0.0](https://github.com/julianshapiro/velocity/compare/v1.5.1...v2.0.0)

> 1 February 2018

- Add a legacy readme, make sure we're using the latest Typescript, make sure npm's package-lock.json is included [`5182912`](https://github.com/julianshapiro/velocity/commit/5182912d93efb3b8a8b13019549d8d04546982f0)
- Comment updates and and changes doc [`e26106a`](https://github.com/julianshapiro/velocity/commit/e26106ad6aedb0224fb322ccc6735710eef4f4fb)
- While documenting realised that the timeStart argument to a progress callback is now too different, and that the activeCall argument was not listed in the typedef file. [`69c7e44`](https://github.com/julianshapiro/velocity/commit/69c7e44808fa8413cbf711caa83b808af47c56cb)

#### [v1.5.1](https://github.com/julianshapiro/velocity/compare/v1.5.0...v1.5.1)

> 6 January 2018

- Fix crash on queue stop [`#830`](https://github.com/julianshapiro/velocity/pull/830)
- Update jsDelivr links [`#799`](https://github.com/julianshapiro/velocity/pull/799)
- Add "window" to access to the 'navigator' property [`#803`](https://github.com/julianshapiro/velocity/pull/803)
- Correct the initialization of the variable "firstTick" in the tick handler [`#827`](https://github.com/julianshapiro/velocity/pull/827)
- Add support for global fps limiting [`#818`](https://github.com/julianshapiro/velocity/pull/818)
- Release 1.5.1 [`6dd28a2`](https://github.com/julianshapiro/velocity/commit/6dd28a2a6b7ec87257bb8e5b54a3355bd766e027)
- Update tick.ts [`ed4634b`](https://github.com/julianshapiro/velocity/commit/ed4634b9241d3d76b8472af964992b5d9e4e9a15)
- Update tick.ts [`ff6a8c5`](https://github.com/julianshapiro/velocity/commit/ff6a8c522e3cdc70cb7049d2c41a80dcffb1b08b)

#### [v1.5.0](https://github.com/julianshapiro/velocity/compare/v1.4.3...v1.5.0)

> 18 March 2017

- Fix 2 issues breaking IE8 compatibility [`#764`](https://github.com/julianshapiro/velocity/pull/764)
- Prevent console.log error in IE9 or less [`#756`](https://github.com/julianshapiro/velocity/pull/756)
- IE9 sometimes checks again window which can have length 0 [`#757`](https://github.com/julianshapiro/velocity/pull/757)
- Fix performance.now() polyfill [`#763`](https://github.com/julianshapiro/velocity/pull/763)
- Code cleanup, add [].includes() shim, fix JSHint warnings [`4184d8e`](https://github.com/julianshapiro/velocity/commit/4184d8e757038bdc0f1e7449c847728ddbe7674b)
- Release 1.5.0 [`9f4aacd`](https://github.com/julianshapiro/velocity/commit/9f4aacdacd9eff5a4abbd5154b8d367dcda2f047)
- Update CDN links [`c8eb3e6`](https://github.com/julianshapiro/velocity/commit/c8eb3e6cd60f93fe251b33f5e6cd657d5973a490)

#### [v1.4.3](https://github.com/julianshapiro/velocity/compare/v1.4.2...v1.4.3)

> 16 February 2017

- Typo cloned->clone, Fixes #749 [`#749`](https://github.com/julianshapiro/velocity/issues/749)
- Release 1.4.3 [`8c3d003`](https://github.com/julianshapiro/velocity/commit/8c3d003e0e893597c7f91528ad2cff732f249c57)
- Allow auto-parameters to support negative numbers (literally just missing a "-" in the RegExp) [`465e84c`](https://github.com/julianshapiro/velocity/commit/465e84c99cc0ab262b57ec0e491190213ba184e0)

#### [v1.4.2](https://github.com/julianshapiro/velocity/compare/v1.4.1...v1.4.2)

> 30 January 2017

- Fix IE8 lacking hasOwnProperty on window.performance. Fixes #738 [`#739`](https://github.com/julianshapiro/velocity/pull/739)
- IE8 can't [].slice.call(NodeList) etc, Fixes #742 [`#742`](https://github.com/julianshapiro/velocity/issues/742)
- Release 1.4.2 [`d2cdefd`](https://github.com/julianshapiro/velocity/commit/d2cdefd8c2f7763f45e027910eed14bb091add78)

#### [v1.4.1](https://github.com/julianshapiro/velocity/compare/v1.4.0...v1.4.1)

> 17 December 2016

- Allow .isWrappped() to handle nodeLists and more wrapped types. FORM has a length and is not wrapped, so disallow Nodes [`#723`](https://github.com/julianshapiro/velocity/issues/723)
- Share remaining duration between all remaining parts of an effect, allow 0 duration. [`#726`](https://github.com/julianshapiro/velocity/issues/726)
- Fix for "0" in an auto-parameter value [`0ee450d`](https://github.com/julianshapiro/velocity/commit/0ee450df15b8b3c248f3911733e6b40a55357c1a)
- Release v1.4.1 [`e745208`](https://github.com/julianshapiro/velocity/commit/e745208c390a4a2d444b9441ced8115698a704bd)
- Make version numbers link to changelog [`4b6beab`](https://github.com/julianshapiro/velocity/commit/4b6beabf20ff463de8934b7956d238ab16ff754d)

#### [v1.4.0](https://github.com/julianshapiro/velocity/compare/v1.3.2...v1.4.0)

> 4 December 2016

- Update version numbers in README [`#731`](https://github.com/julianshapiro/velocity/pull/731)
- Pause and Resume commands implemented and tested. [`#718`](https://github.com/julianshapiro/velocity/pull/718)
- Select correct ticker function during initialization [`#725`](https://github.com/julianshapiro/velocity/pull/725)
- Add pause/resume, disable global test as it breaks other tests. Cleanup test code slightly. [`#718`](https://github.com/julianshapiro/velocity/issues/718)
- Auto parameters now accept unit changes and any colour names. [`d81e17a`](https://github.com/julianshapiro/velocity/commit/d81e17a63c6c83b72409f437eb1de29fc379a2d1)
- Update README.md [`170c4f5`](https://github.com/julianshapiro/velocity/commit/170c4f5a70961bee175a2eafd32174a069a4ff8b)
- v1.4.0 - CDN links TODO when updated [`139de8b`](https://github.com/julianshapiro/velocity/commit/139de8b51e7a94cf69a1005354476a61112bd832)

#### [v1.3.2](https://github.com/julianshapiro/velocity/compare/v1.3.1...v1.3.2)

> 21 November 2016

- Fixed incorrect usage of nodeType [`#720`](https://github.com/julianshapiro/velocity/pull/720)
- lost `var` definition [`#713`](https://github.com/julianshapiro/velocity/pull/713)
- Use window.document [`#710`](https://github.com/julianshapiro/velocity/pull/710)
- Fix typo [`#712`](https://github.com/julianshapiro/velocity/pull/712)
- Add editorconfig. See #706 for more. [`#707`](https://github.com/julianshapiro/velocity/pull/707)
- Improving Readme, fix #704 [`#705`](https://github.com/julianshapiro/velocity/pull/705)
- Allow Velocity(document.querySelector("div"), ...) and similar calls (not specific checking for jQuery / Zepto wrapped) [`#714`](https://github.com/julianshapiro/velocity/issues/714)
- Add Auto-parameterised start and end values #697 [`#677`](https://github.com/julianshapiro/velocity/issues/677) [`#459`](https://github.com/julianshapiro/velocity/issues/459) [`#562`](https://github.com/julianshapiro/velocity/issues/562) [`#388`](https://github.com/julianshapiro/velocity/issues/388) [`#263`](https://github.com/julianshapiro/velocity/issues/263)
- Allow a value function to return a forcefeeding array. [`#639`](https://github.com/julianshapiro/velocity/issues/639)
- Ensure being and complete are called correctly for slide/fade effects [`#460`](https://github.com/julianshapiro/velocity/issues/460)
- Don't split out *-color properties when the start and end are functions [`#660`](https://github.com/julianshapiro/velocity/issues/660)
- Add inner / outer + Width / Height to get and set - handles box-sizing correctly [`#485`](https://github.com/julianshapiro/velocity/issues/485)
- Whitelist "loop" for RegisterEffect [`#654`](https://github.com/julianshapiro/velocity/issues/654) [`#655`](https://github.com/julianshapiro/velocity/issues/655)
- Release v1.3.2 [`fbb5540`](https://github.com/julianshapiro/velocity/commit/fbb554026a8ad2c1069a8de55f13c4930b02ecdd)
- Fixes after #720 - more bad code that didn't work, plus optimisations and minification [`b0c6c3c`](https://github.com/julianshapiro/velocity/commit/b0c6c3c05063c4501818897b71f1c1a7737d5fb4)
- Update CONTRIBUTING.md [`f22ec01`](https://github.com/julianshapiro/velocity/commit/f22ec01bc11e114daab7d314af2fc7478794c379)

#### [v1.3.1](https://github.com/julianshapiro/velocity/compare/v1.3.0...v1.3.1)

> 21 September 2016

- Add hasOwnProperty() checks for badly extended Object prototype [`#541`](https://github.com/julianshapiro/velocity/issues/541)
- Update README.md [`631232f`](https://github.com/julianshapiro/velocity/commit/631232f892591d0e11a7130058505561d886bd84)
- Release v1.3.1 [`e4bc3f1`](https://github.com/julianshapiro/velocity/commit/e4bc3f1010ce78482f85288e66080a4f8e968476)
- Somehow missed updating the version numbers [`9731478`](https://github.com/julianshapiro/velocity/commit/9731478e101db5d6ac8b74910b993176dfaff7ce)

#### [v1.3.0](https://github.com/julianshapiro/velocity/compare/v1.2.3...v1.3.0)

> 13 August 2016

- Fix durations set to 0 being ignored with Velocity UI [`#483`](https://github.com/julianshapiro/velocity/pull/483)
- Fix animateParentHeight height calc when border-box [`#504`](https://github.com/julianshapiro/velocity/pull/504)
- Update README.md [`#615`](https://github.com/julianshapiro/velocity/pull/615)
- Fix severe hangs in tick() when overflowing 10,000 call compaction limit [`#523`](https://github.com/julianshapiro/velocity/pull/523)
- forgot to bump actual version to 1.2.3 [`#600`](https://github.com/julianshapiro/velocity/pull/600)
- Remove jQuery dependency from package.json and bower.json  [`#618`](https://github.com/julianshapiro/velocity/pull/618)
- Cleanup cache properly [`#646`](https://github.com/julianshapiro/velocity/pull/646)
- Correctly handle "html style" property names [`#666`](https://github.com/julianshapiro/velocity/pull/666)
- Fix to Issue #675 [`#676`](https://github.com/julianshapiro/velocity/pull/676)
- Potential fix for: Uncaught TypeError: Cannot read property 'tweensCo… [`#690`](https://github.com/julianshapiro/velocity/pull/690)
- Code cleanup (formatting and semi-colon use) [`efe5795`](https://github.com/julianshapiro/velocity/commit/efe57951d9a6d20d32358a02c52027b55f3dacbb)
- Add Gruntfile, strict mode, fixes for jshint - shouldn't break anything, but test properly [`c3b9f01`](https://github.com/julianshapiro/velocity/commit/c3b9f017b30e1979f7a4892c52625034b3f36f41)
- Allow infinite loop on counterclockwise rotateZ and any 360 degree loop [`64c8f1e`](https://github.com/julianshapiro/velocity/commit/64c8f1e1fa69df2275650dbb89934574e9f1be60)

#### [v1.2.3](https://github.com/julianshapiro/velocity/compare/v1.2.2...v1.2.3)

> 26 September 2015

- Fix BrowserStack link. [`#472`](https://github.com/julianshapiro/velocity/pull/472)
- "finishAll" functionality [`d9cd60b`](https://github.com/julianshapiro/velocity/commit/d9cd60bc0c026adff6303869934bb58fc832e82f)
- Merging/building finishAll & versions bump [`f28c610`](https://github.com/julianshapiro/velocity/commit/f28c610da721048abee0be4f88a5d32d71ae8ea4)
- Update README.md [`2a952e2`](https://github.com/julianshapiro/velocity/commit/2a952e2201f0373147780e50ae446bc42ea541c5)

#### [v1.2.2](https://github.com/julianshapiro/velocity/compare/v1.2.1...v1.2.2)

> 17 February 2015

- UI Pack Fixes [`#413`](https://github.com/julianshapiro/velocity/issues/413) [`#421`](https://github.com/julianshapiro/velocity/issues/421) [`#435`](https://github.com/julianshapiro/velocity/issues/435) [`#415`](https://github.com/julianshapiro/velocity/issues/415) [`#407`](https://github.com/julianshapiro/velocity/issues/407)
- 5.0.3: Fix for e/p/o shorthands [`#410`](https://github.com/julianshapiro/velocity/issues/410)
- publishing velocity tests [`cc07cbd`](https://github.com/julianshapiro/velocity/commit/cc07cbdd05ef6bf2b8c91b5a9c093a391e8d0ef8)
- Update README.md [`69e5793`](https://github.com/julianshapiro/velocity/commit/69e579357ebdad864790e89ba0ee5af87b70be99)
- Update README.md [`0b701fe`](https://github.com/julianshapiro/velocity/commit/0b701fe0b218b787b7e677b4aa790c015f572eac)

#### [v1.2.1](https://github.com/julianshapiro/velocity/compare/v1.2.0...v1.2.1)

> 5 January 2015

- 5.0.2: Fix for E/P/O shorthands. [`2fd2efb`](https://github.com/julianshapiro/velocity/commit/2fd2efb5de95570d9d5797b2d21f8c5e026e1af6)
- Update README.md [`c412909`](https://github.com/julianshapiro/velocity/commit/c412909952428758e820b985495b4220fda65129)
- Update README.md [`cda7496`](https://github.com/julianshapiro/velocity/commit/cda7496818c793cbfc15797d7dee333323f6ef8f)

#### [v1.2.0](https://github.com/julianshapiro/velocity/compare/v1.1.0...v1.2.0)

> 5 January 2015

- Allow any version of jquery, don't need to specify github repo [`#338`](https://github.com/julianshapiro/velocity/pull/338)
- 1.2.0 [`#293`](https://github.com/julianshapiro/velocity/issues/293) [`#368`](https://github.com/julianshapiro/velocity/issues/368) [`#396`](https://github.com/julianshapiro/velocity/issues/396) [`#343`](https://github.com/julianshapiro/velocity/issues/343) [`#321`](https://github.com/julianshapiro/velocity/issues/321) [`#352`](https://github.com/julianshapiro/velocity/issues/352) [`#317`](https://github.com/julianshapiro/velocity/issues/317) [`#324`](https://github.com/julianshapiro/velocity/issues/324) [`#371`](https://github.com/julianshapiro/velocity/issues/371)
- Update README.md [`79821c8`](https://github.com/julianshapiro/velocity/commit/79821c8ac8a34daddaa65bdf9c482348d39ef892)
- Update README.md [`279b340`](https://github.com/julianshapiro/velocity/commit/279b340f3536b8ae46431ed21848887d8f42f4c5)
- Update README.md [`e8f1121`](https://github.com/julianshapiro/velocity/commit/e8f11212af378ecd2351abbc3087d6f72cd210ee)

#### [v1.1.0](https://github.com/julianshapiro/velocity/compare/v1.0.0...v1.1.0)

> 18 September 2014

- 5.0.0 [`#288`](https://github.com/julianshapiro/velocity/issues/288)
- 1.1.0 [`#292`](https://github.com/julianshapiro/velocity/issues/292) [`#285`](https://github.com/julianshapiro/velocity/issues/285) [`#275`](https://github.com/julianshapiro/velocity/issues/275) [`#299`](https://github.com/julianshapiro/velocity/issues/299)
- 5.0.0 [`#248`](https://github.com/julianshapiro/velocity/issues/248) [`#296`](https://github.com/julianshapiro/velocity/issues/296)
- Update README.md [`42af632`](https://github.com/julianshapiro/velocity/commit/42af632533d7e416f10301d6a599e3872b18e221)
- Update bower.json [`e917431`](https://github.com/julianshapiro/velocity/commit/e917431f20f96977f9c1b95488e7e90388e7d659)
- Update package.json [`e2f1075`](https://github.com/julianshapiro/velocity/commit/e2f1075b9df469873ba9ca2d00134eddd376fa84)

### [v1.0.0](https://github.com/julianshapiro/velocity/compare/v0.11.9...v1.0.0)

> 28 August 2014

- 4.1.4 [`#272`](https://github.com/julianshapiro/velocity/issues/272)
- display: flex prefixing [`#273`](https://github.com/julianshapiro/velocity/issues/273)
- Callbacks receive arrays. [`#270`](https://github.com/julianshapiro/velocity/issues/270)
- Update README.md [`04c68ca`](https://github.com/julianshapiro/velocity/commit/04c68cab3a58eda15b2804ed63c935a8f29db493)
- Update README.md [`a12f5a4`](https://github.com/julianshapiro/velocity/commit/a12f5a4f48a6c86d3479978d8aeb442b53f21675)
- Update README.md [`5db45e6`](https://github.com/julianshapiro/velocity/commit/5db45e6c5d340b5d68c614ba9a26fe115d6cf6e0)

#### [v0.11.9](https://github.com/julianshapiro/velocity/compare/v0.11.8...v0.11.9)

> 24 August 2014

- 0.11.9 [`#260`](https://github.com/julianshapiro/velocity/issues/260) [`#265`](https://github.com/julianshapiro/velocity/issues/265) [`#262`](https://github.com/julianshapiro/velocity/issues/262)
- Add examples for requirejs/r.js projects. [`49f0ae9`](https://github.com/julianshapiro/velocity/commit/49f0ae9a92f8b5e1ab485ca541df431fb6f59228)
- Fix AMD support. Tested with both builds, optimised and unoptimised. [`3295176`](https://github.com/julianshapiro/velocity/commit/3295176e15c0a19924c8f5d292a2d6c0e7abc289)
- Update README.md [`e7f4004`](https://github.com/julianshapiro/velocity/commit/e7f400467af9ce9deb60d63426769c5315e4fb85)

#### [v0.11.8](https://github.com/julianshapiro/velocity/compare/v0.11.7...v0.11.8)

> 23 August 2014

- 0.11.8 [`#257`](https://github.com/julianshapiro/velocity/issues/257) [`#260`](https://github.com/julianshapiro/velocity/issues/260) [`#184`](https://github.com/julianshapiro/velocity/issues/184) [`#262`](https://github.com/julianshapiro/velocity/issues/262)
- Update README.md [`94885bd`](https://github.com/julianshapiro/velocity/commit/94885bdfb6403f38047e9bfcf432f0efbd9d176e)
- Update README.md [`d9b6aa5`](https://github.com/julianshapiro/velocity/commit/d9b6aa5cd0f2f994d4a161a1aec55df39447c921)
- Update README.md [`b8a19b2`](https://github.com/julianshapiro/velocity/commit/b8a19b23d390ef60a9c33bdb3d839db5644cbbb7)

#### [v0.11.7](https://github.com/julianshapiro/velocity/compare/v0.11.6...v0.11.7)

> 20 August 2014

- jQuery-free public beta [`a50ef4b`](https://github.com/julianshapiro/velocity/commit/a50ef4b1af6fb6138478854a1064ff5daf4bcc85)
- Create .gitignore [`31d3f26`](https://github.com/julianshapiro/velocity/commit/31d3f26bb7565be6d57f733c96b4c631a749bc07)
- Update README.md [`8ed430e`](https://github.com/julianshapiro/velocity/commit/8ed430e906239ed412f242f94e98cb0607c27cfc)

#### [v0.11.6](https://github.com/julianshapiro/velocity/compare/v0.11.5...v0.11.6)

> 18 August 2014

- Utility function w/ sequences fix [`#247`](https://github.com/julianshapiro/velocity/issues/247) [`#249`](https://github.com/julianshapiro/velocity/issues/249) [`#208`](https://github.com/julianshapiro/velocity/issues/208)
- Update README.md [`3a8e7a4`](https://github.com/julianshapiro/velocity/commit/3a8e7a4cbedc1e4763a4f1d8f749a793e116c40a)
- Update README.md [`052c0fe`](https://github.com/julianshapiro/velocity/commit/052c0fec21c7b8d458365f723fce3799e80d5d10)
- Update README.md [`b2f77c1`](https://github.com/julianshapiro/velocity/commit/b2f77c1c07c2ae5a08a3b6b7fc2216f0dbc28982)

#### [v0.11.5](https://github.com/julianshapiro/velocity/compare/v0.11.2...v0.11.5)

> 15 August 2014

- Update README.md [`#243`](https://github.com/julianshapiro/velocity/pull/243)
- Prevent transform auto-removal [`#224`](https://github.com/julianshapiro/velocity/issues/224)
- Bug fixes [`#232`](https://github.com/julianshapiro/velocity/issues/232) [`#238`](https://github.com/julianshapiro/velocity/issues/238) [`#239`](https://github.com/julianshapiro/velocity/issues/239) [`#237`](https://github.com/julianshapiro/velocity/issues/237) [`#246`](https://github.com/julianshapiro/velocity/issues/246)
- Update README.md [`cb9745b`](https://github.com/julianshapiro/velocity/commit/cb9745b4c6cbfda50e68317674c1d0075daf2923)
- Update README.md [`03109eb`](https://github.com/julianshapiro/velocity/commit/03109eb67066ea2d7a2af643f791ccaafced8c7d)
- Update README.md [`31c42b7`](https://github.com/julianshapiro/velocity/commit/31c42b71637775908de65cdb401def98a5524251)

#### [v0.11.2](https://github.com/julianshapiro/velocity/compare/v0.11.1...v0.11.2)

> 12 August 2014

- Update CONTRIBUTING.md [`257b81f`](https://github.com/julianshapiro/velocity/commit/257b81f7cedccf28f02e05b15992195ef17e73dc)
- Update CONTRIBUTING.md [`d5af523`](https://github.com/julianshapiro/velocity/commit/d5af5234682a0c2cb1d9d04901a0c1a8d6e2830c)
- Update README.md [`eb4c350`](https://github.com/julianshapiro/velocity/commit/eb4c3509a5d12d6cbf7d9ef86dc5e3d79d339a0a)

#### [v0.11.1](https://github.com/julianshapiro/velocity/compare/v0.11.0...v0.11.1)

> 11 August 2014

- 0.11.1: Big Performance Boost [`#178`](https://github.com/julianshapiro/velocity/issues/178) [`#223`](https://github.com/julianshapiro/velocity/issues/223)
- Update README.md [`edf8c5c`](https://github.com/julianshapiro/velocity/commit/edf8c5cdadd5185f75a213cb53957584665936eb)
- Update README.md [`6d875c1`](https://github.com/julianshapiro/velocity/commit/6d875c13d48144f1821fb20e98fa7d87ca70dfec)
- Update README.md [`f483765`](https://github.com/julianshapiro/velocity/commit/f48376517f604599cec076ca974122b189aa582a)

#### [v0.11.0](https://github.com/julianshapiro/velocity/compare/v0.10.1...v0.11.0)

> 10 August 2014

- 0.11.0 [`#229`](https://github.com/julianshapiro/velocity/issues/229)
- Future shim support [`8959193`](https://github.com/julianshapiro/velocity/commit/89591937d611901309c5835159be336e0123efee)
- Update README.md [`1d1ec13`](https://github.com/julianshapiro/velocity/commit/1d1ec13585d46cb9a6303e257d1024acf3526a43)
- Module loader clarification [`f926248`](https://github.com/julianshapiro/velocity/commit/f92624866f7726a5fc03379026e7f14b856b80a1)

#### [v0.10.1](https://github.com/julianshapiro/velocity/compare/v0.10.0...v0.10.1)

> 4 August 2014

- 0.10.1 [`#215`](https://github.com/julianshapiro/velocity/issues/215)
- Update README.md [`ce76483`](https://github.com/julianshapiro/velocity/commit/ce76483e9b7bf4568124e0e99316f63dc028fcb0)
- Update README.md [`9f2fe91`](https://github.com/julianshapiro/velocity/commit/9f2fe91d1382169d283c5d23bc8a939b49f4c78a)

#### [v0.10.0](https://github.com/julianshapiro/velocity/compare/v0.9.0...v0.10.0)

> 30 July 2014

- Infinite looping [`#175`](https://github.com/julianshapiro/velocity/issues/175) [`#207`](https://github.com/julianshapiro/velocity/issues/207)
- Update README.md [`f9be38d`](https://github.com/julianshapiro/velocity/commit/f9be38d8bd03fa1a1e62cbde1fa760a8b7686b41)
- Update README.md [`22a014f`](https://github.com/julianshapiro/velocity/commit/22a014f0e84e59afc52309b2c8ca148300158269)
- Update README.md [`eb48d87`](https://github.com/julianshapiro/velocity/commit/eb48d87640b5a8fc422603050b807bc71e8b2ac3)

#### [v0.9.0](https://github.com/julianshapiro/velocity/compare/v0.8.0...v0.9.0)

> 23 July 2014

- Upgrades [`#194`](https://github.com/julianshapiro/velocity/issues/194) [`#179`](https://github.com/julianshapiro/velocity/issues/179) [`#183`](https://github.com/julianshapiro/velocity/issues/183) [`#196`](https://github.com/julianshapiro/velocity/issues/196) [`#199`](https://github.com/julianshapiro/velocity/issues/199) [`#201`](https://github.com/julianshapiro/velocity/issues/201) [`#181`](https://github.com/julianshapiro/velocity/issues/181) [`#202`](https://github.com/julianshapiro/velocity/issues/202)
- Version Update [`69e3758`](https://github.com/julianshapiro/velocity/commit/69e375896ec50ef315af5c7e9bf2252fbeacba23)
- Update CONTRIBUTING.md [`36e9d55`](https://github.com/julianshapiro/velocity/commit/36e9d55d37200b7b70745aa2970cfacf0ee49537)
- Update README.md [`6f403e1`](https://github.com/julianshapiro/velocity/commit/6f403e1c3b7ea7be4b3badd79976376615b35269)

#### [v0.8.0](https://github.com/julianshapiro/velocity/compare/v0.7.0...v0.8.0)

> 16 July 2014

- 0.8.0 [`#181`](https://github.com/julianshapiro/velocity/issues/181) [`#182`](https://github.com/julianshapiro/velocity/issues/182) [`#177`](https://github.com/julianshapiro/velocity/issues/177) [`#176`](https://github.com/julianshapiro/velocity/issues/176) [`#159`](https://github.com/julianshapiro/velocity/issues/159)
- Update README.md [`467e1f3`](https://github.com/julianshapiro/velocity/commit/467e1f31d7d8da814214eaadbf78ba43adcfbce9)
- Update README.md [`7bbd156`](https://github.com/julianshapiro/velocity/commit/7bbd1567a9792272bf929b3343589d383ff39c40)
- Update README.md [`ca4097c`](https://github.com/julianshapiro/velocity/commit/ca4097c2dd2c5bbb6e69803767f81e14cfc4f76d)

#### [v0.7.0](https://github.com/julianshapiro/velocity/compare/v0.6.0...v0.7.0)

> 13 July 2014

- :animating and transform value removal [`#172`](https://github.com/julianshapiro/velocity/issues/172) [`#155`](https://github.com/julianshapiro/velocity/issues/155)
- Ability to transition inline elements [`#173`](https://github.com/julianshapiro/velocity/issues/173)
- Update README.md [`e88a4eb`](https://github.com/julianshapiro/velocity/commit/e88a4ebf8c007521aa789c5f32516e9ceedc5cd8)
- Update README.md [`0e8e7b0`](https://github.com/julianshapiro/velocity/commit/0e8e7b0ea422c2f5a147e6cfc787122ffd732819)
- Update README.md [`178de4c`](https://github.com/julianshapiro/velocity/commit/178de4c8234914765c927e95343c2c572ca129f7)

#### [v0.6.0](https://github.com/julianshapiro/velocity/compare/v0.5.3...v0.6.0)

> 11 July 2014

- Visibility Toggling [`#9`](https://github.com/julianshapiro/velocity/issues/9) [`#164`](https://github.com/julianshapiro/velocity/issues/164) [`#163`](https://github.com/julianshapiro/velocity/issues/163) [`#162`](https://github.com/julianshapiro/velocity/issues/162)
- Include minified files. [`#166`](https://github.com/julianshapiro/velocity/issues/166)
- Include minified UI Pack in repo [`e172be3`](https://github.com/julianshapiro/velocity/commit/e172be326f4817cbef095fd97502eba88bb97efe)
- Update README.md [`edb0023`](https://github.com/julianshapiro/velocity/commit/edb0023dc729c3edd46a93bef493698c97839727)

#### [v0.5.3](https://github.com/julianshapiro/velocity/compare/v0.5.2...v0.5.3)

> 10 July 2014

- display:none w/ height & width [`#121`](https://github.com/julianshapiro/velocity/issues/121)
- Update README.md [`600b13f`](https://github.com/julianshapiro/velocity/commit/600b13f03863351490679e7ccf26c93f95116161)
- Update README.md [`90354a0`](https://github.com/julianshapiro/velocity/commit/90354a09a897e0c707faa614cd50022d44d97bce)

#### [v0.5.2](https://github.com/julianshapiro/velocity/compare/v0.5.1...v0.5.2)

> 10 July 2014

- Revert "Default display toggling" [`160e12d`](https://github.com/julianshapiro/velocity/commit/160e12de08132dba4cd91613ef7e380d5def1004)
- Display toggling fix [`ed5a9c3`](https://github.com/julianshapiro/velocity/commit/ed5a9c3ec9fa8eaecd18a6c34f18db232db11c27)
- Update README.md [`745d80e`](https://github.com/julianshapiro/velocity/commit/745d80ea7c7b30ce27338c2b326da0c18c5d35ba)

#### [v0.5.1](https://github.com/julianshapiro/velocity/compare/v0.5.0...v0.5.1)

> 10 July 2014

- Default display toggling [`#146`](https://github.com/julianshapiro/velocity/issues/146) [`#157`](https://github.com/julianshapiro/velocity/issues/157)
- animateParentHeight Fix [`53f2d03`](https://github.com/julianshapiro/velocity/commit/53f2d03ed2e02032ab58156251eab572321d4a73)
- Update README.md [`946ed3f`](https://github.com/julianshapiro/velocity/commit/946ed3fe7610b4d9e3d62bd19e3116c1d61d0da3)
- Update README.md [`8c8b913`](https://github.com/julianshapiro/velocity/commit/8c8b913cb0144a21d3f78e2a9d3bd9e1cc8d15a9)

#### [v0.5.0](https://github.com/julianshapiro/velocity/compare/v0.4.1...v0.5.0)

> 8 July 2014

- Promises Support [`#153`](https://github.com/julianshapiro/velocity/issues/153) [`#110`](https://github.com/julianshapiro/velocity/issues/110) [`#143`](https://github.com/julianshapiro/velocity/issues/143) [`#95`](https://github.com/julianshapiro/velocity/issues/95) [`#156`](https://github.com/julianshapiro/velocity/issues/156)
- Promises Support [`8933ab4`](https://github.com/julianshapiro/velocity/commit/8933ab40e7536d5b46b9faa786b4b77ee631e84a)
- JSON version updates [`3e1ec95`](https://github.com/julianshapiro/velocity/commit/3e1ec955349d2da172f6d1a772dc9834b64671f4)
- Version update [`92cc9d7`](https://github.com/julianshapiro/velocity/commit/92cc9d7c499186fbc446e6a5b8cc9f25c8ad97dd)

#### [v0.4.1](https://github.com/julianshapiro/velocity/compare/v0.4.0...v0.4.1)

> 3 July 2014

- Custom Effects + Improvements [`#132`](https://github.com/julianshapiro/velocity/issues/132) [`#129`](https://github.com/julianshapiro/velocity/issues/129) [`#94`](https://github.com/julianshapiro/velocity/issues/94) [`#136`](https://github.com/julianshapiro/velocity/issues/136)
- Implemented Promises support [`6334862`](https://github.com/julianshapiro/velocity/commit/6334862af6c75cf5ea3e9337ac3f372cbfe92895)
- Changed rejecting on stop with resolving [`66f521c`](https://github.com/julianshapiro/velocity/commit/66f521ca75c00d2426171c0e5a86c3c8ef462324)
- Update README.md [`893cd9d`](https://github.com/julianshapiro/velocity/commit/893cd9d17c87df43b2aae695f57097471f615ebe)

#### [v0.4.0](https://github.com/julianshapiro/velocity/compare/v0.3.0...v0.4.0)

> 1 July 2014

- 3D SVG Support [`#137`](https://github.com/julianshapiro/velocity/issues/137) [`#134`](https://github.com/julianshapiro/velocity/issues/134) [`#139`](https://github.com/julianshapiro/velocity/issues/139)
- fix #134 unhandled console.log in IE [`#134`](https://github.com/julianshapiro/velocity/issues/134)
- Comment Modifications [`#133`](https://github.com/julianshapiro/velocity/issues/133)
- Update README.md [`4e89b84`](https://github.com/julianshapiro/velocity/commit/4e89b84029f566c13f128f6dc29702e3eec345f1)
- Update CONTRIBUTING.md [`4df3e0a`](https://github.com/julianshapiro/velocity/commit/4df3e0a7e4c22764ea74c9212b056e64a4c06286)
- Update CONTRIBUTING.md [`28d29f2`](https://github.com/julianshapiro/velocity/commit/28d29f282a08039c963629b0c8e74d5c829de3c0)

#### [v0.3.0](https://github.com/julianshapiro/velocity/compare/v0.2.1...v0.3.0)

> 28 June 2014

- SVG Animation Support [`#74`](https://github.com/julianshapiro/velocity/issues/74)
- Update README.md [`637bf59`](https://github.com/julianshapiro/velocity/commit/637bf59397e7d2c931c27ce0b46bffe070ec9286)
- Update README.md [`56cce96`](https://github.com/julianshapiro/velocity/commit/56cce966622fb1aafaa5c417491602fadf2843f2)
- Update README.md [`b70ac06`](https://github.com/julianshapiro/velocity/commit/b70ac064522746ed0b1f7a783f234b71ddcd4201)

#### [v0.2.1](https://github.com/julianshapiro/velocity/compare/v0.2.0...v0.2.1)

> 20 June 2014

- Prevent errors in older jQuery versions. [`#118`](https://github.com/julianshapiro/velocity/issues/118)
- Update README.md [`cd1da99`](https://github.com/julianshapiro/velocity/commit/cd1da99495de9de9605f1d87fc268fb2510d2bc6)

#### [v0.2.0](https://github.com/julianshapiro/velocity/compare/v0.1.0...v0.2.0)

> 19 June 2014

- Step Easing [`#108`](https://github.com/julianshapiro/velocity/issues/108)
- Container Check Update [`9262bc4`](https://github.com/julianshapiro/velocity/commit/9262bc4c279921efa711c963fae0f73490374760)
- Version bump [`385af39`](https://github.com/julianshapiro/velocity/commit/385af39af218b548628019bdd05e7e8edf4cbdf1)
- Update README.md [`71e6e00`](https://github.com/julianshapiro/velocity/commit/71e6e00c37b75e36d754fc0c783789c00d6edf21)

#### [v0.1.0](https://github.com/julianshapiro/velocity/compare/v0.0.23...v0.1.0)

> 15 June 2014

- Immediate Stopping [`#70`](https://github.com/julianshapiro/velocity/issues/70)
- Update README.md [`1187ad5`](https://github.com/julianshapiro/velocity/commit/1187ad515f6579833ba40f39d8396938527363f2)
- Update README.md [`e2702f7`](https://github.com/julianshapiro/velocity/commit/e2702f73fe3a94cc1d674035d4156eba10ad3585)
- Update README.md [`5022869`](https://github.com/julianshapiro/velocity/commit/5022869dd20ace8ffe1e45355164156ec5a77f13)

#### [v0.0.23](https://github.com/julianshapiro/velocity/compare/v0.0.22...v0.0.23)

> 13 June 2014

- + SO link for help [`#107`](https://github.com/julianshapiro/velocity/pull/107)
- Add option to set a custom display value on complete. [`#103`](https://github.com/julianshapiro/velocity/pull/103)
- Closes #109. [`#109`](https://github.com/julianshapiro/velocity/issues/109)
- Update README.md [`af5714d`](https://github.com/julianshapiro/velocity/commit/af5714def7b9c0e073464d5e7bf6c0396d144efb)
- Update README.md [`956d75f`](https://github.com/julianshapiro/velocity/commit/956d75f869b32a6d10ae962227617f68cc7d6b98)
- Update README.md [`420940e`](https://github.com/julianshapiro/velocity/commit/420940e5e5ea4808bc01b0c8ee4c4cdd4ceb6710)

#### [v0.0.22](https://github.com/julianshapiro/velocity/compare/v0.0.21...v0.0.22)

> 5 June 2014

- Closes #76. [`#76`](https://github.com/julianshapiro/velocity/issues/76)

#### [v0.0.21](https://github.com/julianshapiro/velocity/compare/v0.0.20...v0.0.21)

> 5 June 2014

- Closes #97. [`#97`](https://github.com/julianshapiro/velocity/issues/97)
- Fixed an issue with the AMD/CommonJS definition not working when jQuery/Zepto is also used. [`73ea312`](https://github.com/julianshapiro/velocity/commit/73ea312aa85b3e2478ff754e22eb6e91a81a15af)
- RequireJS Optimizer Fix [`1c9826d`](https://github.com/julianshapiro/velocity/commit/1c9826d57f884ab3b903c1b0f79e026858773b9d)
- Update README.md [`7e5624b`](https://github.com/julianshapiro/velocity/commit/7e5624b683e6ef161aecc94185321ca84cdb62a7)

#### [v0.0.20](https://github.com/julianshapiro/velocity/compare/v0.0.19...v0.0.20)

> 3 June 2014

- Closes #16. Android fixes. [`#16`](https://github.com/julianshapiro/velocity/issues/16)
- Update README.md [`d6091c4`](https://github.com/julianshapiro/velocity/commit/d6091c4f34600c13353ea4b2099978c1c8f397d2)
- Update README.md [`4440591`](https://github.com/julianshapiro/velocity/commit/44405914feb3e56cd443f50a08cfda660b4d3e31)
- Update README.md [`e1b0842`](https://github.com/julianshapiro/velocity/commit/e1b08425cef239365ae87dea3d1c32b138895b01)

#### [v0.0.19](https://github.com/julianshapiro/velocity/compare/v0.0.18...v0.0.19)

> 3 June 2014

- Firefox Syntax Fix [`6d95175`](https://github.com/julianshapiro/velocity/commit/6d95175f4b483941dd5b53bc90648a71fc4a2e6e)
- Update package.json [`241b0de`](https://github.com/julianshapiro/velocity/commit/241b0de9f451658ec64e497247289a380159d391)
- Update README.md [`a638153`](https://github.com/julianshapiro/velocity/commit/a63815377959d2de8ea484a62fa5d76aaeeb9447)

#### [v0.0.18](https://github.com/julianshapiro/velocity/compare/v0.0.16...v0.0.18)

> 1 June 2014

- Closes #76. [`#76`](https://github.com/julianshapiro/velocity/issues/76)
- Update README.md [`7aee230`](https://github.com/julianshapiro/velocity/commit/7aee23011457083601c9db7e8673cde9df78e25f)
- Update README.md [`013ec2d`](https://github.com/julianshapiro/velocity/commit/013ec2dbdccc9d60b5a979acda2c3e80981b4f6b)
- Update README.md [`7ea2088`](https://github.com/julianshapiro/velocity/commit/7ea20889015cc35251d42ce4f0d96150e213237f)

#### [v0.0.16](https://github.com/julianshapiro/velocity/compare/v0.0.15...v0.0.16)

> 30 May 2014

- Closes #88, #90 [`#88`](https://github.com/julianshapiro/velocity/issues/88)
- Support Notes [`43a0efd`](https://github.com/julianshapiro/velocity/commit/43a0efdcc9972e02d243da05c6c542172ac0996d)
- Update README.md [`a507081`](https://github.com/julianshapiro/velocity/commit/a507081c4829507abf6a6bd7797227d22468c7c5)
- Update README.md [`6cb4a06`](https://github.com/julianshapiro/velocity/commit/6cb4a0665dde69ce0625aada285e4cfba91f081b)

#### [v0.0.15](https://github.com/julianshapiro/velocity/compare/v0.0.14...v0.0.15)

> 27 May 2014

- Update README.md [`09749e5`](https://github.com/julianshapiro/velocity/commit/09749e57b75e1d00c066e71d7789e97e6b6a8844)

#### [v0.0.14](https://github.com/julianshapiro/velocity/compare/v0.0.13...v0.0.14)

> 23 May 2014

- Version Updates [`0365563`](https://github.com/julianshapiro/velocity/commit/036556305c969746bcce6eb5d24808c111f74c76)
- Spring Physics for Element Sets Bug Fix [`7167288`](https://github.com/julianshapiro/velocity/commit/7167288d2617e5e7bd8b81db275a201176f97580)
- Minified [`6aff975`](https://github.com/julianshapiro/velocity/commit/6aff97506fb8fae11cee06e23c2284ba4a57882c)

#### [v0.0.13](https://github.com/julianshapiro/velocity/compare/v0.0.12...v0.0.13)

> 21 May 2014

- Spring Physics [`d620394`](https://github.com/julianshapiro/velocity/commit/d62039420565dd1fbce2523064ac9dd3592b95ae)
- Update README.md [`b361178`](https://github.com/julianshapiro/velocity/commit/b361178d7403effa1c5e65da86d235e8120a734e)
- Update README.md [`5c24e97`](https://github.com/julianshapiro/velocity/commit/5c24e977bc5a9e9dc588304cc242873b9cbbe5b6)

#### [v0.0.12](https://github.com/julianshapiro/velocity/compare/v0.0.10...v0.0.12)

> 19 May 2014

- Closes #72. [`#72`](https://github.com/julianshapiro/velocity/issues/72)
- Closes #65 and #73. [`#65`](https://github.com/julianshapiro/velocity/issues/65)
- Update README.md [`f445d1b`](https://github.com/julianshapiro/velocity/commit/f445d1b05eaad80fead72a83906eee999dd4c086)

#### [v0.0.10](https://github.com/julianshapiro/velocity/compare/v0.0.9...v0.0.10)

> 14 May 2014

- Fixes #59. Fixes #2. Closes #55. [`#59`](https://github.com/julianshapiro/velocity/issues/59) [`#2`](https://github.com/julianshapiro/velocity/issues/2) [`#55`](https://github.com/julianshapiro/velocity/issues/55)
- Update README.md [`871bb94`](https://github.com/julianshapiro/velocity/commit/871bb94466cbaffa247086b825e4d966d0886bb3)
- Update README.md [`b186cbe`](https://github.com/julianshapiro/velocity/commit/b186cbea6925757896952cdee50d53fd82a09515)
- Update README.md [`fa76d46`](https://github.com/julianshapiro/velocity/commit/fa76d46a0802ea1f1545d1c519f58645134128da)

#### [v0.0.9](https://github.com/julianshapiro/velocity/compare/v0.0.1...v0.0.9)

> 12 May 2014

- Back to the latest version [`#4`](https://github.com/julianshapiro/velocity/pull/4)
- Remove dependency on jQuery $.easing object [`#48`](https://github.com/julianshapiro/velocity/issues/48)
- Temporary jQuery-Less File Removal [`b33a9c5`](https://github.com/julianshapiro/velocity/commit/b33a9c591d3142e7fd96d3f3354878e82ce7c11a)
- Performance Boost + Framework Prep [`4ee968b`](https://github.com/julianshapiro/velocity/commit/4ee968b1d2b37f6c5685fd130e171b92dfcf0370)
- Performance Boost + Framework Prep [`be98b76`](https://github.com/julianshapiro/velocity/commit/be98b760d225adad1536a7cbfd4f2707b82595c8)

#### v0.0.1

> 6 May 2014

- Updated bower.json, addition of component.json [`#33`](https://github.com/julianshapiro/velocity/pull/33)
- Getting back in sync [`#3`](https://github.com/julianshapiro/velocity/pull/3)
- Contained Element Scrolling Support [`#2`](https://github.com/julianshapiro/velocity/pull/2)
- Back to the latest version [`#1`](https://github.com/julianshapiro/velocity/pull/1)
- Support for custom user sequences. Thanks to @jeffmicklos and @nmussy. [`#22`](https://github.com/julianshapiro/velocity/pull/22)
- Added optional CDN support [`#19`](https://github.com/julianshapiro/velocity/pull/19)
- Contained Element Scrolling Support [`#26`](https://github.com/julianshapiro/velocity/issues/26)
- non-camelCased Property Support, bower.json [`#27`](https://github.com/julianshapiro/velocity/issues/27)
- Remove Forced Class Extraction [`#17`](https://github.com/julianshapiro/velocity/issues/17)
- Fixes #11 [`#11`](https://github.com/julianshapiro/velocity/issues/11)
- Fixes #1 [`#1`](https://github.com/julianshapiro/velocity/issues/1)
- Update README.md [`0e226cb`](https://github.com/julianshapiro/velocity/commit/0e226cbe559460ef81b9f87c902aea94d8149842)
- Update README.md [`4c9bd3e`](https://github.com/julianshapiro/velocity/commit/4c9bd3e7e6de29bb79da110461f53a06b38a2a13)
- Sequence Fixes and Packaged Sequences [`e8ad8e4`](https://github.com/julianshapiro/velocity/commit/e8ad8e47879b7755b063a3368754aac482b08bbc)


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at rycochet@rycochet.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/


================================================
FILE: CONTRIBUTING.md
================================================
**Contributing**

- Make sure you're using the latest version of Velocity before reporting a bug.

- If you are asking for help please use [StackOverflow](https://stackoverflow.com/questions/tagged/velocity.js), as the issue tracker is for bugs and suggestions.

- Unless you're reporting an obvious bug that can be immediately recreated by anyone, please **create a demo** with the minimum amount of code necessary to reproduce your bug. You can use [this template](https://jsfiddle.net/Rycochet/mqv9L27u/), which already has Velocity and jQuery included (jQuery is not required by Velocity, it is included for ease of examples).

- Pull Requests for fixes and new features are often accepted, but feel free to open an issue first if you're unsure of the reception. All code submitted becomes part of VelocityJS and gets covered by its [license](https://github.com/julianshapiro/velocity/blob/master/LICENSE.md).

- Please check the [wiki](https://github.com/julianshapiro/velocity/wiki).



================================================
FILE: LICENSE.md
================================================
The MIT License

Copyright (c) 2014 Julian Shapiro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# Velocity beta

[![npm](https://img.shields.io/npm/v/velocity-animate.svg)](https://www.npmjs.com/package/velocity-animate) [![npm (tag)](https://img.shields.io/npm/v/velocity-animate/beta.svg)](https://www.npmjs.com/package/velocity-animate) [![cdnjs version](https://img.shields.io/cdnjs/v/velocity.svg)](https://cdnjs.com/libraries/velocity) [![npm downloads](https://img.shields.io/npm/dm/velocity-animate.svg)](https://www.npmjs.com/package/velocity-animate) [![jsdelivr downloads](https://data.jsdelivr.com/v1/package/npm/velocity-animate/badge)](https://www.jsdelivr.com/package/npm/velocity-animate)

## NPM: `npm install velocity-animate@beta`

## Docs
[https://github.com/julianshapiro/velocity/wiki](https://github.com/julianshapiro/velocity/wiki)

# IMPORTANT: The velocityjs.org documentation refers to V1, not V2 beta - use the wiki for latest documentation!

## News
WhatsApp, Tumblr, Windows, Samsung, Uber, and thousands of other companies rely on Velocity. Visit [Libscore.com](http://libscore.com/#$.Velocity) to see which sites use Velocity on their homepage.

## React Plugin
Announcement: https://fabric.io/blog/introducing-the-velocityreact-library<br>
Repo: https://github.com/twitter-fabric/velocity-react<br>
NPM: https://www.npmjs.com/package/velocity-react

## Quickstart
### Velocity (CDN, choose one of them):
```html
<script src="//cdn.jsdelivr.net/npm/velocity-animate@2.0/velocity.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/velocity/2.0.6/velocity.min.js"></script>
```

### Velocity UI pack (CDN, choose one of them):
```html
<script src="//cdn.jsdelivr.net/npm/velocity-animate@2.0/velocity.ui.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/velocity/2.0.6/velocity.ui.min.js"></script>
```

> Please note that JSDelivr can automatically supply the latest release, while CloudFlare needs to ask for a specific version.

### Package managers:
_npm:_ `npm install velocity-animate@beta`

### Automagic chaining:

If using the `.velocity(...)` chained function in libraries such as jQuery or Zepto you need to ensure that Velocity is loaded after them. If you wish to add it to anything loaded afterwards then look at the [Velocity.patch()](https://github.com/julianshapiro/velocity/wiki/Advanced---Patch) method.

## Questions or Problems?
Ask on [StackOverflow](http://stackoverflow.com/tags/velocity.js) (make sure you add the `[velocity.js]` and the `[javascript]` or `[typescript]` tags).

## Updates
- **[2.0](https://github.com/julianshapiro/velocity/compare/1.5.0...2.0.6)**: Typescript update and complete refactoring.
- **[1.5](https://github.com/julianshapiro/velocity/compare/1.4.0...1.5.0)**: Bugfixes, IE9 compatibility fixes.
- **[1.4](https://github.com/julianshapiro/velocity/compare/1.3.0...1.4.0)**: Pause / Resume (per element or global).<br>
Forcefed string animation (just have matching number spaces) including unit conversions and colour names (ie `background:["rgba(red,0.1)", "blue"]`).
High resolution timers (animations should be slightly smoother).<br>
Various fixes including ticker (loading Velocity in a background window) and color handling.
- **[1.3](https://github.com/julianshapiro/velocity/compare/1.2.0...1.3.0)**: Code cleanup - no breaking changes known.
- **[1.2](https://github.com/julianshapiro/velocity/compare/1.1.0...1.2.0)**: [Custom tweens](http://VelocityJS.org/#progress). [Custom easings](http://VelocityJS.org/#easing). ["Finish" command](http://VelocityJS.org/#finish).
- **[1.0](https://github.com/julianshapiro/velocity/compare/0.1.0...1.0.0)**: File name changed to `velocity.js`. Read [VelocityJS.org/#dependencies](http://VelocityJS.org/#dependencies).
- **0.1**: `stop` now stops animations *immediately* (instead of only clearing the remainder of the animation queue). No other backwards-incompatible changes were made.

## Learn
- **Motion design**: [smashingmagazine.com/2014/06/18/faster-ui-animations-with-velocity-js](http://smashingmagazine.com/2014/06/18/faster-ui-animations-with-velocity-js)
- **Animating without jQuery**: [smashingmagazine.com/2014/09/04/animating-without-jquery](http://www.smashingmagazine.com/2014/09/04/animating-without-jquery/)
- **Performance comparisons**: [davidwalsh.name/css-js-animation](http://davidwalsh.name/css-js-animation)
- **Workflow**: [css-tricks.com/improving-ui-animation-workflow-velocity-js](http://css-tricks.com/improving-ui-animation-workflow-velocity-js)

## Comparisons
- **CSS transitions** are meant for simple interface flourishes.
- **jQuery's $.animate()** is slow and poorly-equipped for motion design.
- **Velocity** is a fast, feature-rich standalone alternative to jQuery's $.animate().

## License
[MIT License](LICENSE.md). © Julian Shapiro (http://twitter.com/julian).

## Sponsors

[![Kiss My Button](https://presskit.kissmybutton.gr/logos/kissmybutton-logo-small.png)](https://kissmybutton.gr)  sponsors Velocity's development.

[![BrowserStack](https://raw.githubusercontent.com/julianshapiro/velocity/master/.github/browserstack-logo-182x96.png)](https://browserstack.com/)  provides browser testing services for Velocity.


================================================
FILE: V2_CHANGES.md
================================================
# Major Changes in Velocity V2

* APIs for extending Velocity - see the various register* commands in the wiki.
* Chaining - Chaining is awesome, use it. Chained commands are designed to operate on the chained animation, not on the elements within it.
* Colors - All web colors are supported internally.
* Delay - You can pass a negative number to start inside the animation rather than just having a delay before it.
* Display - This is a property, no longer an option.
* Loop - This no longer copies the animation call, it calls it multiple times.
* Per-element - Animations are now copied per-element, and not one a one-animation-per-array basis as in other libraries (and old Velocity v1).
* Repeat - This is almost identical to loop, but only runs one way.
* RequireJS - The namespace is now "velocity-animate" for consistency with the NPMjs project name.
* Reverse - Now reverses the last animation at time of adding, not when playing.
* Scroll - It is now a property, though it's preferred to use scrollTop and scrollLeft. (Working, but not happy with internal code - the API will not change again.)
* Sequences - rewritten and completely incompatible with previous versions.
* Speed - You can control the speed of the animation playback.
* Styles - Use `element.velocity("style", "propertyName"[, value])`, the old .Hook has gone.
* SVG - All SVG attributes are supported internally, though they must be placed on the correct type of element.
* Sync - You can now de-sync animations so they start immediately per-element, rather than waiting for all to be ready.
* Transforms - Use these directly within CSS, don't try the old shortcuts as they don't exist.
* UI-Pack - Now only contains animations, all code is in the core Velocity now.
* Visibility - This is a property, no longer an option.


================================================
FILE: babel.config.js
================================================
/*
 * velocity-animate (C) 2014-2018 Julian Shapiro.
 *
 * Licensed under the MIT license. See LICENSE file in the project root for details.
 *
 * Babel config.
 */

module.exports = {
    "presets": [
        [
            "@babel/preset-env",
            {
                "modules": false
            }
        ],
        "@babel/preset-typescript"
    ],
    "plugins": [
        [
            "@babel/plugin-proposal-optional-chaining",
            {
                "loose": true
            }
        ],
        "@babel/plugin-external-helpers"
    ]
};


================================================
FILE: bower.json
================================================
{
  "name": "velocity",
  "homepage": "http://velocityjs.org",
  "authors": [
    { "name" : "Julian Shapiro",
      "homepage" : "http://julian.com/"
    },
    {
      "name": "Ryc O'Chet",
      "url": "https://github.com/Rycochet"
    }
  ],
  "description": "Accelerated JavaScript animation.",
  "main": [ "./velocity.js", "./velocity.ui.js"],
  "keywords": [
    "animation",
    "jquery",
    "animate",
    "lightweight",
    "smooth",
    "ui",
    "velocity.js",
    "velocityjs",
    "javascript"
  ],
  "license": "MIT",
  "ignore": [
    "*.json",
    "!/bower.json",
    "LICENSE",
    "*.md"
  ],
  "repository" :
  {
    "type" : "git",
    "url" : "http://github.com/julianshapiro/velocity.git"
  }
}


================================================
FILE: docs.ts
================================================
/*
 * velocity-animate (C) 2014-2018 Julian Shapiro.
 *
 * Licensed under the MIT license. See LICENSE file in the project root for details.
 */


================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test.html
================================================
<!DOCTYPE html>
<!-- saved from url=(0035)https://greensock.com/js/speed.html -->
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

        <title>GreenSock Animation Platform (GSAP) Speed Test</title>
        <meta name="viewport" content="width=620, maximum-scale=1, user-scalable=false"/>
        <link href="./GreenSock Animation Platform (GSAP) Speed Test_files/css" rel="stylesheet" type="text/css"/>

        <link rel="shortcut icon" type="image/ico" href="https://greensock.com/forums/favicon.ico"/>
        <style type="text/css">

            html, body {
                overflow:hidden;
            }
            body {
                background-color:#000000;
                margin:0px;
                padding:0px;
                color:#CCCCCC;
                font-family: Signika Negative, Asap, sans-serif;
                font-weight: 300;
                font-size: 17px;
                line-height: 150%;
            }
            h1 {
                font-family: Signika Negative, Asap, sans-serif;
                font-weight: 300;
                font-size:48px;
                margin: 10px 0 0 0;
                padding: 0;
                line-height:115%;
            }
            a, a:hover, a:visited {
                color:#71B200;
            }
            #footer {
                position:fixed;
                bottom:0px;
                background-color:#555;
                left:0px;
                width:100%;
                padding:10px 10px 10px 5px;
                z-index:1000;
            }
            #fps {
                float:right;
                background-color:#CCC;
                padding:6px;
                margin-right:14px;
                color:#CC0000;
                border-radius: 5px;
                border-color:#000000;
                border-style:solid;
                border-width:1px;
                font-size:24px;
            }
            #start {
                width:100px;
            }
            #footer form li {
                display:block;
                float:left;
                margin:10px 5px 5px 5px;
            }
            #instructions {
                width:70%;
                margin-left:15%;
                padding-top:50px;
                padding-bottom:60px;
                opacity:0;
            }
            #container {
                position:absolute;
                top:0;
                left:0;
                width:100%;
                height:100%;
                overflow:hidden;
                z-index:-100;
            }
        </style>
    </head>

    <body>
        <div id="footer">
            <div id="fps" style="background-color: rgb(204, 204, 204); color: rgb(204, 0, 0); border-color: rgb(0, 0, 0); border-width: 1px; padding-bottom: 6px; padding-top: 6px;">28.5 fps</div>
            <form id="form">
                <li>
                    Dots:
                    <select id="dotQuantity" size="1">
                        <option value="1">1</option>
                        <option value="25">25</option>
                        <option value="50">50</option>
                        <option value="100">100</option>
                        <option value="200">200</option>
                        <option value="300">300</option>
                        <option value="400">400</option>
                        <option value="500" selected="selected">500</option>
                        <option value="750">750</option>
                        <option value="1000">1000</option>
                        <option value="1250">1250</option>
                        <option value="1500">1500</option>
                        <option value="2000">2000</option>
                        <option value="2500">2500</option>
                        <option value="3000">3000</option>
                    </select>
                </li>
                <li style="display:none">
                    Duration:
                    <select id="duration" size="1">
                        <option value="0.5">0.5 seconds</option>
                        <option value="0.75" selected="selected">0.75 seconds</option>
                        <option value="1">1 second</option>
                        <option value="5">5 seconds</option>
                    </select>
                </li>
                <li>
                    Engine:
                    <select id="engine" size="1">
                        <option value="jquery">jQuery 3</option>
                        <option value="gsap">GSAP</option>
                        <option value="jqueryGSAP">jquery.gsap.js plugin</option>
                        <option value="anime">anime</option>
                        <option value="mootools">MooTools</option>
                        <option value="dojo">Dojo</option>
                        <option value="tweenjs">TweenJS</option>
                        <option value="webanimations" class="webanimations">Web Animations</option>
                        <option value="zepto">Zepto</option>
                        <option value="velocity" selected="selected">Velocity</option>
                        <option value="gsap">----------</option>
                        <option value="gsaptransform">GSAP (translate/scale)</option>
                        <option value="zeptotransform">Zepto (translate/scale)</option>
                        <option value="animetransform">anime (translate/scale)</option>
                        <option value="webanimationstransform" class="webanimations">Web Animations (translate/scale)</option>
                    </select>
                </li>
                <li>
                    <button id="start" type="button" value="test" style="line-height:150%;"> START </button>
                </li>
            </form>
        </div>

        <div id="instructions" style="opacity: 1; visibility: inherit;">
            <h1>HTML5 Animation Speed Test</h1>
            <p>Stress test the performance of various common JavaScript libraries and
                compare them with GSAP (<a href="http://greensock.com/gsap-js/">GreenSock Animation Platform</a>). This test does <strong>not</strong> use a canvas element
                (although it certainly could) - it simply animates the left, top,
                width, and height css properties of standard image elements. There are also versions of the GSAP, Zepto, anime, and Web Animations tests that use transforms ("translate/scale") instead so that you can compare performance.
                The goal was to be extremely fair and use the same code for everything except the actual animation. No tricks.
                Look at the source for yourself or run your own tests to confirm.</p>
            <p>Choose the number of dots you'd like to animate and then choose the
                engine and click the "START" button below. Watch the <strong>fps</strong> in the lower right
                (higher is better - it reflects how many times the main thread updated over the past 1 second).
                As more dots are animated, you'll see the performance gap widen. Try to push things until the fps drops below 30fps. When the
                CPU isn't breaking a sweat, fps should hover around 100fps in most modern browsers.</p>
            <p>Note: Zepto uses CSS3 transitions which won't work in some browsers (like IE9). Also beware that some browsers incorrectly fire requestAnimationFrame events even when the browser clearly isn't updating the screen and/or they handle JS in a different thread, thus 10fps transitions may inaccurately report in JS as running at 50fps. So focus on the actual animation of the starfield and how smooth it is (or isn't). </p>
        </div>

        <div id="container"></div>

        <script src="../velocity.js"></script>
        <!--<script src="https://cdn.jsdelivr.net/velocity/1.5.0/velocity.min.js"></script>-->
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/web-animations-basic.min.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/jquery-3.0.0.min.js.download" type="text/javascript"></script>
        <script type="text/javascript" src="./GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.min.js.download"></script>
        <script type="text/javascript" src="./GreenSock Animation Platform (GSAP) Speed Test_files/jquery.gsap.min.js.download"></script>
        <script type="text/javascript" src="./GreenSock Animation Platform (GSAP) Speed Test_files/TweenLite.min.js.download"></script>
        <script type="text/javascript" src="./GreenSock Animation Platform (GSAP) Speed Test_files/mootools-core-1.4.5-full-compat-yc.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/dojo.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/easing.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/easeljs-0.4.2.min.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/tweenjs-0.2.0.min.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/Ease.js.download"></script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/zepto.min.js.download"></script>
        <script>define = null; //anime doesn't define itself properly unless we do this.</script>
        <script src="./GreenSock Animation Platform (GSAP) Speed Test_files/anime.min.js.download"></script>
        <script language="JavaScript" type="text/javascript">
            jQuery(function() {

                var fps = document.getElementById("fps"),
                        button = document.getElementById("start"),
                        dotQtyInput = document.getElementById("dotQuantity"),
                        durInput = document.getElementById("duration"),
                        engineInput = document.getElementById("engine"),
                        instructions = document.getElementById("instructions"),
                        container = document.getElementById("container"),
                        ticker = TweenLite.ticker,
                        inProgress = false,
                        tests = {},
                        size, centerX, centerY, dots, rawDots, currentTest, startTime, startFrame, prevUpdate, duration, startingCSS, fpsActive;

                /**
                 * The goal of this test is to compare how various animation engines perform under pressure, taking relatively common
                 * animation tasks and running a lot of them at once to see raw performance. The goal is NOT to figure out the most
                 * efficient way to move dots in a starfield pattern.
                 *
                 * The same code runs everything except the actual tweens themselves. Every test in the "test"
                 * object has 4 properties:
                 *
                 *         - milliseconds [boolean] - true if the duration should be defined in milliseconds
                 *
                 *         - wrapDot [function] - when each dot <img> is created, it is passed to the wrapDot() method
                 *                                and whatever is returned gets stored in the array of dots to tween. This
                 *                                is useful to improve performance of things like jQuery because
                 *                                instead of passing the dom element to the tween() method (which would require
                 *                                jQuery to then query the dom and wrap the element in an engine-specific object
                 *                                before calling animate() on it), a native object can be used. Basically it lets you
                 *                                cache the dot's wrapper for better performance.
                 *
                 *         - tween [function] - This is the core of the whole test. tween() is called for each dot, and the dot is
                 *                              passed as a parameter. The tween() function should set the dot's cssText to the
                 *                              startingCSS value (which just places the dot in the middle of the screen and sets its
                 *                              width/height to 1px) and then after a random delay between 0 and the duration of the tween,
                 *                              it should tween the dot at a random angle, altering the left/top values accordingly as
                 *                              well as the width/height to 32px. Then, after the tween is done, it should call the tween()
                 *                              method again for that dot. So the same dot will just continuously tween outward from the
                 *                              center at random angles and at random delay values.
                 *
                 *         - stop [function] - This function is called when the user stops the test. The dot is passed as a parameter.
                 *                             The function should immediately stop/kill the tween(s) of that dot (or all dots - that's fine too).
                 *
                 * I don't claim to be an expert at the various other tweening engines out there, so if there are optimizations
                 * that could be made to make them run better, please let me know. I tried to keep things as fair as possible.
                 *
                 * Also, if anyone knows how to make a more accurate fps counter that works well with transitions, let me know - currently
                 * several browsers incorrectly dispatch requestAnimationFrame events even when the screen isn't being refreshed, giving
                 * an artificially high frame rate readout. And some browers don't repaint the screen each time all the elements' styles
                 * are updated, thus motion can appear a bit jerky even when the fps counter says you're getting a good frame rate.
                 **/


                //Velocity
                tests.velocity = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return [dot];
                    },
                    tween: function(dot) {
                        //dot.style.position = "absolute";
                        //"position:absolute; left:" + centerX + "px; top:" + centerY + "px; width:" + size + "; height:" + size + ";";
                        dot[0].style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        Velocity(dot, {
                            left: [Math.cos(angle) * radius + centerX, centerX],
                            top: [Math.sin(angle) * radius + centerY, centerY],
                            width: ["32px", size],
                            height: ["32px", size]
                        }, {
                            duration: duration,
                            delay: Math.random() * duration,
                            easing: "easeInCubic",
                            complete: tests.velocity.tween
                        });
                    },
                    stop: function(dot) {
                        Velocity(dot, "stop");
                    },
                    nativeSize: false
                };

                //jQuery
                tests.jquery = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return jQuery(dot); //wrap the dot in a jQuery object in order to perform better (that way, we don't need to query the dom each time we tween - we can just call animate() directly on the jQuery object)
                    },
                    tween: function(dot) {
                        dot[0].style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        dot.delay(Math.random() * duration).animate({
                            left: Math.cos(angle) * radius + centerX,
                            top: Math.sin(angle) * radius + centerY,
                            width: 32,
                            height: 32}, duration, "cubicIn", function() {
                            tests.jquery.tween(dot)
                        });
                    },
                    stop: function(dot) {
                        dot.stop(true);
                    },
                    nativeSize: false
                };

                //jquery.gsap.js plugin
                tests.jqueryGSAP = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return jQuery(dot); //wrap the dot in a jQuery object in order to perform better (that way, we don't need to query the dom each time we tween - we can just call animate() directly on the jQuery object)
                    },
                    tween: function(dot) {
                        dot[0].style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        dot.animate({left: Math.cos(angle) * radius + centerX,
                            top: Math.sin(angle) * radius + centerY,
                            width: 32,
                            height: 32,
                            delay: Math.random() * duration / 1000}, duration, "easeInCubic", function() {
                            tests.jqueryGSAP.tween(dot)
                        });
                    },
                    stop: function(dot) {
                        dot.stop(true);
                    },
                    nativeSize: false
                };


                //GSAP (TweenLite) top/left/width/height
                tests.gsap = {
                    milliseconds: false,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        var angle = Math.random() * Math.PI * 2;
                        dot.style.cssText = startingCSS;
                        TweenLite.to(dot, duration, {css: {left: Math.cos(angle) * radius + centerX,
                                top: Math.sin(angle) * radius + centerY,
                                width: 32,
                                height: 32},
                            delay: Math.random() * duration,
                            ease: Cubic.easeIn,
                            overwrite: "none",
                            onComplete: tests.gsap.tween,
                            onCompleteParams: [dot]});
                    },
                    stop: function(dot) {
                        TweenLite.killTweensOf(dot);
                    },
                    nativeSize: false
                };

                //GSAP (TweenLite) translateX/translateY/scale
                tests.gsaptransform = {
                    milliseconds: false,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        TweenLite.set(dot, {css: {x: 0, y: 0, scale: 0.06, force3d: true}});
                        var angle = Math.random() * Math.PI * 2;
                        TweenLite.to(dot, duration, {css: {x: (Math.cos(angle) * radius),
                                y: (Math.sin(angle) * radius),
                                scaleX: 2,
                                scaleY: 2},
                            delay: Math.random() * duration,
                            ease: Cubic.easeIn,
                            overwrite: "none",
                            onComplete: tests.gsaptransform.tween,
                            onCompleteParams: [dot]});
                    },
                    stop: function(dot) {
                        TweenLite.killTweensOf(dot);
                    },
                    nativeSize: true
                };


                //Anime top/left/width/height
                tests.anime = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        var angle = Math.random() * Math.PI * 2;
                        dot.style.cssText = startingCSS;
                        anime({targets: dot, duration: duration,
                            left: Math.cos(angle) * radius + centerX,
                            top: Math.sin(angle) * radius + centerY,
                            width: 32,
                            height: 32,
                            delay: Math.random() * duration,
                            easing: "easeInCubic",
                            complete: function() {
                                tests.anime.tween(dot);
                            }});
                    },
                    stop: function(dot) {
                        anime.remove(dot);
                    },
                    nativeSize: false
                };

                //Anime transforms
                tests.animetransform = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        dot.style.cssText = "position:absolute; top:" + centerY + "px; left:" + centerX + "px; transform: none;";
                        //anime({targets:dot, position:"absolute", top:centerY, left:centerX, translateX:0, translateY:0, scale:1, duration:0}); //zero-duration animations don't seem to work. Had to set cssText instead (above).
                        var angle = Math.random() * Math.PI * 2;
                        anime({targets: dot, duration: duration,
                            translateX: (Math.cos(angle) * radius),
                            translateY: (Math.sin(angle) * radius),
                            scale: 32,
                            delay: Math.random() * duration,
                            easing: "easeInCubic",
                            complete: function() {
                                tests.animetransform.tween(dot);
                            }});
                    },
                    stop: function(dot) {
                        anime.remove(dot);
                    },
                    nativeSize: false
                };


                //Web Animations
                tests.webanimations = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        dot.style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2,
                                delay = Math.random() * duration,
                                anim = dot.anim = dot.animate([{left: centerX + "px", top: centerY + "px", width: "1px", height: "1px"}, {
                                        left: (Math.cos(angle) * radius + centerX) + "px",
                                        top: (Math.sin(angle) * radius + centerY) + "px",
                                        width: "32px",
                                        height: "32px"
                                    }], {duration: duration, delay: delay, fill: "forwards", easing: "cubic-bezier(0.550, 0.055, 0.675, 0.190)"});
                        //anim.play();
                        anim.onfinish = function() {
                            tests.webanimations.tween(dot);
                        };
                    },
                    stop: function(dot) {
                        dot.anim.onfinish = null; //otherwise it'll call the onfinish when cancelled, and the loop will continue.
                        dot.anim.cancel();
                    },
                    nativeSize: false
                };

                //Web Animations (transforms)
                tests.webanimationstransform = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        dot.style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2,
                                delay = Math.random() * duration,
                                anim = dot.anim = dot.animate([{transform: "translate(0px, 0px) scale(1)", left: centerX + "px", top: centerY + "px"}, {
                                        transform: "translate(" + (Math.cos(angle) * radius) + "px, " + (Math.sin(angle) * radius) + "px) scale(32)", left: centerX + "px", top: centerY + "px"
                                    }], {duration: duration, delay: delay, fill: "forwards", easing: "cubic-bezier(0.550, 0.055, 0.675, 0.190)"});
                        //anim.play();
                        anim.onfinish = function() {
                            tests.webanimationstransform.tween(dot);
                        };
                    },
                    stop: function(dot) {
                        dot.anim.onfinish = null; //otherwise it'll call the onfinish when cancelled, and the loop will continue.
                        dot.anim.cancel();
                    },
                    nativeSize: false
                };

                //MooTools
                tests.mootools = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        var m = new Fx.Morph(dot, {duration: duration, transition: Fx.Transitions.Cubic.easeIn, onComplete: function() {
                                tests.mootools.tween(m);
                            }});
                        return m;
                    },
                    tween: function(dot) {
                        dot.element.style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        setTimeout(function() {
                            if (inProgress)
                                dot.start({//I couldn't find a way to delay a Morph, so setTimeout was my only option. If anyone knows a better way, please let me know.
                                    left: Math.cos(angle) * radius + centerX + "px",
                                    top: Math.sin(angle) * radius + centerY + "px",
                                    width: "32px",
                                    height: "32px"});
                        }, Math.random() * duration);
                    },
                    stop: function(dot) {
                        dot.cancel();
                    },
                    nativeSize: false
                };


                //Dojo
                tests.dojo = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return {dot: dot, anim: null}; //must record the animation instance so that we can stop() it later
                    },
                    tween: function(dot) {
                        dot.dot.style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        dot.anim = dojo.animateProperty({node: dot.dot,
                            properties: {
                                left: Math.cos(angle) * radius + centerX,
                                top: Math.sin(angle) * radius + centerY,
                                width: 32,
                                height: 32},
                            easing: dojo.fx.easing.cubicIn,
                            delay: Math.random() * duration,
                            duration: duration}).play();
                        dot.anim.onEnd = function() {
                            tests.dojo.tween(dot);
                        }
                    },
                    stop: function(dot) {
                        dot.anim.stop();
                    },
                    nativeSize: false
                };

                //TweenJS
                CSSPlugin.install();
                Ticker.setFPS(100); //ensures that TweenJS refreshes at the same rate as GSAP for maximum smoothness
                tests.tweenjs = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return dot; //no wrapping necessary
                    },
                    tween: function(dot) {
                        dot.style.cssText = startingCSS;
                        var angle = Math.random() * Math.PI * 2;
                        Tween.get(dot).wait(Math.random() * duration).to({
                            left: Math.cos(angle) * radius + centerX,
                            top: Math.sin(angle) * radius + centerY,
                            width: 32,
                            height: 32
                        }, duration, Ease.cubicIn).call(tests.tweenjs.tween, [dot]);
                    },
                    stop: function(dot) {
                        Tween.removeTweens(dot);
                    },
                    nativeSize: false
                };

                //Zepto using top/left/width/height (css transitions)
                tests.zepto = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return Zepto(dot); //wrap the dot in a jQuery object in order to perform better (that way, we don't need to query the dom each time we tween - we can just call animate() directly on the jQuery object)
                    },
                    tween: function(dot) {
                        dot[0].style.cssText = startingCSS;
                        //Zepto's delay feature performs TERRIBLY under pressure, so we use a setTimeout() instead to improve performance.
                        setTimeout(function() {
                            if (!dot.isKilled) { //Zepto doesn't have a feature that allows us to kill tweens, so we simply set our own "isKilled" property to true when the tween is supposed to be killed and then stop the recursion thereafter which gives us a somewhat similar effect.
                                var angle = Math.random() * Math.PI * 2;
                                dot.animate({left: Math.cos(angle) * radius + centerX,
                                    top: Math.sin(angle) * radius + centerY,
                                    width: 32,
                                    height: 32}, duration, "cubic-bezier(0.550, 0.055, 0.675, 0.190)", function() {
                                    tests.zepto.tween(dot)
                                });
                            }
                        }, duration * Math.random());
                    },
                    stop: function(dot) {
                        dot.isKilled = true;
                    },
                    nativeSize: false
                };

                //Zepto using translateX/translateY/scale (css transitions)
                tests.zeptotransform = {
                    milliseconds: true,
                    wrapDot: function(dot) {
                        return Zepto(dot); //wrap the dot in a jQuery object in order to perform better (that way, we don't need to query the dom each time we tween - we can just call animate() directly on the jQuery object)
                    },
                    tween: function(dot) {
                        //I couldn't just set the css() reliably with Zepto (it failed), so I was forced to use a zero-duration animate() call. It's fair, though, because we actually do a zero-duration tween for TweenLite too.
                        dot.animate({translateX: "0px", translateY: "0px", rotateY: "0rad", rotateX: "0rad", scale: "0.06,0.06"}, 0);
                        //Zepto's delay feature performs TERRIBLY under pressure, so we use a setTimeout() instead to improve performance.
                        setTimeout(function() {
                            if (!dot.isKilled) { //Zepto doesn't have a feature that allows us to kill tweens, so we simply set our own "isKilled" property to true when the tween is supposed to be killed and then stop the recursion thereafter which gives us a somewhat similar effect.
                                var angle = Math.random() * Math.PI * 2;
                                dot.animate({translateX: (Math.cos(angle) * radius) + "px",
                                    translateY: (Math.sin(angle) * radius) + "px",
                                    scale: "2,2",
                                    delay: duration * Math.random()}, duration, "cubic-bezier(0.550, 0.055, 0.675, 0.190)", function() {
                                    tests.zeptotransform.tween(dot)
                                });
                            }
                        }, duration * Math.random());
                    },
                    stop: function(dot) {
                        dot.isKilled = true;
                    },
                    nativeSize: true
                };



                function toggleTest() {
                    inProgress = !inProgress;
                    var i;
                    if (inProgress) {

                        currentTest = tests[engineInput.value];
                        size = (currentTest.nativeSize ? "16px" : "1px");
                        centerX = jQuery(window).width() / 2;
                        centerY = (jQuery(window).height() / 2) - 30;
                        startingCSS = "position:absolute; left:" + centerX + "px; top:" + centerY + "px; width:" + size + "; height:" + size + ";";
                        radius = Math.sqrt(centerX * centerX + centerY * centerY);
                        duration = Number(durInput.value);
                        if (currentTest.milliseconds) {
                            duration *= 1000;
                        }

                        if (jQuery.gsap) {
                            jQuery.gsap.enabled((engineInput.value === "jqueryGSAP"));
                        }

                        createDots();
                        i = dots.length;
                        while (--i > -1) {
                            currentTest.tween(dots[i]);
                        }

                        startTime = prevUpdate = ticker.time;
                        startFrame = ticker.frame;
                        //ticker.addEventListener("tick", updateFPS, this);

                        dotQtyInput.disabled = engineInput.disabled = true;

                        //adjust the fps style and fade out the instructions
                        button.innerHTML = " STOP ";
                        fps.innerHTML = "-- fps";
                        fps.style.backgroundColor = "#FFFFFF";
                        fps.style.borderColor = fps.style.color = "#FF0000";
                        fps.style.borderWidth = "3px";
                        fps.style.paddingTop = fps.style.paddingBottom = "4px";
                        TweenLite.to(instructions, 0.7, {css: {autoAlpha: 0}, overwrite: "all"});
                        TweenLite.delayedCall(1, activateFPS); //wait a little bit to allow the dots to fill the screen before starting to report the FPS

                    } else {
                        //adjust the fps style and fade in the instructions
                        //ticker.removeEventListener("tick", updateFPS);
                        fps.style.backgroundColor = "#CCCCCC";
                        fps.style.color = "#CC0000";
                        fps.style.borderColor = "#000000";
                        fps.style.borderWidth = "1px";
                        fps.style.paddingTop = fps.style.paddingBottom = "6px";
                        button.innerHTML = " START ";
                        TweenLite.to(instructions, 0.7, {css: {autoAlpha: 1}, delay: 0.2});

                        dotQtyInput.disabled = engineInput.disabled = false;

                        //stop the tweens and remove the dots.
                        i = dots.length;
                        while (--i > -1) {
                            currentTest.stop(dots[i]);
                            container.removeChild(rawDots[i]); //removes dot(s)
                        }
                        dots = null;
                        rawDots = null;
                        fpsActive = false;
                        TweenLite.killTweensOf(activateFPS);
                        clearInterval(fpsIntervalID);
                    }
                }

                function createDots() {
                    var i = Number(dotQtyInput.value), dot;
                    dots = [];
                    rawDots = [];
                    while (--i > -1) {
                        dot = document.createElement("img");
                        dot.src = "img/dot.png";
                        dot.width = 1;
                        dot.height = 1;
                        dot.id = "dot" + i;
                        dot.style.cssText = startingCSS;
                        container.appendChild(dot);
                        rawDots.push(dot);
                        dots.push(currentTest.wrapDot(dot));
                    }
                }

                jQuery("#start").click(toggleTest);
                jQuery("#dotQuantity,#duration,#engine").change(function(e) {
                    if (inProgress) {
                        toggleTest();
                        toggleTest();
                    }
                });
                jQuery.easing.cubicIn = $.easing.cubicIn = function(p, n, firstNum, diff) { //we need to add the standard CubicIn ease to jQuery
                    return firstNum + p * p * p * diff;
                }
                //jQuery.fx.interval = 10; //ensures that jQuery refreshes at roughly 100fps like GSAP, TweenJS, and most of the others to be more even/fair.
                TweenLite.to(instructions, 0, {css: {opacity: 0}, immediateRender: true});
                TweenLite.to(instructions, 0.7, {css: {opacity: 1}, delay: 0.25});

                if (typeof (document.getElementById("start").animate) !== "function") { //if the browser doesn't support WAAPI natively, remove it from the list.
                    jQuery(".webanimations").remove();
                }

                function activateFPS() {
                    fpsActive = true;
                    frames = 0;
                    lastUpdate = getTime();
                    fpsIntervalID = setInterval(updateFPS, 10);
                }

                var getTime = Date.now || function() {
                    return new Date().getTime();
                },
                        lastUpdate, frames, fpsIntervalID;

                function updateFPS() {
                    frames++;
                    var elapsed = getTime() - lastUpdate;
                    if (fpsActive && elapsed > 1000) {
                        fps.innerHTML = Number(frames / elapsed * 1000).toFixed(1) + " fps";
                        lastUpdate += elapsed;
                        frames = 0;
                    }
                }


            });

        </script>


    </body></html>


================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.js.download
================================================
/*
* CSSPlugin by Grant Skinner. Mar 7, 2011
* Visit http://easeljs.com/ for documentation, updates and examples.
*
*
* Copyright (c) 2010 Grant Skinner
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

/**
 * The Tween Javascript library provides a retained graphics mode for canvas
 * including a full, hierarchical display list, a core interaction model, and
 * helper classes to make working with Canvas much easier.
 * @module TweenJS
 **/

(function(window) {
/**
 * A plugin to help TweenJS tween CSS properties.
 * @class CSSPlugin
 * @constructor
 * @protected
 **/
var CSSPlugin = function() {
  throw("CSSPlugin cannot be instantiated.")
}
var p = CSSPlugin.prototype;

// static interface:
    /**
     * Defines the default suffix map for CSS tweens. This can be overridden on a per tween basis by specifying a
     * cssSuffixMap value for the individual tween. The object maps CSS property names to the suffix to use when
     * reading or setting those properties. For example a map in the form {top:"px"} specifies that when tweening
     * the "top" CSS property, it should use the "px" suffix (ex. target.style.top = "20.5px"). This only applies
     * to tweens with the "css" config property set to true.
     * @property cssSuffixMap
     * @type Object
     * @static
     **/
    CSSPlugin.cssSuffixMap = {top:"px",left:"px",bottom:"px",right:"px",width:"px",height:"px",opacity:""};

    CSSPlugin.priority = -100; // very low priority, should run last

    /**
     * Install the plugin
     * @method install
     * @protected
     **/
    CSSPlugin.install = function() {
        var arr = [], map = CSSPlugin.cssSuffixMap;
        for (var n in map) { arr.push(n); }
        Tween.installPlugin(CSSPlugin, arr);
    }

    /**
     * Initialize the plugin
     * @method init
     * @protected
     **/
    CSSPlugin.init = function(tween, prop, value) {
        var sfx0,sfx1,style,map = CSSPlugin.cssSuffixMap;
        if ((sfx0 = map[prop]) == null || !(style = tween._target.style)) { return value; }
        var str = style[prop];
        if (!str) { return 0; } // no style set.
        var i = str.length-sfx0.length;
        if ((sfx1 = str.substr(i)) != sfx0) {
            throw("CSSPlugin Error: Suffixes do not match. ("+sfx0+":"+sfx1+")");
        } else {
            return parseInt(str.substr(0,i));
        }
    }

    /**
     * Apply the plugin properties on a tween
     * @method tween
     * @protected
     **/
    CSSPlugin.tween = function(tween, prop, value, startValues, endValues, ratio, position, end) {
        var style,map = CSSPlugin.cssSuffixMap;
        if (map[prop] == null || !(style = tween._target.style)) { return value; }
        style[prop] = value+map[prop];
        return value;
    }

// public properties:

// private properties:

// constructor:

// public methods:


// private methods:

window.CSSPlugin = CSSPlugin;
}(window));


================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.min.js.download
================================================
/*!
 * VERSION: 1.19.0
 * DATE: 2016-07-14
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="1.19.0",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity *= *([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity *=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N=document,O=function(a){return N.createElementNS?N.createElementNS("http://www.w3.org/1999/xhtml",a):N.createElement(a)},P=O("div"),Q=O("img"),R=g._internals={_specialProps:i},S=navigator.userAgent,T=function(){var a=S.indexOf("Android"),b=O("a");return m=-1!==S.indexOf("Safari")&&-1===S.indexOf("Chrome")&&(-1===a||Number(S.substr(a+8,1))>3),o=m&&Number(S.substr(S.indexOf("Version/")+8,1))<6,n=-1!==S.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),U=function(a){return x.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},V=function(a){window.console&&console.log(a)},W="",X="",Y=function(a,b){b=b||P;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(X=3===d?"ms":c[d],W="-"+X.toLowerCase()+"-",X+a):null},Z=N.defaultView?N.defaultView.getComputedStyle:function(){},$=g.getStyle=function(a,b,c,d,e){var f;return T||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||Z(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):U(a)},_=R.convertToPixels=function(a,c,d,e,f){if("px"===e||!e)return d;if("auto"===e||!d)return 0;var h,i,j,k=F.test(c),l=a,m=P.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+$(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||N.body,i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(P),h=parseFloat(P[k?"offsetWidth":"offsetHeight"]),l.removeChild(P),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=_(a,c,d,e,!0))}return o&&(h/=100),n?-h:h},aa=R.calculateOffset=function(a,b,c){if("absolute"!==$(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=$(a,"margin"+d,c);return a["offset"+d]-(_(a,b,parseFloat(e),e.replace(w,""))||0)},ba=function(a,b){var c,d,e,f={};if(b=b||Z(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Ca===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Ba===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return T||(f.opacity=U(a)),d=Pa(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Ea&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},ca=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(v,"")?f:0:aa(a,g),void 0!==j[g]&&(h=new ra(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},da={width:["Left","Right"],height:["Top","Bottom"]},ea=["marginLeft","marginRight","marginTop","marginBottom"],fa=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||Z(a))[b]||0;if(a.getBBox&&Ma(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=da[b],f=e.length;for(c=c||Z(a,null);--f>-1;)d-=parseFloat($(a,"padding"+e[f],c,!0))||0,d-=parseFloat($(a,"border"+e[f]+"Width",c,!0))||0;return d},ga=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ga(d[c]));return a.join(",")}return null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+" "+f+(d.length>2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ha=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ia=function(a,b){return"function"==typeof a&&(a=a(r,q)),null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ja=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},ka={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},la=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},ma=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),ka[a])c=ka[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(a[3])),c[0]=la(g+1/3,d,e),c[1]=la(g,d,e),c[2]=la(g-1/3,d,e);else c=a.match(s)||ka.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=ka.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},na=function(a,b){var c,d,e,f=a.match(oa)||[],g=0,h=f.length?"":a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=ma(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return h+a.substr(g)},oa="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j in ka)oa+="|"+j+"\\b";oa=new RegExp(oa+")","gi"),g.colorStringFilter=function(a){var b,c=a[0]+a[1];oa.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=na(a[0],b),a[1]=na(a[1],b)),oa.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var pa=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(oa)||[""])[0]:"",g=a.split(f).join("").match(u)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(oa)||[f])[0],m=a.split(b).join("").match(u)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(f=a.replace(I,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(u)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return h+b.join(j)+i}:function(a){return a}},qa=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},ra=(R._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=Math.round(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod(h.rotation,this.t):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),sa=(R._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=M;for(c._transform=null,M=b,d=k=c.parse(a,b,d,e),M=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new ra(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new ra(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},R.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof sa||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ta=function(a,b,c,d,e,f){var g=new sa(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},ua=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new sa(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&oa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(D=D.join(" ").replace(I,", ").split(" "),E=E.join(" ").replace(I,", ").split(" "),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,oa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m],x=parseFloat(p),x||0===x)h.appendXtra("",x,ha(u,x),u.replace(t,""),G&&-1!==u.indexOf("px"),!0);else if(e&&oa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&T,p=ma(p,C),u=ma(u,C),y=p.length+u.length>6,y&&!T&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(T||(y=!1),C?h.appendXtra(y?"hsla(":"hsl(",p[0],ha(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ha(u[1],p[1]),"%,",!1).appendXtra("",p[2],ha(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(y?"rgba(":"rgb(",p[0],u[0]-p[0],",",!0,!0).appendXtra("",p[1],u[1]-p[1],",",!0).appendXtra("",p[2],u[2]-p[2],y?",":B,!0),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),oa.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n<v.length;n++)A=v[n],z=p.indexOf(A,o),h.appendXtra(p.substr(o,z-o),Number(A),ha(w[n],A),"",G&&"px"===p.substr(z+A.length,2),0===n),o=z+A.length;h["xs"+h.l]+=p.substr(o)}else h["xs"+h.l]+=h.l||h["xs"+h.l]?" "+u:u;if(-1!==d.indexOf("=")&&h.data){for(B=h.xs0+h.data.s,m=1;m<h.l;m++)B+=h["xs"+m]+h.data["xn"+m];h.e=B+h["xs"+m]}return h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},va=9;for(j=sa.prototype,j.l=j.pr=0;--va>0;)j["xn"+va]=0,j["xs"+va]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new sa(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var wa=function(a,b){b=b||{},this.p=b.prefix?Y(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||pa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},xa=R._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new wa(f[d],b)},ya=R._registerPluginProp=function(a){if(!i[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";xa(a,{parser:function(a,c,d,e,f,g,j){var k=h.com.greensock.plugins[b];return k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(V("Error: "+b+" js file not loaded."),f)}})}};j=wa.prototype,j.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(I.test(c)||I.test(b)?(h=b.replace(I,"|").split("|"),i=c.replace(I,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return ua(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format($(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){xa(a,{parser:function(a,d,e,f,g,h,i){var j=new sa(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=m||n;var za,Aa="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ba=Y("transform"),Ca=W+"transform",Da=Y("transformOrigin"),Ea=null!==Y("perspective"),Fa=R.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Ea?g.defaultForce3D||"auto":!1},Ga=window.SVGElement,Ha=function(a,b,c){var d,e=N.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ia=N.documentElement,Ja=function(){var a,b,c,d=p||/Android/i.test(S)&&!window.chrome;return N.createElementNS&&!d&&(a=Ha("svg",Ia),b=Ha("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Da]="50% 50%",b.style[Ba]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Ea),Ia.removeChild(a)),d}(),Ka=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Oa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),b=ga(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Na&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},La=function(a){try{return a.getBBox()}catch(a){}},Ma=function(a){return!!(Ga&&a.getBBox&&a.getCTM&&La(a)&&(!a.parentNode||a.parentNode.getBBox&&a.parentNode.getCTM))},Na=[1,0,0,1,0,0],Oa=function(a,b){var c,d,e,f,g,h,i=a._gsTransform||new Fa,j=1e5,k=a.style;if(Ba?d=$(a,Ca,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,c&&Ba&&((h="none"===Z(a).display)||!a.parentNode)&&(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ia.appendChild(a)),d=$(a,Ca,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?k.display=f:h&&Ta(k,"display"),g&&Ia.removeChild(a)),(i.svg||a.getBBox&&Ma(a))&&(c&&-1!==(k[Ba]+"").indexOf("matrix")&&(d=k[Ba],c=0),e=a.getAttribute("transform"),c&&e&&(-1!==e.indexOf("matrix")?(d=e,c=0):-1!==e.indexOf("translate")&&(d="matrix(1,0,0,1,"+e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",c=0))),c)return Na;for(e=(d||"").match(s)||[],va=e.length;--va>-1;)f=Number(e[va]),e[va]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Pa=R.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Fa:new Fa,n=m.scaleX<0,o=2e-5,p=1e5,q=Ea?parseFloat($(a,Da,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getBBox||!Ma(a)),m.svg&&(Ka(a,$(a,Da,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),za=g.useSVGTransformAttr||Ja),f=Oa(a),f!==Na){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),x=x*v+B*w,t=y*v+C*w,C=y*-w+C*v,D=z*-w+D*v,y=t),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),m.scaleX=(Math.sqrt(x*x+y*y)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+G*G)*p+.5|0)/p,m.scaleZ=(Math.sqrt(D*D+H*H)*p+.5|0)/p,m.rotationX||m.rotationY?m.skewX=0:(m.skewX=B||C?Math.atan2(B,C)*L+m.rotation:m.skewX||0,Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180))),m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Ea||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,Math.abs(l)>90&&Math.abs(l)<270&&(n?(i*=-1,l+=0>=k?180:-180,k+=0>=k?180:-180):(j*=-1,l+=0>=l?180:-180)),m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Ea&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}m.zOrigin=q;for(h in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(za&&a.style[Ba]?b.delayedCall(.001,function(){Ta(a.style,Ba)}):!za&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Qa=function(a){var b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),va=0;4>va;va++)z=ea[va],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):_(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>va?-d.ieOffsetX:-d.ieOffsetY:2>va?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===va||2===va?1:B)))+"px"}}},Ra=R.set3DTransformRatio=R.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D;if(((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||za&&L||!Ea)return void(B||z.skewX||L?(B*=K,x=z.skewX*K,y=1e5,b=Math.cos(B)*E,e=Math.sin(B)*E,c=Math.sin(B-x)*-F,f=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(s=Math.tan(x-z.skewY*K),s=Math.sqrt(1+s*s),c*=s,f*=s,z.skewY&&(s=Math.tan(z.skewY*K),s=Math.sqrt(1+s*s),b*=s,e*=s)),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,I+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset,za&&(z.xPercent||z.yPercent)&&(p=this.t.getBBox(),H+=.01*z.xPercent*p.width,I+=.01*z.yPercent*p.height),p=1e-6,p>H&&H>-p&&(H=0),p>I&&I>-p&&(I=0)),u=(b*y|0)/y+","+(e*y|0)/y+","+(c*y|0)/y+","+(f*y|0)/y+","+H+","+I+")",L&&za?this.t.setAttribute("transform","matrix("+u):A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(p=1e-4,p>E&&E>-p&&(E=G=2e-5),p>F&&F>-p&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||z.skewX)B*=K,q=b=Math.cos(B),r=e=Math.sin(B),z.skewX&&(B-=z.skewX*K,q=Math.cos(B),r=Math.sin(B),"simple"===z.skewType&&(s=Math.tan((z.skewX-z.skewY)*K),s=Math.sqrt(1+s*s),q*=s,r*=s,z.skewY&&(s=Math.tan(z.skewY*K),s=Math.sqrt(1+s*s),b*=s,e*=s))),c=-r,f=q;else{if(!(D||C||1!==G||M||L))return void(A[Ba]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));b=f=1,c=e=0}j=1,d=g=h=i=k=l=0,m=M?-1/M:0,o=z.zOrigin,p=1e-6,v=",",w="0",B=D*K,B&&(q=Math.cos(B),r=Math.sin(B),h=-r,k=m*-r,d=b*r,g=e*r,j=q,m*=q,b*=q,e*=q),B=C*K,B&&(q=Math.cos(B),r=Math.sin(B),s=c*q+d*r,t=f*q+g*r,i=j*r,l=m*r,d=c*-r+d*q,g=f*-r+g*q,j*=q,m*=q,c=s,f=t),1!==G&&(d*=G,g*=G,j*=G,m*=G),1!==F&&(c*=F,f*=F,i*=F,l*=F),1!==E&&(b*=E,e*=E,h*=E,k*=E),(o||L)&&(o&&(H+=d*-o,I+=g*-o,J+=j*-o+o),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,I+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset),p>H&&H>-p&&(H=w),p>I&&I>-p&&(I=w),p>J&&J>-p&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(p>b&&b>-p?w:b)+v+(p>e&&e>-p?w:e)+v+(p>h&&h>-p?w:h),u+=v+(p>k&&k>-p?w:k)+v+(p>c&&c>-p?w:c)+v+(p>f&&f>-p?w:f),C||D||1!==G?(u+=v+(p>i&&i>-p?w:i)+v+(p>l&&l>-p?w:l)+v+(p>d&&d>-p?w:d),u+=v+(p>g&&g>-p?w:g)+v+(p>j&&j>-p?w:j)+v+(p>m&&m>-p?w:m)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ba]=u};j=Fa.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,xa("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j;"function"==typeof i[c]&&(j=i[c],i[c]=b);var k,l,m,n,o,p,s,t,u,v=a._gsTransform,w=a.style,x=1e-6,y=Aa.length,z=i,A={},B="transformOrigin",C=Pa(a,e,!0,z.parseTransform),D=z.transform&&("function"==typeof z.transform?z.transform(r,q):z.transform);if(d._transform=C,D&&"string"==typeof D&&Ba)l=P.style,l[Ba]=D,l.display="block",l.position="absolute",N.body.appendChild(P),k=Pa(P,null,!1),C.svg&&(p=C.xOrigin,s=C.yOrigin,k.x-=C.xOffset,k.y-=C.yOffset,(z.transformOrigin||z.svgOrigin)&&(D={},Ka(a,ga(z.transformOrigin),D,z.svgOrigin,z.smoothOrigin,!0),p=D.xOrigin,s=D.yOrigin,k.x-=D.xOffset-C.xOffset,k.y-=D.yOffset-C.yOffset),(p||s)&&(t=Oa(P,!0),k.x-=p-(p*t[0]+s*t[2]),k.y-=s-(p*t[1]+s*t[3]))),N.body.removeChild(P),k.perspective||(k.perspective=C.perspective),null!=z.xPercent&&(k.xPercent=ia(z.xPercent,C.xPercent)),null!=z.yPercent&&(k.yPercent=ia(z.yPercent,C.yPercent));else if("object"==typeof z){if(k={scaleX:ia(null!=z.scaleX?z.scaleX:z.scale,C.scaleX),scaleY:ia(null!=z.scaleY?z.scaleY:z.scale,C.scaleY),scaleZ:ia(z.scaleZ,C.scaleZ),x:ia(z.x,C.x),y:ia(z.y,C.y),z:ia(z.z,C.z),xPercent:ia(z.xPercent,C.xPercent),yPercent:ia(z.yPercent,C.yPercent),perspective:ia(z.transformPerspective,C.perspective)},o=z.directionalRotation,null!=o)if("object"==typeof o)for(l in o)z[l]=o[l];else z.rotation=o;"string"==typeof z.x&&-1!==z.x.indexOf("%")&&(k.x=0,k.xPercent=ia(z.x,C.xPercent)),"string"==typeof z.y&&-1!==z.y.indexOf("%")&&(k.y=0,k.yPercent=ia(z.y,C.yPercent)),k.rotation=ja("rotation"in z?z.rotation:"shortRotation"in z?z.shortRotation+"_short":"rotationZ"in z?z.rotationZ:C.rotation-C.skewY,C.rotation-C.skewY,"rotation",A),Ea&&(k.rotationX=ja("rotationX"in z?z.rotationX:"shortRotationX"in z?z.shortRotationX+"_short":C.rotationX||0,C.rotationX,"rotationX",A),k.rotationY=ja("rotationY"in z?z.rotationY:"shortRotationY"in z?z.shortRotationY+"_short":C.rotationY||0,C.rotationY,"rotationY",A)),k.skewX=ja(z.skewX,C.skewX-C.skewY),(k.skewY=ja(z.skewY,C.skewY))&&(k.skewX+=k.skewY,k.rotation+=k.skewY)}for(Ea&&null!=z.force3D&&(C.force3D=z.force3D,n=!0),C.skewType=z.skewType||C.skewType||g.defaultSkewType,m=C.force3D||C.z||C.rotationX||C.rotationY||k.z||k.rotationX||k.rotationY||k.perspective,m||null==z.scale||(k.scaleZ=1);--y>-1;)u=Aa[y],D=k[u]-C[u],(D>x||-x>D||null!=z[u]||null!=M[u])&&(n=!0,f=new sa(C,u,C[u],D,f),u in A&&(f.e=A[u]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return D=z.transformOrigin,C.svg&&(D||z.svgOrigin)&&(p=C.xOffset,s=C.yOffset,Ka(a,ga(D),k,z.svgOrigin,z.smoothOrigin),f=ta(C,"xOrigin",(v?C:k).xOrigin,k.xOrigin,f,B),f=ta(C,"yOrigin",(v?C:k).yOrigin,k.yOrigin,f,B),(p!==C.xOffset||s!==C.yOffset)&&(f=ta(C,"xOffset",v?p:C.xOffset,C.xOffset,f,B),f=ta(C,"yOffset",v?s:C.yOffset,C.yOffset,f,B)),D=za?null:"0px 0px"),(D||Ea&&m&&C.zOrigin)&&(Ba?(n=!0,u=Da,D=(D||$(a,u,e,!1,"50% 50%"))+"",f=new sa(w,u,0,0,f,-1,B),f.b=w[u],f.plugin=h,Ea?(l=C.zOrigin,D=D.split(" "),C.zOrigin=(D.length>2&&(0===l||"0px"!==D[2])?parseFloat(D[2]):l)||0,f.xs0=f.e=D[0]+" "+(D[1]||"50%")+" 0px",f=new sa(C,"zOrigin",0,0,f,-1,f.n),f.b=l,f.xs0=f.e=C.zOrigin):f.xs0=f.e=D):ga(D+"",C)),n&&(d._transformType=C.svg&&za||!m&&3!==this._transformType?2:3),j&&(i[c]=j),f},prefix:!0}),xa("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),xa("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=Y(y[j])),m=l=$(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=_(a,"borderLeft",o,t),w=_(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=_(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=ua(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:pa("0px 0px 0px 0px",!1,!0)}),xa("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return ua(a.style,c,this.format($(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:pa("0px 0px",!1,!0)}),xa("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||Z(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=$(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),Q.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-Q.width:a.offsetHeight-Q.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ga}),xa("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="",ga(-1===a.indexOf(" ")?a+" "+a:a)}}),xa("perspective",{defaultValue:"0px",prefix:!0}),xa("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),xa("transformStyle",{prefix:!0}),xa("backfaceVisibility",{prefix:!0}),xa("userSelect",{prefix:!0}),xa("margin",{parser:qa("marginTop,marginRight,marginBottom,marginLeft")}),xa("padding",{parser:qa("paddingTop,paddingRight,paddingBottom,paddingLeft")}),xa("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format($(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),xa("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),xa("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),xa("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=$(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/_(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+$(a,"borderTopStyle",e,!1,"solid")+" "+$(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(oa)||["#000"])[0]}}),xa("borderWidth",{
parser:qa("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),xa("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new sa(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Sa=function(a){var b,c=this.t,d=c.filter||$(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!$(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};xa("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat($(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===$(a,"visibility",e)&&0!==b&&(h=0),T?f=new sa(i,"opacity",h,b-h,f):(f=new sa(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Sa),j&&(f=new sa(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Ta=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Ua=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Ta(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};xa("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new sa(a,d,0,0,g,2),g.setRatio=Ua,g.pr=-11,c=!0,g.b=o,k=ba(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=ca(a,k,ba(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Va=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Da:i[c].p),Ta(g,c);e&&(Ta(g,Ba),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(xa("clearProps",{parser:function(a,b,d,e,f){return f=new sa(a,d,0,0,f,2),f.setRatio=Va,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),va=j.length;va--;)ya(j[va]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=Z(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=$(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=ba(a,e),A.cssText=t+";"+b,n=ca(a,n,ba(a)).difs,!T&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Ba?m&&(l=!0,""===A.zIndex&&(w=$(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new sa(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ba?Ra:Qa,x.data=this._transform||Pa(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b)n=b[g],"function"==typeof n&&(n=n(r,q)),h=i[g],h?c=h.parse(a,n,g,this,c,f,b):(m=$(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=ma(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=ua(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=ua(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=fa(a,g,e),o="px"):"left"===g||"top"===g?(j=aa(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&""!==p&&(l||0===l)&&j&&(j=_(a,g,j,o),"%"===p?(j/=_(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=_(a,g,1,p):"px"!==p&&(l=_(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new sa(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):V("invalid "+g+" tween value: "+b[g]):(c=new sa(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))),f&&c&&!c.plugin&&(c.plugin=f);return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=Math.round(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Pa(this._target,e,!0),this._transformType=this._transform.svg&&za||!a&&3!==this._transformType?2:3};var Wa=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var d=this._firstPT=new sa(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Wa,d.data=this},j._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._mod=function(a){for(var b=this._firstPT;b;)"function"==typeof a[b.p]&&a[b.p]===Math.round&&(b.r=1),b=b._next},j._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}for(b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),c=this._firstPT;c;)c.plugin&&c.plugin!==d&&c.plugin._kill&&(c.plugin._kill(b),d=c.plugin),c=c._next;return a.prototype._kill.call(this,f)};var Xa=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Xa(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ba(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Xa(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Xa(a,k,m),i.render(c,!0,!0),Xa(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=ca(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define(["TweenLite"],b):"undefined"!=typeof module&&module.exports&&(require("../TweenLite.js"),module.exports=b())}("CSSPlugin");

================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/Ease.js.download
================================================
/*
* Ease by Grant Skinner. Oct 27, 2011
* Visit http://easeljs.com/ for documentation, updates and examples.
*
* Equations derived from work by Robert Penner.
*
* Copyright (c) 2011 Grant Skinner
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

/**
* The Tween Javascript library provides a retained graphics mode for canvas
* including a full, hierarchical display list, a core interaction model, and
* helper classes to make working with Canvas much easier.
* @module TweenJS
**/


(function(window) {

// constructor:
/**
 * The Ease class provides a collection of easing functions for use with TweenJS.
 * It does not use the standard 4 param easing signature. Instead it uses a single param
 * which indicates the current linear ratio (0 to 1) of the tween.<br/>
 * <br/>
 * Most methods on Ease can be passed directly as easing functions:<br/>
 * Tween.get(target).to({x:100}, 500, Ease.linear);<br/>
 * <br/>
 * However, methods beginning with "get" will return an easing function based on parameter values:<br/>
 * Tween.get(target).to({y:200}, 500, Ease.getPowIn(2.2));<br/>
 * <br/>
 * Equations derived from work by Robert Penner.
 * @class Ease
 * @static
 **/
var Ease = function() {
    throw "Ease cannot be instantiated.";
}

// public static methods:
    /**
     * @method linear
     * @static
     **/
    Ease.linear = function(t) { return t; }

    /**
     * Identical to linear.
     * @method none
     * @static
     **/
    Ease.none = Ease.linear;

    /**
     * Mimics the simple -100 to 100 easing in Flash Pro.
     * @method get
     * @param amount A value from -1 (ease in) to 1 (ease out) indicating the strength and direction of the ease.
     * @static
     **/
    Ease.get = function(amount) {
        if (amount < -1) { amount = -1; }
        if (amount > 1) { amount = 1; }
        return function(t) {
            if (amount==0) { return t; }
            if (amount<0) { return t*(t*-amount+1+amount); }
            return t*((2-t)*amount+(1-amount));
        }
    }

    /**
     * Configurable exponential ease.
     * @method getPowIn
     * @param pow The exponent to use (ex. 3 would return a cubic ease).
     * @static
     **/
    Ease.getPowIn = function(pow) {
        return function(t) {
            return Math.pow(t,pow);
        }
    }


    /**
     * Configurable exponential ease.
     * @method getPowOut
     * @param pow The exponent to use (ex. 3 would return a cubic ease).
     * @static
     **/
    Ease.getPowOut = function(pow) {
        return function(t) {
            return 1-Math.pow(1-t,pow);
        }
    }


    /**
     * Configurable exponential ease.
     * @method getPowInOut
     * @param pow The exponent to use (ex. 3 would return a cubic ease).
     * @static
     **/
    Ease.getPowInOut = function(pow) {
        return function(t) {
            if ((t*=2)<1) return 0.5*Math.pow(t,pow);
            return 1-0.5*Math.abs(Math.pow(2-t,pow));
        }
    }


    /**
     * @method quadIn
     * @static
     **/
    Ease.quadIn = Ease.getPowIn(2);
    /**
     * @method quadOut
     * @static
     **/
    Ease.quadOut = Ease.getPowOut(2);
    /**
     * @method quadInOut
     * @static
     **/
    Ease.quadInOut = Ease.getPowInOut(2);


    /**
     * @method cubicIn
     * @static
     **/
    Ease.cubicIn = Ease.getPowIn(3);
    /**
     * @method cubicOut
     * @static
     **/
    Ease.cubicOut = Ease.getPowOut(3);
    /**
     * @method cubicInOut
     * @static
     **/
    Ease.cubicInOut = Ease.getPowInOut(3);


    /**
     * @method quartIn
     * @static
     **/
    Ease.quartIn = Ease.getPowIn(4);
    /**
     * @method quartOut
     * @static
     **/
    Ease.quartOut = Ease.getPowOut(4);
    /**
     * @method quartInOut
     * @static
     **/
    Ease.quartInOut = Ease.getPowInOut(4);


    /**
     * @method quintIn
     * @static
     **/
    Ease.quintIn = Ease.getPowIn(5);
    /**
     * @method quintOut
     * @static
     **/
    Ease.quintOut = Ease.getPowOut(5);
    /**
     * @method quintInOut
     * @static
     **/
    Ease.quintInOut = Ease.getPowInOut(5);


    /**
     * @method sineIn
     * @static
     **/
    Ease.sineIn = function(t) {
        return 1-Math.cos(t*Math.PI/2);
    }

    /**
     * @method sineOut
     * @static
     **/
    Ease.sineOut = function(t) {
        return Math.sin(t*Math.PI/2);
    }

    /**
     * @method sineInOut
     * @static
     **/
    Ease.sineInOut = function(t) {
        return -0.5*(Math.cos(Math.PI*t) - 1)
    }


    /**
     * Configurable "back in" ease.
     * @method getBackIn
     * @param amount The strength of the ease.
     * @static
     **/
    Ease.getBackIn = function(amount) {
        return function(t) {
            return t*t*((amount+1)*t-amount);
        }
    }
    /**
     * @method backIn
     * @static
     **/
    Ease.backIn = Ease.getBackIn(1.7);

    /**
     * Configurable "back out" ease.
     * @method getBackOut
     * @param amount The strength of the ease.
     * @static
     **/
    Ease.getBackOut = function(amount) {
        return function(t) {
            return (--t*t*((amount+1)*t + amount) + 1);
        }
    }
    /**
     * @method backOut
     * @static
     **/
    Ease.backOut = Ease.getBackOut(1.7);

    /**
     * Configurable "back in out" ease.
     * @method getBackInOut
     * @param amount The strength of the ease.
     * @static
     **/
    Ease.getBackInOut = function(amount) {
        amount*=1.525;
        return function(t) {
            if ((t*=2)<1) return 0.5*(t*t*((amount+1)*t-amount));
            return 0.5*((t-=2)*t*((amount+1)*t+amount)+2);
        }
    }
    /**
     * @method backInOut
     * @static
     **/
    Ease.backInOut = Ease.getBackInOut(1.7);


    /**
     * @method circIn
     * @static
     **/
    Ease.circIn = function(t) {
        return -(Math.sqrt(1-t*t)- 1);
    }

    /**
     * @method circOut
     * @static
     **/
    Ease.circOut = function(t) {
        return Math.sqrt(1-(--t)*t);
    }

    /**
     * @method circInOut
     * @static
     **/
    Ease.circInOut = function(t) {
        if ((t*=2) < 1) return -0.5*(Math.sqrt(1-t*t)-1);
        return 0.5*(Math.sqrt(1-(t-=2)*t)+1);
    }

    /**
     * @method bounceIn
     * @static
     **/
    Ease.bounceIn = function(t) {
        return 1-Ease.bounceOut(1-t);
    }

    /**
     * @method bounceOut
     * @static
     **/
    Ease.bounceOut = function(t) {
        if (t < 1/2.75) {
            return (7.5625*t*t);
        } else if (t < 2/2.75) {
            return (7.5625*(t-=1.5/2.75)*t+0.75);
        } else if (t < 2.5/2.75) {
            return (7.5625*(t-=2.25/2.75)*t+0.9375);
        } else {
            return (7.5625*(t-=2.625/2.75)*t +0.984375);
        }
    }

    /**
     * @method bounceInOut
     * @static
     **/
    Ease.bounceInOut = function(t) {
        if (t<0.5) return Ease.bounceIn (t*2) * .5;
        return Ease.bounceOut(t*2-1)*0.5+0.5;
    }


    /**
     * Configurable elastic ease.
     * @method getElasticIn
     * @param amplitude
     * @param period
     * @static
     **/
    Ease.getElasticIn = function(amplitude,period) {
        var pi2 = Math.PI*2;
        return function(t) {
            if (t==0 || t==1) return t;
            var s = period/pi2*Math.asin(1/amplitude);
            return -(amplitude*Math.pow(2,10*(t-=1))*Math.sin((t-s)*pi2/period));
        }
    }
    /**
     * @method elasticIn
     * @static
     **/
    Ease.elasticIn = Ease.getElasticIn(1,0.3);

    /**
     * Configurable elastic ease.
     * @method getElasticOut
     * @param amplitude
     * @param period
     * @static
     **/
    Ease.getElasticOut = function(amplitude,period) {
        var pi2 = Math.PI*2;
        return function(t) {
            if (t==0 || t==1) return t;
            var s = period/pi2 * Math.asin(1/amplitude);
            return (amplitude*Math.pow(2,-10*t)*Math.sin((t-s)*pi2/period )+1);
        }
    }
    /**
     * @method elasticOut
     * @static
     **/
    Ease.elasticOut = Ease.getElasticOut(1,0.3);

    /**
     * Configurable elastic ease.
     * @method getElasticInOut
     * @param amplitude
     * @param period
     * @static
     **/
    Ease.getElasticInOut = function(amplitude,period) {
        var pi2 = Math.PI*2;
        return function(t) {
            var s = period/pi2 * Math.asin(1/amplitude);
            if ((t*=2)<1) return -0.5*(amplitude*Math.pow(2,10*(t-=1))*Math.sin( (t-s)*pi2/period ));
            return amplitude*Math.pow(2,-10*(t-=1))*Math.sin((t-s)*pi2/period)*0.5+1;
        }
    }
    /**
     * @method elasticInOut
     * @static
     **/
    Ease.elasticInOut = Ease.getElasticInOut(1,0.3*1.5);

window.Ease = Ease;
}(window));


================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/TweenLite.min.js.download
================================================
/*!
 * VERSION: 1.19.0
 * DATE: 2016-07-16
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
!function(a,b){"use strict";var c={},d=a.GreenSockGlobals=a.GreenSockGlobals||a;if(!d.TweenLite){var e,f,g,h,i,j=function(a){var b,c=a.split("."),e=d;for(b=0;b<c.length;b++)e[c[b]]=e=e[c[b]]||{};return e},k=j("com.greensock"),l=1e-10,m=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},n=function(){},o=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),p={},q=function(e,f,g,h){this.sc=p[e]?p[e].sc:[],p[e]=this,this.gsClass=null,this.func=g;var i=[];this.check=function(k){for(var l,m,n,o,r,s=f.length,t=s;--s>-1;)(l=p[f[s]]||new q(f[s],[])).gsClass?(i[s]=l.gsClass,t--):k&&l.sc.push(this);if(0===t&&g){if(m=("com.greensock."+e).split("."),n=m.pop(),o=j(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(d[n]=c[n]=o,r="undefined"!=typeof module&&module.exports,!r&&"function"==typeof define&&define.amd)define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+e.split(".").pop(),[],function(){return o});else if(r)if(e===b){module.exports=c[b]=o;for(s in c)o[s]=c[s]}else c[b]&&(c[b][n]=o);for(s=0;s<this.sc.length;s++)this.sc[s].check()}},this.check(!0)},r=a._gsDefine=function(a,b,c,d){return new q(a,b,c,d)},s=k._class=function(a,b,c){return b=b||function(){},r(a,[],function(){return b},c),b};r.globals=d;var t=[0,0,1,1],u=s("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?t.concat(b):t},!0),v=u.map={},w=u.register=function(a,b,c,d){for(var e,f,g,h,i=b.split(","),j=i.length,l=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?s("easing."+f,null,!0):k.easing[f]||{},g=l.length;--g>-1;)h=l[g],v[f+"."+h]=v[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(g=u.prototype,g._calcEnd=!1,g.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},e=["Linear","Quad","Cubic","Quart","Quint,Strong"],f=e.length;--f>-1;)g=e[f]+",Power"+f,w(new u(null,null,1,f),g,"easeOut",!0),w(new u(null,null,2,f),g,"easeIn"+(0===f?",easeNone":"")),w(new u(null,null,3,f),g,"easeInOut");v.linear=k.easing.Linear.easeIn,v.swing=k.easing.Quad.easeInOut;var x=s("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});g=x.prototype,g.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,j=this._listeners[a],k=0;for(this!==h||i||h.wake(),null==j&&(this._listeners[a]=j=[]),g=j.length;--g>-1;)f=j[g],f.c===b&&f.s===c?j.splice(g,1):0===k&&f.pr<e&&(k=g+1);j.splice(k,0,{c:b,s:c,up:d,pr:e})},g.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},g.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var y=a.requestAnimationFrame,z=a.cancelAnimationFrame,A=Date.now||function(){return(new Date).getTime()},B=A();for(e=["ms","moz","webkit","o"],f=e.length;--f>-1&&!y;)y=a[e[f]+"RequestAnimationFrame"],z=a[e[f]+"CancelAnimationFrame"]||a[e[f]+"CancelRequestAnimationFrame"];s("Ticker",function(a,b){var c,d,e,f,g,j=this,k=A(),m=b!==!1&&y?"auto":!1,o=500,p=33,q="tick",r=function(a){var b,h,i=A()-B;i>o&&(k+=i-p),B+=i,j.time=(B-k)/1e3,b=j.time-g,(!c||b>0||a===!0)&&(j.frame++,g+=b+(b>=f?.004:f-b),h=!0),a!==!0&&(e=d(r)),h&&j.dispatchEvent(q)};x.call(j),j.time=j.frame=0,j.tick=function(){r(!0)},j.lagSmoothing=function(a,b){o=a||1/l,p=Math.min(b,o,0)},j.sleep=function(){null!=e&&(m&&z?z(e):clearTimeout(e),d=n,e=null,j===h&&(i=!1))},j.wake=function(a){null!==e?j.sleep():a?k+=-B+(B=A()):j.frame>10&&(B=A()-o+5),d=0===c?n:m&&y?y:function(a){return setTimeout(a,1e3*(g-j.time)+1|0)},j===h&&(i=!0),r(2)},j.fps=function(a){return arguments.length?(c=a,f=1/(c||60),g=this.time+f,void j.wake()):c},j.useRAF=function(a){return arguments.length?(j.sleep(),m=a,void j.fps(c)):m},j.fps(a),setTimeout(function(){"auto"===m&&j.frame<5&&"hidden"!==document.visibilityState&&j.useRAF(!1)},1500)}),g=k.Ticker.prototype=new k.events.EventDispatcher,g.constructor=k.Ticker;var C=s("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,V){i||h.wake();var c=this.vars.useFrames?U:V;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});h=C.ticker=new k.Ticker,g=C.prototype,g._dirty=g._gc=g._initted=g._paused=!1,g._totalTime=g._time=0,g._rawPrevTime=-1,g._next=g._last=g._onUpdate=g._timeline=g.timeline=null,g._paused=!1;var D=function(){i&&A()-B>2e3&&h.wake(),setTimeout(D,2e3)};D(),g.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},g.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},g.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},g.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},g.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},g.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},g.render=function(a,b,c){},g.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},g.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime())>=c&&a<c+this.totalDuration()/this._timeScale},g._enabled=function(a,b){return i||h.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},g._kill=function(a,b){return this._enabled(!1,!1)},g.kill=function(a,b){return this._kill(a,b),this},g._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},g._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},g._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},g.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=o(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},g.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},g.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},g.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},g.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},g.totalTime=function(a,b,c){if(i||h.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(I.length&&X(),this.render(a,b,!1),I.length&&X())}return this},g.progress=g.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},g.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},g.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},g.timeScale=function(a){if(!arguments.length)return this._timeScale;if(a=a||l,this._timeline&&this._timeline.smoothChildTiming){var b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime();this._startTime=c-(c-this._startTime)*this._timeScale/a}return this._timeScale=a,this._uncache(!1)},g.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},g.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(i||a||h.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var E=s("core.SimpleTimeline",function(a){C.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});g=E.prototype=new C,g.constructor=E,g.kill()._gc=!1,g._first=g._last=g._recent=null,g._sortChildren=!1,g.add=g.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},g._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},g.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},g.rawTime=function(){return i||h.wake(),this._totalTime};var F=s("TweenLite",function(b,c,d){if(C.call(this,c,d),this.render=F.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:F.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?T[F.defaultOverwrite]:"number"==typeof i?i>>0:T[i],(h||b instanceof Array||b.push&&o(b))&&"number"!=typeof b[0])for(this._targets=g=m(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(m(f))):(this._siblings[e]=Y(f,this,!1),1===i&&this._siblings[e].length>1&&$(f,this,null,1,this._siblings[e])):(f=g[e--]=F.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=Y(b,this,!1),1===i&&this._siblings.length>1&&$(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-l,this.render(Math.min(0,-this._delay)))},!0),G=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},H=function(a,b){var c,d={};for(c in a)S[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!P[c]||P[c]&&P[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};g=F.prototype=new C,g.constructor=F,g.kill()._gc=!1,g.ratio=0,g._firstPT=g._targets=g._overwrittenProps=g._startAt=null,g._notifyPluginsOfEnabled=g._lazy=!1,F.version="1.19.0",F.defaultEase=g._ease=new u(null,null,1,1),F.defaultOverwrite="auto",F.ticker=h,F.autoSleep=120,F.lagSmoothing=function(a,b){h.lagSmoothing(a,b)},F.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(F.selector=c,c(b)):"undefined"==typeof document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)};var I=[],J={},K=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,L=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m(b,this._target||c.t):d>b&&b>-d&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},M=function(a,b,c,d){var e,f,g,h,i,j,k,l=[a,b],m=0,n="",o=0;for(l.start=a,c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(K)||[],f=b.match(K)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:0}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=L,l},N=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k,l="get"===c?a[b]:c,m=typeof a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:l,f:"function"===m,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-l||0};return"number"!==m&&("function"===m&&"get"===c&&(k=b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),o.s=l=g?a[k](g):a[k]()),"string"==typeof l&&(g||isNaN(l))?(o.fp=g,j=M(l,d,h||F.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):n||(o.s=parseFloat(l),o.c=parseFloat(d)-o.s||0)),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},O=F._internals={isArray:o,isSelector:G,lazyTweens:I,blobDif:M},P=F._plugins={},Q=O.tweenLookup={},R=0,S=O.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1},T={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},U=C._rootFramesTimeline=new E,V=C._rootTimeline=new E,W=30,X=O.lazyRender=function(){var a,b=I.length;for(J={};--b>-1;)a=I[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);I.length=0};V._startTime=h.time,U._startTime=h.frame,V._active=U._active=!0,setTimeout(X,1),C._updateRoot=F.render=function(){var a,b,c;if(I.length&&X(),V.render((h.time-V._startTime)*V._timeScale,!1,!1),U.render((h.frame-U._startTime)*U._timeScale,!1,!1),I.length&&X(),h.frame>=W){W=h.frame+(parseInt(F.autoSleep,10)||120);for(c in Q){for(b=Q[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete Q[c]}if(c=V._first,(!c||c._paused)&&F.autoSleep&&!U._first&&1===h._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||h.sleep()}}},h.addEventListener("tick",C._updateRoot);var Y=function(a,b,c){var d,e,f=a._gsTweenID;if(Q[f||(a._gsTweenID=f="t"+R++)]||(Q[f]={target:a,tweens:[]}),b&&(d=Q[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return Q[f].tweens},Z=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=F.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},$=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+l,m=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||_(b,0,o),0===_(h,j,o)&&(m[n++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(m[n++]=h)));for(f=n;--f>-1;)if(h=m[f],2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted){if(2!==d&&!Z(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},_=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*l>f-b?l:(f+=a.totalDuration()/a._timeScale/e)>b+l?0:f-b-l};g._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease;if(g.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,this._startAt=F.to(this.target,0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)S[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=F.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof u?k:"function"==typeof k?new u(k,g.easeParams):v[k]||F.defaultEase:F.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&F._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},g._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;J[b._gsTweenID]&&X(),this.vars.css||b.style&&b!==a&&b.nodeType&&P.css&&this.vars.autoCSS!==!1&&H(this.vars,b);for(g in this.vars)if(l=this.vars[g],S[g])l&&(l instanceof Array||l.push&&o(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(P[g]&&(j=new P[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=N.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&$(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(J[b._gsTweenID]=!0),i)},g.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===l&&"isPause"!==this.data)&&j!==a&&(c=!0,j>l&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:l);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==l||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:l)),this._initted||(c=!0);else if(this._totalTime=this._time=a,this._easeType){var k=a/i,m=this._easeType,n=this._easePower;(1===m||3===m&&k>=.5)&&(k=1-k),3===m&&(k*=2),1===n?k*=k:2===n?k*=k*k:3===n?k*=k*k*k:4===n&&(k*=k*k*k*k),1===m?this.ratio=1-k:2===m?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=j,I.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,b,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===l&&g!==l&&(this._rawPrevTime=0))}},g._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:F.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline;if((o(b)||G(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(F.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!Z(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return i},g.invalidate=function(){return this._notifyPluginsOfEnabled&&F._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],C.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-l,this.render(Math.min(0,-this._delay))),this},g._enabled=function(a,b){if(i||h.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=Y(d[c],this,!0);else this._siblings=Y(this.target,this,!0)}return C.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?F._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},F.to=function(a,b,c){return new F(a,b,c)},F.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new F(a,b,c)},F.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new F(a,b,d)},F.delayedCall=function(a,b,c,d,e){return new F(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},F.set=function(a,b){return new F(a,0,b)},F.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:F.selector(a)||a;var c,d,e,f;if((o(a)||G(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(F.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else for(d=Y(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d},F.killTweensOf=F.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=F.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var aa=s("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=aa.prototype},!0);if(g=aa.prototype,aa.version="1.19.0",aa.API=2,g._firstPT=null,g._addTween=N,g.setRatio=L,g._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},g._mod=g._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},F._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},aa.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===aa.API&&(P[(new a[b])._propName]=a[b]);return!0},r.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=s("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){aa.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new aa(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,aa.activate([g]),g},e=a._gsQueue){for(f=0;f<e.length;f++)e[f]();for(g in p)p[g].func||a.console.log("GSAP encountered missing dependency: "+g)}i=!1}}("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TweenLite");

================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/anime.min.js.download
================================================
/*
 * Anime v1.0.0
 * http://anime-js.com
 * Javascript animation engine
 * Copyright (c) 2016 Julian Garnier
 * http://juliangarnier.com
 * Released under the MIT license
 */
(function(r,n){"function"===typeof define&&define.amd?define([],n):"object"===typeof module&&module.exports?module.exports=n():r.anime=n()})(this,function(){var r={duration:1E3,delay:0,loop:!1,autoplay:!0,direction:"normal",easing:"easeOutElastic",elasticity:400,round:!1,begin:void 0,update:void 0,complete:void 0},n="translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY".split(" "),e=function(){return{array:function(a){return Array.isArray(a)},object:function(a){return-1<
Object.prototype.toString.call(a).indexOf("Object")},html:function(a){return a instanceof NodeList||a instanceof HTMLCollection},node:function(a){return a.nodeType},svg:function(a){return a instanceof SVGElement},number:function(a){return!isNaN(parseInt(a))},string:function(a){return"string"===typeof a},func:function(a){return"function"===typeof a},undef:function(a){return"undefined"===typeof a},"null":function(a){return"null"===typeof a},hex:function(a){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)},
rgb:function(a){return/^rgb/.test(a)},rgba:function(a){return/^rgba/.test(a)},hsl:function(a){return/^hsl/.test(a)},color:function(a){return e.hex(a)||e.rgb(a)||e.rgba(a)||e.hsl(a)}}}(),z=function(){var a={},b={Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a,b){if(0===a||1===a)return a;var f=1-Math.min(b,998)/1E3,h=a/1-1;return-(Math.pow(2,10*h)*Math.sin(2*(h-f/(2*Math.PI)*Math.asin(1))*Math.PI/f))},Back:function(a){return a*a*(3*a-2)},
Bounce:function(a){for(var b,f=4;a<((b=Math.pow(2,--f))-1)/11;);return 1/Math.pow(4,3-f)-7.5625*Math.pow((3*b-2)/22-a,2)}};["Quad","Cubic","Quart","Quint","Expo"].forEach(function(a,d){b[a]=function(a){return Math.pow(a,d+2)}});Object.keys(b).forEach(function(c){var d=b[c];a["easeIn"+c]=d;a["easeOut"+c]=function(a,b){return 1-d(1-a,b)};a["easeInOut"+c]=function(a,b){return.5>a?d(2*a,b)/2:1-d(-2*a+2,b)/2}});a.linear=function(a){return a};return a}(),u=function(a){return e.string(a)?a:a+""},A=function(a){return a.replace(/([a-z])([A-Z])/g,
"$1-$2").toLowerCase()},B=function(a){if(e.color(a))return!1;try{return document.querySelectorAll(a)}catch(b){return!1}},v=function(a){return a.reduce(function(a,c){return a.concat(e.array(c)?v(c):c)},[])},p=function(a){if(e.array(a))return a;e.string(a)&&(a=B(a)||a);return e.html(a)?[].slice.call(a):[a]},C=function(a,b){return a.some(function(a){return a===b})},N=function(a,b){var c={};a.forEach(function(a){var f=JSON.stringify(b.map(function(b){return a[b]}));c[f]=c[f]||[];c[f].push(a)});return Object.keys(c).map(function(a){return c[a]})},
D=function(a){return a.filter(function(a,c,d){return d.indexOf(a)===c})},w=function(a){var b={},c;for(c in a)b[c]=a[c];return b},t=function(a,b){for(var c in b)a[c]=e.undef(a[c])?b[c]:a[c];return a},O=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,e){return b+b+c+c+e+e});var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);a=parseInt(b[1],16);var c=parseInt(b[2],16),b=parseInt(b[3],16);return"rgb("+a+","+c+","+b+")"},P=function(a){a=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a);
var b=parseInt(a[1])/360,c=parseInt(a[2])/100,d=parseInt(a[3])/100;a=function(a,b,c){0>c&&(c+=1);1<c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+(b-a)*(2/3-c)*6:a};if(0==c)c=d=b=d;else var f=.5>d?d*(1+c):d+c-d*c,h=2*d-f,c=a(h,f,b+1/3),d=a(h,f,b),b=a(h,f,b-1/3);return"rgb("+255*c+","+255*d+","+255*b+")"},k=function(a){return/([\+\-]?[0-9|auto\.]+)(%|px|pt|em|rem|in|cm|mm|ex|pc|vw|vh|deg)?/.exec(a)[2]},E=function(a,b,c){return k(b)?b:-1<a.indexOf("translate")?k(c)?b+k(c):b+"px":-1<a.indexOf("rotate")||
-1<a.indexOf("skew")?b+"deg":b},F=function(a,b){if((e.node(a)||e.svg(a))&&C(n,b))return"transform";if((e.node(a)||e.svg(a))&&"transform"!==b&&x(a,b))return"css";if((e.node(a)||e.svg(a))&&(a.getAttribute(b)||a[b]))return"attribute";if(!e["null"](a[b])&&!e.undef(a[b]))return"object"},x=function(a,b){return getComputedStyle(a).getPropertyValue(A(b))},Q=function(a,b){var c=-1<b.indexOf("scale")?1:0,d=a.style.transform;if(!d)return c;for(var f=/(\w+)\((.+?)\)/g,h=[],e=[],q=[];h=f.exec(d);)e.push(h[1]),
q.push(h[2]);d=q.filter(function(a,c){return e[c]===b});return d.length?d[0]:c},G=function(a,b){switch(F(a,b)){case "transform":return Q(a,b);case "css":return x(a,b);case "attribute":return a.getAttribute(b)}return a[b]||0},H=function(a,b,c){if(e.color(b))return b=e.rgb(b)||e.rgba(b)?b:e.hex(b)?O(b):e.hsl(b)?P(b):void 0,b;if(k(b))return b;a=k(a.to)?k(a.to):k(a.from);!a&&c&&(a=k(c));return a?b+a:b},I=function(a){var b=/-?\d*\.?\d+/g;return{original:a,numbers:u(a).match(b)?u(a).match(b).map(Number):
[0],strings:u(a).split(b)}},R=function(a,b,c){return b.reduce(function(b,f,e){f=f?f:c[e-1];return b+a[e-1]+f})},S=function(a){a=a?v(e.array(a)?a.map(p):p(a)):[];return a.map(function(a,c){return{target:a,id:c}})},T=function(a,b){var c=[],d;for(d in a)if(!r.hasOwnProperty(d)&&"targets"!==d){var f=e.object(a[d])?w(a[d]):{value:a[d]};f.name=d;c.push(t(f,b))}return c},J=function(a,b,c,d){"transform"===c?(c=a+"("+E(a,b.from,b.to)+")",b=a+"("+E(a,b.to)+")"):(a="css"===c?x(d,a):void 0,c=H(b,b.from,a),b=
H(b,b.to,a));return{from:I(c),to:I(b)}},U=function(a,b){var c=[];a.forEach(function(d,f){var h=d.target;return b.forEach(function(b){var q=F(h,b.name);if(q){var k;k=b.name;var g=b.value,g=p(e.func(g)?g(h,f):g);k={from:1<g.length?g[0]:G(h,k),to:1<g.length?g[1]:g[0]};g=w(b);g.animatables=d;g.type=q;g.from=J(b.name,k,g.type,h).from;g.to=J(b.name,k,g.type,h).to;g.round=e.color(k.from)||g.round?1:0;g.delay=(e.func(g.delay)?g.delay(h,f,a.length):g.delay)/l.speed;g.duration=(e.func(g.duration)?g.duration(h,
f,a.length):g.duration)/l.speed;c.push(g)}})});return c},V=function(a,b){var c=U(a,b);return N(c,["name","from","to","delay","duration"]).map(function(a){var b=w(a[0]);b.animatables=a.map(function(a){return a.animatables});b.totalDuration=b.delay+b.duration;return b})},y=function(a,b){a.tweens.forEach(function(c){var d=c.from,f=a.duration-(c.delay+c.duration);c.from=c.to;c.to=d;b&&(c.delay=f)});a.reversed=a.reversed?!1:!0},K=function(a){var b=[],c=[];a.tweens.forEach(function(a){if("css"===a.type||
"transform"===a.type)b.push("css"===a.type?A(a.name):"transform"),a.animatables.forEach(function(a){c.push(a.target)})});return{properties:D(b).join(", "),elements:D(c)}},W=function(a){var b=K(a);b.elements.forEach(function(a){a.style.willChange=b.properties})},X=function(a){K(a).elements.forEach(function(a){a.style.removeProperty("will-change")})},Y=function(a,b){var c=a.path,d=a.value*b,f=function(f){f=f||0;return c.getPointAtLength(1<b?a.value+f:d+f)},e=f(),k=f(-1),f=f(1);switch(a.name){case "translateX":return e.x;
case "translateY":return e.y;case "rotate":return 180*Math.atan2(f.y-k.y,f.x-k.x)/Math.PI}},Z=function(a,b){var c=Math.min(Math.max(b-a.delay,0),a.duration)/a.duration,d=a.to.numbers.map(function(b,d){var e=a.from.numbers[d],k=z[a.easing](c,a.elasticity),e=a.path?Y(a,k):e+k*(b-e);return e=a.round?Math.round(e*a.round)/a.round:e});return R(d,a.to.strings,a.from.strings)},L=function(a,b){var c=void 0;a.time=Math.min(b,a.duration);a.progress=a.time/a.duration*100;a.tweens.forEach(function(a){a.currentValue=
Z(a,b);var d=a.currentValue;a.animatables.forEach(function(b){var e=b.id;switch(a.type){case "css":b.target.style[a.name]=d;break;case "attribute":b.target.setAttribute(a.name,d);break;case "object":b.target[a.name]=d;break;case "transform":c||(c={}),c[e]||(c[e]=[]),c[e].push(d)}})});if(c)for(var d in c)a.animatables[d].target.style.transform=c[d].join(" ");a.settings.update&&a.settings.update(a)},M=function(a){var b={};b.animatables=S(a.targets);b.settings=t(a,r);b.properties=T(a,b.settings);b.tweens=
V(b.animatables,b.properties);b.duration=b.tweens.length?Math.max.apply(Math,b.tweens.map(function(a){return a.totalDuration})):a.duration/l.speed;b.time=0;b.progress=0;b.running=!1;b.ended=!1;return b},m=[],l=function(a){var b=M(a),c={tick:function(){if(b.running){b.ended=!1;c.now=+new Date;c.current=c.last+c.now-c.start;L(b,c.current);var a=b.settings;a.begin&&c.current>=a.delay&&(a.begin(b),a.begin=void 0);c.current>=b.duration?(a.loop?(c.start=+new Date,"alternate"===a.direction&&y(b,!0),e.number(a.loop)&&
a.loop--,c.raf=requestAnimationFrame(c.tick)):(b.ended=!0,a.complete&&a.complete(b),b.pause()),c.last=0):c.raf=requestAnimationFrame(c.tick)}}};b.seek=function(a){L(b,a/100*b.duration)};b.pause=function(){b.running=!1;cancelAnimationFrame(c.raf);X(b);var a=m.indexOf(b);-1<a&&m.splice(a,1)};b.play=function(a){a&&(b=t(M(t(a,b.settings)),b));b.pause();b.running=!0;c.start=+new Date;c.last=b.ended?0:b.time;a=b.settings;"reverse"===a.direction&&y(b);"alternate"!==a.direction||a.loop||(a.loop=1);W(b);m.push(b);
c.raf=requestAnimationFrame(c.tick)};b.restart=function(){b.reversed&&y(b);b.pause();b.seek(0);b.play()};b.settings.autoplay&&b.play();return b};l.speed=1;l.list=m;l.remove=function(a){a=v(e.array(a)?a.map(p):p(a));for(var b=m.length-1;0<=b;b--)for(var c=m[b],d=c.tweens.length-1;0<=d;d--)for(var f=c.tweens[d],h=f.animatables.length-1;0<=h;h--)C(a,f.animatables[h].target)&&(f.animatables.splice(h,1),f.animatables.length||c.tweens.splice(d,1),c.tweens.length||c.pause())};l.easings=z;l.getValue=G;l.path=
function(a){a=e.string(a)?B(a)[0]:a;return{path:a,value:a.getTotalLength()}};l.random=function(a,b){return Math.floor(Math.random()*(b-a+1))+a};return l});

================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/css
================================================
/* latin-ext */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 300;
  src: local('Signika Negative Light'), local('SignikaNegative-Light'), url(https://fonts.gstatic.com/s/signikanegative/v6/q5TOjIw4CenPw6C-TW06FlQm6jw9jd4_TLOgXPl3aMI.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 300;
  src: local('Signika Negative Light'), local('SignikaNegative-Light'), url(https://fonts.gstatic.com/s/signikanegative/v6/q5TOjIw4CenPw6C-TW06FpYOZfD05paxOum1Eorz4ao.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* latin-ext */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 400;
  src: local('Signika Negative Regular'), local('SignikaNegative-Regular'), url(https://fonts.gstatic.com/s/signikanegative/v6/Z-Q1hzbY8uAo3TpTyPFMXcRUv4UNzckW6WBp2csADjc.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 400;
  src: local('Signika Negative Regular'), local('SignikaNegative-Regular'), url(https://fonts.gstatic.com/s/signikanegative/v6/Z-Q1hzbY8uAo3TpTyPFMXeDvvFXM8xWgng_3Cf56FV0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* latin-ext */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 700;
  src: local('Signika Negative Bold'), local('SignikaNegative-Bold'), url(https://fonts.gstatic.com/s/signikanegative/v6/q5TOjIw4CenPw6C-TW06FjICD6nLJtCPDEbD0_mhtO0.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Signika Negative';
  font-style: normal;
  font-weight: 700;
  src: local('Signika Negative Bold'), local('SignikaNegative-Bold'), url(https://fonts.gstatic.com/s/signikanegative/v6/q5TOjIw4CenPw6C-TW06FuQ6_Aau4Cy11rcU9CM9cFc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}


================================================
FILE: gsap/GreenSock Animation Platform (GSAP) Speed Test_files/dojo.js.download
================================================
/*
    Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
    Available via Academic Free License >= 2.1 OR the modified BSD license.
    see: http://dojotoolkit.org/license for details
*/

/*
    This is an optimized version of Dojo, built for deployment and not for
    development. To get sources and documentation, please visit:

        http://dojotoolkit.org
*/

//>>built
(function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};false&&has.add("host-node",typeof process=="object"&&/node(\.exe)?$/.test(process.execPath));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}false&&has.add("host-rhino",typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object"));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,xd:xd,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},holdIdle:function(){_74++;},releaseIdle:function(){_37();}};};if(1){var _38=location.protocol,_39=location.host,_3a=!_39;req.isXdUrl=function(url){if(_3a||/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3b=url.match(/^([^\/\:]+\:)\/\/([^\/]+)/);return _3b&&(_3b[1]!=_38||_3b[2]!=_39);};true||has.add("dojo-xhr-factory",1);has.add("dojo-force-activex-xhr",1&&!doc.addEventListener&&window.location.protocol=="file:");has.add("native-xhr",typeof XMLHttpRequest!="undefined");if(has("native-xhr")&&!has("dojo-force-activex-xhr")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3c=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3d,i=0;i<3;){try{_3d=_3c[i++];if(new ActiveXObject(_3d)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3d);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3e,_3f){var xhr=_2b();xhr.open("GET",_40(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3f){_3f(xhr.responseText,_3e);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _41=new Function("__text","return eval(__text);");req.eval=function(_42,_43){return _41(_42+"\r\n////@ sourceURL="+_43);};var _44={},_45="error",_34=req.signal=function(_46,_47){var _48=_44[_46];_9(_48&&_48.slice(0),function(_49){_49.apply(null,_8(_47)?_47:[_47]);});},on=req.on=function(_4a,_4b){var _4c=_44[_4a]||(_44[_4a]=[]);_4c.push(_4b);return {remove:function(){for(var i=0;i<_4c.length;i++){if(_4c[i]===_4b){_4c.splice(i,1);return;}}}};};var _4d=[],_4e={},_4f=[],_50={},_51={},_52=[],_2f={},_53="",_54={},_55={},_56={};if(1){var _57=function(_58){for(var p in _55){var _59=p.match(/^url\:(.+)/);if(_59){_54[_5a(_59[1],_58)]=_55[p];}else{if(p!="*noref"){_54[_5b(p,_58).mid]=_55[p];}}}_55={};},_5c=function(map,_5d,_5e){_5d.splice(0,_5d.length);var p,i,_5f,_60=0;for(p in map){_5d.push([p,map[p]]);if(map[p]==_5e){_60=p;}}_5d.sort(function(lhs,rhs){return rhs[0].length-lhs[0].length;});for(i=0;i<_5d.length;){_5f=_5d[i++];_5f[2]=new RegExp("^"+_5f[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;})+"(/|$)");_5f[3]=_5f[0].length+1;}return _60;},_61=function(_62,_63){var _64=_62.name;if(!_64){_64=_62;_62={name:_64};}_62=_c({main:"main",mapProg:[]},_62);_62.location=(_63||"")+(_62.location?_62.location:_64);_62.reverseName=_5c(_62.packageMap,_62.mapProg,_64);if(!_62.main.indexOf("./")){_62.main=_62.main.substring(2);}_c(_4e,_62.paths);_50[_64]=_62;_51[_64]=_64;},_65=function(_66,_67){for(var p in _66){if(p=="waitSeconds"){req.waitms=(_66[p]||0)*1000;}if(p=="cacheBust"){_53=_66[p]?(_7(_66[p])?_66[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p
Download .txt
gitextract_o9xnzj9n/

├── .babelrc
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── V2_CHANGES.md
├── babel.config.js
├── bower.json
├── docs.ts
├── gsap/
│   ├── GreenSock Animation Platform (GSAP) Speed Test.html
│   └── GreenSock Animation Platform (GSAP) Speed Test_files/
│       ├── CSSPlugin.js.download
│       ├── CSSPlugin.min.js.download
│       ├── Ease.js.download
│       ├── TweenLite.min.js.download
│       ├── anime.min.js.download
│       ├── css
│       ├── dojo.js.download
│       ├── easeljs-0.4.2.min.js.download
│       ├── easing.js.download
│       ├── jquery-3.0.0.min.js.download
│       ├── jquery.gsap.min.js.download
│       ├── mootools-core-1.4.5-full-compat-yc.js.download
│       ├── tweenjs-0.2.0.min.js.download
│       ├── web-animations-basic.min.js.download
│       └── zepto.min.js.download
├── legacy/
│   ├── README.md
│   ├── blur.ts
│   ├── borderColor.ts
│   ├── clip.ts
│   ├── normalisations.ts
│   └── opacity.ts
├── package.json
├── rollup.config.js
├── src/
│   ├── Velocity/
│   │   ├── _all.ts
│   │   ├── actions/
│   │   │   ├── _all.ts
│   │   │   ├── actions.ts
│   │   │   ├── finish.ts
│   │   │   ├── index.ts
│   │   │   ├── option.ts
│   │   │   ├── pauseResume.ts
│   │   │   ├── property.ts
│   │   │   ├── reverse.ts
│   │   │   ├── stop.ts
│   │   │   ├── style.ts
│   │   │   └── tween.ts
│   │   ├── camelCase.ts
│   │   ├── complete.ts
│   │   ├── css/
│   │   │   ├── _all.ts
│   │   │   ├── augmentDimension.ts
│   │   │   ├── colors.ts
│   │   │   ├── fixColors.ts
│   │   │   ├── getPropertyValue.ts
│   │   │   ├── index.ts
│   │   │   ├── removeNestedCalc.ts
│   │   │   └── setPropertyValue.ts
│   │   ├── data.ts
│   │   ├── defaults.ts
│   │   ├── easing/
│   │   │   ├── _all.ts
│   │   │   ├── back.ts
│   │   │   ├── bezier.ts
│   │   │   ├── bounce.ts
│   │   │   ├── easings.ts
│   │   │   ├── elastic.ts
│   │   │   ├── index.ts
│   │   │   ├── spring_rk4.ts
│   │   │   ├── step.ts
│   │   │   └── string.ts
│   │   ├── index.ts
│   │   ├── normalizations/
│   │   │   ├── _all.ts
│   │   │   ├── dimensions.ts
│   │   │   ├── display.ts
│   │   │   ├── index.ts
│   │   │   ├── normalizations.ts
│   │   │   ├── normalizationsObject.ts
│   │   │   ├── scroll.ts
│   │   │   ├── style.ts
│   │   │   ├── svg/
│   │   │   │   ├── _all.ts
│   │   │   │   ├── attributes.ts
│   │   │   │   ├── dimensions.ts
│   │   │   │   └── index.ts
│   │   │   └── tween.ts
│   │   ├── options.ts
│   │   ├── patch.ts
│   │   ├── queue.ts
│   │   ├── sequences.ts
│   │   ├── sequencesObject.ts
│   │   ├── state.ts
│   │   ├── tick.ts
│   │   └── tweens.ts
│   ├── constants.ts
│   ├── fakeClass.js
│   ├── fakeClass.ts
│   ├── tsconfig.json
│   ├── types.ts
│   ├── utility.ts
│   ├── velocity.ts
│   └── velocityFn.ts
├── src-ui/
│   ├── attention_seekers/
│   │   ├── _all.ts
│   │   ├── bounce.ts
│   │   ├── flash.ts
│   │   ├── headShake.ts
│   │   ├── jello.ts
│   │   ├── pulse.ts
│   │   ├── rubberBand.ts
│   │   ├── shake.ts
│   │   ├── swing.ts
│   │   ├── tada.ts
│   │   └── wobble.ts
│   ├── bouncing_entrances/
│   │   ├── _all.ts
│   │   ├── bounceIn.ts
│   │   ├── bounceInDown.ts
│   │   ├── bounceInLeft.ts
│   │   ├── bounceInRight.ts
│   │   └── bounceInUp.ts
│   ├── bouncing_exits/
│   │   ├── _all.ts
│   │   ├── bounceOut.ts
│   │   ├── bounceOutDown.ts
│   │   ├── bounceOutLeft.ts
│   │   ├── bounceOutRight.ts
│   │   └── bounceOutUp.ts
│   ├── fading_entrances/
│   │   ├── _all.ts
│   │   ├── fadeIn.ts
│   │   ├── fadeInDown.ts
│   │   ├── fadeInDownBig.ts
│   │   ├── fadeInLeft.ts
│   │   ├── fadeInLeftBig.ts
│   │   ├── fadeInRight.ts
│   │   ├── fadeInRightBig.ts
│   │   ├── fadeInUp.ts
│   │   └── fadeInUpBig.ts
│   ├── fading_exits/
│   │   ├── _all.ts
│   │   ├── fadeOut.ts
│   │   ├── fadeOutDown.ts
│   │   ├── fadeOutDownBig.ts
│   │   ├── fadeOutLeft.ts
│   │   ├── fadeOutLeftBig.ts
│   │   ├── fadeOutRight.ts
│   │   ├── fadeOutRightBig.ts
│   │   ├── fadeOutUp.ts
│   │   └── fadeOutUpBig.ts
│   ├── flippers/
│   │   ├── _all.ts
│   │   ├── flip.ts
│   │   ├── flipInX.ts
│   │   ├── flipInY.ts
│   │   ├── flipOutX.ts
│   │   └── flipOutY.ts
│   ├── lightspeed/
│   │   ├── _all.ts
│   │   ├── lightSpeedIn.ts
│   │   └── lightSpeedOut.ts
│   ├── rotating_entrances/
│   │   ├── _all.ts
│   │   ├── rotateIn.ts
│   │   ├── rotateInDownLeft.ts
│   │   ├── rotateInDownRight.ts
│   │   ├── rotateInUpLeft.ts
│   │   └── rotateInUpRight.ts
│   ├── rotating_exits/
│   │   ├── _all.ts
│   │   ├── rotateOut.ts
│   │   ├── rotateOutDownLeft.ts
│   │   ├── rotateOutDownRight.ts
│   │   ├── rotateOutUpLeft.ts
│   │   └── rotateOutUpRight.ts
│   ├── sliding_entrances/
│   │   ├── _all.ts
│   │   ├── slideInDown.ts
│   │   ├── slideInLeft.ts
│   │   ├── slideInRight.ts
│   │   └── slideInUp.ts
│   ├── sliding_exits/
│   │   ├── _all.ts
│   │   ├── slideOutDown.ts
│   │   ├── slideOutLeft.ts
│   │   ├── slideOutRight.ts
│   │   └── slideOutUp.ts
│   ├── specials/
│   │   ├── _all.ts
│   │   ├── hinge.ts
│   │   ├── jackInTheBox.ts
│   │   ├── rollIn.ts
│   │   └── rollOut.ts
│   ├── tsconfig.json
│   ├── velocity.ui.ts
│   ├── zooming_entrances/
│   │   ├── _all.ts
│   │   ├── zoomIn.ts
│   │   ├── zoomInDown.ts
│   │   ├── zoomInLeft.ts
│   │   ├── zoomInRight.ts
│   │   └── zoomInUp.ts
│   └── zooming_exits/
│       ├── _all.ts
│       ├── zoomOut.ts
│       ├── zoomOutDown.ts
│       ├── zoomOutLeft.ts
│       ├── zoomOutRight.ts
│       └── zoomOutUp.ts
├── test/
│   ├── index.html
│   ├── qunit-2.5.0.css
│   ├── qunit-2.5.0.js
│   ├── qunit-assert-close.js
│   ├── src/
│   │   ├── 1_Core/
│   │   │   ├── Arguments.ts
│   │   │   ├── End Value Caching.ts
│   │   │   ├── End Value Setting.ts
│   │   │   ├── Start Value Calculation.ts
│   │   │   ├── Unit Calculation.ts
│   │   │   └── _module.ts
│   │   ├── 2_Option/
│   │   │   ├── Option Begin.ts
│   │   │   ├── Option Complete.ts
│   │   │   ├── Option Delay.ts
│   │   │   ├── Option Duration.ts
│   │   │   ├── Option Easing.ts
│   │   │   ├── Option Fps Limit.ts
│   │   │   ├── Option Loop.ts
│   │   │   ├── Option Progress.ts
│   │   │   ├── Option Queue.ts
│   │   │   ├── Option Repeat.ts
│   │   │   ├── Option Speed.ts
│   │   │   ├── Option Sync.ts
│   │   │   └── _module.ts
│   │   ├── 3_Command/
│   │   │   ├── Command Finish.ts
│   │   │   ├── Command Pause + Resume.ts
│   │   │   ├── Command Reverse.ts
│   │   │   ├── Command Scroll.ts
│   │   │   ├── Command Stop.ts
│   │   │   ├── Command Tween.ts
│   │   │   └── _module.ts
│   │   ├── 4_Feature/
│   │   │   ├── Feature Classname.ts
│   │   │   ├── Feature Colors.ts
│   │   │   ├── Feature Forcefeeding.ts
│   │   │   ├── Feature Promises.ts
│   │   │   ├── Feature Sequences.ts
│   │   │   ├── Feature Value Functions.ts
│   │   │   └── _module.ts
│   │   ├── 5_UIPack/
│   │   │   ├── Packaged Effect slideUp+Down.ts
│   │   │   ├── UI Pack Call Options.ts
│   │   │   ├── UI Pack Callbacks.ts
│   │   │   ├── UI Pack In+Out.ts
│   │   │   ├── UI Pack RegisterEffect.ts
│   │   │   ├── UI Pack RunSequence.ts
│   │   │   └── _module.ts
│   │   ├── 6_Properties/
│   │   │   ├── Normalization property value reordering.ts
│   │   │   ├── Property Display.ts
│   │   │   ├── Property Visibility.ts
│   │   │   └── _module.ts
│   │   ├── test.ts
│   │   ├── tsconfig.json
│   │   └── utilities.ts
│   └── test.js
├── tsconfig.json
├── tslint.json
├── velocity.d.ts
├── velocity.es5.js
├── velocity.js
├── velocity.ui.js
└── version.ts
Download .txt
SYMBOL INDEX (674 symbols across 76 files)

FILE: legacy/borderColor.ts
  function borderColor (line 13) | function borderColor(element: HTMLorSVGElement, propertyValue?: string):...

FILE: legacy/opacity.ts
  function opacity (line 16) | function opacity(element: HTMLorSVGElement, propertyValue?: string): str...

FILE: rollup.config.js
  function stripBanner (line 25) | function stripBanner(options = {}) {
  function getPlugins (line 73) | function getPlugins(tsconfig) {

FILE: src/Velocity/actions/actions.ts
  function registerAction (line 24) | function registerAction(args?: [string, VelocityActionFn], internal?: bo...

FILE: src/Velocity/actions/finish.ts
  function checkAnimationShouldBeFinished (line 28) | function checkAnimationShouldBeFinished(animation: AnimationCall, queueN...
  function finish (line 87) | function finish(args: any[], elements: VelocityResult, promiseHandler?: ...

FILE: src/Velocity/actions/option.ts
  function option (line 42) | function option(args?: any[], elements?: VelocityResult, promiseHandler?...

FILE: src/Velocity/actions/pauseResume.ts
  function checkAnimation (line 23) | function checkAnimation(animation: AnimationCall, queueName: false | str...
  function pauseResume (line 38) | function pauseResume(args?: any[], elements?: VelocityResult, promiseHan...

FILE: src/Velocity/actions/property.ts
  function propertyAction (line 33) | function propertyAction(args?: any[], elements?: VelocityResult, promise...

FILE: src/Velocity/actions/stop.ts
  function checkAnimationShouldBeStopped (line 26) | function checkAnimationShouldBeStopped(animation: AnimationCall, queueNa...
  function stop (line 52) | function stop(args: any[], elements: VelocityResult, promiseHandler?: Ve...

FILE: src/Velocity/actions/tween.ts
  function tweenAction (line 32) | function tweenAction(args?: any[], elements?: VelocityResult, promiseHan...

FILE: src/Velocity/camelCase.ts
  function camelCase (line 17) | function camelCase(property: string): string {

FILE: src/Velocity/complete.ts
  function callComplete (line 23) | function callComplete(activeCall: AnimationCall) {
  function completeCall (line 44) | function completeCall(activeCall: AnimationCall) {

FILE: src/Velocity/css/augmentDimension.ts
  function augmentDimension (line 17) | function augmentDimension(element: HTMLorSVGElement, name: "width" | "he...

FILE: src/Velocity/css/fixColors.ts
  function makeRGBA (line 24) | function makeRGBA(ignore: any, r: string, g: string, b: string): string {
  function fixColors (line 32) | function fixColors(str: string): string {

FILE: src/Velocity/css/getPropertyValue.ts
  function getWidthHeight (line 22) | function getWidthHeight(element: HTMLorSVGElement, property: "width" | "...
  function computePropertyValue (line 27) | function computePropertyValue(element: HTMLorSVGElement, property: strin...
  function getPropertyValue (line 104) | function getPropertyValue(element: HTMLorSVGElement, propertyName: strin...

FILE: src/Velocity/css/removeNestedCalc.ts
  function removeNestedCalc (line 10) | function removeNestedCalc(value: string): string {

FILE: src/Velocity/css/setPropertyValue.ts
  function setPropertyValue (line 20) | function setPropertyValue(element: HTMLorSVGElement, propertyName: strin...

FILE: src/Velocity/data.ts
  function Data (line 20) | function Data(element: HTMLorSVGElement): ElementData {

FILE: src/Velocity/defaults.ts
  method reset (line 46) | static reset() {
  method cache (line 64) | static get cache(): boolean {
  method cache (line 68) | static set cache(value: boolean) {
  method begin (line 75) | static get begin(): VelocityCallbackFn {
  method begin (line 78) | static set begin(value: VelocityCallbackFn) {
  method complete (line 85) | static get complete(): VelocityCallbackFn {
  method complete (line 89) | static set complete(value: VelocityCallbackFn) {
  method delay (line 96) | static get delay(): number {
  method delay (line 99) | static set delay(value: number) {
  method duration (line 106) | static get duration(): number {
  method duration (line 109) | static set duration(value: number) {
  method easing (line 116) | static get easing(): VelocityEasingFn {
  method easing (line 119) | static set easing(value: VelocityEasingFn) {
  method fpsLimit (line 126) | static get fpsLimit(): number | false {
  method fpsLimit (line 129) | static set fpsLimit(value: number | false) {
  method loop (line 137) | static get loop(): number | true {
  method loop (line 140) | static set loop(value: number | true) {
  method mobileHA (line 147) | static get mobileHA(): boolean {
  method mobileHA (line 150) | static set mobileHA(value: boolean) {
  method minFrameTime (line 156) | static get minFrameTime(): number | false {
  method promise (line 160) | static get promise(): boolean {
  method promise (line 163) | static set promise(value: boolean) {
  method promiseRejectEmpty (line 170) | static get promiseRejectEmpty(): boolean {
  method promiseRejectEmpty (line 173) | static set promiseRejectEmpty(value: boolean) {
  method queue (line 180) | static get queue(): string | false {
  method queue (line 183) | static set queue(value: string | false) {
  method repeat (line 190) | static get repeat(): number | true {
  method repeat (line 193) | static set repeat(value: number | true) {
  method repeatAgain (line 200) | static get repeatAgain(): number | true {
  method speed (line 204) | static get speed(): number {
  method speed (line 207) | static set speed(value: number) {
  method sync (line 213) | static get sync(): boolean {
  method sync (line 216) | static set sync(value: boolean) {

FILE: src/Velocity/easing/back.ts
  function registerBackIn (line 12) | function registerBackIn(name: string, amount: number) {
  function registerBackOut (line 25) | function registerBackOut(name: string, amount: number) {
  function registerBackInOut (line 38) | function registerBackInOut(name: string, amount: number) {

FILE: src/Velocity/easing/bezier.ts
  function fixRange (line 18) | function fixRange(num: number) {
  function A (line 22) | function A(aA1, aA2) {
  function B (line 26) | function B(aA1, aA2) {
  function C (line 30) | function C(aA1) {
  function calcBezier (line 34) | function calcBezier(aT, aA1, aA2) {
  function getSlope (line 38) | function getSlope(aT, aA1, aA2) {
  function generateBezier (line 42) | function generateBezier(...args: [number, number, number, number]): Velo...

FILE: src/Velocity/easing/bounce.ts
  function easeOutBouncePercent (line 12) | function easeOutBouncePercent(percentComplete: number): number {
  function easeInBouncePercent (line 26) | function easeInBouncePercent(percentComplete: number): number {
  function easeInBounce (line 30) | function easeInBounce(percentComplete: number, startValue: number, endVa...
  function easeOutBounce (line 41) | function easeOutBounce(percentComplete: number, startValue: number, endV...
  function easeInOutBounce (line 52) | function easeInOutBounce(percentComplete: number, startValue: number, en...

FILE: src/Velocity/easing/easings.ts
  function registerEasing (line 22) | function registerEasing(args?: [string, VelocityEasingFn]) {
  function linearEasing (line 43) | function linearEasing(percentComplete, startValue, endValue, property) {
  function swingEasing (line 50) | function swingEasing(percentComplete, startValue, endValue) {
  function springEasing (line 57) | function springEasing(percentComplete, startValue, endValue) {

FILE: src/Velocity/easing/elastic.ts
  constant PI2 (line 13) | const PI2 = Math.PI * 2;
  function registerElasticIn (line 15) | function registerElasticIn(name: string, amplitude: number, period: numb...
  function registerElasticOut (line 28) | function registerElasticOut(name: string, amplitude: number, period: num...
  function registerElasticInOut (line 41) | function registerElasticInOut(name: string, amplitude: number, period: n...

FILE: src/Velocity/easing/spring_rk4.ts
  type springState (line 10) | interface springState {
  type springDelta (line 17) | interface springDelta {
  function springAccelerationForState (line 25) | function springAccelerationForState(state: springState) {
  function springEvaluateStateWithDerivative (line 29) | function springEvaluateStateWithDerivative(initialState: springState, dt...
  function springIntegrateState (line 43) | function springIntegrateState(state: springState, dt: number) {
  function generateSpringRK4 (line 62) | function generateSpringRK4(tension: number, friction: number, duration?:...

FILE: src/Velocity/easing/step.ts
  function generateStep (line 15) | function generateStep(steps): VelocityEasingFn {

FILE: src/Velocity/easing/string.ts
  function atStart (line 17) | function atStart(percentComplete: number, startValue: any, endValue: any...
  function during (line 27) | function during(percentComplete: number, startValue: any, endValue: any)...
  function atEnd (line 36) | function atEnd(percentComplete: number, startValue: any, endValue: any):...

FILE: src/Velocity/normalizations/dimensions.ts
  function getDimension (line 18) | function getDimension(name: "width" | "height", wantInner: boolean) {

FILE: src/Velocity/normalizations/display.ts
  function display (line 28) | function display(element: HTMLorSVGElement, propertyValue?: string): str...

FILE: src/Velocity/normalizations/normalizations.ts
  function registerNormalization (line 38) | function registerNormalization(
  function hasNormalization (line 98) | function hasNormalization(args?: [ClassConstructor | string, string]): b...
  function getNormalizationUnit (line 122) | function getNormalizationUnit(fn: VelocityNormalizationsFn) {
  function getNormalization (line 137) | function getNormalization(element: HTMLorSVGElement, propertyName: strin...

FILE: src/Velocity/normalizations/normalizationsObject.ts
  type ClassConstructor (line 43) | interface ClassConstructor {

FILE: src/Velocity/normalizations/scroll.ts
  function clientWidth (line 19) | function clientWidth(element: HTMLorSVGElement, propertyValue?: string):...
  function scrollWidth (line 30) | function scrollWidth(element: HTMLorSVGElement, propertyValue?: string):...
  function clientHeight (line 41) | function clientHeight(element: HTMLorSVGElement, propertyValue?: string)...
  function scrollHeight (line 52) | function scrollHeight(element: HTMLorSVGElement, propertyValue?: string)...
  function scroll (line 63) | function scroll(direction: "Height" | "Width", end: "Top" | "Left"): Vel...

FILE: src/Velocity/normalizations/style.ts
  function getSetPrefixed (line 91) | function getSetPrefixed(propertyName: string, unprefixed: string) {
  function getSetStyle (line 103) | function getSetStyle(propertyName: string) {

FILE: src/Velocity/normalizations/svg/attributes.ts
  function getAttribute (line 17) | function getAttribute(name: string) {

FILE: src/Velocity/normalizations/svg/dimensions.ts
  function getDimension (line 16) | function getDimension(name: string) {

FILE: src/Velocity/normalizations/tween.ts
  function getSetTween (line 16) | function getSetTween(element: HTMLorSVGElement, propertyValue?: string) {

FILE: src/Velocity/options.ts
  function parseDuration (line 26) | function parseDuration(duration: "fast" | "normal" | "slow" | number, de...
  function validateCache (line 42) | function validateCache(value: boolean): boolean {
  function validateBegin (line 54) | function validateBegin(value: VelocityCallbackFn): VelocityCallbackFn {
  function validateComplete (line 66) | function validateComplete(value: VelocityCallbackFn, noError?: true): Ve...
  function validateDelay (line 78) | function validateDelay(value: "fast" | "normal" | "slow" | number): numb...
  function validateDuration (line 92) | function validateDuration(value: "fast" | "normal" | "slow" | number, no...
  function validateEasing (line 106) | function validateEasing(value: VelocityEasingType, duration: number, noE...
  function validateFpsLimit (line 141) | function validateFpsLimit(value: number | false): number {
  function validateLoop (line 159) | function validateLoop(value: number | boolean): number | true {
  function validateProgress (line 183) | function validateProgress(value: VelocityProgressFn): VelocityProgressFn {
  function validatePromise (line 195) | function validatePromise(value: boolean): boolean {
  function validatePromiseRejectEmpty (line 207) | function validatePromiseRejectEmpty(value: boolean): boolean {
  function validateQueue (line 219) | function validateQueue(value: string | false, noError?: true): string | ...
  function validateRepeat (line 231) | function validateRepeat(value: number | boolean): number | true {
  function validateSpeed (line 255) | function validateSpeed(value: number): number {
  function validateSync (line 267) | function validateSync(value: boolean): boolean {

FILE: src/Velocity/patch.ts
  function patch (line 20) | function patch(proto: any, global?: boolean) {

FILE: src/Velocity/queue.ts
  function animate (line 22) | function animate(animation: AnimationCall) {
  function queue (line 52) | function queue(element: HTMLorSVGElement, animation: AnimationCall, queu...
  function dequeue (line 90) | function dequeue(element: HTMLorSVGElement, queueName?: string | boolean...
  function freeAnimationCall (line 117) | function freeAnimationCall(animation: AnimationCall): void {

FILE: src/Velocity/sequences.ts
  function expandSequence (line 25) | function expandSequence(animation: AnimationCall, sequence: SequenceList) {
  function registerSequence (line 52) | function registerSequence(args?: [string, VelocitySequence] | [{[name: s...

FILE: src/Velocity/tick.ts
  function beginCall (line 29) | function beginCall(activeCall: AnimationCall) {
  function progressCall (line 49) | function progressCall(activeCall: AnimationCall) {
  function asyncCallbacks (line 76) | function asyncCallbacks() {
  constant FRAME_TIME (line 91) | const FRAME_TIME = 1000 / 60,
  function workerFn (line 156) | function workerFn(this: Worker) {
  function tick (line 215) | function tick(timestamp?: number | boolean) {

FILE: src/Velocity/tweens.ts
  function expandProperties (line 59) | function expandProperties(animation: AnimationCall, properties: Properti...
  function findPattern (line 138) | function findPattern(parts: ReadonlyArray<string>, propertyName: string)...
  function explodeTween (line 352) | function explodeTween(propertyName: string, tween: VelocityTween, durati...
  function validateTweens (line 399) | function validateTweens(activeCall: AnimationCall) {

FILE: src/constants.ts
  constant ALL_VENDOR_PREFIXES (line 14) | const ALL_VENDOR_PREFIXES = true;
  constant DURATION_FAST (line 16) | const DURATION_FAST = 200;
  constant DURATION_NORMAL (line 17) | const DURATION_NORMAL = 400;
  constant DURATION_SLOW (line 18) | const DURATION_SLOW = 600;
  constant FUZZY_MS_PER_SECOND (line 20) | const FUZZY_MS_PER_SECOND = 980;
  constant DEFAULT_CACHE (line 22) | const DEFAULT_CACHE = true;
  constant DEFAULT_DELAY (line 23) | const DEFAULT_DELAY = 0;
  constant DEFAULT_DURATION (line 24) | const DEFAULT_DURATION = DURATION_NORMAL;
  constant DEFAULT_EASING (line 25) | const DEFAULT_EASING = "swing";
  constant DEFAULT_FPSLIMIT (line 26) | const DEFAULT_FPSLIMIT = 60;
  constant DEFAULT_LOOP (line 27) | const DEFAULT_LOOP = 0;
  constant DEFAULT_PROMISE (line 28) | const DEFAULT_PROMISE = true;
  constant DEFAULT_PROMISE_REJECT_EMPTY (line 29) | const DEFAULT_PROMISE_REJECT_EMPTY = true;
  constant DEFAULT_QUEUE (line 30) | const DEFAULT_QUEUE = "";
  constant DEFAULT_REPEAT (line 31) | const DEFAULT_REPEAT = 0;
  constant DEFAULT_SPEED (line 32) | const DEFAULT_SPEED = 1;
  constant DEFAULT_SYNC (line 33) | const DEFAULT_SYNC = true;
  constant CLASSNAME (line 35) | const CLASSNAME = "velocity-animating";

FILE: src/fakeClass.js
  function __ (line 10) | function __() { this.constructor = d; }
  function nn (line 21) | function nn(C) {
  function $A (line 30) | function $A() {
  function $B (line 49) | function $B() {

FILE: src/fakeClass.ts
  type NC (line 2) | type NC<X> = { new(): X };
  type FC (line 3) | type FC<X> = { (): X };
  type MC (line 4) | type MC<X> = NC<X> & FC<X>;
  function nn (line 5) | function nn<X>(C: NC<X>): MC<X> {
  type $c (line 11) | type $c = { $c: Function };
  class $A (line 13) | class $A {
    method constructor (line 16) | constructor() {
    method a (line 24) | a() {
  type A (line 28) | type A = $A;
  class $B (line 33) | class $B extends $A {
    method a (line 35) | a() {
  type B (line 39) | type B = $B;

FILE: src/types.ts
  function isBoolean (line 15) | function isBoolean(variable: any): variable is boolean {
  function isEmptyObject (line 22) | function isEmptyObject(variable: {}): variable is {} {
  function isFunction (line 35) | function isFunction(variable: any): variable is Function { // tslint:dis...
  function isNode (line 42) | function isNode(variable: any): variable is HTMLorSVGElement {
  function isNumber (line 49) | function isNumber(variable: any): variable is number {
  function isNumberWhenParsed (line 56) | function isNumberWhenParsed(variable: any): variable is number {
  function isPlainObject (line 63) | function isPlainObject(variable: any): variable is {} {
  function isSVG (line 75) | function isSVG(variable: any): variable is SVGElement {
  function isString (line 82) | function isString(variable: any): variable is string {
  function isVelocityResult (line 89) | function isVelocityResult(variable: any): variable is VelocityResult {
  function isWrapped (line 98) | function isWrapped(variable: any): variable is HTMLorSVGElement[] {
  function propertyIsEnumerable (line 111) | function propertyIsEnumerable(obj: object, property: string): boolean {

FILE: src/utility.ts
  function addClass (line 16) | function addClass(element: HTMLorSVGElement, className: string): void {
  function cloneArray (line 30) | function cloneArray<T = any>(arrayLike: T[] | ArrayLike<T>): T[] {
  function defineProperty (line 38) | function defineProperty(proto: any, name: string, value: any, readonly?:...
  function getValue (line 52) | function getValue<T>(...args: T[]): T {
  function removeClass (line 72) | function removeClass(element: HTMLorSVGElement, className: string): void {
  function sanitizeElements (line 86) | function sanitizeElements(elements: HTMLorSVGElement | HTMLorSVGElement[...

FILE: src/velocity.ts
  type IEDocument (line 102) | interface IEDocument extends Document {
  method get (line 169) | get() {
  method set (line 172) | set(value) {

FILE: src/velocityFn.ts
  function patchPromise (line 46) | function patchPromise(promiseObject: Promise<any>, result: VelocityResul...
  function Velocity (line 71) | function Velocity(this: VelocityElements | void, ...args: any[]): Veloci...
  function optionCallback (line 476) | function optionCallback<T>(fn: VelocityOptionFn<T>, element: HTMLorSVGEl...

FILE: test/qunit-2.5.0.js
  function defineProperties (line 59) | function defineProperties(target, props) {
  function diff (line 138) | function diff(a, b) {
  function inArray (line 163) | function inArray(elem, array) {
  function objectValues (line 174) | function objectValues(obj) {
  function extend (line 187) | function extend(a, b, undefOnly) {
  function objectType (line 201) | function objectType(obj) {
  function is (line 236) | function is(type, obj) {
  function generateHash (line 242) | function generateHash(module, testName) {
  function useStrictEquality (line 274) | function useStrictEquality(a, b) {
  function compareConstructors (line 291) | function compareConstructors(a, b) {
  function getRegExpFlags (line 319) | function getRegExpFlags(regexp) {
  function isContainer (line 323) | function isContainer(val) {
  function breadthFirstCompareChild (line 327) | function breadthFirstCompareChild(a, b) {
  function typeEquiv (line 545) | function typeEquiv(a, b) {
  function innerEquiv (line 559) | function innerEquiv(a, b) {
  function quote (line 672) | function quote(str) {
  function literal (line 675) | function literal(o) {
  function join (line 678) | function join(pre, arr, post) {
  function array (line 690) | function array(arr, stack) {
  function isArray (line 706) | function isArray(obj) {
  function emit (line 968) | function emit(eventName, data) {
  function on (line 991) | function on(eventName, callback) {
  function registerLoggingCallbacks (line 1012) | function registerLoggingCallbacks(obj) {
  function runLoggingCallbacks (line 1042) | function runLoggingCallbacks(key, args) {
  function extractStacktrace (line 1055) | function extractStacktrace(e, offset) {
  function sourceFromStacktrace (line 1081) | function sourceFromStacktrace(offset) {
  function advance (line 1104) | function advance() {
  function addToQueueImmediate (line 1130) | function addToQueueImmediate(callback) {
  function addToQueue (line 1149) | function addToQueue(callback, prioritize, seed) {
  function unitSamplerGenerator (line 1168) | function unitSamplerGenerator(seed) {
  function done (line 1191) | function done() {
  function TestReport (line 1227) | function TestReport(name, suite, options) {
  function Test (line 1332) | function Test(settings) {
  function getNotStartedModules (line 1404) | function getNotStartedModules(startModule) {
  function runTest (line 1477) | function runTest(test) {
  function processHooks (line 1534) | function processHooks(test, module) {
  function logSuiteEnd (line 1635) | function logSuiteEnd(module) {
  function runTest (line 1662) | function runTest() {
  function moduleChainNameMatch (line 1805) | function moduleChainNameMatch(testModule) {
  function moduleChainIdMatch (line 1816) | function moduleChainIdMatch(testModule) {
  function pushFailure (line 1872) | function pushFailure() {
  function saveGlobal (line 1883) | function saveGlobal() {
  function checkPollution (line 1900) | function checkPollution() {
  function test (line 1919) | function test(testName, callback) {
  function todo (line 1932) | function todo(testName, callback) {
  function skip (line 1947) | function skip(testName) {
  function only (line 1961) | function only(testName, callback) {
  function internalStop (line 1978) | function internalStop(test) {
  function internalRecover (line 2014) | function internalRecover(test) {
  function internalStart (line 2020) | function internalStart(test) {
  function collectTests (line 2064) | function collectTests(module) {
  function numberOfTests (line 2078) | function numberOfTests(module) {
  function numberOfUnskippedTests (line 2082) | function numberOfUnskippedTests(module) {
  function notifyTestsRan (line 2088) | function notifyTestsRan(module, skipped) {
  function consoleProxy (line 2107) | function consoleProxy(method) {
  function Assert (line 2120) | function Assert(testContext) {
  function errorString (line 2548) | function errorString(error) {
  function exportQUnit (line 2570) | function exportQUnit(QUnit) {
  function SuiteReport (line 2609) | function SuiteReport(name, parentSuite) {
  function onError (line 2727) | function onError(error) {
  function onUnhandledRejection (line 2747) | function onUnhandledRejection(reason) {
  function createModule (line 2784) | function createModule(name, testEnvironment, modifiers) {
  function processModule (line 2822) | function processModule(name, options, executeNow) {
  function module$1 (line 2862) | function module$1(name, options, executeNow) {
  function scheduleBegin (line 3012) | function scheduleBegin() {
  function begin (line 3026) | function begin() {
  function setHookFunction (line 3062) | function setHookFunction(module, hookName) {
  function storeFixture (line 3080) | function storeFixture() {
  function resetFixture (line 3096) | function resetFixture() {
  function getUrlParams (line 3175) | function getUrlParams() {
  function decodeQueryParam (line 3199) | function decodeQueryParam(param) {
  function escapeText (line 3212) | function escapeText(s) {
  function addEvent (line 3250) | function addEvent(elem, type, fn) {
  function removeEvent (line 3254) | function removeEvent(elem, type, fn) {
  function addEvents (line 3258) | function addEvents(elems, type, fn) {
  function hasClass (line 3265) | function hasClass(elem, name) {
  function addClass (line 3269) | function addClass(elem, name) {
  function toggleClass (line 3275) | function toggleClass(elem, name, force) {
  function removeClass (line 3283) | function removeClass(elem, name) {
  function id (line 3295) | function id(name) {
  function abortTests (line 3299) | function abortTests() {
  function interceptNavigation (line 3309) | function interceptNavigation(ev) {
  function getUrlConfigHtml (line 3319) | function getUrlConfigHtml() {
  function toolbarChanged (line 3373) | function toolbarChanged() {
  function setUrl (line 3404) | function setUrl(params) {
  function applyUrlParams (line 3433) | function applyUrlParams() {
  function toolbarUrlConfigContainer (line 3455) | function toolbarUrlConfigContainer() {
  function abortTestsButton (line 3467) | function abortTestsButton() {
  function toolbarLooseFilter (line 3475) | function toolbarLooseFilter() {
  function moduleListHtml (line 3502) | function moduleListHtml() {
  function toolbarModuleFilter (line 3517) | function toolbarModuleFilter() {
  function appendToolbar (line 3647) | function appendToolbar() {
  function appendHeader (line 3658) | function appendHeader() {
  function appendBanner (line 3666) | function appendBanner() {
  function appendTestResults (line 3674) | function appendTestResults() {
  function appendFilteredTest (line 3698) | function appendFilteredTest() {
  function appendUserAgent (line 3706) | function appendUserAgent() {
  function appendInterface (line 3715) | function appendInterface() {
  function appendTestsList (line 3729) | function appendTestsList(modules) {
  function appendTest (line 3743) | function appendTest(name, testId, moduleName) {
  function getNameHtml (line 3851) | function getNameHtml(name, module) {
  function stripHtml (line 3883) | function stripHtml(string) {
  function DiffMatchPatch (line 4146) | function DiffMatchPatch() {}
  function diffHalfMatchI (line 4514) | function diffHalfMatchI(longtext, shorttext, i) {
  function diffLinesToCharsMunge (line 4995) | function diffLinesToCharsMunge(text) {

FILE: test/qunit-assert-close.js
  function _getPushContext (line 32) | function _getPushContext(context) {
  function close (line 71) | function close(actual, expected, maxDifference, message) {
  function notClose (line 145) | function notClose(actual, expected, minDifference, message) {

FILE: test/src/2_Option/Option Begin.ts
  method begin (line 19) | begin(elements) {

FILE: test/src/2_Option/Option Complete.ts
  method complete (line 19) | complete(elements) {

FILE: test/src/2_Option/Option Delay.ts
  method begin (line 22) | begin(elements, activeCall) {
  method begin (line 40) | begin(elements, activeCall) {

FILE: test/src/2_Option/Option Duration.ts
  method complete (line 21) | complete(elements, activeCall) {
  method complete (line 39) | complete(elements, activeCall) {

FILE: test/src/2_Option/Option Easing.ts
  method begin (line 52) | begin(elements, animation) {
  method begin (line 70) | begin(elements, animation) {
  method begin (line 97) | begin(elements, animation) {
  method begin (line 107) | begin(elements) {
  method complete (line 113) | complete(elements) {
  method begin (line 124) | begin(elements) {
  method complete (line 130) | complete(elements) {
  method begin (line 141) | begin(elements) {
  method complete (line 147) | complete(elements) {

FILE: test/src/2_Option/Option Fps Limit.ts
  method progress (line 27) | progress() {

FILE: test/src/2_Option/Option Loop.ts
  method begin (line 27) | begin() {
  method progress (line 30) | progress(elements, percentComplete) {
  method complete (line 36) | complete() {

FILE: test/src/2_Option/Option Queue.ts
  method begin (line 29) | begin() {
  method complete (line 32) | complete() {
  method begin (line 43) | begin() {
  method complete (line 49) | complete() {
  method begin (line 56) | begin() {
  method complete (line 62) | complete() {
  method begin (line 69) | begin() {

FILE: test/src/2_Option/Option Repeat.ts
  method begin (line 25) | begin() {
  method progress (line 28) | progress(elements, percentComplete) {
  method complete (line 33) | complete() {

FILE: test/src/2_Option/Option Speed.ts
  type ExtendedVelocityExtended (line 13) | interface ExtendedVelocityExtended extends VelocityResult {
  method begin (line 27) | begin(elements) {
  method begin (line 38) | begin(elements: ExtendedVelocityExtended) {
  method complete (line 41) | complete(elements: ExtendedVelocityExtended) {
  method begin (line 56) | begin(elements: ExtendedVelocityExtended) {
  method complete (line 59) | complete(elements: ExtendedVelocityExtended) {
  method begin (line 75) | begin(elements: ExtendedVelocityExtended) {
  method complete (line 78) | complete(elements: ExtendedVelocityExtended) {
  method begin (line 94) | begin(elements: ExtendedVelocityExtended) {
  method complete (line 97) | complete(elements: ExtendedVelocityExtended) {
  method begin (line 112) | begin(elements: ExtendedVelocityExtended) {
  method complete (line 115) | complete(elements: ExtendedVelocityExtended) {
  method progress (line 131) | progress(elements: ExtendedVelocityExtended, percentComplete) {

FILE: test/src/2_Option/Option Sync.ts
  method complete (line 21) | complete() {
  method complete (line 42) | complete() {
  method begin (line 49) | begin() {

FILE: test/src/3_Command/Command Finish.ts
  method complete (line 40) | complete() {
  method complete (line 46) | complete() {
  method begin (line 64) | begin() {
  method complete (line 67) | complete() {
  method begin (line 87) | begin() {
  method complete (line 90) | complete() {

FILE: test/src/3_Command/Command Pause + Resume.ts
  method progress (line 31) | progress() {

FILE: test/src/3_Command/Command Reverse.ts
  method complete (line 21) | complete(elements) {
  method complete (line 32) | complete(elements) {
  method complete (line 43) | complete(elements) {

FILE: test/src/3_Command/Command Stop.ts
  method begin (line 51) | begin() {
  method complete (line 69) | complete() {
  method complete (line 75) | complete() {
  method begin (line 93) | begin() {
  method begin (line 98) | begin() {
  method begin (line 113) | begin() {
  method begin (line 121) | begin() {

FILE: test/src/4_Feature/Feature Classname.ts
  method begin (line 17) | begin(elements) {
  method complete (line 20) | complete(elements) {

FILE: test/src/4_Feature/Feature Value Functions.ts
  method width (line 19) | width(i, total) {

FILE: test/src/5_UIPack/Packaged Effect slideUp+Down.ts
  method begin (line 26) | begin(elements) {
  method complete (line 31) | complete(elements) {
  method begin (line 46) | begin(elements) {
  method complete (line 51) | complete(elements) {

FILE: test/src/5_UIPack/UI Pack Callbacks.ts
  method begin (line 19) | begin(elements) {
  method complete (line 24) | complete(elements) {

FILE: test/src/utilities.ts
  type QUnit (line 12) | interface QUnit {
  type Assert (line 16) | interface Assert {
  function applyStartValues (line 81) | function applyStartValues(element: HTMLElement, startValues: { [name: st...
  function Data (line 87) | function Data(element): ElementData {
  function getNow (line 91) | function getNow(): number {
  function getPropertyValue (line 95) | function getPropertyValue(element: HTMLElement, property: string): string {
  function getTarget (line 99) | function getTarget(startValues?: { [name: string]: string }): HTMLDivEle...
  function once (line 118) | function once(func): typeof func {
  function sleep (line 132) | function sleep(ms: number) {
  function asyncTests (line 144) | function asyncTests(assert?: Assert, count?: number, callback?: (done: (...
  function isEmptyObject (line 160) | function isEmptyObject(variable): variable is {} {

FILE: test/test.js
  function applyStartValues (line 62) | function applyStartValues(element, startValues) {
  function Data (line 67) | function Data(element) {
  function getNow (line 70) | function getNow() {
  function getPropertyValue (line 73) | function getPropertyValue(element, property) {
  function getTarget (line 76) | function getTarget(startValues) {
  function once (line 92) | function once(func) {
  function sleep (line 107) | function sleep(ms) {
  function asyncTests (line 112) | function asyncTests(assert, count, callback) {
  function __awaiter (line 367) | function __awaiter(thisArg, _arguments, P, generator) {

FILE: velocity.d.ts
  type AnimationCall (line 18) | interface AnimationCall extends StrictVelocityOptions {
  type AnimationFlags (line 98) | const enum AnimationFlags {
  type ElementData (line 142) | interface ElementData {
  type Sequence (line 202) | interface Sequence extends ReadonlyArray<TweenStep> {
  type SequenceList (line 214) | interface SequenceList {
  type StrictVelocityOptions (line 224) | interface StrictVelocityOptions extends VelocityOptions, VelocityPromise {
  type TweenStep (line 329) | interface TweenStep extends ReadonlyArray<string | number> {
  type Velocity (line 349) | interface Velocity<T = VelocityElements> {
  type VelocityEasings (line 988) | interface VelocityEasings {
  type VelocityExtended (line 1037) | interface VelocityExtended<T> {
  type VelocityObjectArgs (line 1051) | interface VelocityObjectArgs {
  type VelocityOptions (line 1064) | interface VelocityOptions {
  type VelocityPromise (line 1237) | interface VelocityPromise {
  type VelocityResult (line 1272) | interface VelocityResult<T = HTMLorSVGElement> extends Array<T>, Partial...
  type VelocityState (line 1302) | interface VelocityState {
  type VelocityTween (line 1387) | interface VelocityTween {
  type HTMLorSVGElement (line 1421) | type HTMLorSVGElement = HTMLElement | SVGElement;
  type Properties (line 1427) | type Properties<T> = {
  type VelocityActionFn (line 1457) | type VelocityActionFn = (
  type VelocityCallbackFn (line 1469) | type VelocityCallbackFn = (
  type VelocityEasingFn (line 1484) | type VelocityEasingFn = (
  type VelocityEasingType (line 1493) | type VelocityEasingType = VelocityEasingFn
  type VelocityElements (line 1503) | type VelocityElements = HTMLorSVGElement | HTMLorSVGElement[];
  type VelocityNormalizationsFn (line 1515) | type VelocityNormalizationsFn =
  type VelocityOptionFn (line 1525) | type VelocityOptionFn<T> = (
  type VelocityProgressFn (line 1535) | type VelocityProgressFn = (
  type VelocityProperties (line 1546) | type VelocityProperties = Properties<VelocityProperty>;
  type VelocityProperty (line 1552) | type VelocityProperty = VelocityPropertyValue | VelocityPropertyFn;
  type VelocityPropertyFn (line 1557) | type VelocityPropertyFn = (
  type VelocityPropertyValue (line 1567) | type VelocityPropertyValue = number
  type VelocityPropertyValueFn (line 1576) | type VelocityPropertyValueFn = (
  type VelocitySequence (line 1585) | type VelocitySequence = {
  type VelocitySequenceProperty (line 1596) | type VelocitySequenceProperty = string | [string] | [string, VelocityEas...
  type NodeListOf (line 1606) | interface NodeListOf<TNode extends Node> extends VelocityExtended<NodeLi...
  type Element (line 1611) | interface Element extends VelocityExtended<Element> {}
  type HTMLCollection (line 1616) | interface HTMLCollection extends VelocityExtended<Element> {}

FILE: velocity.es5.js
  function defineProperties (line 20) | function defineProperties(target, props) {
  function isBoolean (line 55) | function isBoolean(variable) {
  function isFunction (line 61) | function isFunction(variable) {
  function isNode (line 67) | function isNode(variable) {
  function isNumber (line 73) | function isNumber(variable) {
  function isPlainObject (line 79) | function isPlainObject(variable) {
  function isString (line 89) | function isString(variable) {
  function isVelocityResult (line 95) | function isVelocityResult(variable) {
  function isWrapped (line 102) | function isWrapped(variable) {
  function propertyIsEnumerable (line 108) | function propertyIsEnumerable(obj, property) {
  function addClass (line 116) | function addClass(element, className) {
  function cloneArray (line 129) | function cloneArray(arrayLike) {
  function defineProperty$1 (line 136) | function defineProperty$1(proto, name, value, readonly) {
  function getValue (line 149) | function getValue() {
  function removeClass (line 192) | function removeClass(element, className) {
  function registerAction (line 211) | function registerAction(args, internal) {
  function registerEasing (line 263) | function registerEasing(args) {
  function linearEasing (line 281) | function linearEasing(percentComplete, startValue, endValue, property) {
  function swingEasing (line 287) | function swingEasing(percentComplete, startValue, endValue) {
  function springEasing (line 293) | function springEasing(percentComplete, startValue, endValue) {
  function fixRange (line 304) | function fixRange(num) {
  function A (line 307) | function A(aA1, aA2) {
  function B (line 310) | function B(aA1, aA2) {
  function C (line 313) | function C(aA1) {
  function calcBezier (line 316) | function calcBezier(aT, aA1, aA2) {
  function getSlope (line 319) | function getSlope(aT, aA1, aA2) {
  function generateBezier (line 322) | function generateBezier() {
  function springAccelerationForState (line 468) | function springAccelerationForState(state) {
  function springEvaluateStateWithDerivative (line 471) | function springEvaluateStateWithDerivative(initialState, dt, derivative) {
  function springIntegrateState (line 483) | function springIntegrateState(state, dt) {
  function generateSpringRK4 (line 497) | function generateSpringRK4(tension, friction, duration) {
  function generateStep (line 546) | function generateStep(steps) {
  function parseDuration (line 567) | function parseDuration(duration, def) {
  function validateCache (line 579) | function validateCache(value) {
  function validateBegin (line 590) | function validateBegin(value) {
  function validateComplete (line 601) | function validateComplete(value, noError) {
  function validateDelay (line 612) | function validateDelay(value) {
  function validateDuration (line 624) | function validateDuration(value, noError) {
  function validateEasing (line 636) | function validateEasing(value, duration, noError) {
  function validateFpsLimit (line 670) | function validateFpsLimit(value) {
  function validateLoop (line 686) | function validateLoop(value) {
  function validateProgress (line 706) | function validateProgress(value) {
  function validatePromise (line 717) | function validatePromise(value) {
  function validatePromiseRejectEmpty (line 728) | function validatePromiseRejectEmpty(value) {
  function validateQueue (line 739) | function validateQueue(value, noError) {
  function validateRepeat (line 750) | function validateRepeat(value) {
  function validateSpeed (line 770) | function validateSpeed(value) {
  function validateSync (line 781) | function validateSync(value) {
  function defaults$$1 (line 809) | function defaults$$1() {
  function Data (line 1052) | function Data(element) {
  function animate (line 1111) | function animate(animation) {
  function queue$1 (line 1136) | function queue$1(element, animation, queueName) {
  function dequeue (line 1171) | function dequeue(element, queueName, skip) {
  function freeAnimationCall (line 1195) | function freeAnimationCall(animation) {
  function callComplete (line 1227) | function callComplete(activeCall) {
  function completeCall (line 1245) | function completeCall(activeCall) {
  function registerNormalization (line 1338) | function registerNormalization(args) {
  function hasNormalization (line 1389) | function hasNormalization(args) {
  function getNormalizationUnit (line 1410) | function getNormalizationUnit(fn) {
  function getNormalization (line 1423) | function getNormalization(element, propertyName) {
  function setPropertyValue (line 1442) | function setPropertyValue(element, propertyName, propertyValue, fn) {
  function removeNestedCalc (line 1463) | function removeNestedCalc(value) {
  function camelCase (line 1497) | function camelCase(property) {
  function makeRGBA (line 1522) | function makeRGBA(ignore, r, g, b) {
  function fixColors (line 1529) | function fixColors(str) {
  function augmentDimension (line 1547) | function augmentDimension(element, name, wantInner) {
  function getWidthHeight (line 1593) | function getWidthHeight(element, property) {
  function computePropertyValue (line 1597) | function computePropertyValue(element, property) {
  function getPropertyValue (line 1667) | function getPropertyValue(element, propertyName, fn, skipCache) {
  function expandProperties (line 1712) | function expandProperties(animation, properties) {
  function findPattern (line 1785) | function findPattern(parts, propertyName) {
  function explodeTween (line 1977) | function explodeTween(propertyName, tween, duration, starting) {
  function validateTweens (line 2020) | function validateTweens(activeCall) {
  function beginCall (line 2058) | function beginCall(activeCall) {
  function progressCall (line 2075) | function progressCall(activeCall) {
  function asyncCallbacks (line 2094) | function asyncCallbacks() {
  function workerFn (line 2216) | function workerFn() {
  function tick (line 2272) | function tick(timestamp) {
  function checkAnimationShouldBeFinished (line 2498) | function checkAnimationShouldBeFinished(animation, queueName, defaultQue...
  function finish (line 2553) | function finish(args, elements, promiseHandler) {
  function option (line 2622) | function option(args, elements, promiseHandler, action) {
  function checkAnimation (line 2799) | function checkAnimation(animation, queueName, defaultQueue, isPaused) {
  function pauseResume (line 2813) | function pauseResume(args, elements, promiseHandler, action) {
  function propertyAction (line 2878) | function propertyAction(args, elements, promiseHandler, action) {
  function checkAnimationShouldBeStopped (line 3095) | function checkAnimationShouldBeStopped(animation, queueName, defaultQueu...
  function stop (line 3120) | function stop(args, elements, promiseHandler, action) {
  function tweenAction (line 3177) | function tweenAction(args, elements, promiseHandler, action) {
  function registerBackIn (line 3454) | function registerBackIn(name, amount) {
  function registerBackOut (line 3465) | function registerBackOut(name, amount) {
  function registerBackInOut (line 3476) | function registerBackInOut(name, amount) {
  function easeOutBouncePercent (line 3495) | function easeOutBouncePercent(percentComplete) {
  function easeInBouncePercent (line 3507) | function easeInBouncePercent(percentComplete) {
  function easeInBounce (line 3510) | function easeInBounce(percentComplete, startValue, endValue) {
  function easeOutBounce (line 3519) | function easeOutBounce(percentComplete, startValue, endValue) {
  function easeInOutBounce (line 3528) | function easeInOutBounce(percentComplete, startValue, endValue) {
  function registerElasticIn (line 3544) | function registerElasticIn(name, amplitude, period) {
  function registerElasticOut (line 3555) | function registerElasticOut(name, amplitude, period) {
  function registerElasticInOut (line 3566) | function registerElasticInOut(name, amplitude, period) {
  function atStart (line 3589) | function atStart(percentComplete, startValue, endValue) {
  function during (line 3596) | function during(percentComplete, startValue, endValue) {
  function atEnd (line 3602) | function atEnd(percentComplete, startValue, endValue) {
  function getDimension (line 3613) | function getDimension(name, wantInner) {
  function display (line 3633) | function display(element, propertyValue) {
  function clientWidth (line 3664) | function clientWidth(element, propertyValue) {
  function scrollWidth (line 3669) | function scrollWidth(element, propertyValue) {
  function clientHeight (line 3674) | function clientHeight(element, propertyValue) {
  function scrollHeight (line 3679) | function scrollHeight(element, propertyValue) {
  function scroll (line 3684) | function scroll(direction, end) {
  function getSetPrefixed (line 3785) | function getSetPrefixed(propertyName, unprefixed) {
  function getSetStyle (line 3796) | function getSetStyle(propertyName) {
  function getAttribute (line 3830) | function getAttribute(name) {
  function getDimension$1 (line 3867) | function getDimension$1(name) {
  function getSetTween (line 3887) | function getSetTween(element, propertyValue) {
  function expandSequence (line 4035) | function expandSequence(animation, sequence) {
  function registerSequence (line 4059) | function registerSequence(args) {
  function patchPromise (line 4289) | function patchPromise(promiseObject, result) {
  function Velocity$1 (line 4299) | function Velocity$1() {
  function optionCallback (line 4685) | function optionCallback(fn, element, index, length, elements, option) {
  function patch (line 4703) | function patch(proto, global) {

FILE: velocity.js
  function defineProperties (line 26) | function defineProperties(target, props) {
  function isBoolean (line 61) | function isBoolean(variable) {
  function isFunction (line 67) | function isFunction(variable) {
  function isNode (line 73) | function isNode(variable) {
  function isNumber (line 79) | function isNumber(variable) {
  function isPlainObject (line 85) | function isPlainObject(variable) {
  function isString (line 95) | function isString(variable) {
  function isVelocityResult (line 101) | function isVelocityResult(variable) {
  function isWrapped (line 108) | function isWrapped(variable) {
  function propertyIsEnumerable (line 114) | function propertyIsEnumerable(obj, property) {
  function addClass (line 122) | function addClass(element, className) {
  function cloneArray (line 135) | function cloneArray(arrayLike) {
  function defineProperty$1 (line 142) | function defineProperty$1(proto, name, value, readonly) {
  function getValue (line 155) | function getValue() {
  function removeClass (line 198) | function removeClass(element, className) {
  function registerAction (line 217) | function registerAction(args, internal) {
  function registerEasing (line 269) | function registerEasing(args) {
  function linearEasing (line 287) | function linearEasing(percentComplete, startValue, endValue, property) {
  function swingEasing (line 293) | function swingEasing(percentComplete, startValue, endValue) {
  function springEasing (line 299) | function springEasing(percentComplete, startValue, endValue) {
  function fixRange (line 310) | function fixRange(num) {
  function A (line 313) | function A(aA1, aA2) {
  function B (line 316) | function B(aA1, aA2) {
  function C (line 319) | function C(aA1) {
  function calcBezier (line 322) | function calcBezier(aT, aA1, aA2) {
  function getSlope (line 325) | function getSlope(aT, aA1, aA2) {
  function generateBezier (line 328) | function generateBezier() {
  function springAccelerationForState (line 474) | function springAccelerationForState(state) {
  function springEvaluateStateWithDerivative (line 477) | function springEvaluateStateWithDerivative(initialState, dt, derivative) {
  function springIntegrateState (line 489) | function springIntegrateState(state, dt) {
  function generateSpringRK4 (line 503) | function generateSpringRK4(tension, friction, duration) {
  function generateStep (line 552) | function generateStep(steps) {
  function parseDuration (line 573) | function parseDuration(duration, def) {
  function validateCache (line 585) | function validateCache(value) {
  function validateBegin (line 596) | function validateBegin(value) {
  function validateComplete (line 607) | function validateComplete(value, noError) {
  function validateDelay (line 618) | function validateDelay(value) {
  function validateDuration (line 630) | function validateDuration(value, noError) {
  function validateEasing (line 642) | function validateEasing(value, duration, noError) {
  function validateFpsLimit (line 676) | function validateFpsLimit(value) {
  function validateLoop (line 692) | function validateLoop(value) {
  function validateProgress (line 712) | function validateProgress(value) {
  function validatePromise (line 723) | function validatePromise(value) {
  function validatePromiseRejectEmpty (line 734) | function validatePromiseRejectEmpty(value) {
  function validateQueue (line 745) | function validateQueue(value, noError) {
  function validateRepeat (line 756) | function validateRepeat(value) {
  function validateSpeed (line 776) | function validateSpeed(value) {
  function validateSync (line 787) | function validateSync(value) {
  function defaults$$1 (line 815) | function defaults$$1() {
  function Data (line 1058) | function Data(element) {
  function animate (line 1117) | function animate(animation) {
  function queue$1 (line 1142) | function queue$1(element, animation, queueName) {
  function dequeue (line 1177) | function dequeue(element, queueName, skip) {
  function freeAnimationCall (line 1201) | function freeAnimationCall(animation) {
  function callComplete (line 1233) | function callComplete(activeCall) {
  function completeCall (line 1251) | function completeCall(activeCall) {
  function registerNormalization (line 1344) | function registerNormalization(args) {
  function hasNormalization (line 1395) | function hasNormalization(args) {
  function getNormalizationUnit (line 1416) | function getNormalizationUnit(fn) {
  function getNormalization (line 1429) | function getNormalization(element, propertyName) {
  function setPropertyValue (line 1448) | function setPropertyValue(element, propertyName, propertyValue, fn) {
  function removeNestedCalc (line 1469) | function removeNestedCalc(value) {
  function camelCase (line 1503) | function camelCase(property) {
  function makeRGBA (line 1528) | function makeRGBA(ignore, r, g, b) {
  function fixColors (line 1535) | function fixColors(str) {
  function augmentDimension (line 1553) | function augmentDimension(element, name, wantInner) {
  function getWidthHeight (line 1599) | function getWidthHeight(element, property) {
  function computePropertyValue (line 1603) | function computePropertyValue(element, property) {
  function getPropertyValue (line 1673) | function getPropertyValue(element, propertyName, fn, skipCache) {
  function expandProperties (line 1718) | function expandProperties(animation, properties) {
  function findPattern (line 1791) | function findPattern(parts, propertyName) {
  function explodeTween (line 1983) | function explodeTween(propertyName, tween, duration, starting) {
  function validateTweens (line 2026) | function validateTweens(activeCall) {
  function beginCall (line 2064) | function beginCall(activeCall) {
  function progressCall (line 2081) | function progressCall(activeCall) {
  function asyncCallbacks (line 2100) | function asyncCallbacks() {
  function workerFn (line 2222) | function workerFn() {
  function tick (line 2278) | function tick(timestamp) {
  function checkAnimationShouldBeFinished (line 2504) | function checkAnimationShouldBeFinished(animation, queueName, defaultQue...
  function finish (line 2559) | function finish(args, elements, promiseHandler) {
  function option (line 2628) | function option(args, elements, promiseHandler, action) {
  function checkAnimation (line 2805) | function checkAnimation(animation, queueName, defaultQueue, isPaused) {
  function pauseResume (line 2819) | function pauseResume(args, elements, promiseHandler, action) {
  function propertyAction (line 2884) | function propertyAction(args, elements, promiseHandler, action) {
  function checkAnimationShouldBeStopped (line 3101) | function checkAnimationShouldBeStopped(animation, queueName, defaultQueu...
  function stop (line 3126) | function stop(args, elements, promiseHandler, action) {
  function tweenAction (line 3183) | function tweenAction(args, elements, promiseHandler, action) {
  function registerBackIn (line 3460) | function registerBackIn(name, amount) {
  function registerBackOut (line 3471) | function registerBackOut(name, amount) {
  function registerBackInOut (line 3482) | function registerBackInOut(name, amount) {
  function easeOutBouncePercent (line 3501) | function easeOutBouncePercent(percentComplete) {
  function easeInBouncePercent (line 3513) | function easeInBouncePercent(percentComplete) {
  function easeInBounce (line 3516) | function easeInBounce(percentComplete, startValue, endValue) {
  function easeOutBounce (line 3525) | function easeOutBounce(percentComplete, startValue, endValue) {
  function easeInOutBounce (line 3534) | function easeInOutBounce(percentComplete, startValue, endValue) {
  function registerElasticIn (line 3550) | function registerElasticIn(name, amplitude, period) {
  function registerElasticOut (line 3561) | function registerElasticOut(name, amplitude, period) {
  function registerElasticInOut (line 3572) | function registerElasticInOut(name, amplitude, period) {
  function atStart (line 3595) | function atStart(percentComplete, startValue, endValue) {
  function during (line 3602) | function during(percentComplete, startValue, endValue) {
  function atEnd (line 3608) | function atEnd(percentComplete, startValue, endValue) {
  function getDimension (line 3619) | function getDimension(name, wantInner) {
  function display (line 3639) | function display(element, propertyValue) {
  function clientWidth (line 3670) | function clientWidth(element, propertyValue) {
  function scrollWidth (line 3675) | function scrollWidth(element, propertyValue) {
  function clientHeight (line 3680) | function clientHeight(element, propertyValue) {
  function scrollHeight (line 3685) | function scrollHeight(element, propertyValue) {
  function scroll (line 3690) | function scroll(direction, end) {
  function getSetPrefixed (line 3791) | function getSetPrefixed(propertyName, unprefixed) {
  function getSetStyle (line 3802) | function getSetStyle(propertyName) {
  function getAttribute (line 3836) | function getAttribute(name) {
  function getDimension$1 (line 3873) | function getDimension$1(name) {
  function getSetTween (line 3893) | function getSetTween(element, propertyValue) {
  function expandSequence (line 4041) | function expandSequence(animation, sequence) {
  function registerSequence (line 4065) | function registerSequence(args) {
  function patchPromise (line 4295) | function patchPromise(promiseObject, result) {
  function Velocity$1 (line 4305) | function Velocity$1() {
  function optionCallback (line 4691) | function optionCallback(fn, element, index, length, elements, option) {
  function patch (line 4709) | function patch(proto, global) {

FILE: version.ts
  constant VERSION (line 8) | const VERSION = "2.0.6";
Condensed preview — 254 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,881K chars).
[
  {
    "path": ".babelrc",
    "chars": 92,
    "preview": "{\n\t\"presets\": [\n\t\t[\"env\", {\n\t\t\t\"modules\": false\n\t\t}]\n\t],\n\t\"plugins\": [\"external-helpers\"]\n}\n"
  },
  {
    "path": ".editorconfig",
    "chars": 185,
    "preview": "# .editorconfig\nroot = true\n\n[*]\nindent_style = tab\nindent_size = 4\ncharset = utf-8\ntrim_trailing_whitespace = true\ninse"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 854,
    "preview": "#### Your system information\n\n* VelocityJS version: \n* Browser: \n* Operating System: \n\n#### Checklist\n\n* Is this an issu"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 393,
    "preview": "#### Checklist\n\n* Have you linked to relevant open issues?: [Yes/No]\n* I agree for this to be covered by the Velocity [l"
  },
  {
    "path": ".gitignore",
    "chars": 23,
    "preview": "/node_modules\n/.vscode\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 42174,
    "preview": "### Changelog\n\nAll notable changes to this project will be documented in this file. Dates are displayed in UTC.\n\nGenerat"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3218,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 991,
    "preview": "**Contributing**\n\n- Make sure you're using the latest version of Velocity before reporting a bug.\n\n- If you are asking f"
  },
  {
    "path": "LICENSE.md",
    "chars": 1075,
    "preview": "The MIT License\n\nCopyright (c) 2014 Julian Shapiro\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "README.md",
    "chars": 5129,
    "preview": "# Velocity beta\n\n[![npm](https://img.shields.io/npm/v/velocity-animate.svg)](https://www.npmjs.com/package/velocity-ani"
  },
  {
    "path": "V2_CHANGES.md",
    "chars": 1803,
    "preview": "# Major Changes in Velocity V2\n\n* APIs for extending Velocity - see the various register* commands in the wiki.\n* Chain"
  },
  {
    "path": "babel.config.js",
    "chars": 561,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "bower.json",
    "chars": 719,
    "preview": "{\n  \"name\": \"velocity\",\n  \"homepage\": \"http://velocityjs.org\",\n  \"authors\": [\n    { \"name\" : \"Julian Shapiro\",\n      \"ho"
  },
  {
    "path": "docs.ts",
    "chars": 145,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test.html",
    "chars": 39868,
    "preview": "<!DOCTYPE html>\n<!-- saved from url=(0035)https://greensock.com/js/speed.html -->\n<html xmlns=\"http://www.w3.org/1999/xh"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.js.download",
    "chars": 3927,
    "preview": "/*\n* CSSPlugin by Grant Skinner. Mar 7, 2011\n* Visit http://easeljs.com/ for documentation, updates and examples.\n*\n*\n* "
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/CSSPlugin.min.js.download",
    "chars": 41328,
    "preview": "/*!\n * VERSION: 1.19.0\n * DATE: 2016-07-14\n * UPDATES AND DOCS AT: http://greensock.com\n *\n * @license Copyright (c) 200"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/Ease.js.download",
    "chars": 9757,
    "preview": "/*\n* Ease by Grant Skinner. Oct 27, 2011\n* Visit http://easeljs.com/ for documentation, updates and examples.\n*\n* Equati"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/TweenLite.min.js.download",
    "chars": 27568,
    "preview": "/*!\n * VERSION: 1.19.0\n * DATE: 2016-07-16\n * UPDATES AND DOCS AT: http://greensock.com\n *\n * @license Copyright (c) 200"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/anime.min.js.download",
    "chars": 9590,
    "preview": "/*\n * Anime v1.0.0\n * http://anime-js.com\n * Javascript animation engine\n * Copyright (c) 2016 Julian Garnier\n * http://"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/css",
    "chars": 2431,
    "preview": "/* latin-ext */\n@font-face {\n  font-family: 'Signika Negative';\n  font-style: normal;\n  font-weight: 300;\n  src: local('"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/dojo.js.download",
    "chars": 137933,
    "preview": "/*\n    Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.\n    Available via Academic Free License >= 2.1 "
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/easeljs-0.4.2.min.js.download",
    "chars": 44582,
    "preview": "/*\n* EaselJS\n* Visit http://createjs.com/ for documentation, updates and examples.\n*\n* Copyright (c) 2011 gskinner.com, "
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/easing.js.download",
    "chars": 2967,
    "preview": "/*\n    Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.\n    Available via Academic Free License >= 2.1 "
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/jquery-3.0.0.min.js.download",
    "chars": 86341,
    "preview": "/*! jQuery v3.0.0 | (c) jQuery Foundation | jquery.org/license */\n!function(a,b){\"use strict\";\"object\"==typeof module&&\""
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/jquery.gsap.min.js.download",
    "chars": 2753,
    "preview": "/*!\n * VERSION: 0.1.12\n * DATE: 2015-08-11\n * UPDATES AND DOCS AT: http://greensock.com/jquery-gsap-plugin/\n *\n * Requir"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/mootools-core-1.4.5-full-compat-yc.js.download",
    "chars": 96362,
    "preview": "/*\n---\nMooTools: the javascript framework\n\nweb build:\n - http://mootools.net/core/76bf47062d6c1983d66ce47ad66aa0e0\n\npack"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/tweenjs-0.2.0.min.js.download",
    "chars": 9454,
    "preview": "/*\n* TweenJS\n* Visit http://createjs.com/ for documentation, updates and examples.\n*\n* Copyright (c) 2011 gskinner.com, "
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/web-animations-basic.min.js.download",
    "chars": 60720,
    "preview": "// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "gsap/GreenSock Animation Platform (GSAP) Speed Test_files/zepto.min.js.download",
    "chars": 59536,
    "preview": "/* Zepto v1.1.2 - zepto event ajax form ie - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n  var undefined, key, $,"
  },
  {
    "path": "legacy/README.md",
    "chars": 251,
    "preview": "This folder contains code that is planned to go into a legacy browser support Javascript file for people targeting older"
  },
  {
    "path": "legacy/blur.ts",
    "chars": 1099,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "legacy/borderColor.ts",
    "chars": 1955,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "legacy/clip.ts",
    "chars": 856,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "legacy/normalisations.ts",
    "chars": 708,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "legacy/opacity.ts",
    "chars": 1686,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "package.json",
    "chars": 2014,
    "preview": "{\n  \"name\": \"velocity-animate\",\n  \"version\": \"2.0.6\",\n  \"description\": \"Accelerated JavaScript animation.\",\n  \"keywords\""
  },
  {
    "path": "rollup.config.js",
    "chars": 4677,
    "preview": "/*\n * velocity-animate (C) 2014-2017 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/_all.ts",
    "chars": 248,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/_all.ts",
    "chars": 302,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/actions.ts",
    "chars": 1462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/finish.ts",
    "chars": 4265,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/index.ts",
    "chars": 358,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/option.ts",
    "chars": 5149,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/pauseResume.ts",
    "chars": 2360,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/property.ts",
    "chars": 3689,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/reverse.ts",
    "chars": 724,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/stop.ts",
    "chars": 3110,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/style.ts",
    "chars": 347,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/actions/tween.ts",
    "chars": 4904,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/camelCase.ts",
    "chars": 690,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/complete.ts",
    "chars": 4079,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/_all.ts",
    "chars": 165,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/augmentDimension.ts",
    "chars": 1185,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/colors.ts",
    "chars": 3752,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/fixColors.ts",
    "chars": 1440,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/getPropertyValue.ts",
    "chars": 4952,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/index.ts",
    "chars": 172,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/removeNestedCalc.ts",
    "chars": 786,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/css/setPropertyValue.ts",
    "chars": 1209,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/data.ts",
    "chars": 1388,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/defaults.ts",
    "chars": 5015,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/_all.ts",
    "chars": 280,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/back.ts",
    "chars": 1833,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/bezier.ts",
    "chars": 6097,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/bounce.ts",
    "chars": 2007,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/easings.ts",
    "chars": 2063,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/elastic.ts",
    "chars": 2204,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/index.ts",
    "chars": 329,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/spring_rk4.ts",
    "chars": 3697,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/step.ts",
    "chars": 731,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/easing/string.ts",
    "chars": 1158,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/index.ts",
    "chars": 256,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/_all.ts",
    "chars": 265,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/dimensions.ts",
    "chars": 1196,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/display.ts",
    "chars": 1934,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/index.ts",
    "chars": 302,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/normalizations.ts",
    "chars": 5326,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/normalizationsObject.ts",
    "chars": 1919,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/scroll.ts",
    "chars": 3379,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/style.ts",
    "chars": 4087,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/svg/_all.ts",
    "chars": 192,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/svg/attributes.ts",
    "chars": 1903,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/svg/dimensions.ts",
    "chars": 948,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/svg/index.ts",
    "chars": 206,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/normalizations/tween.ts",
    "chars": 548,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/options.ts",
    "chars": 6931,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/patch.ts",
    "chars": 849,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/queue.ts",
    "chars": 3316,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/sequences.ts",
    "chars": 5306,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/sequencesObject.ts",
    "chars": 273,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/state.ts",
    "chars": 1082,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/tick.ts",
    "chars": 14730,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/Velocity/tweens.ts",
    "chars": 13764,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/constants.ts",
    "chars": 1116,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/fakeClass.js",
    "chars": 3401,
    "preview": "var __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStati"
  },
  {
    "path": "src/fakeClass.ts",
    "chars": 2373,
    "preview": "// rsp:\ntype NC<X> = { new(): X };\ntype FC<X> = { (): X };\ntype MC<X> = NC<X> & FC<X>;\nfunction nn<X>(C: NC<X>): MC<X> {"
  },
  {
    "path": "src/tsconfig.json",
    "chars": 73,
    "preview": "{\n    \"extends\": \"../tsconfig.json\",\n    \"files\": [\n\t\t\"velocity.ts\"\n\t]\n}\n"
  },
  {
    "path": "src/types.ts",
    "chars": 3131,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/utility.ts",
    "chars": 2494,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/velocity.ts",
    "chars": 5477,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src/velocityFn.ts",
    "chars": 19560,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/_all.ts",
    "chars": 336,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/bounce.ts",
    "chars": 653,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/flash.ts",
    "chars": 390,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/headShake.ts",
    "chars": 706,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/jello.ts",
    "chars": 895,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/pulse.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/rubberBand.ts",
    "chars": 668,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/shake.ts",
    "chars": 504,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/swing.ts",
    "chars": 610,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/tada.ts",
    "chars": 687,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/attention_seekers/wobble.ts",
    "chars": 818,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/_all.ts",
    "chars": 266,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/bounceIn.ts",
    "chars": 701,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/bounceInDown.ts",
    "chars": 689,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/bounceInLeft.ts",
    "chars": 689,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/bounceInRight.ts",
    "chars": 690,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_entrances/bounceInUp.ts",
    "chars": 687,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/_all.ts",
    "chars": 271,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/bounceOut.ts",
    "chars": 569,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/bounceOutDown.ts",
    "chars": 586,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/bounceOutLeft.ts",
    "chars": 530,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/bounceOutRight.ts",
    "chars": 531,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/bouncing_exits/bounceOutUp.ts",
    "chars": 585,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/_all.ts",
    "chars": 359,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeIn.ts",
    "chars": 379,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInDown.ts",
    "chars": 457,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInDownBig.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInLeft.ts",
    "chars": 457,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInLeftBig.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInRight.ts",
    "chars": 457,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInRightBig.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInUp.ts",
    "chars": 454,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_entrances/fadeInUpBig.ts",
    "chars": 459,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/_all.ts",
    "chars": 368,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOut.ts",
    "chars": 380,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutDown.ts",
    "chars": 457,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutDownBig.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutLeft.ts",
    "chars": 458,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutLeftBig.ts",
    "chars": 463,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutRight.ts",
    "chars": 458,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutRightBig.ts",
    "chars": 463,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutUp.ts",
    "chars": 456,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/fading_exits/fadeOutUpBig.ts",
    "chars": 461,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/_all.ts",
    "chars": 245,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/flip.ts",
    "chars": 971,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/flipInX.ts",
    "chars": 767,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/flipInY.ts",
    "chars": 767,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/flipOutX.ts",
    "chars": 613,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/flippers/flipOutY.ts",
    "chars": 613,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/lightspeed/_all.ts",
    "chars": 197,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/lightspeed/lightSpeedIn.ts",
    "chars": 662,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/lightspeed/lightSpeedOut.ts",
    "chars": 502,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/_all.ts",
    "chars": 281,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/rotateIn.ts",
    "chars": 514,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/rotateInDownLeft.ts",
    "chars": 531,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/rotateInDownRight.ts",
    "chars": 533,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/rotateInUpLeft.ts",
    "chars": 528,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_entrances/rotateInUpRight.ts",
    "chars": 532,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/_all.ts",
    "chars": 286,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/rotateOut.ts",
    "chars": 514,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/rotateOutDownLeft.ts",
    "chars": 531,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/rotateOutDownRight.ts",
    "chars": 535,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/rotateOutUpLeft.ts",
    "chars": 530,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/rotating_exits/rotateOutUpRight.ts",
    "chars": 532,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_entrances/_all.ts",
    "chars": 241,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_entrances/slideInDown.ts",
    "chars": 507,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_entrances/slideInLeft.ts",
    "chars": 507,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_entrances/slideInRight.ts",
    "chars": 507,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_entrances/slideInUp.ts",
    "chars": 504,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_exits/_all.ts",
    "chars": 245,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_exits/slideOutDown.ts",
    "chars": 508,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_exits/slideOutLeft.ts",
    "chars": 508,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_exits/slideOutRight.ts",
    "chars": 508,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/sliding_exits/slideOutUp.ts",
    "chars": 505,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/specials/_all.ts",
    "chars": 228,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/specials/hinge.ts",
    "chars": 734,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/specials/jackInTheBox.ts",
    "chars": 607,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/specials/rollIn.ts",
    "chars": 495,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/specials/rollOut.ts",
    "chars": 494,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/tsconfig.json",
    "chars": 76,
    "preview": "{\n    \"extends\": \"../tsconfig.json\",\n    \"files\": [\n\t\t\"velocity.ui.ts\"\n\t]\n}\n"
  },
  {
    "path": "src-ui/velocity.ui.ts",
    "chars": 593,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/_all.ts",
    "chars": 256,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/zoomIn.ts",
    "chars": 461,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/zoomInDown.ts",
    "chars": 618,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/zoomInLeft.ts",
    "chars": 618,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/zoomInRight.ts",
    "chars": 619,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_entrances/zoomInUp.ts",
    "chars": 616,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/_all.ts",
    "chars": 261,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/zoomOut.ts",
    "chars": 462,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/zoomOutDown.ts",
    "chars": 632,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/zoomOutLeft.ts",
    "chars": 629,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/zoomOutRight.ts",
    "chars": 636,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "src-ui/zooming_exits/zoomOutUp.ts",
    "chars": 630,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  },
  {
    "path": "test/index.html",
    "chars": 1221,
    "preview": "<!DOCTYPE HTML>\n<html>\n\t<head>\n\t\t<title>Velocity.js Tests</title>\n\t\t<link rel=\"stylesheet\" href=\"../node_modules/qunit/q"
  },
  {
    "path": "test/qunit-2.5.0.css",
    "chars": 7875,
    "preview": "/*!\n * QUnit 2.5.0\n * https://qunitjs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under th"
  },
  {
    "path": "test/qunit-2.5.0.js",
    "chars": 149077,
    "preview": "/*!\n * QUnit 2.5.0\n * https://qunitjs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under th"
  },
  {
    "path": "test/qunit-assert-close.js",
    "chars": 7275,
    "preview": "(function(factory) {\n\n  // NOTE:\n  // All techniques except for the \"browser globals\" fallback will extend the\n  // prov"
  },
  {
    "path": "test/src/1_Core/Arguments.ts",
    "chars": 6683,
    "preview": "/*\n * velocity-animate (C) 2014-2018 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the proje"
  }
]

// ... and 54 more files (download for full content)

About this extraction

This page contains the full source code of the julianshapiro/velocity GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 254 files (1.7 MB), approximately 499.8k tokens, and a symbol index with 674 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!